// EXTRA_SOURCES: imports/template2962a.d

// comment 29
void foo(T)(T p)
{
    void inner(U)() {
        auto p2 = p;
    }
    inner!int();
}

// comment 20
void funcD(alias x)() {
   assert(x==1.0);
}

void funcC(T)(double a){
    // Case 1: ICE(glue.c)
    funcD!(a)();

    // Case 2: wrong code
    double b = 1.0; funcD!(b)();
}

void bug2962comment36()(int p)
{
    int inner()() { return p; }
    alias inner!() finner;
}
