@@ -89,7 +89,7 @@ extension Workspace {
89
89
}
90
90
91
91
func getDependency( for url: AbsolutePath ) -> ManagedDependency {
92
- return managedDependencies [ url. asString] !
92
+ return try ! managedDependencies. dematerialize ( ) [ url. asString] !
93
93
}
94
94
}
95
95
@@ -125,7 +125,7 @@ final class WorkspaceTests: XCTestCase {
125
125
// Create the initial workspace.
126
126
do {
127
127
let workspace = try Workspace . createWith ( rootPackage: path)
128
- XCTAssertEqual ( workspace. managedDependencies. values. map { $0. repository. url } , [ ] )
128
+ XCTAssertEqual ( try workspace. managedDependencies. dematerialize ( ) . values. map { $0. repository. url } , [ ] )
129
129
130
130
// Do a low-level clone.
131
131
let state = CheckoutState ( revision: currentRevision)
@@ -136,8 +136,8 @@ final class WorkspaceTests: XCTestCase {
136
136
// Re-open the workspace, and check we know the checkout version.
137
137
do {
138
138
let workspace = try Workspace . createWith ( rootPackage: path)
139
- XCTAssertEqual ( workspace. managedDependencies. values. map { $0. repository } , [ testRepoSpec] )
140
- if let dependency = workspace. managedDependencies. values. first ( where: { _ in true } ) {
139
+ XCTAssertEqual ( try workspace. managedDependencies. dematerialize ( ) . values. map { $0. repository } , [ testRepoSpec] )
140
+ if let dependency = try workspace. managedDependencies. dematerialize ( ) . values. first ( where: { _ in true } ) {
141
141
XCTAssertEqual ( dependency. repository, testRepoSpec)
142
142
XCTAssertEqual ( dependency. checkoutState? . revision, currentRevision)
143
143
}
@@ -152,9 +152,9 @@ final class WorkspaceTests: XCTestCase {
152
152
let statePath : AbsolutePath
153
153
do {
154
154
let workspace = try Workspace . createWith ( rootPackage: path)
155
- statePath = workspace. managedDependencies. statePath
156
- XCTAssertEqual ( workspace. managedDependencies. values. map { $0. repository } , [ testRepoSpec] )
157
- if let dependency = workspace. managedDependencies. values. first ( where: { _ in true } ) {
155
+ statePath = try workspace. managedDependencies. dematerialize ( ) . statePath
156
+ XCTAssertEqual ( try workspace. managedDependencies. dematerialize ( ) . values. map { $0. repository } , [ testRepoSpec] )
157
+ if let dependency = try workspace. managedDependencies. dematerialize ( ) . values. first ( where: { _ in true } ) {
158
158
XCTAssertEqual ( dependency. repository, testRepoSpec)
159
159
XCTAssertEqual ( dependency. checkoutState? . revision, initialRevision)
160
160
}
@@ -164,10 +164,10 @@ final class WorkspaceTests: XCTestCase {
164
164
try removeFileTree ( statePath)
165
165
do {
166
166
let workspace = try Workspace . createWith ( rootPackage: path)
167
- XCTAssertEqual ( workspace. managedDependencies. values. map { $0. repository. url } , [ ] )
167
+ XCTAssertEqual ( try workspace. managedDependencies. dematerialize ( ) . values. map { $0. repository. url } , [ ] )
168
168
let state = CheckoutState ( revision: currentRevision)
169
169
_ = try workspace. clone ( repository: testRepoSpec, at: state)
170
- XCTAssertEqual ( workspace. managedDependencies. values. map { $0. repository } , [ testRepoSpec] )
170
+ XCTAssertEqual ( try workspace. managedDependencies. dematerialize ( ) . values. map { $0. repository } , [ testRepoSpec] )
171
171
}
172
172
}
173
173
}
@@ -430,7 +430,7 @@ final class WorkspaceTests: XCTestCase {
430
430
let workspace = try Workspace . createWith ( rootPackage: path)
431
431
let state = CheckoutState ( revision: Revision ( identifier: " initial " ) )
432
432
let checkoutPath = try workspace. clone ( repository: testRepoSpec, at: state)
433
- XCTAssertEqual ( workspace. managedDependencies. values. map { $0. repository } , [ testRepoSpec] )
433
+ XCTAssertEqual ( try workspace. managedDependencies. dematerialize ( ) . values. map { $0. repository } , [ testRepoSpec] )
434
434
435
435
// Drop a build artifact in data directory.
436
436
let buildArtifact = workspace. dataPath. appending ( component: " test.o " )
@@ -442,7 +442,7 @@ final class WorkspaceTests: XCTestCase {
442
442
443
443
try workspace. clean ( )
444
444
445
- XCTAssertEqual ( workspace. managedDependencies. values. map { $0. repository } , [ testRepoSpec] )
445
+ XCTAssertEqual ( try workspace. managedDependencies. dematerialize ( ) . values. map { $0. repository } , [ testRepoSpec] )
446
446
XCTAssert ( localFileSystem. exists ( workspace. dataPath) )
447
447
// The checkout should be safe.
448
448
XCTAssert ( localFileSystem. exists ( checkoutPath) )
@@ -458,7 +458,7 @@ final class WorkspaceTests: XCTestCase {
458
458
XCTAssertFalse ( localFileSystem. exists ( buildArtifact) )
459
459
XCTAssertFalse ( localFileSystem. exists ( checkoutPath) )
460
460
XCTAssertTrue ( localFileSystem. exists ( workspace. dataPath) )
461
- XCTAssertTrue ( workspace. managedDependencies. values. map { $0} . isEmpty)
461
+ XCTAssertTrue ( try workspace. managedDependencies. dematerialize ( ) . values. map { $0} . isEmpty)
462
462
}
463
463
}
464
464
@@ -488,7 +488,7 @@ final class WorkspaceTests: XCTestCase {
488
488
}
489
489
490
490
func getDependency( _ manifest: Manifest ) -> ManagedDependency {
491
- return workspace. managedDependencies [ manifest. url] !
491
+ return try ! workspace. managedDependencies. dematerialize ( ) [ manifest. url] !
492
492
}
493
493
494
494
// Get the dependency for package A.
@@ -525,7 +525,7 @@ final class WorkspaceTests: XCTestCase {
525
525
do {
526
526
// Reopen workspace and check if we maintained the state.
527
527
let workspace = try Workspace . createWith ( rootPackage: path, manifestLoader: manifestGraph. manifestLoader, delegate: TestWorkspaceDelegate ( ) )
528
- let dependency = workspace. managedDependencies [ RepositorySpecifier ( url: aManifest. url) ] !
528
+ let dependency = try workspace. managedDependencies. dematerialize ( ) [ RepositorySpecifier ( url: aManifest. url) ] !
529
529
XCTAssert ( dependency. state == . edited)
530
530
}
531
531
@@ -558,7 +558,7 @@ final class WorkspaceTests: XCTestCase {
558
558
return XCTFail ( " Expected manifest for package A not found " )
559
559
}
560
560
func getDependency( _ manifest: Manifest ) -> ManagedDependency {
561
- return workspace. managedDependencies [ manifest. url] !
561
+ return try ! workspace. managedDependencies. dematerialize ( ) [ manifest. url] !
562
562
}
563
563
// Get the dependency for package A.
564
564
let dependency = getDependency ( aManifest)
@@ -614,7 +614,7 @@ final class WorkspaceTests: XCTestCase {
614
614
return XCTFail ( " Expected manifest for package A not found " )
615
615
}
616
616
func getDependency( _ manifest: Manifest ) -> ManagedDependency {
617
- return workspace. managedDependencies [ manifest. url] !
617
+ return try ! workspace. managedDependencies. dematerialize ( ) [ manifest. url] !
618
618
}
619
619
let dependency = getDependency ( aManifest)
620
620
// Put the dependency in edit mode.
@@ -1163,7 +1163,7 @@ final class WorkspaceTests: XCTestCase {
1163
1163
XCTAssertTrue ( g. errors. isEmpty)
1164
1164
XCTAssert ( g. lookup ( " A " ) . version == " 1.0.1 " )
1165
1165
// FIXME: We also cloned B because it has a pin.
1166
- XCTAssertNotNil ( workspace. managedDependencies [ manifestGraph. repo ( " B " ) ] )
1166
+ XCTAssertNotNil ( try workspace. managedDependencies. dematerialize ( ) [ manifestGraph. repo ( " B " ) ] )
1167
1167
}
1168
1168
1169
1169
do {
@@ -1175,7 +1175,7 @@ final class WorkspaceTests: XCTestCase {
1175
1175
XCTAssertTrue ( g. errors. isEmpty)
1176
1176
XCTAssert ( g. lookup ( " A " ) . version == " 1.0.1 " )
1177
1177
// This dependency should be removed on updating dependencies because it is not referenced anywhere.
1178
- XCTAssertNil ( workspace. managedDependencies [ manifestGraph. repo ( " B " ) ] )
1178
+ XCTAssertNil ( try workspace. managedDependencies. dematerialize ( ) [ manifestGraph. repo ( " B " ) ] )
1179
1179
}
1180
1180
}
1181
1181
@@ -1483,7 +1483,7 @@ final class WorkspaceTests: XCTestCase {
1483
1483
1484
1484
// Put A in edit mode.
1485
1485
let aManifest = try workspace. loadDependencyManifests ( ) . lookup ( manifest: " A " ) !
1486
- let dependency = workspace. managedDependencies [ RepositorySpecifier ( url: aManifest. url) ] !
1486
+ let dependency = try workspace. managedDependencies. dematerialize ( ) [ RepositorySpecifier ( url: aManifest. url) ] !
1487
1487
try workspace. edit ( dependency: dependency, packageName: aManifest. name, revision: dependency. checkoutState!. revision)
1488
1488
1489
1489
// We should retain the original pin for a package which is in edit mode.
@@ -1674,7 +1674,7 @@ final class WorkspaceTests: XCTestCase {
1674
1674
rootPackage: path, manifestLoader: manifestGraph. manifestLoader, delegate: TestWorkspaceDelegate ( ) )
1675
1675
1676
1676
func getDependency( _ manifest: Manifest ) -> ManagedDependency {
1677
- return workspace. managedDependencies [ manifest. url] !
1677
+ return try ! workspace. managedDependencies. dematerialize ( ) [ manifest. url] !
1678
1678
}
1679
1679
1680
1680
// Load the package graph.
0 commit comments