mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
36 lines
783 B
Swift
36 lines
783 B
Swift
// RUN: %target-swift-frontend %s -emit-sil \
|
|
// RUN: -o /dev/null \
|
|
// RUN: -verify \
|
|
// RUN: -sil-verify-all \
|
|
// RUN: -module-name test \
|
|
// RUN: -enable-experimental-feature NonescapableTypes
|
|
|
|
// REQUIRES: asserts
|
|
// REQUIRES: swift_in_compiler
|
|
|
|
struct BV : ~Escapable {
|
|
let p: UnsafeRawPointer
|
|
let i: Int
|
|
|
|
@_unsafeNonescapableResult
|
|
init(_ p: UnsafeRawPointer, _ i: Int) {
|
|
self.p = p
|
|
self.i = i
|
|
}
|
|
|
|
consuming func derive() -> dependsOn(self) BV {
|
|
// Technically, this "new" view does not depend on the 'view' argument.
|
|
// This unsafely creates a new view with no dependence.
|
|
return BV(self.p, self.i)
|
|
}
|
|
}
|
|
|
|
struct NE : ~Escapable {
|
|
var bv: BV
|
|
|
|
init(_ bv: consuming BV) -> dependsOn(bv) Self {
|
|
self.bv = bv
|
|
return self
|
|
}
|
|
}
|