/// <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);
        }
Example #2
0
        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.")));
        }