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