@@ -7,13 +7,41 @@ struct URL
7
7
}
8
8
9
9
extension String {
10
- init ( contentsOf: URL ) throws {
10
+ struct Encoding {
11
+ var rawValue : UInt
12
+
13
+ init ( rawValue: UInt ) { self . rawValue = rawValue }
14
+
15
+ static let ascii = Encoding ( rawValue: 1 )
16
+ }
17
+
18
+ init ( contentsOf url: URL ) throws {
11
19
var data = " "
12
20
13
21
// ...
14
22
15
23
self . init ( data)
16
24
}
25
+
26
+ init ( contentsOf url: URL , encoding enc: String . Encoding ) throws {
27
+ self . init ( " " )
28
+ }
29
+
30
+ init ( contentsOf url: URL , usedEncoding: inout String . Encoding ) throws {
31
+ self . init ( " " )
32
+ }
33
+
34
+ init ( contentsOfFile path: String ) throws {
35
+ self . init ( " " )
36
+ }
37
+
38
+ init ( contentsOfFile path: String , encoding enc: String . Encoding ) throws {
39
+ self . init ( " " )
40
+ }
41
+
42
+ init ( contentsOfFile path: String , usedEncoding: inout String . Encoding ) throws {
43
+ self . init ( " " )
44
+ }
17
45
}
18
46
19
47
// --- tests ---
@@ -23,8 +51,17 @@ func testStrings() {
23
51
{
24
52
let string1 = String ( )
25
53
let string2 = String ( repeating: " abc " , count: 10 )
54
+
26
55
let url = URL ( string: " http://example.com/ " )
27
56
let string3 = try String ( contentsOf: url!) // SOURCE
57
+ let string4 = try String ( contentsOf: url!, encoding: String . Encoding. ascii) // SOURCE [NOT DETECTED]
58
+ var encoding = String . Encoding. ascii
59
+ let string5 = try String ( contentsOf: url!, usedEncoding: & encoding) // SOURCE [NOT DETECTED]
60
+
61
+ let path = " file.txt "
62
+ let string6 = try String ( contentsOfFile: path) // SOURCE [NOT DETECTED]
63
+ let string7 = try String ( contentsOfFile: path, encoding: String . Encoding. ascii) // SOURCE [NOT DETECTED]
64
+ let string8 = try String ( contentsOfFile: path, usedEncoding: & encoding) // SOURCE [NOT DETECTED]
28
65
} catch {
29
66
// ...
30
67
}
0 commit comments