blob: 7829ca02b32a22e9a704157a25a202bcde5fa5aa [file] [log] [blame]
// REQUIRED_ARGS: -o-
// PERMUTE_ARGS:
struct InputRange {}
auto md5OfA(T...)(T ) {}
auto md5OfB(T...)(T ) {}
template fqnSymA(alias T : X!A, alias X, A...)
{
template fqnTuple(B) { enum fqnTuple = 1; }
enum fqnSymA = fqnTuple!A;
}
template fqnSymB(alias T : X!A, alias X, A...)
{
template fqnTuple(B) { enum fqnTuple = 1; }
enum fqnSymB = fqnTuple!A;
}
void test1() // OK <- NG
{
md5OfA(InputRange());
auto n = fqnSymA!(md5OfA!InputRange);
}
void test2() // OK
{
auto n = fqnSymB!(md5OfB!InputRange);
md5OfB(InputRange());
}