On Thursday, 31 March 2016 at 13:48:27 UTC, Adam D. Ruppe wrote:
It is trying to look up a name i in global scope, and calling writeln on it.

This is why the .name syntax exists: so you can bypass local variables with the same name when trying to access a global.

It would compile if you put an `int i;` at the top of your module... try it!


Thanks, that makes sense! I had forgotten the global dot syntax. That seems like a somewhat sketchy syntax given how little one would use it, wouldn't something like:

writeln(i).global;

be much clearer for globals?

Reply via email to