On Wednesday, 19 January 2022 at 04:15:54 UTC, Steven Schveighoffer wrote:
On 1/18/22 7:19 AM, vit wrote:
On Tuesday, 18 January 2022 at 12:05:38 UTC, Paul Backus wrote:
On Tuesday, 18 January 2022 at 04:42:45 UTC, frame wrote:
At the very top of my module I have this declaration:

```d
static if (__VERSION__ >= 2098)
{
    alias Foo = TypeA;
}
else
{
    alias Foo = TypeB;
}
```

No problem inside the module itself but this doesn't work when imported from another module:
Error: undefined identifier `Foo`

Works for me: https://run.dlang.io/is/XZlvQ8

It works until you have cyclic dependencies:

https://run.dlang.io/is/wDDcK5

Has nothing to do with `__VERSION__`:

https://run.dlang.io/is/pa8lDy

That does seem like a bug. And it's LDC specific, dmd seems to work fine.

-Steve

In dmd is order of module compilation different.
Same problem:

https://run.dlang.io/is/NkySAw

This is not only problem with imports:

```d
class Foo{
    Bar.B b;

    static if(true)
        alias F = int;

}

class Bar{
    Foo.F f;     //Error: no property `F` for type `onlineapp.Foo`

    static if(true)
        alias B = int;

}

void main(){}
```


Reply via email to