5 implementations of TypeInfo
Microsoft.Interop.JavaScript.JSImportGenerator (1)
Marshaling\BaseJSGenerator.cs (1)
12
public TypePositionInfo
TypeInfo
=> info;
Microsoft.Interop.SourceGeneration (4)
Marshalling\CustomTypeMarshallingGenerator.cs (1)
18
public TypePositionInfo
TypeInfo
=> nativeTypeMarshaller.TypeInfo;
Marshalling\MarshallingGenerator.cs (1)
156
public TypePositionInfo
TypeInfo
=> info;
Marshalling\StaticPinnableManagedValueMarshaller.cs (1)
8
public TypePositionInfo
TypeInfo
=> innerMarshallingGenerator.TypeInfo;
Marshalling\UnmanagedToManagedOwnershipTrackingStrategy.cs (1)
97
public TypePositionInfo
TypeInfo
=> inner.TypeInfo;
64 references to TypeInfo
Microsoft.Interop.SourceGeneration (64)
BoundGenerators.cs (13)
84
Debug.Assert(!nativeReturnMarshaller.
TypeInfo
.IsNativeReturnPosition);
103
overlappedMarshaller = nativeParamMarshallers.FirstOrDefault(e => e.
TypeInfo
.NativeIndex == errorHandlingInfo.NativeIndex);
139
managedParamMarshallers.Sort(static (m1, m2) => m1.
TypeInfo
.ManagedIndex.CompareTo(m2.
TypeInfo
.ManagedIndex));
140
nativeParamMarshallers.Sort(static (m1, m2) => m1.
TypeInfo
.NativeIndex.CompareTo(m2.
TypeInfo
.NativeIndex));
170
static m => GetInfoIndex(m.
TypeInfo
),
171
static m => GetInfoDependencies(m.
TypeInfo
))
213
return nativeReturnMarshaller.
TypeInfo
.IsNativeReturnPosition
221
marshaller => marshaller.
TypeInfo
.NativeIndex == info.NativeIndex);
253
public bool ManagedNativeSameReturn => ManagedReturnMarshaller.
TypeInfo
.IsNativeReturnPosition;
255
public bool IsManagedVoidReturn => ManagedReturnMarshaller.
TypeInfo
.ManagedType == SpecialTypeInfo.Void;
257
public bool IsUnmanagedVoidReturn => NativeReturnMarshaller.
TypeInfo
.ManagedType == SpecialTypeInfo.Void;
GeneratedStatements.cs (8)
58
&& marshaller.
TypeInfo
.IsErrorHandlingPosition != errorHandlingOnly)
99
InvokeStatement = $"{propertyAccess} = {invokeContext.GetIdentifiers(valueMarshaller.
TypeInfo
).managed};\r\n"
105
InvokeStatement = $"{invokeContext.GetIdentifiers(marshallers.ManagedReturnMarshaller.
TypeInfo
).managed} = {propertyAccess};\r\n"
113
if (marshallers.NativeReturnMarshaller.
TypeInfo
.ManagedType == SpecialTypeInfo.Void)
118
(string managed, string native) = context.GetIdentifiers(marshallers.NativeReturnMarshaller.
TypeInfo
);
127
if (marshallers.ManagedReturnMarshaller.
TypeInfo
.ManagedType == SpecialTypeInfo.Void)
132
return $"{context.GetIdentifiers(marshallers.ManagedReturnMarshaller.
TypeInfo
).managed} = {invoke}";
144
string managed = context.GetIdentifiers(marshaller.
TypeInfo
).managed;
ManagedToNativeStubGenerator.cs (4)
76
hasErrorHandler |= generator.
TypeInfo
.IsErrorHandlingPosition;
77
noMarshallingNeeded &= (generator.IsBlittable() && !generator.
TypeInfo
.IsByRef) || generator.IsForwarder();
78
HasForwardedTypes |= generator.IsForwarder() && generator is {
TypeInfo
.ManagedType: not SpecialTypeInfo { SpecialType: Microsoft.CodeAnalysis.SpecialType.System_Void } };
183
writer.WriteLine($"return {_context.GetIdentifiers(_marshallers.ManagedReturnMarshaller.
TypeInfo
).managed};");
Marshalling\ByValueContentsMarshalKindValidator.cs (2)
37
var support = generator.Generator.SupportsByValueMarshalKind(generator.Generator.
TypeInfo
.ByValueContentsMarshalKind, out GeneratorDiagnostic? diagnostic);
42
ByValueMarshalKindSupport.NotSupported => ResolvedGenerator.ResolvedWithDiagnostics(s_forwarder.Bind(generator.Generator.
TypeInfo
, context), generator.Diagnostics.Add(diagnostic!)),
Marshalling\ElementsMarshalling.cs (10)
159
writer.WriteLine($"{TypeNames.System_ReadOnlySpan}<{elementMarshaller.
TypeInfo
.ManagedType.FullTypeName}> {managedSpanIdentifier} = {CollectionSource.GetManagedValuesSource(context)};");
180
writer.WriteLine($"{TypeNames.System_Span}<{elementMarshaller.
TypeInfo
.ManagedType.FullTypeName}> {managedSpanIdentifier} = {CollectionSource.GetManagedValuesDestination(context)};");
196
writer.WriteLine($"{TypeNames.System_Span}<{elementMarshaller.
TypeInfo
.ManagedType.FullTypeName}> {managedSpanIdentifier} = {MemoryMarshalType}.CreateSpan(ref {UnsafeType}.AsRef(in {CollectionSource.GetManagedValuesSource(context)}.GetPinnableReference()), {numElementsIdentifier});");
254
writer.WriteLine($"{TypeNames.System_Span}<{elementMarshaller.
TypeInfo
.ManagedType.FullTypeName}> {managedSpanIdentifier} = {CollectionSource.GetManagedValuesDestination(context)};");
272
elementMarshaller.
TypeInfo
,
285
identifierContext = new GenericFriendlyPointerIdentifierContext(elementSetupSubContext, elementMarshaller.
TypeInfo
, $"{nativeSpanIdentifier}__{indexer}")
305
writer.WriteLine($"{nativeType} {identifierContext.GetIdentifiers(elementMarshaller.
TypeInfo
).native} = ({nativeType}){elementSetupSubContext.GetIdentifiers(elementMarshaller.
TypeInfo
).native};");
315
writer.WriteLine($"{elementSetupSubContext.GetIdentifiers(elementMarshaller.
TypeInfo
).native} = ({TypeNames.GlobalAlias}{TypeNames.System_IntPtr}){identifierContext.GetIdentifiers(elementMarshaller.
TypeInfo
).native};");
Marshalling\MarshallingGeneratorExtensions.cs (11)
20
SignatureBehavior.ManagedTypeAndAttributes => generator.
TypeInfo
.ManagedType.FullTypeName,
33
&& generator.
TypeInfo
.MarshallingAttributeInfo is IForwardedMarshallingInfo forwarded
50
return GenerateForwardingParameter(generator.
TypeInfo
, context.GetIdentifiers(generator.
TypeInfo
).managed);
58
identifierName = context.GetIdentifiers(generator.
TypeInfo
).native;
68
(string managed, string native) = context.GetIdentifiers(generator.
TypeInfo
);
69
string param = context.GetAdditionalIdentifier(generator.
TypeInfo
, ParameterIdentifierSuffix);
72
ValueBoundaryBehavior.ManagedIdentifier => generator.
TypeInfo
.IsByRef ? param : managed,
121
TypePositionInfo info = generator.
TypeInfo
;
136
TypePositionInfo info = generator.
TypeInfo
;
145
string paramIdentifier = context.GetAdditionalIdentifier(generator.
TypeInfo
, ParameterIdentifierSuffix);
Marshalling\StaticPinnableManagedValueMarshaller.cs (2)
8
public TypePositionInfo TypeInfo => innerMarshallingGenerator.
TypeInfo
;
68
(string managedIdentifier, string nativeIdentifier) = context.GetIdentifiers(innerMarshallingGenerator.
TypeInfo
);
Marshalling\UnmanagedToManagedOwnershipTrackingStrategy.cs (1)
97
public TypePositionInfo TypeInfo => inner.
TypeInfo
;
UnmanagedToManagedStubGenerator.cs (1)
113
writer.WriteLine($"return {_context.GetIdentifiers(_marshallers.NativeReturnMarshaller.
TypeInfo
).native};");
VariableDeclarations.cs (12)
16
TypePositionInfo info = marshaller.
TypeInfo
;
39
TypePositionInfo errorInfo = errorMarshaller.
TypeInfo
;
50
(string managed, string native) = context.GetIdentifiers(marshaller.
TypeInfo
);
51
if (marshaller.
TypeInfo
.IsManagedReturnPosition || marshaller.
TypeInfo
.IsNativeReturnPosition)
53
Declare(variables, marshaller.
TypeInfo
.ManagedType.FullTypeName, managed, initializeDeclarations);
67
TypePositionInfo info = marshaller.
TypeInfo
;
86
(string managed, string native) = context.GetIdentifiers(marshaller.
TypeInfo
);
87
if (marshaller.
TypeInfo
.IsNativeReturnPosition)
90
Declare(variables, marshaller.
TypeInfo
.ManagedType.FullTypeName, managed, initializeDeclarations || !nativeReturnUsesNativeIdentifier);
115
if (boundaryBehavior != ValueBoundaryBehavior.ManagedIdentifier && !marshaller.
TypeInfo
.IsErrorHandlingPosition)
117
Declare(variables, marshaller.
TypeInfo
.ManagedType.FullTypeName, managed, initializeDeclarations);