/// <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; }
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; }