@@ -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,23 @@ extension SwiftPackageCommand {
110
111
}
111
112
112
113
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
+ )
114
121
}
115
122
116
123
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
+ )
118
131
}
119
132
120
133
if requirements. count > 1 {
@@ -130,11 +143,11 @@ extension SwiftPackageCommand {
130
143
}
131
144
132
145
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 )
136
149
} else {
137
- requirement = . range ( range )
150
+ firstRequirement
138
151
}
139
152
} else {
140
153
requirement = firstRequirement
@@ -147,7 +160,7 @@ extension SwiftPackageCommand {
147
160
try self . applyEdits (
148
161
packagePath: packagePath,
149
162
workspace: workspace,
150
- packageDependency: . sourceControl( name : nil , location: url, requirement: requirement)
163
+ packageDependency: . sourceControl( . init ( location: url, requirement: requirement) )
151
164
)
152
165
}
153
166
@@ -159,15 +172,27 @@ extension SwiftPackageCommand {
159
172
// Collect all of the possible version requirements.
160
173
var requirements : [ PackageDependency . Registry . Requirement ] = [ ]
161
174
if let exact {
162
- requirements. append ( . exact( exact) )
175
+ requirements. append ( . exact( exact. description ) )
163
176
}
164
177
165
178
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
+ )
167
186
}
168
187
169
188
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
+ )
171
196
}
172
197
173
198
if requirements. count > 1 {
@@ -183,11 +208,11 @@ extension SwiftPackageCommand {
183
208
}
184
209
185
210
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 )
189
214
} else {
190
- requirement = . range ( range )
215
+ firstRequirement
191
216
}
192
217
} else {
193
218
requirement = firstRequirement
@@ -200,7 +225,7 @@ extension SwiftPackageCommand {
200
225
try self . applyEdits (
201
226
packagePath: packagePath,
202
227
workspace: workspace,
203
- packageDependency: . registry( id : id, requirement: requirement)
228
+ packageDependency: . registry( . init ( identity : id, requirement: requirement) )
204
229
)
205
230
}
206
231
@@ -212,14 +237,14 @@ extension SwiftPackageCommand {
212
237
try self . applyEdits (
213
238
packagePath: packagePath,
214
239
workspace: workspace,
215
- packageDependency: . fileSystem( name : nil , path: directory)
240
+ packageDependency: . fileSystem( . init ( path: directory) )
216
241
)
217
242
}
218
243
219
244
private func applyEdits(
220
245
packagePath: Basics . AbsolutePath ,
221
246
workspace: Workspace ,
222
- packageDependency: MappablePackageDependency . Kind
247
+ packageDependency: PackageDependency
223
248
) throws {
224
249
// Load the manifest file
225
250
let fileSystem = workspace. fileSystem
@@ -240,9 +265,9 @@ extension SwiftPackageCommand {
240
265
}
241
266
}
242
267
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 )
246
271
)
247
272
248
273
try editResult. applyEdits (
0 commit comments