mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
I mostly find it annoying to type and this makes the usage of the tool more consistent with other similar tools like dwarfdump or otool.
46 lines
1.6 KiB
Plaintext
46 lines
1.6 KiB
Plaintext
// RUN: %empty-directory(%t)
|
|
// RUN: %target-build-swift %s -emit-module -emit-library -module-name capture_descriptors -o %t/capture_descriptors%{target-shared-library-suffix}
|
|
// RUN: %target-swift-reflection-dump %t/capture_descriptors%{target-shared-library-suffix} | %FileCheck %s
|
|
|
|
// https://github.com/apple/swift/issues/53148
|
|
// UNSUPPORTED: OS=linux-gnu, OS=linux-android, OS=linux-androideabi
|
|
|
|
// https://github.com/apple/swift/issues/55339
|
|
// XFAIL: OS=openbsd
|
|
|
|
sil_stage canonical
|
|
|
|
import Builtin
|
|
import Swift
|
|
import SwiftShims
|
|
|
|
// CHECK: CAPTURE DESCRIPTORS:
|
|
// CHECK-NEXT: ====================
|
|
|
|
class C<T> {}
|
|
|
|
sil_vtable C {}
|
|
|
|
sil @make_some_boxes : $@convention(thin) <T> () -> (<τ_0_0> { var τ_0_0 } <Int>, <τ_0_0> { var τ_0_0 } <(Int, Int)>, <τ_0_0> { var τ_0_0 } <C<T>>) {
|
|
%a = alloc_box $<τ_0_0> { var τ_0_0 } <Int>
|
|
%b = alloc_box $<τ_0_0> { var τ_0_0 } <(Int, Int)>
|
|
%c = alloc_box $<τ_0_0> { var τ_0_0 } <C<T>>
|
|
%result = tuple (%a : $<τ_0_0> { var τ_0_0 } <Int>, %b : $<τ_0_0> { var τ_0_0 } <(Int, Int)>, %c : $<τ_0_0> { var τ_0_0 } <C<T>>)
|
|
return %result : $(<τ_0_0> { var τ_0_0 } <Int>, <τ_0_0> { var τ_0_0 } <(Int, Int)>, <τ_0_0> { var τ_0_0 } <C<T>>)
|
|
}
|
|
|
|
// CHECK: - Capture types:
|
|
// CHECK-NEXT: (struct Swift.Int)
|
|
// CHECK-NEXT: - Metadata sources:
|
|
|
|
// CHECK: - Capture types:
|
|
// CHECK-NEXT: (tuple
|
|
// CHECK-NEXT: (struct Swift.Int)
|
|
// CHECK-NEXT: (struct Swift.Int))
|
|
// CHECK-NEXT: - Metadata sources:
|
|
|
|
// CHECK: - Capture types:
|
|
// CHECK-NEXT: (bound_generic_class capture_descriptors.C
|
|
// CHECK-NEXT: (generic_type_parameter depth=0 index=0))
|
|
// CHECK-NEXT: - Metadata sources:
|