@@ -9,41 +9,38 @@ final class ThreadLocalTests: XCTestCase {
99
1010 func testLeak( ) throws {
1111 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: ( ) )
1614 }
1715 weak var weakObject : MyHeapObject ?
1816 do {
1917 let object = MyHeapObject ( )
2018 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
2523 }
2624 XCTAssertNil ( weakObject)
2725
2826 weak var weakObject2 : MyHeapObject ?
2927 do {
3028 let object = MyHeapObject ( )
3129 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
3634 }
3735 XCTAssertNil ( weakObject2)
3836 }
3937
4038 func testLazyThreadLocal( ) throws {
4139 struct Check {
42- @LazyThreadLocal ( initialize: { MyHeapObject ( ) } )
43- static var value : MyHeapObject
40+ static let value = LazyThreadLocal ( initialize: { MyHeapObject ( ) } )
4441 }
45- let object1 = Check . value
46- let object2 = Check . value
42+ let object1 = Check . value. wrappedValue
43+ let object2 = Check . value. wrappedValue
4744 XCTAssertTrue ( object1 === object2)
4845 }
4946}
0 commit comments