/// <summary> /// Constructor. /// </summary> /// <param name="assembly"> /// Owning assembly. /// </param> /// <param name="underlyingModule"> /// The underlying ModuleSymbol, cannot be another CSharpModuleSymbol. /// </param> /// <param name="ordinal"> /// The index of the ModuleSymbol within the owning assembly. /// </param> internal CSharpModuleSymbol(AssemblySymbol assembly, CSharpSymbols.ModuleSymbol underlyingModule, int ordinal) { Debug.Assert((object)assembly != null); Debug.Assert((object)underlyingModule != null); _csharpAssembly = assembly; _underlyingModule = underlyingModule; _ordinal = ordinal; _csharpSymbolMap = new CSharpSymbolMap(this); }
public ModuleSymbol GetModuleSymbol(CSharpSymbols.ModuleSymbol csharpSymbol) { var assembly = (CSharpAssemblySymbol)GetAssemblySymbol(csharpSymbol.ContainingAssembly); return(GetSymbol <CSharpSymbols.ModuleSymbol, ModuleSymbol>(csharpSymbol, cs => throw new InvalidOperationException("Module symbol should have been Registered by the assembly."))); }