| /* |
| TEST_OUTPUT: |
| --- |
| fail_compilation/ctfe13612.d(15): Error: function `ctfe13612.S.recurse` CTFE recursion limit exceeded |
| fail_compilation/ctfe13612.d(20): called from here: `s.recurse()` |
| fail_compilation/ctfe13612.d(15): 1000 recursive calls to function `recurse` |
| fail_compilation/ctfe13612.d(23): called from here: `(new S).recurse()` |
| fail_compilation/ctfe13612.d(23): while evaluating: `static assert((new S).recurse())` |
| --- |
| */ |
| |
| class S |
| { |
| int x; |
| int recurse() |
| { |
| S s; |
| assert(!x); // Error: class 'this' is null and cannot be dereferenced |
| s = new S(); |
| return s.recurse(); |
| } |
| } |
| static assert(new S().recurse()); |