Skip to content

Commit 11ae0a7

Browse files
authored
Merge pull request #2522 from hartbit/manifest-diagnostics
Convert some of the manifest loading diagnostics to the new system
2 parents d539e58 + c07ee26 commit 11ae0a7

File tree

1 file changed

+40
-88
lines changed

1 file changed

+40
-88
lines changed

Sources/Workspace/Diagnostics.swift

Lines changed: 40 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -29,35 +29,6 @@ public struct ManifestParseDiagnostic: DiagnosticData {
2929
}
3030
}
3131

32-
public struct ManifestEmptyProductTargets: DiagnosticData {
33-
public let productName: String
34-
35-
public var description: String {
36-
"manifest parse error: product '\(productName)' doesn't reference any targets\n"
37-
}
38-
}
39-
40-
public struct ManifestProductTargetNotFound: DiagnosticData {
41-
public let productName: String
42-
public let targetName: String
43-
44-
public var description: String {
45-
"manifest parse error: target '\(targetName)' referenced in product '\(productName)' could not be found\n"
46-
}
47-
}
48-
49-
public struct ManifestInvalidBinaryProductType: DiagnosticData {
50-
public let productName: String
51-
52-
public var description: String {
53-
"""
54-
manifest parse error: invalid type for binary product '\(productName)'; a binary product can only be a library \
55-
with no defined type
56-
57-
"""
58-
}
59-
}
60-
6132
public struct ManifestDuplicateDependencyURLsDiagnostic: DiagnosticData {
6233
public let duplicates: [[PackageDependencyDescription]]
6334

@@ -78,15 +49,6 @@ public struct ManifestDuplicateDependencyURLsDiagnostic: DiagnosticData {
7849
}
7950
}
8051

81-
public struct ManifestTargetDependencyUnknownPackageDiagnostic: DiagnosticData {
82-
public let targetName: String
83-
public let packageName: String
84-
85-
public var description: String {
86-
"manifest parse error: target '\(targetName)' depends on an unknown package '\(packageName)'\n"
87-
}
88-
}
89-
9052
public struct ManifestDuplicateDependencyNamesDiagnostic: DiagnosticData {
9153
public let duplicates: [[PackageDependencyDescription]]
9254

@@ -108,48 +70,6 @@ public struct ManifestDuplicateDependencyNamesDiagnostic: DiagnosticData {
10870
}
10971
}
11072

