mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 13:10:12 +03:00
55 lines
1.6 KiB
D
55 lines
1.6 KiB
D
/*
|
|
TEST_OUTPUT:
|
|
---
|
|
U1 = int
|
|
U2 = int
|
|
V1 = long, K1 = string
|
|
V2 = long, K2 = string
|
|
TL1 = (int, string)
|
|
TL2 = (int, string)
|
|
U3 = int
|
|
U4 = int
|
|
V3 = long, K3 = string
|
|
V4 = long, K4 = string
|
|
TL3 = (int, string)
|
|
TL4 = (int, string)
|
|
---
|
|
*/
|
|
|
|
static if (is(int* == U1*, U1)) { pragma(msg, "U1 = ", U1); }
|
|
static if (is(int* : U2*, U2)) { pragma(msg, "U2 = ", U2); }
|
|
static assert(is(int* == U*, U));
|
|
static assert(is(int* : U*, U));
|
|
|
|
alias AA = long[string];
|
|
static if (is(AA == V1[K1], V1, K1)) { pragma(msg, "V1 = ", V1, ", K1 = ", K1); }
|
|
static if (is(AA : V2[K2], V2, K2)) { pragma(msg, "V2 = ", V2, ", K2 = ", K2); }
|
|
static assert(is(AA == V[K], V, K));
|
|
static assert(is(AA : V[K], V, K));
|
|
|
|
class B(TL...) {}
|
|
class C(TL...) : B!TL {}
|
|
alias X = C!(int, string);
|
|
|
|
static if (is(X == C!TL1, TL1...)) { pragma(msg, "TL1 = ", TL1); }
|
|
static if (is(X : B!TL2, TL2...)) { pragma(msg, "TL2 = ", TL2); }
|
|
static assert(is(X == C!TL, TL...));
|
|
static assert(is(X : B!TL, TL...));
|
|
|
|
void test8959()
|
|
{
|
|
static if (is(int* == U3*, U3)) { pragma(msg, "U3 = ", U3); }
|
|
static if (is(int* : U4*, U4)) { pragma(msg, "U4 = ", U4); }
|
|
static assert(is(int* == U*, U));
|
|
static assert(is(int* : U*, U));
|
|
|
|
static if (is(AA == V3[K3], V3, K3)) { pragma(msg, "V3 = ", V3, ", K3 = ", K3); }
|
|
static if (is(AA : V4[K4], V4, K4)) { pragma(msg, "V4 = ", V4, ", K4 = ", K4); }
|
|
static assert(is(AA == V[K], V, K));
|
|
static assert(is(AA : V[K], V, K));
|
|
|
|
static if (is(X == C!TL3, TL3...)) { pragma(msg, "TL3 = ", TL3); }
|
|
static if (is(X : B!TL4, TL4...)) { pragma(msg, "TL4 = ", TL4); }
|
|
static assert(is(X == C!TL, TL...));
|
|
static assert(is(X : B!TL, TL...));
|
|
}
|