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