111-
public struct ManifestDuplicateTargetNamesDiagnostic: DiagnosticData {
112-
public let duplicates: [String]
113-
114-
public var description: String {
115-
"manifest parse error: duplicate target names: \(duplicates.joined(separator: ", "))\n"
116-
}
117-
}
118-
119-
public struct ManifestInvalidBinaryLocationDiagnostic: DiagnosticData {
120-
public let targetName: String
121-
122-
public var description: String {
123-
"manifest parse error: invalid location of binary target '\(targetName)'\n"
124-
}
125-
}
126-
127-
public struct ManifestInvalidBinaryURLSchemeDiagnostic: DiagnosticData {
128-
public let targetName: String
129-
public let validSchemes: [String]
130-
131-
public var description: String {
132-
"""
133-
manifest parse error: invalid URL scheme for binary target '\(targetName)' (valid schemes are \
134-
\(validSchemes.joined(separator: ", "))
135-
136-
"""
137-
}
138-
}
139-
140-
public struct ManifestInvalidBinaryLocationExtensionDiagnostic: DiagnosticData {
141-
public let targetName: String
142-
public let validExtensions: [String]
143-
144-
public var description: String {
145-
"""
146-
manifest parse error: unsupported extension of binary target '\(targetName)' (valid extensions are \
147-
\(validExtensions.joined(separator: ", ")))
148-
149-
"""
150-
}
151-
}
152-
15373
extension ManifestParseError: DiagnosticDataConvertible {
15474
public var diagnosticData: DiagnosticData {
15575
switch self {
@@ -158,25 +78,25 @@ extension ManifestParseError: DiagnosticDataConvertible {
15878
case .runtimeManifestErrors(let errors):
15979
return ManifestParseDiagnostic(errors, diagnosticFile: nil)
16080
case .emptyProductTargets(let productName):
161-
return ManifestEmptyProductTargets(productName: productName)
81+
return Diagnostic.Message.emptyProductTargets(productName: productName).data
16282
case .productTargetNotFound(let productName, let targetName):
163-
return ManifestProductTargetNotFound(productName: productName, targetName: targetName)
83+
return Diagnostic.Message.productTargetNotFound(productName: productName, targetName: targetName).data
16484
case .invalidBinaryProductType(let productName):
165-
return ManifestInvalidBinaryProductType(productName: productName)
85+
return Diagnostic.Message.invalidBinaryProductType(productName: productName).data
16686
case .duplicateDependencyURLs(let duplicates):
16787
return ManifestDuplicateDependencyURLsDiagnostic(duplicates: duplicates)
16888
case .duplicateTargetNames(let targetNames):
169-
return ManifestDuplicateTargetNamesDiagnostic(duplicates: targetNames)
89+
return Diagnostic.Message.duplicateTargetNames(duplicates: targetNames).data
17090
case .unknownTargetDependencyPackage(let targetName, let packageName):
171-
return ManifestTargetDependencyUnknownPackageDiagnostic(targetName: targetName, packageName: packageName)
91+
return Diagnostic.Message.unknownTargetDependencyPackage(targetName: targetName, packageName: packageName).data
17292
case .duplicateDependencyNames(let duplicates):
17393
return ManifestDuplicateDependencyNamesDiagnostic(duplicates: duplicates)
17494
case .invalidBinaryLocation(let targetName):
175-
return ManifestInvalidBinaryLocationDiagnostic(targetName: targetName)
95+
return Diagnostic.Message.invalidBinaryLocation(targetName: targetName).data
17696
case .invalidBinaryURLScheme(let targetName, let validSchemes):
177-
return ManifestInvalidBinaryURLSchemeDiagnostic(targetName: targetName, validSchemes: validSchemes)
97+
return Diagnostic.Message.invalidBinaryURLScheme(targetName: targetName, validSchemes: validSchemes).data
17898
case .invalidBinaryLocationExtension(let targetName, let validExtensions):
179-
return ManifestInvalidBinaryLocationExtensionDiagnostic(targetName: targetName, validExtensions: validExtensions)
99+
return Diagnostic.Message.invalidBinaryLocationExtension(targetName: targetName, validExtensions: validExtensions).data
180100
}
181101
}
182102
}
@@ -339,4 +259,36 @@ extension Diagnostic.Message {
339259
static func artifactFailedExtraction(targetName: String, reason: String) -> Diagnostic.Message {
340260
.error("artifact of binary target '\(targetName)' failed extraction: \(reason)")
341261
}
262+
263+
static func productTargetNotFound(productName: String, targetName: String) -> Diagnostic.Message {
264+
.error("manifest parse error: target '\(targetName)' referenced in product '\(productName)' could not be found")
265+
}
266+
267+
static func emptyProductTargets(productName: String) -> Diagnostic.Message {
268+
.error("manifest parse error: product '\(productName)' doesn't reference any targets")
269+
}
270+
271+
static func invalidBinaryProductType(productName: String) -> Diagnostic.Message {
272+
.error("manifest parse error: invalid type for binary product '\(productName)'; a binary product can only be a library with no defined type")
273+
}
274+
275+
static func duplicateTargetNames(duplicates: [String]) -> Diagnostic.Message {
276+
.error("manifest parse error: duplicate target names: \(duplicates.joined(separator: ", "))")
277+
}
278+
279+
static func unknownTargetDependencyPackage(targetName: String, packageName: String) -> Diagnostic.Message {
280+
.error("manifest parse error: target '\(targetName)' depends on an unknown package '\(packageName)'")
281+
}
282+
283+
static func invalidBinaryLocation(targetName: String) -> Diagnostic.Message {
284+
.error("manifest parse error: invalid location of binary target '\(targetName)'")
285+
}
286+
287+
static func invalidBinaryURLScheme(targetName: String, validSchemes: [String]) -> Diagnostic.Message {
288+
.error("manifest parse error: invalid URL scheme for binary target '\(targetName)' (valid schemes are \(validSchemes.joined(separator: ", "))")
289+
}
290+
291+
static func invalidBinaryLocationExtension(targetName: String, validExtensions: [String]) -> Diagnostic.Message {
292+
.error("manifest parse error: unsupported extension of binary target '\(targetName)' (valid extensions are \(validExtensions.joined(separator: ", "))")
293+
}
342294
}

0 commit comments

Comments
 (0)