Shouldn't this code give a shadowing error? int x; // global? void test() @safe nothrow @nogc { int x = x; // shouldn't this give a shadowing warning? }