Browse Source

IModule should implement ISymbol.

pull/1213/head
Siegfried Pammer 7 years ago
parent
commit
195a1cf55b
  1. 2
      ICSharpCode.Decompiler/TypeSystem/IAssembly.cs
  2. 2
      ICSharpCode.Decompiler/TypeSystem/ISymbol.cs
  3. 2
      ICSharpCode.Decompiler/TypeSystem/Implementation/MinimalCorlib.cs
  4. 2
      ICSharpCode.Decompiler/TypeSystem/MetadataModule.cs

2
ICSharpCode.Decompiler/TypeSystem/IAssembly.cs

@ -45,7 +45,7 @@ namespace ICSharpCode.Decompiler.TypeSystem
/// <summary> /// <summary>
/// Represents a metadata module. /// Represents a metadata module.
/// </summary> /// </summary>
public interface IModule : ICompilationProvider public interface IModule : ISymbol, ICompilationProvider
{ {
/// <summary> /// <summary>
/// Gets the underlying metadata file. May return null, if the IAssembly was not created from a PE file. /// Gets the underlying metadata file. May return null, if the IAssembly was not created from a PE file.

2
ICSharpCode.Decompiler/TypeSystem/ISymbol.cs

@ -21,6 +21,8 @@ namespace ICSharpCode.Decompiler.TypeSystem
public enum SymbolKind : byte public enum SymbolKind : byte
{ {
None, None,
/// <seealso cref="IModule"/>
Module,
/// <seealso cref="ITypeDefinition"/> /// <seealso cref="ITypeDefinition"/>
TypeDefinition, TypeDefinition,
/// <seealso cref="IField"/> /// <seealso cref="IField"/>

2
ICSharpCode.Decompiler/TypeSystem/Implementation/MinimalCorlib.cs

@ -53,6 +53,8 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation
string IModule.AssemblyName => "corlib"; string IModule.AssemblyName => "corlib";
string IModule.FullAssemblyName => "corlib"; string IModule.FullAssemblyName => "corlib";
string ISymbol.Name => "corlib";
SymbolKind ISymbol.SymbolKind => SymbolKind.Module;
Metadata.PEFile IModule.PEFile => null; Metadata.PEFile IModule.PEFile => null;
INamespace IModule.RootNamespace => rootNamespace; INamespace IModule.RootNamespace => rootNamespace;

2
ICSharpCode.Decompiler/TypeSystem/MetadataModule.cs

@ -92,6 +92,8 @@ namespace ICSharpCode.Decompiler.TypeSystem
public string AssemblyName { get; } public string AssemblyName { get; }
public string FullAssemblyName { get; } public string FullAssemblyName { get; }
string ISymbol.Name => AssemblyName;
SymbolKind ISymbol.SymbolKind => SymbolKind.Module;
public INamespace RootNamespace => rootNamespace; public INamespace RootNamespace => rootNamespace;

Loading…
Cancel
Save