// https://issues.dlang.org/show_bug.cgi?id=22865 // Test that safety errors inside speculative scopes don't affect attribute inference void main() @safe { foo(); } __gshared int g; auto foo() { alias x0 = typeof(g++); alias x1 = typeof(cast(int*) 0); auto x2 = __traits(compiles, g++); enum x3 = __traits(compiles, (cast(int*) 0)); debug { g++; const x4 = cast(int*) 0; asm { } } } // Test that safety violations still occur if the function is inside the __traits(compiles) static assert(!__traits(compiles, { void f() @safe { g++; } }));