3 instantiations of StubCodeContext
Microsoft.Interop.SourceGeneration (3)
StubCodeContext.cs (3)
31public static readonly StubCodeContext DefaultManagedToNativeStub = new( 36public static readonly StubCodeContext DefaultNativeToManagedStub = new( 43return new StubCodeContext(
138 references to StubCodeContext
Microsoft.Interop.ComInterfaceGenerator (28)
Analyzers\ConvertComImportToGeneratedComInterfaceAnalyzer.cs (6)
122ResolvedGenerator unmanagedToManagedGenerator = unmanagedToManagedFactory.Create(info, StubCodeContext.DefaultNativeToManagedStub); 123ResolvedGenerator managedToUnmanagedGenerator = managedToUnmanagedFactory.Create(info, StubCodeContext.DefaultManagedToNativeStub); 128}), StubCodeContext.DefaultManagedToNativeStub, forwarder, out var generatorDiagnostics); 192private readonly Func<TypePositionInfo, StubCodeContext, ResolvedGenerator> _func; 194public CallbackGeneratorResolver(Func<TypePositionInfo, StubCodeContext, ResolvedGenerator> func) 199public ResolvedGenerator Create(TypePositionInfo info, StubCodeContext context) => _func(info, context);
Marshallers\ComInterfaceDispatchMarshallingResolver.cs (4)
13public ResolvedGenerator Create(TypePositionInfo info, StubCodeContext context) 34public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 47public ValueBoundaryBehavior GetValueBoundaryBehavior(TypePositionInfo info, StubCodeContext context) => ValueBoundaryBehavior.NativeIdentifier; 50public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => true;
Marshallers\KeepAliveThisMarshaller.cs (3)
11public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 22public ValueBoundaryBehavior GetValueBoundaryBehavior(TypePositionInfo info, StubCodeContext context) => ValueBoundaryBehavior.ManagedIdentifier; 26public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => false;
Marshallers\ManagedHResultExceptionGeneratorResolver.cs (7)
13public ResolvedGenerator Create(TypePositionInfo info, StubCodeContext context) 33public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 49public ValueBoundaryBehavior GetValueBoundaryBehavior(TypePositionInfo info, StubCodeContext context) => ValueBoundaryBehavior.ManagedIdentifier; 52public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => false; 58public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 73public ValueBoundaryBehavior GetValueBoundaryBehavior(TypePositionInfo info, StubCodeContext context) => ValueBoundaryBehavior.ManagedIdentifier; 76public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => false;
Marshallers\ObjectUnwrapperResolver.cs (4)
12public ResolvedGenerator Create(TypePositionInfo info, StubCodeContext context) 29public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 44public ValueBoundaryBehavior GetValueBoundaryBehavior(TypePositionInfo info, StubCodeContext context) => ValueBoundaryBehavior.NativeIdentifier; 47public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => true;
Marshallers\StructAsHResultMarshallerFactory.cs (4)
12public ResolvedGenerator Create(TypePositionInfo info, StubCodeContext context) 27public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 55public ValueBoundaryBehavior GetValueBoundaryBehavior(TypePositionInfo info, StubCodeContext context) 68public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => true;
Microsoft.Interop.JavaScript.JSImportGenerator (14)
JSExportGenerator.cs (1)
200string signatures = SignatureBindingHelpers.CreateSignaturesArgument(signatureElements, StubCodeContext.DefaultNativeToManagedStub);
JSGeneratorFactory.cs (4)
17public ResolvedGenerator Create(TypePositionInfo info, StubCodeContext context) 38public static (MarshalerType BaseType, IEnumerable<MarshalerType>? SubTypes) GetMarshallerTypeForBinding(TypePositionInfo info, StubCodeContext context) 46private static ResolvedGeneratorAndType Create(TypePositionInfo info, JSMarshallingInfo jsMarshalingInfo, StubCodeContext context) 91private static ResolvedGeneratorAndType Create(TypePositionInfo info, StubCodeContext context, bool isToJs, KnownManagedType marshaledType, KnownManagedType[] argumentTypes, JSTypeFlags jsType, SequenceEqualImmutableArray<JSTypeFlags>? jsTypeArguments)
JSImportGenerator.cs (1)
204string signatures = SignatureBindingHelpers.CreateSignaturesArgument(signature.SignatureContext.ElementTypeInformation, StubCodeContext.DefaultManagedToNativeStub);
Marshaling\BaseJSGenerator.cs (2)
8internal abstract class BaseJSGenerator(TypePositionInfo info, StubCodeContext codeContext) : IBoundMarshallingGenerator 14public StubCodeContext CodeContext => codeContext;
Marshaling\FuncJSGenerator.cs (1)
9internal sealed class FuncJSGenerator(TypePositionInfo info, StubCodeContext context, bool isAction, MarshalerType[] argumentMarshalerTypes) : BaseJSGenerator(info, context)
Marshaling\ImplicitArgumentGenerator.cs (1)
6internal sealed class ImplicitArgumentGenerator(TypePositionInfo info, StubCodeContext codeContext) : BaseJSGenerator(info, codeContext)
Marshaling\PrimitiveJSGenerator.cs (1)
8internal sealed class PrimitiveJSGenerator(TypePositionInfo info, StubCodeContext context, MarshalerType elementMarshallerType) : BaseJSGenerator(info, context)
Marshaling\TaskJSGenerator.cs (1)
8internal sealed class TaskJSGenerator(TypePositionInfo info, StubCodeContext context, MarshalerType resultMarshalerType) : BaseJSGenerator(info, context)
NoSpanAndTaskMixingResolver.cs (1)
15public ResolvedGenerator Create(TypePositionInfo info, StubCodeContext context)
SignatureBindingHelpers.cs (1)
12public static string CreateSignaturesArgument(ImmutableArray<TypePositionInfo> elements, StubCodeContext context)
Microsoft.Interop.LibraryImportGenerator (4)
Analyzers\ConvertToLibraryImportAnalyzer.cs (3)
170}), StubCodeContext.DefaultManagedToNativeStub, forwarder, out var bindingFailures); 230private sealed class CallbackGeneratorResolver(Func<TypePositionInfo, StubCodeContext, ResolvedGenerator> func) : IMarshallingGeneratorResolver 232public ResolvedGenerator Create(TypePositionInfo info, StubCodeContext context) => func(info, context);
ForwarderResolver.cs (1)
14public ResolvedGenerator Create(TypePositionInfo info, StubCodeContext context) => ResolvedGenerator.Resolved(s_forwarder.Bind(info, context));
Microsoft.Interop.LibraryImportGenerator.Downlevel (1)
ForwarderResolver.cs (1)
14public ResolvedGenerator Create(TypePositionInfo info, StubCodeContext context) => ResolvedGenerator.Resolved(s_forwarder.Bind(info, context));
Microsoft.Interop.SourceGeneration (91)
BoundGenerators.cs (2)
18public static BoundGenerators Create(ImmutableArray<TypePositionInfo> elementTypeInfo, IMarshallingGeneratorResolver generatorResolver, StubCodeContext context, IUnboundMarshallingGenerator fallbackGenerator, out ImmutableArray<GeneratorDiagnostic> generatorBindingDiagnostics) 266public ResolvedGenerator Create(TypePositionInfo info, StubCodeContext context)
GeneratedStatements.cs (1)
70public static GeneratedStatements Create(BoundGenerators marshallers, StubCodeContext codeContext, StubIdentifierContext context, string expressionToInvoke)
ManagedToNativeStubGenerator.cs (2)
39_marshallers = BoundGenerators.Create(argTypes, generatorResolver, StubCodeContext.DefaultManagedToNativeStub, new Forwarder(), out var bindingDiagnostics); 118GeneratedStatements statements = GeneratedStatements.Create(_marshallers, StubCodeContext.DefaultManagedToNativeStub, _context, targetIdentifier);
Marshalling\AttributedMarshallingModelGeneratorResolver.cs (8)
39public ResolvedGenerator Create(TypePositionInfo info, StubCodeContext context) 49private GeneratorDiagnostic.NotSupported? ValidateCountInfo(TypePositionInfo info, CountInfo count, StubCodeContext context, out bool countInfoRequiresCast) 115private CustomTypeMarshallerData GetMarshallerDataForTypePositionInfo(CustomTypeMarshallers marshallers, TypePositionInfo info, StubCodeContext context) 128private ResolvedGenerator CreateCustomNativeTypeMarshaller(TypePositionInfo info, StubCodeContext context, NativeMarshallingAttributeInfo marshalInfo) 192StubCodeContext context, 205StubCodeContext.CreateElementMarshallingContext(context)); 333private static FreeStrategy GetFreeStrategy(TypePositionInfo info, StubCodeContext context) 376private GeneratorDiagnostic.NotSupported? ValidateCustomNativeTypeMarshallingSupported(TypePositionInfo info, StubCodeContext context, NativeMarshallingAttributeInfo marshalInfo)
Marshalling\BlittableMarshaller.cs (3)
18public ValueBoundaryBehavior GetValueBoundaryBehavior(TypePositionInfo info, StubCodeContext context) 31public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 71public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context)
Marshalling\BlittableMarshallerResolver.cs (1)
23public ResolvedGenerator Create(TypePositionInfo info, StubCodeContext context)
Marshalling\BoolMarshaller.cs (3)
35public ValueBoundaryBehavior GetValueBoundaryBehavior(TypePositionInfo info, StubCodeContext context) 45public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 76public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => true;
Marshalling\BreakingChangeDetector.cs (1)
17public ResolvedGenerator Create(TypePositionInfo info, StubCodeContext context)
Marshalling\ByValueContentsMarshalKindValidator.cs (2)
22public ResolvedGenerator Create(TypePositionInfo info, StubCodeContext context) 28private static ResolvedGenerator ValidateByValueMarshalKind(ResolvedGenerator generator, StubCodeContext context)
Marshalling\CharMarshaller.cs (4)
13public ValueBoundaryBehavior GetValueBoundaryBehavior(TypePositionInfo info, StubCodeContext context) 42public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 91public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) 97private static bool IsPinningPathSupported(TypePositionInfo info, StubCodeContext context)
Marshalling\CharMarshallingGeneratorResolver.cs (2)
24public ResolvedGenerator Create(TypePositionInfo info, StubCodeContext context) 34private ResolvedGenerator CreateCharMarshaller(TypePositionInfo info, StubCodeContext context)
Marshalling\CompositeMarshallingGeneratorResolver.cs (1)
26public ResolvedGenerator Create(TypePositionInfo info, StubCodeContext context)
Marshalling\CustomTypeMarshallingGenerator.cs (1)
20public StubCodeContext CodeContext => nativeTypeMarshaller.CodeContext;
Marshalling\DelegateMarshaller.cs (3)
18public ValueBoundaryBehavior GetValueBoundaryBehavior(TypePositionInfo info, StubCodeContext context) 23public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 56public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => true;
Marshalling\ElementsMarshalling.cs (6)
14StubCodeContext CodeContext { get; } 44public static string GenerateNumElementsExpression(CountInfo count, bool countInfoRequiresCast, StubCodeContext codeContext, StubIdentifierContext context) 269StubCodeContext elementCodeContext = StubCodeContext.CreateElementMarshallingContext(CollectionSource.CodeContext); 347private static bool UsesLastIndexMarshalled(TypePositionInfo info, StubCodeContext context) 353private static bool ShouldCleanUpAllElements(TypePositionInfo info, StubCodeContext context)
Marshalling\Forwarder.cs (3)
18public ValueBoundaryBehavior GetValueBoundaryBehavior(TypePositionInfo info, StubCodeContext context) 23public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 27public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => false;
Marshalling\ICustomTypeMarshallingStrategy.cs (1)
13StubCodeContext CodeContext { get; }
Marshalling\IidParameterIndexMarshallerResolver.cs (4)
8public ResolvedGenerator Create(TypePositionInfo info, StubCodeContext context) 25public ValueBoundaryBehavior GetValueBoundaryBehavior(TypePositionInfo info, StubCodeContext context) 31public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => true; 33public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context)
Marshalling\IMarshallingGeneratorResolver.cs (1)
18StubCodeContext context);
Marshalling\MarshalAsMarshallingGeneratorResolver.cs (1)
36StubCodeContext context)
Marshalling\MarshallerHelpers.cs (4)
82public static string GetIndexedManagedElementExpression(TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 92internal static bool CanUseCallerAllocatedBuffer(TypePositionInfo info, StubCodeContext context) 250public static MarshalDirection GetMarshalDirection(TypePositionInfo info, StubCodeContext context) 312public static StubIdentifierContext.Stage GetCleanupStage(TypePositionInfo info, StubCodeContext context)
Marshalling\MarshallingGenerator.cs (7)
87StubCodeContext CodeContext { get; } 150internal sealed class BoundMarshallingGenerator(TypePositionInfo info, StubCodeContext context, IUnboundMarshallingGenerator unbound) : IBoundMarshallingGenerator 158public StubCodeContext CodeContext => context; 183public static IBoundMarshallingGenerator Bind(this IUnboundMarshallingGenerator unbound, TypePositionInfo info, StubCodeContext context) => new BoundMarshallingGenerator(info, context, unbound); 211ValueBoundaryBehavior GetValueBoundaryBehavior(TypePositionInfo info, StubCodeContext context); 226void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context); 235bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context);
Marshalling\NoMarshallingInfoErrorResolver.cs (1)
16StubCodeContext context)
Marshalling\NotSupportedResolver.cs (1)
8public ResolvedGenerator Create(TypePositionInfo info, StubCodeContext context) =>
Marshalling\ResolvedGenerator.cs (1)
25public static ResolvedGenerator NotSupported(TypePositionInfo info, StubCodeContext context, GeneratorDiagnostic.NotSupported notSupportedDiagnostic)
Marshalling\StatefulMarshallingStrategy.cs (7)
6internal sealed class StatefulValueMarshalling(TypePositionInfo info, StubCodeContext stubContext, ManagedTypeInfo marshallerType, ManagedTypeInfo unmanagedType, MarshallerShape shape) : ICustomTypeMarshallingStrategy 13public StubCodeContext CodeContext => stubContext; 111public StubCodeContext CodeContext => innerMarshaller.CodeContext; 138internal sealed class StatefulLinearCollectionSource(TypePositionInfo info, StubCodeContext codeContext) : IElementsMarshallingCollectionSource 141public StubCodeContext CodeContext => codeContext; 184public StubCodeContext CodeContext => innerMarshaller.CodeContext; 284public StubCodeContext CodeContext => innerMarshaller.CodeContext;
Marshalling\StatelessMarshallingStrategy.cs (9)
9internal sealed class StatelessValueMarshalling(TypePositionInfo info, StubCodeContext codeContext, string marshallerType, ManagedTypeInfo unmanagedType, MarshallerShape shape) : ICustomTypeMarshallingStrategy 14public StubCodeContext CodeContext => codeContext; 91public StubCodeContext CodeContext => innerMarshaller.CodeContext; 134public StubCodeContext CodeContext => innerMarshaller.CodeContext; 172internal sealed class StatelessLinearCollectionSpaceAllocator(TypePositionInfo info, StubCodeContext codeContext, string marshallerType, ManagedTypeInfo unmanagedType, MarshallerShape shape, CountInfo countInfo, bool countInfoRequiresCast) : ICustomTypeMarshallingStrategy 176public StubCodeContext CodeContext => codeContext; 269internal sealed class StatelessLinearCollectionSource(TypePositionInfo info, StubCodeContext codeContext, string marshallerType) : IElementsMarshallingCollectionSource 272public StubCodeContext CodeContext => codeContext; 315public StubCodeContext CodeContext => spaceMarshallingStrategy.CodeContext;
Marshalling\StaticPinnableManagedValueMarshaller.cs (2)
10public StubCodeContext CodeContext => innerMarshallingGenerator.CodeContext; 59private bool IsPinningPathSupported(StubCodeContext context)
Marshalling\UnmanagedToManagedOwnershipTrackingStrategy.cs (3)
15public StubCodeContext CodeContext => innerMarshaller.CodeContext; 51public StubCodeContext CodeContext => innerMarshaller.CodeContext; 98public StubCodeContext CodeContext => inner.CodeContext;
StubCodeContext.cs (4)
31public static readonly StubCodeContext DefaultManagedToNativeStub = new( 36public static readonly StubCodeContext DefaultNativeToManagedStub = new( 41public static StubCodeContext CreateElementMarshallingContext(StubCodeContext containingContext)
UnmanagedToManagedStubGenerator.cs (2)
21_marshallers = BoundGenerators.Create(argTypes, generatorResolver, StubCodeContext.DefaultNativeToManagedStub, new Forwarder(), out var bindingDiagnostics); 42StubCodeContext.DefaultNativeToManagedStub,