https://issues.dlang.org/show_bug.cgi?id=17716
--- Comment #1 from ag0ae...@gmail.com --- Inside functions everything works as expected: ---- struct S { shared int* foo; int* bar; } pragma(msg, is(shared S : S)); /* "true" - wrong */ void f() { pragma(msg, is(shared S : S)); /* "false" - correct */ } ---- --