File: PDB\ImportRecord.cs
Web Access
Project: src\src\ExpressionEvaluator\Core\Source\ExpressionCompiler\Microsoft.CodeAnalysis.ExpressionCompiler.csproj (Microsoft.CodeAnalysis.ExpressionEvaluator.ExpressionCompiler)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
 
using Microsoft.CodeAnalysis.Debugging;
using Microsoft.CodeAnalysis.Symbols;
 
namespace Microsoft.CodeAnalysis.ExpressionEvaluator
{
    internal readonly struct ImportRecord
    {
        public readonly ImportTargetKind TargetKind;
        public readonly string? Alias;
 
        // target type of a type import (C#)
        public readonly ITypeSymbolInternal? TargetType;
 
        // target of an import (type, namespace or XML namespace) that needs to be bound (C#, VB)
        public readonly string? TargetString;
 
        // target assembly of a namespace import (C#, Portable)
        public readonly IAssemblySymbolInternal? TargetAssembly;
 
        // target assembly of a namespace import is identified by an extern alias which needs to be bound in the context (C#, native PDB)
        public readonly string? TargetAssemblyAlias;
 
        public ImportRecord(
            ImportTargetKind targetKind,
            string? alias = null,
            ITypeSymbolInternal? targetType = null,
            string? targetString = null,
            IAssemblySymbolInternal? targetAssembly = null,
            string? targetAssemblyAlias = null)
        {
            TargetKind = targetKind;
            Alias = alias;
            TargetType = targetType;
            TargetString = targetString;
            TargetAssembly = targetAssembly;
            TargetAssemblyAlias = targetAssemblyAlias;
        }
    }
}