@@ -49,8 +49,8 @@ final class ContainerProvider {
4949 }
5050
5151 func removeCachedContainers( for packages: [ PackageReference ] ) {
52- packages. forEach {
53- self . containersCache [ $0 ] = nil
52+ for package in packages {
53+ self . containersCache [ package ] = nil
5454 }
5555 }
5656
@@ -65,25 +65,13 @@ final class ContainerProvider {
6565 /// Get the container for the given identifier, loading it if necessary.
6666 func getContainer(
6767 for package : PackageReference ,
68- availableLibraries: [ LibraryMetadata ] ,
6968 completion: @escaping ( Result < PubGrubPackageContainer , Error > ) -> Void
7069 ) {
7170 // Return the cached container, if available.
7271 if let container = self . containersCache [ comparingLocation: package ] {
7372 return completion ( . success( container) )
7473 }
7574
76- if let metadata = package . matchingPrebuiltLibrary ( in: availableLibraries) {
77- do {
78- let prebuiltPackageContainer = try PrebuiltPackageContainer ( metadata: metadata)
79- let pubGrubContainer = PubGrubPackageContainer ( underlying: prebuiltPackageContainer, pins: self . pins)
80- self . containersCache [ package ] = pubGrubContainer
81- return completion ( . success( pubGrubContainer) )
82- } catch {
83- return completion ( . failure( error) )
84- }
85- }
86-
8775 if let prefetchSync = self . prefetches [ package ] {
8876 // If this container is already being prefetched, wait for that to complete
8977 prefetchSync. notify ( queue: . sharedConcurrent) {
@@ -93,15 +81,18 @@ final class ContainerProvider {
9381 } else {
9482 // if prefetch failed, remove from list of prefetches and try again
9583 self . prefetches [ package ] = nil
96- return self . getContainer ( for: package , availableLibraries : availableLibraries , completion: completion)
84+ return self . getContainer ( for: package , completion: completion)
9785 }
9886 }
9987 } else {
10088 // Otherwise, fetch the container from the provider
10189 self . underlying. getContainer (
10290 for: package ,
10391 updateStrategy: self . skipUpdate ? . never : . always, // TODO: make this more elaborate
104- observabilityScope: self . observabilityScope. makeChildScope ( description: " getting package container " , metadata: package . diagnosticsMetadata) ,
92+ observabilityScope: self . observabilityScope. makeChildScope (
93+ description: " getting package container " ,
94+ metadata: package . diagnosticsMetadata
95+ ) ,
10596 on: . sharedConcurrent
10697 ) { result in
10798 let result = result. tryMap { container -> PubGrubPackageContainer in
@@ -118,7 +109,7 @@ final class ContainerProvider {
118109 /// Starts prefetching the given containers.
119110 func prefetch( containers identifiers: [ PackageReference ] , availableLibraries: [ LibraryMetadata ] ) {
120111 let filteredIdentifiers = identifiers. filter {
121- return $0. matchingPrebuiltLibrary ( in: availableLibraries) == nil
112+ $0. matchingPrebuiltLibrary ( in: availableLibraries) == nil
122113 }
123114 // Process each container.
124115 for identifier in filteredIdentifiers {
@@ -133,13 +124,19 @@ final class ContainerProvider {
133124 self . underlying. getContainer (
134125 for: identifier,
135126 updateStrategy: self . skipUpdate ? . never : . always, // TODO: make this more elaborate
136- observabilityScope: self . observabilityScope. makeChildScope ( description: " prefetching package container " , metadata: identifier. diagnosticsMetadata) ,
127+ observabilityScope: self . observabilityScope. makeChildScope (
128+ description: " prefetching package container " ,
129+ metadata: identifier. diagnosticsMetadata
130+ ) ,
137131 on: . sharedConcurrent
138132 ) { result in
139133 defer { self . prefetches [ identifier] ? . leave ( ) }
140134 // only cache positive results
141135 if case . success( let container) = result {
142- self . containersCache [ identifier] = PubGrubPackageContainer ( underlying: container, pins: self . pins)
136+ self . containersCache [ identifier] = PubGrubPackageContainer (
137+ underlying: container,
138+ pins: self . pins
139+ )
143140 }
144141 }
145142 }
0 commit comments