On Monday, 18 December 2017 at 23:44:46 UTC, Michael wrote:

I have been looking at the following example found right at the end of the section here: https://dlang.org/spec/declaration.html#alias

struct S { static int i; }
S s;

alias a = s.i; // illegal, s.i is an expression
alias b = S.i; // ok
b = 4;         // sets S.i to 4

and it runs fine to me, including if I add:

I think the example is wrong.  Consider this:

----
import std.stdio;

struct S
{
    static int i;
    int j;
}
S s;

void main()
{
    s.i = 1;
    s.j = 2;

writeln(s.i); // OK: Static symbols can be used through instances
    writeln(S.i);  // OK: Static symbols can be used through types
writeln(s.j); // OK: Instance symbols can be used through instances //writeln(S.j); // Error: Instance symbols cannot be used through types.
}
----

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

Please file a bug report at http://issues.dlang.org/

Mike

Reply via email to