@@ -15,14 +15,15 @@ import Basics
15
15
import CoreCommands
16
16
import Foundation
17
17
import PackageGraph
18
- import PackageModel
19
- import PackageModelSyntax
20
18
import SwiftParser
19
+ @_spi ( PackageRefactor) import SwiftRefactor
21
20
import SwiftSyntax
22
21
import TSCBasic
23
22
import TSCUtility
24
23
import Workspace
25
24
25
+ import class PackageModel. Manifest
26
+
26
27
extension SwiftPackageCommand {
27
28
struct AddDependency : SwiftCommand {
28
29
package static let configuration = CommandConfiguration (
@@ -98,7 +99,7 @@ extension SwiftPackageCommand {
98
99
// Collect all of the possible version requirements.
99
100
var requirements : [ PackageDependency . SourceControl . Requirement ] = [ ]
100
101
if let exact {
101
- requirements. append ( . exact( exact) )
102
+ requirements. append ( . exact( exact. description ) )
102
103
}
103
104
104
105
if let branch {
@@ -110,11 +111,17 @@ extension SwiftPackageCommand {
110
111
}
111
112
112
113
if let from {
113
- requirements. append ( . range ( . upToNextMajor ( from: from ) ) )
114
+ requirements. append ( . rangeFrom ( from. description ) )
114
115
}
115
116
116
117
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
+ )
118
125
}
119
126
120
127
if requirements. count > 1 {
@@ -130,13 +137,14 @@ extension SwiftPackageCommand {
130
137
}
131
138
132
139
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)
136
144
} else {
137
- requirement = . range ( range )
145
+ firstRequirement
138
146
}
139
- } else {
147
+ default :
140
148
requirement = firstRequirement
141
149
142
150
if self . to != nil {
@@ -147,7 +155,7 @@ extension SwiftPackageCommand {
147
155
try self . applyEdits (
148
156
packagePath: packagePath,
149
157
workspace: workspace,
150
- packageDependency: . sourceControl( name : nil , location: url, requirement: requirement)
158
+ packageDependency: . sourceControl( . init ( location: url, requirement: requirement) )
151
159
)
152
160
}
153
161
@@ -159,15 +167,21 @@ extension SwiftPackageCommand {
159
167
// Collect all of the possible version requirements.
160
168
var requirements : [ PackageDependency . Registry . Requirement ] = [ ]
161
169
if let exact {
162
- requirements. append ( . exact( exact) )
170
+ requirements. append ( . exact( exact. description ) )
163
171
}
164
172
165
173
if let from {
166
- requirements. append ( . range ( . upToNextMajor ( from: from ) ) )
174
+ requirements. append ( . rangeFrom ( from. description ) )
167
175
}
168
176
169
177
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
+ )
171
185
}
172
186
173
187
if requirements. count > 1 {
@@ -183,13 +197,14 @@ extension SwiftPackageCommand {
183
197
}
184
198
185
199
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)
189
204
} else {
190
- requirement = . range ( range )
205
+ firstRequirement
191
206
}
192
- } else {
207
+ default :
193
208
requirement = firstRequirement
194
209
195
210
if self . to != nil {
@@ -200,7 +215,7 @@ extension SwiftPackageCommand {
200
215
try self . applyEdits (
201
216
packagePath: packagePath,
202
217
workspace: workspace,
203
- packageDependency: . registry( id : id, requirement: requirement)
218
+ packageDependency: . registry( . init ( identity : id, requirement: requirement) )
204
219
)
205
220
}
206
221
@@ -212,14 +227,14 @@ extension SwiftPackageCommand {
212
227
try self . applyEdits (
213
228
packagePath: packagePath,
214
229
workspace: workspace,
215
- packageDependency: . fileSystem( name : nil , path: directory)
230
+ packageDependency: . fileSystem( . init ( path: directory) )
216
231
)
217
232
}
218
233
219
234
private func applyEdits(
220
235
packagePath: Basics . AbsolutePath ,
221
236
workspace: Workspace ,
222
- packageDependency: MappablePackageDependency . Kind
237
+ packageDependency: PackageDependency
223
238
) throws {
224
239
// Load the manifest file
225
240
let fileSystem = workspace. fileSystem
@@ -240,9 +255,9 @@ extension SwiftPackageCommand {
240
255
}
241
256
}
242
257
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 )
246
261
)
247
262
248
263
try editResult. applyEdits (
0 commit comments