@@ -9,41 +9,38 @@ final class ThreadLocalTests: XCTestCase {
9
9
10
10
func testLeak( ) throws {
11
11
struct Check {
12
- @ThreadLocal
13
- static var value : MyHeapObject ?
14
- @ThreadLocal ( boxing: ( ) )
15
- static var value2 : MyStruct ?
12
+ static let value = ThreadLocal < MyHeapObject > ( )
13
+ static let value2 = ThreadLocal < MyStruct > ( boxing: ( ) )
16
14
}
17
15
weak var weakObject : MyHeapObject ?
18
16
do {
19
17
let object = MyHeapObject ( )
20
18
weakObject = object
21
- Check . value = object
22
- XCTAssertNotNil ( Check . value)
23
- XCTAssertTrue ( Check . value === object)
24
- Check . value = nil
19
+ Check . value. wrappedValue = object
20
+ XCTAssertNotNil ( Check . value. wrappedValue )
21
+ XCTAssertTrue ( Check . value. wrappedValue === object)
22
+ Check . value. wrappedValue = nil
25
23
}
26
24
XCTAssertNil ( weakObject)
27
25
28
26
weak var weakObject2 : MyHeapObject ?
29
27
do {
30
28
let object = MyHeapObject ( )
31
29
weakObject2 = object
32
- Check . value2 = MyStruct ( object: object)
33
- XCTAssertNotNil ( Check . value2)
34
- XCTAssertTrue ( Check . value2!. object === object)
35
- Check . value2 = nil
30
+ Check . value2. wrappedValue = MyStruct ( object: object)
31
+ XCTAssertNotNil ( Check . value2. wrappedValue )
32
+ XCTAssertTrue ( Check . value2. wrappedValue !. object === object)
33
+ Check . value2. wrappedValue = nil
36
34
}
37
35
XCTAssertNil ( weakObject2)
38
36
}
39
37
40
38
func testLazyThreadLocal( ) throws {
41
39
struct Check {
42
- @LazyThreadLocal ( initialize: { MyHeapObject ( ) } )
43
- static var value : MyHeapObject
40
+ static let value = LazyThreadLocal ( initialize: { MyHeapObject ( ) } )
44
41
}
45
- let object1 = Check . value
46
- let object2 = Check . value
42
+ let object1 = Check . value. wrappedValue
43
+ let object2 = Check . value. wrappedValue
47
44
XCTAssertTrue ( object1 === object2)
48
45
}
49
46
}
0 commit comments