Skip to content

Commit 0ba09d7

Browse files
committed
Add SIL test
1 parent 3c56a7a commit 0ba09d7

File tree

2 files changed

+55
-0
lines changed

2 files changed

+55
-0
lines changed

test/SIL/Parser/result_depends_on.sil

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
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+

test/SIL/result_depends_on.swift

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
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+

0 commit comments

Comments
 (0)