// https://issues.dlang.org/show_bug.cgi?id=6968
/*
TEST_OUTPUT:
---
fail_compilation/fail6968.d(26): Error: cannot pass type `int` as a function argument
fail_compilation/fail6968.d(26): Error: cannot pass type `long` as a function argument
fail_compilation/fail6968.d(26): Error: circular initialization of variable `fail6968.PredAny!(int, long, float).PredAny`
fail_compilation/fail6968.d(31): Error: template instance `fail6968.PredAny!(int, long, float)` error instantiating
fail_compilation/fail6968.d(31):        while evaluating `pragma(msg, PredAny!(int, long, float))`
---
*/

template Pred(A, B)
{
    static if(is(B == int))
        enum bool Pred = true;
    else
        enum bool Pred = false;
}

template PredAny(A, B...)
{
    static if(B.length == 0)
        enum bool PredAny = false;
    else
        enum bool PredAny = Pred(A, B[0]) || PredAny(A, B[1..$]);
}

void main()
{
    pragma(msg, PredAny!(int, long, float));
}
