Files
swift-mirror/test/SIL/Parser/apply_with_conformance.sil
Joe Groff c0a2994564 AST: Start printing function types with @convention instead of old attributes.
And update tests to match.

Swift SVN r27262
2015-04-13 22:51:34 +00:00

40 lines
1.3 KiB
Plaintext

// RUN: %target-swift-frontend -emit-ir %s | FileCheck %s
// radar://16375832
sil_stage raw
import Builtin
import Swift
protocol P {
}
struct X : P {
}
struct S {
func foo<T : P>(t: T)
}
// test.S.foo (test.S)<A : test.P>(A) -> ()
sil @_TFV4test1S3foofS0_US_1P__FQ_T_ : $@convention(method) <T where T : P> (@in T, S) -> ()
// CHECK-LABEL: define void @_TF4test3barFTVS_1SVS_1X_T_()
// CHECK: call
// test.bar (test.S, test.X) -> ()
sil @_TF4test3barFTVS_1SVS_1X_T_ : $@convention(thin) (S, X) -> () {
bb0(%0 : $S, %1 : $X):
debug_value %0 : $S // let s // id: %2
debug_value %1 : $X // let x // id: %3
// function_ref test.S.foo (test.S)<A : test.P>(A) -> ()
%4 = function_ref @_TFV4test1S3foofS0_US_1P__FQ_T_ : $@convention(method) <τ_0_0 where τ_0_0 : P> (@in τ_0_0, S) -> () // user: %7
%5 = alloc_stack $X // users: %6, %7, %8
store %1 to %5#1 : $*X // id: %6
%7 = apply %4<X>(%5#1, %0) : $@convention(method) <τ_0_0 where τ_0_0 : P> (@in τ_0_0, S) -> ()
dealloc_stack %5#0 : $*@local_storage X // id: %8
%9 = tuple () // user: %10
return %9 : $() // id: %10
}
sil_witness_table X: P module test {
}