@@ -75,19 +75,20 @@ all_array_types = ['ContiguousArray', 'ArraySlice', 'Array']
75
75
76
76
extension Array {
77
77
var identity: UnsafePointer<Void> {
78
- return self._buffer.identity
78
+ return unsafeBitCast( self, to: UnsafePointer<Void>.self)
79
79
}
80
80
}
81
81
82
82
extension ArraySlice {
83
- var identity: UnsafePointer<Void> {
84
- return self._buffer.identity
83
+ typealias Identity = (UnsafePointer<Void>, UnsafePointer<Void>, UnsafePointer<Void>, UnsafePointer<Void>)
84
+ var identity: Identity {
85
+ return unsafeBitCast(self, to: Identity.self)
85
86
}
86
87
}
87
88
88
89
extension ContiguousArray {
89
90
var identity: UnsafePointer<Void> {
90
- return self._buffer.identity
91
+ return unsafeBitCast( self, to: UnsafePointer<Void>.self)
91
92
}
92
93
}
93
94
@@ -246,10 +247,10 @@ ArrayTestSuite.test("${array_type}/emptyAllocation") {
246
247
let arr0 = ${array_type}<Int>()
247
248
let arr1 = ${array_type}<LifetimeTracked>(repeating: LifetimeTracked(0), count: 0)
248
249
// Empty arrays all use the same buffer
249
- expectEqual(arr0._buffer. identity, arr1._buffer .identity)
250
+ expectEqual(arr0.identity, arr1.identity)
250
251
251
252
let arr2: ${array_type}<LifetimeTracked> = []
252
- let emptyLiteralsShareBuffer = arr0._buffer. identity == arr2._buffer .identity
253
+ let emptyLiteralsShareBuffer = arr0.identity == arr2.identity
253
254
expectTrue(emptyLiteralsShareBuffer)
254
255
}
255
256
0 commit comments