On 11/12/2025 4:54 AM, Basile B. wrote:
On Wednesday, 10 December 2025 at 15:32:39 UTC, Richard (Rikki) Andrew Cattermole wrote:
It was removed.

Its dead code, not hurting anyone, and just being plain annoying with templates.

at least `main()` is a problem. Obviously the examples are catchy on purpose. Prepare a console and killall.

Seriously I don't get your argument.


If that is instantiated with an int for the type, it errored.

This happened enough that it was on peoples hit list as a false positive nearing 100% of the time they got it.

```d
void func(T)() {
        static if (is(T = int)) {
                assert(0);
        }

        writeln("hello");
}
```

-----------------------------

In your example, infinite loops can be valid and desirable things.

If you want to catch that it should be done with a static analyzer, not as part of the compiler.

It will get optimized to:

```
_Dmain:
.Lfunc_begin0:
        .cfi_startproc
        .p2align        4, 0x90
.LBB0_1:
        jmp     .LBB0_1
.Lfunc_end0:
        .size   _Dmain, .Lfunc_end0-_Dmain
        .cfi_endproc
```

Compilers keep these loops for a reason.
  • what happened to... Basile B. via Digitalmars-d-learn
    • Re: what ha... Richard (Rikki) Andrew Cattermole via Digitalmars-d-learn
      • Re: wha... Basile B. via Digitalmars-d-learn
        • Re:... Kapendev via Digitalmars-d-learn
          • ... Basile B. via Digitalmars-d-learn
            • ... monkyyy via Digitalmars-d-learn
            • ... Kapendev via Digitalmars-d-learn
              • ... Richard (Rikki) Andrew Cattermole via Digitalmars-d-learn
        • Re:... Richard (Rikki) Andrew Cattermole via Digitalmars-d-learn

Reply via email to