| /* | |
| REQUIRED_ARGS: -release -check=assert=on | |
| PERMUTE_ARGS: -check=invariant=on | |
| */ | |
| // https://issues.dlang.org/show_bug.cgi?id=22945 | |
| bool hitStruct; | |
| bool hitClass; | |
| struct S | |
| { | |
| this(int) {} | |
| invariant { hitStruct = true; } | |
| } | |
| class C | |
| { | |
| this() {} | |
| invariant { hitClass = true; } | |
| } | |
| int main() | |
| { | |
| cast(void) S(0); | |
| cast(void) new C(); | |
| version(D_Invariants) | |
| { | |
| assert(hitStruct && hitClass); | |
| } | |
| else | |
| { | |
| assert(!hitStruct && !hitClass); | |
| } | |
| return 0; | |
| } |