File tree Expand file tree Collapse file tree 3 files changed +62
-9
lines changed
Tests/PackageModelSyntaxTests Expand file tree Collapse file tree 3 files changed +62
-9
lines changed Original file line number Diff line number Diff line change @@ -195,7 +195,8 @@ extension SwiftPackageCommand {
195
195
try SwiftPackageCommand . AddSetting. editSwiftSettings (
196
196
of: target,
197
197
using: swiftCommandState,
198
- [ setting]
198
+ [ setting] ,
199
+ verbose: !self . globalOptions. logging. quiet
199
200
)
200
201
} catch {
201
202
print (
Original file line number Diff line number Diff line change @@ -99,15 +99,23 @@ public enum AddSwiftSetting {
99
99
throw ManifestEditError . cannotFindTargets
100
100
}
101
101
102
- guard let targetCall = FunctionCallExprSyntax . findFirst ( in: targetArray, matching: {
103
- if let nameArgument = $0. findArgument ( labeled: " name " ) ,
104
- let nameLiteral = nameArgument. expression. as ( StringLiteralExprSyntax . self) ,
105
- nameLiteral. representedLiteralValue == target
106
- {
107
- return true
102
+ let targetCall = targetArray
103
+ . elements
104
+ . lazy
105
+ . compactMap {
106
+ $0. expression. as ( FunctionCallExprSyntax . self)
107
+ } . first { targetCall in
108
+ if let nameArgument = targetCall. findArgument ( labeled: " name " ) ,
109
+ let nameLiteral = nameArgument. expression. as ( StringLiteralExprSyntax . self) ,
110
+ nameLiteral. representedLiteralValue == target
111
+ {
112
+ return true
113
+ }
114
+
115
+ return false
108
116
}
109
- return false
110
- } ) else {
117
+
118
+ guard let targetCall else {
111
119
throw ManifestEditError . cannotFindTarget ( targetName: target)
112
120
}
113
121
Original file line number Diff line number Diff line change @@ -873,6 +873,50 @@ class ManifestEditTests: XCTestCase {
873
873
manifest: manifest
874
874
)
875
875
}
876
+
877
+ try assertManifestRefactor ( """
878
+ // swift-tools-version: 5.8
879
+ let package = Package(
880
+ name: " packages " ,
881
+ targets: [
882
+ .target(
883
+ name: " MyTest " ,
884
+ dependencies: [
885
+ .byName(name: " Dependency " )
886
+ ]
887
+ ),
888
+ .target(
889
+ name: " Dependency "
890
+ )
891
+ ]
892
+ )
893
+ """ ,
894
+ expectedManifest: """
895
+ // swift-tools-version: 5.8
896
+ let package = Package(
897
+ name: " packages " ,
898
+ targets: [
899
+ .target(
900
+ name: " MyTest " ,
901
+ dependencies: [
902
+ .byName(name: " Dependency " )
903
+ ]
904
+ ),
905
+ .target(
906
+ name: " Dependency " ,
907
+ swiftSettings: [
908
+ .enableUpcomingFeature( " ExistentialAny " ),
909
+ ]
910
+ )
911
+ ]
912
+ )
913
+ """ ) { manifest in
914
+ try AddSwiftSetting . upcomingFeature (
915
+ to: " Dependency " ,
916
+ name: " ExistentialAny " ,
917
+ manifest: manifest
918
+ )
919
+ }
876
920
}
877
921
}
878
922
/// Assert that applying the moveSingleTargetSources operation to the manifest
You can’t perform that action at this time.
0 commit comments