mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Change the mangling of accessors to have a variable or subscript node as their only child node, while subscript nodes no longer contain a decl name.
26 lines
824 B
Swift
26 lines
824 B
Swift
// RUN: %target-swift-frontend -enable-sil-ownership -emit-silgen %s | %FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-%target-runtime
|
|
|
|
public protocol P {}
|
|
extension Int: P {}
|
|
|
|
public class A {}
|
|
public class B: A {
|
|
// CHECK-LABEL: sil @_T016optional_to_bool1BC1x{{[_0-9a-zA-Z]*}}vg
|
|
// CHECK: select_enum {{%.*}} : $Optional<Int>
|
|
public lazy var x: Int = 0
|
|
// CHECK-LABEL: sil @_T016optional_to_bool1BC1y{{[_0-9a-zA-Z]*}}vg
|
|
// CHECK: select_enum_addr {{%.*}} : $*Optional<P>
|
|
public lazy var y: P = 0
|
|
}
|
|
|
|
// Collection casting is not implemented in non-ObjC runtime
|
|
#if _runtime(_ObjC)
|
|
|
|
// CHECK-objc-LABEL: sil @_T016optional_to_bool3foo{{[_0-9a-zA-Z]*}}F
|
|
public func foo(x: inout [A]) -> Bool {
|
|
// CHECK-objc: select_enum {{%.*}} : $Optional<Array<B>>
|
|
return x is [B]
|
|
}
|
|
|
|
#endif
|