Skip to content

Commit 3e8328e

Browse files
authored
Clean up product dependency API (#7298)
As part of https://github.com/apple/swift-evolution/blob/main/proposals/0339-module-aliasing-for-disambiguation.md, a new API with an optional `package` parameter was accidentally added. We can safely remove this API since #4203 added validation that prohibited the use of product declarations without a package anyway. As part of this, I also cleaned up that diagnostic since "unknown package 'unknown package name'" looks quite ugly. rdar://114303935 fixes #7158
1 parent 6a7db24 commit 3e8328e

File tree

2 files changed

+9
-15
lines changed

2 files changed

+9
-15
lines changed

Sources/PackageDescription/Target.swift

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1263,18 +1263,6 @@ extension Target.Dependency {
12631263
return .productItem(name: name, package: package, moduleAliases: nil, condition: nil)
12641264
}
12651265

1266-
/// Creates a dependency on a product from a dependent package.
1267-
///
1268-
/// - Parameters:
1269-
/// - name: The name of the product.
1270-
/// - moduleAliases: The module aliases for targets in the product.
1271-
/// - package: The name of the package.
1272-
/// - Returns: A `Target.Dependency` instance.
1273-
@available(_PackageDescription, introduced: 5.7)
1274-
public static func product(name: String, package: String? = nil, moduleAliases: [String: String]? = nil) -> Target.Dependency {
1275-
return .productItem(name: name, package: package, moduleAliases: moduleAliases, condition: nil)
1276-
}
1277-
12781266
/// Creates a dependency that resolves to either a target or a product with the specified name.
12791267
///
12801268
/// - Parameter name: The name of the dependency, either a target or a product.

Sources/PackageLoading/ManifestLoader+Validation.swift

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ public struct ManifestValidator {
191191
case .product(_, let packageName, _, _):
192192
if self.manifest.packageDependency(referencedBy: targetDependency) == nil {
193193
diagnostics.append(.unknownTargetPackageDependency(
194-
packageName: packageName ?? "unknown package name",
194+
packageName: packageName,
195195
targetName: target.name,
196196
validPackages: self.manifest.dependencies
197197
))
@@ -262,8 +262,14 @@ extension Basics.Diagnostic {
262262
.error("unknown dependency '\(dependency)' in target '\(targetName)'; valid dependencies are: \(validDependencies.map{ "\($0.descriptionForValidation)" }.joined(separator: ", "))")
263263
}
264264

265-
static func unknownTargetPackageDependency(packageName: String, targetName: String, validPackages: [PackageDependency]) -> Self {
266-
.error("unknown package '\(packageName)' in dependencies of target '\(targetName)'; valid packages are: \(validPackages.map{ "\($0.descriptionForValidation)" }.joined(separator: ", "))")
265+
static func unknownTargetPackageDependency(packageName: String?, targetName: String, validPackages: [PackageDependency]) -> Self {
266+
let messagePrefix: String
267+
if let packageName {
268+
messagePrefix = "unknown package '\(packageName)'"
269+
} else {
270+
messagePrefix = "undeclared package"
271+
}
272+
return .error("\(messagePrefix) in dependencies of target '\(targetName)'; valid packages are: \(validPackages.map{ "\($0.descriptionForValidation)" }.joined(separator: ", "))")
267273
}
268274

269275
static func invalidBinaryLocation(targetName: String) -> Self {

0 commit comments

Comments
 (0)