@@ -10,12 +10,12 @@ var tests = TestSuite("reference bindings")
10
10
11
11
var global : String = " globalName "
12
12
tests. test ( " global access " ) {
13
- expectEqual ( global, " globalName " )
14
- do {
15
- inout x = global
16
- expectEqual ( x, " globalName " )
17
- }
18
- expectEqual ( global, " globalName " )
13
+ expectEqual ( global, " globalName " )
14
+ do {
15
+ inout x = global
16
+ expectEqual ( x, " globalName " )
17
+ }
18
+ expectEqual ( global, " globalName " )
19
19
}
20
20
21
21
tests. test ( " multiple global access exclusivity error " )
@@ -25,63 +25,84 @@ tests.test("multiple global access exclusivity error")
25
25
26
26
@inline ( never)
27
27
func test( _ x: inout String ) {
28
- inout x = global
28
+ inout x = global
29
29
}
30
30
test ( & global)
31
- }
31
+ }
32
32
33
33
tests. test ( " Class Instance Field Access " ) {
34
- class Klass {
35
- var name : String = " klassName "
36
- }
34
+ class Klass {
35
+ var name : String = " klassName "
36
+ }
37
37
38
- let k = Klass ( )
39
- expectEqual ( k. name, " klassName " )
40
- do {
41
- inout x = k. name
42
- expectEqual ( x, " klassName " )
43
- }
44
- expectEqual ( k. name, " klassName " )
38
+ let k = Klass ( )
39
+ expectEqual ( k. name, " klassName " )
40
+ do {
41
+ inout x = k. name
42
+ expectEqual ( x, " klassName " )
43
+ }
44
+ expectEqual ( k. name, " klassName " )
45
45
}
46
46
47
47
tests. test ( " Var Access " ) {
48
- var varName = " varName "
49
- do {
50
- inout x = varName
51
- expectEqual ( x, " varName " )
52
- }
53
- expectEqual ( varName, " varName " )
48
+ var varName = " varName "
49
+ do {
50
+ inout x = varName
51
+ expectEqual ( x, " varName " )
52
+ }
53
+ expectEqual ( varName, " varName " )
54
54
55
- struct S {
56
- var s1 = " field1 "
57
- var s2 = " field2 "
58
- }
55
+ struct S {
56
+ var s1 = " field1 "
57
+ var s2 = " field2 "
58
+ }
59
59
60
- var s = S ( )
61
- expectEqual ( s. s1, " field1 " )
62
- expectEqual ( s. s2, " field2 " )
63
- do {
64
- inout x = s. s1
65
- expectEqual ( x, " field1 " )
66
- }
67
- expectEqual ( s. s1, " field1 " )
68
- expectEqual ( s. s2, " field2 " )
69
- do {
70
- inout x2 = s. s2
71
- expectEqual ( x2, " field2 " )
72
- }
73
- expectEqual ( s. s1, " field1 " )
74
- expectEqual ( s. s2, " field2 " )
60
+ var s = S ( )
61
+ expectEqual ( s. s1, " field1 " )
62
+ expectEqual ( s. s2, " field2 " )
63
+ do {
64
+ inout x = s. s1
65
+ expectEqual ( x, " field1 " )
66
+ }
67
+ expectEqual ( s. s1, " field1 " )
68
+ expectEqual ( s. s2, " field2 " )
69
+ do {
70
+ inout x2 = s. s2
71
+ expectEqual ( x2, " field2 " )
72
+ }
73
+ expectEqual ( s. s1, " field1 " )
74
+ expectEqual ( s. s2, " field2 " )
75
75
}
76
76
77
77
78
78
tests. test ( " InOut Access " ) {
79
- var varName = " varName "
80
- func inoutTest( _ inputX: inout String ) {
81
- expectEqual ( inputX, " varName " )
82
- inout x = inputX
83
- expectEqual ( x, " varName " )
79
+ var varName = " varName "
80
+ func inoutTest( _ inputX: inout String ) {
81
+ expectEqual ( inputX, " varName " )
82
+ inout x = inputX
83
+ expectEqual ( x, " varName " )
84
+ }
85
+ inoutTest ( & varName)
86
+ expectEqual ( varName, " varName " )
87
+ }
88
+
89
+ // We use to hit a verifier error here.
90
+ tests. test ( " Class Use " ) {
91
+ class Klass {
92
+ var value : String = " varName "
93
+ }
94
+
95
+ struct S {
96
+ var k = Klass ( )
97
+ var i = 5
98
+ mutating func x( ) {
99
+ print ( " \( i) " )
84
100
}
85
- inoutTest ( & varName)
86
- expectEqual ( varName, " varName " )
101
+ }
102
+
103
+ var s = S ( )
104
+ do {
105
+ inout x = s. k
106
+ expectEqual ( x. value, " varName " )
107
+ }
87
108
}
0 commit comments