Skip to content

Commit 66ed42e

Browse files
Upgrade SwiftLint
To support Swift 6 syntax such as typed throws. The changes are to address the violation of the optional_data_string_conversion rule.
1 parent d01a78f commit 66ed42e

File tree

3 files changed

+19
-3
lines changed

3 files changed

+19
-3
lines changed

Mintfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
realm/SwiftLint@0.55.1
1+
realm/SwiftLint@0.57.0
22
nicklockwood/[email protected]

Sources/BuildTool/BuildTool.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ struct GenerateMatrices: ParsableCommand {
8383
]
8484

8585
// I’m assuming the JSONSerialization output has no newlines
86-
let keyValue = try "matrix=\(String(decoding: JSONSerialization.data(withJSONObject: matrix), as: UTF8.self))"
86+
let keyValue = try "matrix=\(String(data: JSONSerialization.data(withJSONObject: matrix), encoding: .utf8))"
8787
fputs("\(keyValue)\n", stderr)
8888
print(keyValue)
8989
}
@@ -173,6 +173,6 @@ struct Lint: AsyncParsableCommand {
173173

174174
private func loadUTF8StringFromFile(at path: String) async throws -> String {
175175
let (data, _) = try await URLSession.shared.data(from: .init(filePath: path))
176-
return String(decoding: data, as: UTF8.self)
176+
return try String(data: data, encoding: .utf8)
177177
}
178178
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import Foundation
2+
3+
extension String {
4+
enum DecodingError: Swift.Error {
5+
case decodingFailed
6+
}
7+
8+
/// Like `init(data:encoding:)`, but indicates decoding failure by throwing an error instead of returning an optional.
9+
init(data: Data, encoding: String.Encoding) throws {
10+
guard let decoded = String(data: data, encoding: encoding) else {
11+
throw DecodingError.decodingFailed
12+
}
13+
14+
self = decoded
15+
}
16+
}

0 commit comments

Comments
 (0)