| File: StubEnvironment.cs | Web Access |
| Project: src\runtime\src\libraries\System.Runtime.InteropServices\gen\Microsoft.Interop.SourceGeneration\Microsoft.Interop.SourceGeneration.csproj (Microsoft.Interop.SourceGeneration) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using Microsoft.CodeAnalysis; namespace Microsoft.Interop { [Flags] public enum EnvironmentFlags { None = 0, SkipLocalsInit = 0x1, DisableRuntimeMarshalling = 0x2, } public sealed record StubEnvironment( Compilation Compilation, EnvironmentFlags EnvironmentFlags) { private Optional<INamedTypeSymbol?> _lcidConversionAttrType; public INamedTypeSymbol? LcidConversionAttrType { get { if (_lcidConversionAttrType.HasValue) { return _lcidConversionAttrType.Value; } _lcidConversionAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.LCIDConversionAttribute)); return _lcidConversionAttrType.Value; } } private Optional<INamedTypeSymbol?> _suppressGCTransitionAttrType; public INamedTypeSymbol? SuppressGCTransitionAttrType { get { if (_suppressGCTransitionAttrType.HasValue) { return _suppressGCTransitionAttrType.Value; } _suppressGCTransitionAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.SuppressGCTransitionAttribute)); return _suppressGCTransitionAttrType.Value; } } private Optional<INamedTypeSymbol?> _unmanagedCallConvAttrType; public INamedTypeSymbol? UnmanagedCallConvAttrType { get { if (_unmanagedCallConvAttrType.HasValue) { return _unmanagedCallConvAttrType.Value; } _unmanagedCallConvAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.UnmanagedCallConvAttribute)); return _unmanagedCallConvAttrType.Value; } } private Optional<INamedTypeSymbol?> _defaultDllImportSearchPathsAttrType; public INamedTypeSymbol? DefaultDllImportSearchPathsAttrType { get { if (_defaultDllImportSearchPathsAttrType.HasValue) { return _defaultDllImportSearchPathsAttrType.Value; } _defaultDllImportSearchPathsAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.DefaultDllImportSearchPathsAttribute)); return _defaultDllImportSearchPathsAttrType.Value; } } private Optional<INamedTypeSymbol?> _wasmImportLinkageAttrType; public INamedTypeSymbol? WasmImportLinkageAttrType { get { if (_wasmImportLinkageAttrType.HasValue) { return _wasmImportLinkageAttrType.Value; } _wasmImportLinkageAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.WasmImportLinkageAttribute)); return _wasmImportLinkageAttrType.Value; } } private Optional<INamedTypeSymbol?> _stackTraceHiddenAttrType; public INamedTypeSymbol? StackTraceHiddenAttrType { get { if (_stackTraceHiddenAttrType.HasValue) { return _stackTraceHiddenAttrType.Value; } _stackTraceHiddenAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.System_Diagnostics_StackTraceHiddenAttribute)); return _stackTraceHiddenAttrType.Value; } } private Optional<INamedTypeSymbol?> _debuggerHiddenAttrType; public INamedTypeSymbol? DebuggerHiddenAttrType { get { if (_debuggerHiddenAttrType.HasValue) { return _debuggerHiddenAttrType.Value; } _debuggerHiddenAttrType = new Optional<INamedTypeSymbol?>(Compilation.GetTypeByMetadataName(TypeNames.System_Diagnostics_DebuggerHiddenAttribute)); return _debuggerHiddenAttrType.Value; } } } }