Skip to content

Commit 0744766

Browse files
committed
Add missing completion call for errors
1 parent 6d75b86 commit 0744766

File tree

1 file changed

+58
-49
lines changed

1 file changed

+58
-49
lines changed

Sources/PackageLoading/ManifestLoader.swift

Lines changed: 58 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -237,58 +237,67 @@ public final class ManifestLoader: ManifestLoaderProtocol {
237237
}
238238

239239
Task {
240-
let parsedManifest = try await self.loadAndCacheManifest(
241-
at: manifestPath,
242-
toolsVersion: manifestToolsVersion,
243-
packageIdentity: packageIdentity,
244-
packageKind: packageKind,
245-
packageVersion: packageVersion?.version,
246-
identityResolver: identityResolver,
247-
fileSystem: fileSystem,
248-
observabilityScope: observabilityScope,
249-
delegateQueue: delegateQueue
250-
)
251-
252-
// Convert legacy system packages to the current target‐based model.
253-
var products = parsedManifest.products
254-
var targets = parsedManifest.targets
255-
if products.isEmpty, targets.isEmpty,
256-
fileSystem.isFile(manifestPath.parentDirectory.appending(component: moduleMapFilename)) {
257-
try products.append(ProductDescription(
258-
name: parsedManifest.name,
259-
type: .library(.automatic),
260-
targets: [parsedManifest.name])
240+
do {
241+
let parsedManifest = try await self.loadAndCacheManifest(
242+
at: manifestPath,
243+
toolsVersion: manifestToolsVersion,
244+
packageIdentity: packageIdentity,
245+
packageKind: packageKind,
246+
packageVersion: packageVersion?.version,
247+
identityResolver: identityResolver,
248+
fileSystem: fileSystem,
249+
observabilityScope: observabilityScope,
250+
delegateQueue: delegateQueue
261251
)
262-
targets.append(try TargetDescription(
263-
name: parsedManifest.name,
264-
path: "",
265-
type: .system,
266-
packageAccess: false,
252+
253+
// Convert legacy system packages to the current target‐based model.
254+
var products = parsedManifest.products
255+
var targets = parsedManifest.targets
256+
if products.isEmpty, targets.isEmpty,
257+
fileSystem.isFile(manifestPath.parentDirectory.appending(component: moduleMapFilename)) {
258+
try products.append(ProductDescription(
259+
name: parsedManifest.name,
260+
type: .library(.automatic),
261+
targets: [parsedManifest.name])
262+
)
263+
targets.append(try TargetDescription(
264+
name: parsedManifest.name,
265+
path: "",
266+
type: .system,
267+
packageAccess: false,
268+
pkgConfig: parsedManifest.pkgConfig,
269+
providers: parsedManifest.providers
270+
))
271+
}
272+
273+
let manifest = Manifest(
274+
displayName: parsedManifest.name,
275+
path: manifestPath,
276+
packageKind: packageKind,
277+
packageLocation: packageLocation,
278+
defaultLocalization: parsedManifest.defaultLocalization,
279+
platforms: parsedManifest.platforms,
280+
version: packageVersion?.version,
281+
revision: packageVersion?.revision,
282+
toolsVersion: manifestToolsVersion,
267283
pkgConfig: parsedManifest.pkgConfig,
268-
providers: parsedManifest.providers
269-
))
270-
}
284+
providers: parsedManifest.providers,
285+
cLanguageStandard: parsedManifest.cLanguageStandard,
286+
cxxLanguageStandard: parsedManifest.cxxLanguageStandard,
287+
swiftLanguageVersions: parsedManifest.swiftLanguageVersions,
288+
dependencies: parsedManifest.dependencies,
289+
products: products,
290+
targets: targets
291+
)
271292

272-
let manifest = Manifest(
273-
displayName: parsedManifest.name,
274-
path: manifestPath,
275-
packageKind: packageKind,
276-
packageLocation: packageLocation,
277-
defaultLocalization: parsedManifest.defaultLocalization,
278-
platforms: parsedManifest.platforms,
279-
version: packageVersion?.version,
280-
revision: packageVersion?.revision,
281-
toolsVersion: manifestToolsVersion,
282-
pkgConfig: parsedManifest.pkgConfig,
283-
providers: parsedManifest.providers,
284-
cLanguageStandard: parsedManifest.cLanguageStandard,
285-
cxxLanguageStandard: parsedManifest.cxxLanguageStandard,
286-
swiftLanguageVersions: parsedManifest.swiftLanguageVersions,
287-
dependencies: parsedManifest.dependencies,
288-
products: products,
289-
targets: targets
290-
)
291-
completion(.success(manifest))
293+
return callbackQueue.async {
294+
completion(.success(manifest))
295+
}
296+
} catch {
297+
return callbackQueue.async {
298+
completion(.failure(error))
299+
}
300+
}
292301
}
293302
}
294303

0 commit comments

Comments
 (0)