コード例 #1
0
        /// <nodoc/>
        public ModuleDefinition(
            ModuleDescriptor descriptor,
            AbsolutePath root,
            AbsolutePath mainFile,
            AbsolutePath moduleConfigFile,
            IEnumerable <AbsolutePath> specs,
            NameResolutionSemantics resolutionSemantics,
            int v1QualifierSpaceId,
            [CanBeNull] IEnumerable <ModuleReferenceWithProvenance> allowedModuleDependencies,
            [CanBeNull] IEnumerable <ModuleReferenceWithProvenance> cyclicalFriendModules,
            [CanBeNull] IEnumerable <IMount> mounts)
        {
            Contract.Requires(specs != null);
            Contract.Requires(root.IsValid);

            AllowedModuleDependencies = allowedModuleDependencies;
            CyclicalFriendModules     = cyclicalFriendModules;
            Mounts = mounts;

            // Main file is valid iff the resolution semantics is explicit references
            Contract.Requires(resolutionSemantics == NameResolutionSemantics.ImplicitProjectReferences
                ? !mainFile.IsValid
                : mainFile.IsValid);

            Descriptor       = descriptor;
            MainFile         = mainFile;
            Root             = root;
            ModuleConfigFile = moduleConfigFile;

            // Specs could have duplicates, and the following line removes them.
            Specs = specs.ToReadOnlySet();
            ResolutionSemantics = resolutionSemantics;
            V1QualifierSpaceId  = v1QualifierSpaceId;
        }
コード例 #2
0
 public WorkspaceTestBase(
     PathTable pathTable = null,
     string preludeName  = null,
     NameResolutionSemantics nameResolutionSemantics = NameResolutionSemantics.ExplicitProjectReferences,
     CancellationToken?cancellationToken             = null)
 {
     PathTable   = pathTable ?? new PathTable();
     FileSystem  = new InMemoryFileSystem(PathTable);
     PreludeName = preludeName;
     m_nameResolutionSemantics = nameResolutionSemantics;
     m_cancellationToken       = cancellationToken;
 }