Skip to content

Commit ce00196

Browse files
committed
[Commands] Switch AddDependency to use refactoring action from swift-syntax
1 parent 8f5bf07 commit ce00196

File tree

1 file changed

+48
-23
lines changed

1 file changed

+48
-23
lines changed

Sources/Commands/PackageCommands/AddDependency.swift

Lines changed: 48 additions & 23 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,23 @@ extension SwiftPackageCommand {
110111
}
111112

112113
if let from {
113-
requirements.append(.range(.upToNextMajor(from: from)))
114+
let range: Range<Version> = .upToNextMajor(from: from)
115+
requirements.append(
116+
.range(
117+
lowerBound: range.lowerBound.description,
118+
upperBound: range.upperBound.description
119+
)
120+
)
114121
}
115122

116123
if let upToNextMinorFrom {
117-
requirements.append(.range(.upToNextMinor(from: upToNextMinorFrom)))
124+
let range: Range<Version> = .upToNextMinor(from: upToNextMinorFrom)
125+
requirements.append(
126+
.range(
127+
lowerBound: range.lowerBound.description,
128+
upperBound: range.upperBound.description
129+
)
130+
)
118131
}
119132

120133
if requirements.count > 1 {
@@ -130,11 +143,11 @@ extension SwiftPackageCommand {
130143
}
131144

132145
let requirement: PackageDependency.SourceControl.Requirement
133-
if case .range(let range) = firstRequirement {
134-
if let to {
135-
requirement = .range(range.lowerBound ..< to)
146+
if case .range(let lowerBound, _) = firstRequirement {
147+
requirement = if let to {
148+
.range(lowerBound: lowerBound, upperBound: to.description)
136149
} else {
137-
requirement = .range(range)
150+
firstRequirement
138151
}
139152
} else {
140153
requirement = firstRequirement
@@ -147,7 +160,7 @@ extension SwiftPackageCommand {
147160
try self.applyEdits(
148161
packagePath: packagePath,
149162
workspace: workspace,
150-
packageDependency: .sourceControl(name: nil, location: url, requirement: requirement)
163+
packageDependency: .sourceControl(.init(location: url, requirement: requirement))
151164
)
152165
}
153166

@@ -159,15 +172,27 @@ extension SwiftPackageCommand {
159172
// Collect all of the possible version requirements.
160173
var requirements: [PackageDependency.Registry.Requirement] = []
161174
if let exact {
162-
requirements.append(.exact(exact))
175+
requirements.append(.exact(exact.description))
163176
}
164177

165178
if let from {
166-
requirements.append(.range(.upToNextMajor(from: from)))
179+
let range: Range<Version> = .upToNextMajor(from: from)
180+
requirements.append(
181+
.range(
182+
lowerBound: range.lowerBound.description,
183+
upperBound: range.upperBound.description
184+
)
185+
)
167186
}
168187

169188
if let upToNextMinorFrom {
170-
requirements.append(.range(.upToNextMinor(from: upToNextMinorFrom)))
189+
let range: Range<Version> = .upToNextMinor(from: upToNextMinorFrom)
190+
requirements.append(
191+
.range(
192+
lowerBound: range.lowerBound.description,
193+
upperBound: range.upperBound.description
194+
)
195+
)
171196
}
172197

173198
if requirements.count > 1 {
@@ -183,11 +208,11 @@ extension SwiftPackageCommand {
183208
}
184209

185210
let requirement: PackageDependency.Registry.Requirement
186-
if case .range(let range) = firstRequirement {
187-
if let to {
188-
requirement = .range(range.lowerBound ..< to)
211+
if case .range(let lowerBound, _) = firstRequirement {
212+
requirement = if let to {
213+
.range(lowerBound: lowerBound, upperBound: to.description)
189214
} else {
190-
requirement = .range(range)
215+
firstRequirement
191216
}
192217
} else {
193218
requirement = firstRequirement
@@ -200,7 +225,7 @@ extension SwiftPackageCommand {
200225
try self.applyEdits(
201226
packagePath: packagePath,
202227
workspace: workspace,
203-
packageDependency: .registry(id: id, requirement: requirement)
228+
packageDependency: .registry(.init(identity: id, requirement: requirement))
204229
)
205230
}
206231

@@ -212,14 +237,14 @@ extension SwiftPackageCommand {
212237
try self.applyEdits(
213238
packagePath: packagePath,
214239
workspace: workspace,
215-
packageDependency: .fileSystem(name: nil, path: directory)
240+
packageDependency: .fileSystem(.init(path: directory))
216241
)
217242
}
218243

219244
private func applyEdits(
220245
packagePath: Basics.AbsolutePath,
221246
workspace: Workspace,
222-
packageDependency: MappablePackageDependency.Kind
247+
packageDependency: PackageDependency
223248
) throws {
224249
// Load the manifest file
225250
let fileSystem = workspace.fileSystem
@@ -240,9 +265,9 @@ extension SwiftPackageCommand {
240265
}
241266
}
242267

243-
let editResult = try AddPackageDependency.addPackageDependency(
244-
packageDependency,
245-
to: manifestSyntax
268+
let editResult = try AddPackageDependency.manifestRefactor(
269+
syntax: manifestSyntax,
270+
in: .init(dependency: packageDependency)
246271
)
247272

248273
try editResult.applyEdits(

0 commit comments

Comments
 (0)