1
+ // RUN: %empty-directory(%t)
2
+
3
+ // RUN: %target-build-swift -emit-executable %s -g -o %t/variadic_nominal_types -emit-module -enable-experimental-feature VariadicGenerics
4
+
5
+ // RUN: sed -ne '/\/\/ *DEMANGLE-TYPE: /s/\/\/ *DEMANGLE-TYPE: *//p' < %s > %t/input
6
+ // RUN: %lldb-moduleimport-test-with-sdk %t/variadic_nominal_types -type-from-mangled=%t/input | %FileCheck %s --check-prefix=CHECK-TYPE
7
+
8
+ // Because of -enable-experimental-feature VariadicGenerics
9
+ // REQUIRES: asserts
10
+
11
+ struct Variadic < T... , U> {
12
+ struct Inner < V... , W> { }
13
+ }
14
+
15
+ extension Variadic where each T : Equatable {
16
+ struct Constrained { }
17
+ }
18
+
19
+ func blackHole( _: Any ... ) { }
20
+
21
+ do {
22
+ let x0 = Variadic < Float > ( )
23
+ let x1 = Variadic < Int , Float > ( )
24
+ let x2 = Variadic < Int , String , Float > ( )
25
+ let x3 = Variadic < Int , String , Float > . Inner < Character , Bool , Double > ( )
26
+
27
+ blackHole ( x0, x1, x2, x3)
28
+ }
29
+
30
+ do {
31
+ let x0 = Variadic< Float> . Constrained( )
32
+ let x1 = Variadic < Int , Float > . Constrained ( )
33
+ let x2 = Variadic < Int , String , Float > . Constrained ( )
34
+
35
+ blackHole ( x0, x1, x2)
36
+ }
37
+
38
+ // DEMANGLE-TYPE: $s22variadic_nominal_types8VariadicVyyQPSfGD
39
+ // CHECK-TYPE: Variadic<Float>
40
+
41
+ // DEMANGLE-TYPE: $s22variadic_nominal_types8VariadicVySi_QPSfGD
42
+ // CHECK-TYPE: Variadic<Int, Float>
43
+
44
+ // DEMANGLE-TYPE: $s22variadic_nominal_types8VariadicVySi_SSQPSfGD
45
+ // CHECK-TYPE: Variadic<Int, String, Float>
46
+
47
+ // DEMANGLE-TYPE: $s22variadic_nominal_types8VariadicV5InnerVySi_SSQPSf_SJ_SbQPSdGD
48
+ // CHECK-TYPE: Variadic<Int, String, Float>.Inner<Character, Bool, Double>
49
+
50
+ // DEMANGLE-TYPE: $s22variadic_nominal_types8VariadicVAASQRzrlE11ConstrainedVyyQPSf_GD
51
+ // CHECK-TYPE: Variadic<Float>.Constrained
52
+
53
+ // DEMANGLE-TYPE: $s22variadic_nominal_types8VariadicVAASQRzrlE11ConstrainedVySi_QPSf_GD
54
+ // CHECK-TYPE: Variadic<Int, Float>.Constrained
55
+
56
+ // DEMANGLE-TYPE: $s22variadic_nominal_types8VariadicVAASQRzrlE11ConstrainedVySi_SSQPSf_GD
57
+ // CHECK-TYPE: Variadic<Int, String, Float>.Constrained
0 commit comments