mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 13:10:12 +03:00
34 lines
861 B
D
34 lines
861 B
D
/* TEST_OUTPUT:
|
|
---
|
|
fail_compilation/aliasassign1.d(106): Error: A was read, so cannot reassign
|
|
fail_compilation/aliasassign1.d(110): Error: template instance `aliasassign1.staticMap!(Unqual, int, const(uint))` error instantiating
|
|
fail_compilation/aliasassign1.d(112): Error: static assert: `is(TK == AliasSeq!(int, uint))` is false
|
|
---
|
|
*/
|
|
|
|
template AliasSeq(T...) { alias AliasSeq = T; }
|
|
|
|
template Unqual(T)
|
|
{
|
|
static if (is(T U == const U))
|
|
alias Unqual = U;
|
|
else static if (is(T U == immutable U))
|
|
alias Unqual = U;
|
|
else
|
|
alias Unqual = T;
|
|
}
|
|
|
|
#line 100
|
|
|
|
template staticMap(alias F, T...)
|
|
{
|
|
alias A = AliasSeq!();
|
|
alias B = A;
|
|
static foreach (t; T)
|
|
A = AliasSeq!(A, F!t); // what's tested
|
|
alias staticMap = A;
|
|
}
|
|
|
|
alias TK = staticMap!(Unqual, int, const uint);
|
|
//pragma(msg, TK);
|
|
static assert(is(TK == AliasSeq!(int, uint)));
|