@@ -7,13 +7,41 @@ struct URL
77}
88
99extension 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 {
1119 var data = " "
1220
1321 // ...
1422
1523 self . init ( data)
1624 }
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+ }
1745}
1846
1947// --- tests ---
@@ -23,8 +51,17 @@ func testStrings() {
2351 {
2452 let string1 = String ( )
2553 let string2 = String ( repeating: " abc " , count: 10 )
54+
2655 let url = URL ( string: " http://example.com/ " )
2756 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]
2865 } catch {
2966 // ...
3067 }
0 commit comments