diff --git a/src/Compilers/CSharp/Portable/Symbols/NamedTypeSymbol.cs b/src/Compilers/CSharp/Portable/Symbols/NamedTypeSymbol.cs index 5bf5bd66927db516ca67d2637d30e0baf71f5784..7d04d8698aa7a29cfbc74900592f914856227ea7 100644 --- a/src/Compilers/CSharp/Portable/Symbols/NamedTypeSymbol.cs +++ b/src/Compilers/CSharp/Portable/Symbols/NamedTypeSymbol.cs @@ -1473,6 +1473,8 @@ ISymbol INamedTypeSymbol.AssociatedSymbol /// INamedTypeSymbol INamedTypeSymbol.TupleUnderlyingType => this.TupleUnderlyingType; + bool INamedTypeSymbol.IsComImport => IsComImport; + #endregion #region ISymbol Members diff --git a/src/Compilers/Core/Portable/PublicAPI.Unshipped.txt b/src/Compilers/Core/Portable/PublicAPI.Unshipped.txt index b1489c39400e69be791982058e0dc387cb70c113..3fb555e26416bc73850328163b3948fc4349a1b4 100644 --- a/src/Compilers/Core/Portable/PublicAPI.Unshipped.txt +++ b/src/Compilers/Core/Portable/PublicAPI.Unshipped.txt @@ -89,6 +89,7 @@ Microsoft.CodeAnalysis.IArrayTypeSymbol.Sizes.get -> System.Collections.Immutabl Microsoft.CodeAnalysis.IFieldSymbol.CorrespondingTupleField.get -> Microsoft.CodeAnalysis.IFieldSymbol Microsoft.CodeAnalysis.IMethodSymbol.ReturnsByRef.get -> bool Microsoft.CodeAnalysis.INamedTypeSymbol.GetTypeArgumentCustomModifiers(int ordinal) -> System.Collections.Immutable.ImmutableArray +Microsoft.CodeAnalysis.INamedTypeSymbol.IsComImport.get -> bool Microsoft.CodeAnalysis.INamedTypeSymbol.TupleElements.get -> System.Collections.Immutable.ImmutableArray Microsoft.CodeAnalysis.INamedTypeSymbol.TupleUnderlyingType.get -> Microsoft.CodeAnalysis.INamedTypeSymbol Microsoft.CodeAnalysis.IOperation diff --git a/src/Compilers/Core/Portable/Symbols/INamedTypeSymbol.cs b/src/Compilers/Core/Portable/Symbols/INamedTypeSymbol.cs index 7f85b08de23e7d5a6a9741e7b0de0ca1ce59b93d..eddad80fe5fdb506fa6cc392dd3b883e649ab9f9 100644 --- a/src/Compilers/Core/Portable/Symbols/INamedTypeSymbol.cs +++ b/src/Compilers/Core/Portable/Symbols/INamedTypeSymbol.cs @@ -2,6 +2,8 @@ using System.Collections.Generic; using System.Collections.Immutable; +using System.Reflection; +using System.Runtime.InteropServices; namespace Microsoft.CodeAnalysis { @@ -46,6 +48,12 @@ public interface INamedTypeSymbol : ITypeSymbol /// bool IsImplicitClass { get; } + /// + /// Specifies that the class or interface is imported from another module. See + /// and + /// + bool IsComImport { get; } + /// /// Returns collection of names of members declared within this type. /// diff --git a/src/Compilers/VisualBasic/Portable/Symbols/NamedTypeSymbol.vb b/src/Compilers/VisualBasic/Portable/Symbols/NamedTypeSymbol.vb index 401e82d76a2c3979017f82cd135c96cc95ade729..aeae895cfdb28ec0b3a9e8506ee857431629d715 100644 --- a/src/Compilers/VisualBasic/Portable/Symbols/NamedTypeSymbol.vb +++ b/src/Compilers/VisualBasic/Portable/Symbols/NamedTypeSymbol.vb @@ -1189,6 +1189,12 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols End Get End Property + Private ReadOnly Property INamedTypeSymbol_IsComImport As Boolean Implements INamedTypeSymbol.IsComImport + Get + Return IsComImport + End Get + End Property + #End Region #Region "ISymbol" diff --git a/src/Workspaces/Core/Portable/CodeGeneration/Symbols/CodeGenerationAbstractNamedTypeSymbol.cs b/src/Workspaces/Core/Portable/CodeGeneration/Symbols/CodeGenerationAbstractNamedTypeSymbol.cs index c095c32dafdcf3f9c450beb1e341bbfc86fce34f..705459a921217f1cf8c50dde9eccae35c411bd1c 100644 --- a/src/Workspaces/Core/Portable/CodeGeneration/Symbols/CodeGenerationAbstractNamedTypeSymbol.cs +++ b/src/Workspaces/Core/Portable/CodeGeneration/Symbols/CodeGenerationAbstractNamedTypeSymbol.cs @@ -32,13 +32,7 @@ internal abstract class CodeGenerationAbstractNamedTypeSymbol : CodeGenerationTy } } - public override SymbolKind Kind - { - get - { - return SymbolKind.NamedType; - } - } + public override SymbolKind Kind => SymbolKind.NamedType; public override void Accept(SymbolVisitor visitor) { @@ -99,9 +93,8 @@ public override string MetadataName public ISymbol AssociatedSymbol { get; internal set; } - public bool MightContainExtensionMethods - { - get { return false; } - } + public bool MightContainExtensionMethods => false; + + public bool IsComImport => false; } } \ No newline at end of file