Ejemplo n.º 1
0
        /// <nodoc/>
        internal FileModuleLiteral(AbsolutePath path, QualifierValue qualifier, GlobalModuleLiteral outerScope, Package package, ModuleRegistry moduleRegistry, LineMap lineMap)
            : this(ModuleLiteralId.Create(path), qualifier, outerScope, package, lineMap)
        {
            Contract.Requires(path.IsValid);
            Contract.Requires(lineMap != null);

            m_moduleRegistry = moduleRegistry;
        }
Ejemplo n.º 2
0
        /// <nodoc />
        protected static ModuleLiteralId ReadModuleLiteralId(BuildXLReader reader)
        {
            var name = reader.ReadFullSymbol();
            var path = reader.ReadAbsolutePath();

            // Name and Id could be invalid in case of a fake type or namespace.
            if (!name.IsValid && !path.IsValid)
            {
                return(default(ModuleLiteralId));
            }

            return(ModuleLiteralId.Create(path).WithName(name));
        }
Ejemplo n.º 3
0
        private FileModuleLiteral GetFileModuleInstanceFromImportOrExportDeclaration(
            ModuleRegistry moduleRegistry,
            AbsolutePath referencedPath)
        {
            var importedModuleId = ModuleLiteralId.Create(referencedPath);

            // Get the uninstantiated version of this file module.
            UninstantiatedModuleInfo importedModuleInfo = moduleRegistry.GetUninstantiatedModuleInfoByModuleId(importedModuleId);

            // Evaluate qualifier if specified.
            QualifierValue qualifierValue = Qualifier;

            // Instantiate this file module according to the qualifier.
            FileModuleLiteral importedModule = importedModuleInfo.FileModuleLiteral.InstantiateFileModuleLiteral(moduleRegistry, qualifierValue);

            return(importedModule);
        }