File tree Expand file tree Collapse file tree 1 file changed +21
-3
lines changed
Sources/PackageMetadata/Manifests/Packages Expand file tree Collapse file tree 1 file changed +21
-3
lines changed Original file line number Diff line number Diff line change @@ -15,6 +15,11 @@ extension PackageNode.Dependency.Resolvable:JSONObjectDecodable
15
15
{
16
16
case local
17
17
case remote
18
+ enum Remote : String
19
+ {
20
+ // appears when dumping tools version 5.1 manifest with 5.9 toolchain
21
+ case urlString
22
+ }
18
23
}
19
24
20
25
case requirement
@@ -84,9 +89,22 @@ extension PackageNode.Dependency.Resolvable:JSONObjectDecodable
84
89
with: \. value) )
85
90
86
91
case . remote:
87
- return . remote( url: try json. decode (
88
- as: JSON . SingleElementRepresentation< String> . self ,
89
- with: \. value) )
92
+ let json : JSON . Array = try . init( json: json. value)
93
+ try json. shape. expect ( count: 1 )
94
+
95
+ let url : String
96
+ do
97
+ {
98
+ url = try json [ 0 ] . decode ( )
99
+ }
100
+ catch
101
+ {
102
+ url = try json [ 0 ] . decode ( using: CodingKey . Location. Remote. self)
103
+ {
104
+ try $0 [ . urlString] . decode ( )
105
+ }
106
+ }
107
+ return . remote( url: url)
90
108
}
91
109
} )
92
110
}
You can’t perform that action at this time.
0 commit comments