January 12, 2016
The following example compiles work as expected:

import std.stdio;
import std.typecons;

void main()
{
    Nullable!(int) a;

    static if(is(typeof(a) == Nullable!(U), U))
        writeln("true");
    else
        writeln("false");
}

But if I use the fully qualified name in the condition, i.e. "std.typecons.Nullable!(U)", then I get this compile error:

main.d(8): Error: undefined identifier 'U'

Shouldn't this work? I have tried with the latest beta an a bunch of older versions of DMD.

-- 
/Jacob Carlborg
January 12, 2016
On 1/12/16 8:03 AM, Jacob Carlborg wrote:
> The following example compiles work as expected:
>
> import std.stdio;
> import std.typecons;
>
> void main()
> {
>      Nullable!(int) a;
>
>      static if(is(typeof(a) == Nullable!(U), U))
>          writeln("true");
>      else
>          writeln("false");
> }
>
> But if I use the fully qualified name in the condition, i.e.
> "std.typecons.Nullable!(U)", then I get this compile error:
>
> main.d(8): Error: undefined identifier 'U'
>
> Shouldn't this work? I have tried with the latest beta an a bunch of
> older versions of DMD.
>

Looks like a bug to me.

-Steve