Skip to content

Commit e922106

Browse files
committed
[Commands] Switch AddDependency to use refactoring action from swift-syntax
1 parent 8037e95 commit e922106

File tree

1 file changed

+40
-25
lines changed

1 file changed

+40
-25
lines changed

Sources/Commands/PackageCommands/AddDependency.swift

Lines changed: 40 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,15 @@ import Basics
1515
import CoreCommands
1616
import Foundation
1717
import PackageGraph
18-
import PackageModel
19-
import PackageModelSyntax
2018
import SwiftParser
19+
@_spi(PackageRefactor) import SwiftRefactor
2120
import SwiftSyntax
2221
import TSCBasic
2322
import TSCUtility
2423
import Workspace
2524

25+
import class PackageModel.Manifest
26+
2627
extension SwiftPackageCommand {
2728
struct AddDependency: SwiftCommand {
2829
package static let configuration = CommandConfiguration(
@@ -98,7 +99,7 @@ extension SwiftPackageCommand {
9899
// Collect all of the possible version requirements.
99100
var requirements: [PackageDependency.SourceControl.Requirement] = []
100101
if let exact {
101-
requirements.append(.exact(exact))
102+
requirements.append(.exact(exact.description))
102103
}
103104

104105
if let branch {
@@ -110,11 +111,17 @@ extension SwiftPackageCommand {
110111
}
111112

112113
if let from {
113-
requirements.append(.range(.upToNextMajor(from: from)))
114+
requirements.append(.rangeFrom(from.description))
114115
}
115116

116117
if let upToNextMinorFrom {
117-
requirements.append(.range(.upToNextMinor(from: upToNextMinorFrom)))
118+
let range: Range<Version> = .upToNextMinor(from: upToNextMinorFrom)
119+
requirements.append(
120+
.range(
121+
lowerBound: range.lowerBound.description,
122+
upperBound: range.upperBound.description
123+
)
124+
)
118125
}
119126

120127
if requirements.count > 1 {
@@ -130,13 +137,14 @@ extension SwiftPackageCommand {
130137
}
131138

132139
let requirement: PackageDependency.SourceControl.Requirement
133-
if case .range(let range) = firstRequirement {
134-
if let to {
135-
requirement = .range(range.lowerBound ..< to)
140+
switch firstRequirement {
141+
case .range(let lowerBound, _), .rangeFrom(let lowerBound):
142+
requirement = if let to {
143+
.range(lowerBound: lowerBound, upperBound: to.description)
136144
} else {
137-
requirement = .range(range)
145+
firstRequirement
138146
}
139-
} else {
147+
default:
140148
requirement = firstRequirement
141149

142150
if self.to != nil {
@@ -147,7 +155,7 @@ extension SwiftPackageCommand {
147155
try self.applyEdits(
148156
packagePath: packagePath,
149157
workspace: workspace,
150-
packageDependency: .sourceControl(name: nil, location: url, requirement: requirement)
158+
packageDependency: .sourceControl(.init(location: url, requirement: requirement))
151159
)
152160
}
153161

@@ -159,15 +167,21 @@ extension SwiftPackageCommand {
159167
// Collect all of the possible version requirements.
160168
var requirements: [PackageDependency.Registry.Requirement] = []
161169
if let exact {
162-
requirements.append(.exact(exact))
170+
requirements.append(.exact(exact.description))
163171
}
164172

165173
if let from {
166-
requirements.append(.range(.upToNextMajor(from: from)))
174+
requirements.append(.rangeFrom(from.description))
167175
}
168176

169177
if let upToNextMinorFrom {
170-
requirements.append(.range(.upToNextMinor(from: upToNextMinorFrom)))
178+
let range: Range<Version> = .upToNextMinor(from: upToNextMinorFrom)
179+
requirements.append(
180+
.range(
181+
lowerBound: range.lowerBound.description,
182+
upperBound: range.upperBound.description
183+
)
184+
)
171185
}
172186

173187
if requirements.count > 1 {
@@ -183,13 +197,14 @@ extension SwiftPackageCommand {
183197
}
184198

185199
let requirement: PackageDependency.Registry.Requirement
186-
if case .range(let range) = firstRequirement {
187-
if let to {
188-
requirement = .range(range.lowerBound ..< to)
200+
switch firstRequirement {
201+
case .range(let lowerBound, _), .rangeFrom(let lowerBound):
202+
requirement = if let to {
203+
.range(lowerBound: lowerBound, upperBound: to.description)
189204
} else {
190-
requirement = .range(range)
205+
firstRequirement
191206
}
192-
} else {
207+
default:
193208
requirement = firstRequirement
194209

195210
if self.to != nil {
@@ -200,7 +215,7 @@ extension SwiftPackageCommand {
200215
try self.applyEdits(
201216
packagePath: packagePath,
202217
workspace: workspace,
203-
packageDependency: .registry(id: id, requirement: requirement)
218+
packageDependency: .registry(.init(identity: id, requirement: requirement))
204219
)
205220
}
206221

@@ -212,14 +227,14 @@ extension SwiftPackageCommand {
212227
try self.applyEdits(
213228
packagePath: packagePath,
214229
workspace: workspace,
215-
packageDependency: .fileSystem(name: nil, path: directory)
230+
packageDependency: .fileSystem(.init(path: directory))
216231
)
217232
}
218233

219234
private func applyEdits(
220235
packagePath: Basics.AbsolutePath,
221236
workspace: Workspace,
222-
packageDependency: MappablePackageDependency.Kind
237+
packageDependency: PackageDependency
223238
) throws {
224239
// Load the manifest file
225240
let fileSystem = workspace.fileSystem
@@ -240,9 +255,9 @@ extension SwiftPackageCommand {
240255
}
241256
}
242257

243-
let editResult = try AddPackageDependency.addPackageDependency(
244-
packageDependency,
245-
to: manifestSyntax
258+
let editResult = try AddPackageDependency.manifestRefactor(
259+
syntax: manifestSyntax,
260+
in: .init(dependency: packageDependency)
246261
)
247262

248263
try editResult.applyEdits(

0 commit comments

Comments
 (0)