File tree Expand file tree Collapse file tree 2 files changed +55
-0
lines changed Expand file tree Collapse file tree 2 files changed +55
-0
lines changed Original file line number Diff line number Diff line change 1+ // RUN: %target-sil-opt %s -enable-experimental-feature NonescapableTypes | %FileCheck %s
2+ // REQUIRES: asserts
3+
4+ sil_stage raw
5+
6+ import Builtin
7+
8+ class Klass { }
9+
10+ class MethodModifiers {
11+ _resultDependsOnSelf func getDependentResult() -> Builtin.NativeObject
12+ }
13+
14+ func foo(_ x: _resultDependsOn Klass) -> Builtin.NativeObject
15+
16+ // CHECK-LABEL: sil hidden [ossa] [_resultDependsOnSelf] @getDependentResult :
17+ // CHECK-LABEL: } // end sil function 'getDependentResult'
18+ sil hidden [ossa] [_resultDependsOnSelf] @getDependentResult : $@convention(method) (@guaranteed MethodModifiers) -> @owned Builtin.NativeObject {
19+ bb0(%0 : @guaranteed $MethodModifiers):
20+ %2 = copy_value %0 : $MethodModifiers
21+ %3 = unchecked_ref_cast %2 : $MethodModifiers to $Builtin.NativeObject
22+ return %3 : $Builtin.NativeObject
23+ }
24+
25+ // CHECK-LABEL: sil hidden [ossa] @foo :
26+ // CHECK: bb0(%0 : @_resultDependsOn @guaranteed $Klass):
27+ // CHECK-LABEL: } // end sil function 'foo'
28+ sil hidden [ossa] @foo : $@convention(thin) (@guaranteed Klass) -> @owned Builtin.NativeObject {
29+ bb0(%0 : @_resultDependsOn @guaranteed $Klass):
30+ %2 = copy_value %0 : $Klass
31+ %3 = unchecked_ref_cast %2 : $Klass to $Builtin.NativeObject
32+ return %3 : $Builtin.NativeObject
33+ }
34+
Original file line number Diff line number Diff line change 1+ // RUN: %target-swift-frontend %s -emit-sil -enable-builtin-module -enable-experimental-feature NonescapableTypes -disable-experimental-parser-round-trip
2+ // REQUIRES: asserts
3+
4+ import Builtin
5+
6+ class Klass { }
7+
8+ class MethodModifiers {
9+ // CHECK-LABEL: sil hidden [ossa] [_resultDependsOnSelf] @$s17result_depends_on15MethodModifiersC18getDependentResultBoyF :
10+ _resultDependsOnSelf func getDependentResult( ) -> Builtin . NativeObject {
11+ return Builtin . unsafeCastToNativeObject ( self )
12+ }
13+ }
14+
15+ // CHECK-LABEL: sil hidden [ossa] @$s17result_depends_on3fooyBoAA5KlassCF :
16+ // CHECK: bb0(%0 : @_resultDependsOn @guaranteed $Klass):
17+ // CHECK: } // end sil function '$s17result_depends_on3fooyBoAA5KlassCF'
18+ func foo( _ x : _resultDependsOn Klass) -> Builtin . NativeObject {
19+ return Builtin . unsafeCastToNativeObject ( x)
20+ }
21+
You can’t perform that action at this time.
0 commit comments