Skip to content

Commit 72e28b1

Browse files
committed
Indicate failure if array element can't get decoded
1 parent 01e9390 commit 72e28b1

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

Sources/LanguageServerProtocol/SupportTypes/LSPAny.swift

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,30 +159,42 @@ extension Array: LSPAnyCodable where Element: LSPAnyCodable {
159159
case .dictionary(let dict):
160160
if let value = Element(fromLSPDictionary: dict) {
161161
result.append(value)
162+
} else {
163+
return nil
162164
}
163165
case .array(let value):
164166
if let value = value as? [Element] {
165167
result.append(contentsOf: value)
168+
} else {
169+
return nil
166170
}
167171
case .string(let value):
168172
if let value = value as? Element {
169173
result.append(value)
174+
} else {
175+
return nil
170176
}
171177
case .int(let value):
172178
if let value = value as? Element {
173179
result.append(value)
180+
} else {
181+
return nil
174182
}
175183
case .double(let value):
176184
if let value = value as? Element {
177185
result.append(value)
186+
} else {
187+
return nil
178188
}
179189
case .bool(let value):
180190
if let value = value as? Element {
181191
result.append(value)
192+
} else {
193+
return nil
182194
}
183195
case .null:
184-
// skip array of null
185-
break
196+
// null is not expected for non-optional Element
197+
return nil
186198
}
187199
}
188200
self = result

0 commit comments

Comments
 (0)