[Issue 24466] `scope(exit)` should not be allowed in the main scope of `noreturn` functions
https://issues.dlang.org/show_bug.cgi?id=24466 elpenguin...@gmail.com changed: What|Removed |Added CC||elpenguin...@gmail.com --- Comment #1 from elpenguin...@gmail.com --- I don't think it's accurate to do that for all noreturn scopes. Consider: ``` noreturn v(int a) { scope(exit) a++; { scope(exit) a++; } throw new Exception("Exception"); } ``` In this code, both scope guards should be executed. --
[Issue 24466] New: `scope(exit)` should not be allowed in the main scope of `noreturn` functions
https://issues.dlang.org/show_bug.cgi?id=24466 Issue ID: 24466 Summary: `scope(exit)` should not be allowed in the main scope of `noreturn` functions Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: accepts-invalid Severity: minor Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: b2.t...@gmx.com consider the following code ```d noreturn v(int a) { scope(exit) a++; // cant be executed { scope(exit) a++; // this one is okay } assert(0); } ``` There should be a sema error for the first scope guard as the defered expression statement cannot be executed. --
[Issue 24349] object noreturn link is missing
https://issues.dlang.org/show_bug.cgi?id=24349 --- Comment #5 from Nick Treleaven --- Filed: https://github.com/dlang/ddox/issues/249 --
[Issue 24349] object noreturn link is missing
https://issues.dlang.org/show_bug.cgi?id=24349 --- Comment #4 from Nick Treleaven --- > alias noreturn = Nn; Ddoc generates (more) correct declaration: > alias noreturn = noreturn; https://dlang.org/phobos-prerelease/object.html#.noreturn So the problem seems to be with Ddox, perhaps file a bug here: https://github.com/dlang/ddox/issues --
[Issue 24349] object noreturn link is missing
https://issues.dlang.org/show_bug.cgi?id=24349 --- Comment #3 from Jim Balter --- I guess I should have been more explicit. It isn't just that the link is missing ... this is also wrong: alias noreturn = Nn; I doubt that the fix for the link fixed this ... is there some way to look at the docs for master? --
[Issue 24349] object noreturn link is missing
https://issues.dlang.org/show_bug.cgi?id=24349 Dlang Bot changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #2 from Dlang Bot --- dlang/dmd pull request #16077 "Fix Bugzilla 24349 - object noreturn link is missing" was merged into master: - 4232aeddcc725107bef1793496515e6196aaa623 by Nick Treleaven: Fix Bugzilla 24349 - object noreturn link is missing https://github.com/dlang/dmd/pull/16077 --
[Issue 24349] object noreturn link is missing
https://issues.dlang.org/show_bug.cgi?id=24349 Nick Treleaven changed: What|Removed |Added URL|http://dlang.org/library/dr | |untime/src/object.html | CC||n...@geany.org Component|dmd |druntime Summary|[Alias noreturn]|object noreturn link is |documentation is bolluxed |missing --
[Issue 24349] [Alias noreturn] documentation is bolluxed
https://issues.dlang.org/show_bug.cgi?id=24349 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #1 from Dlang Bot --- @ntrel created dlang/dmd pull request #16077 "Fix Bugzilla 24349 - object noreturn link is missing" fixing this issue: - Fix Bugzilla 24349 - object noreturn link is missing https://github.com/dlang/dmd/pull/16077 --
[Issue 24349] New: [Alias noreturn] documentation is bolluxed
https://issues.dlang.org/show_bug.cgi?id=24349 Issue ID: 24349 Summary: [Alias noreturn] documentation is bolluxed Product: D Version: D2 Hardware: All URL: http://dlang.org/library/druntime/src/object.html OS: All Status: NEW Severity: minor Priority: P3 Component: dmd Assignee: nob...@puremagic.com Reporter: j...@balter.name https://dlang.org/library/object/noreturn.html reads: Bottom type. See . alias noreturn = Nn; The source code is /** * Bottom type. * See $(DDSUBLINK spec/type, noreturn). */ alias noreturn = typeof(*null); --
[Issue 23379] Cast of expressions with type noreturn result in ice
https://issues.dlang.org/show_bug.cgi?id=23379 Basile-z changed: What|Removed |Added Status|REOPENED|RESOLVED CC||b2.t...@gmx.com Resolution|--- |WORKSFORME --
[Issue 23331] implicit cast from noreturn crashes compiler in various ways
https://issues.dlang.org/show_bug.cgi?id=23331 Basile-z changed: What|Removed |Added Status|REOPENED|RESOLVED CC||b2.t...@gmx.com Resolution|--- |WORKSFORME --
[Issue 24167] New: @noreturn compiles because of noreturn
https://issues.dlang.org/show_bug.cgi?id=24167 Issue ID: 24167 Summary: @noreturn compiles because of noreturn Product: D Version: D2 Hardware: x86_64 OS: FreeBSD Status: NEW Severity: enhancement Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: issues.dl...@jmdavisprog.com This code compiles string foo() @noreturn { return null; } It's not noreturn, and it wasn't correctly marked as noreturn, since the spec says that noreturn is a return type rather than an attribute, but the definition of noreturn in object.d: alias noreturn = typeof(*null); makes it possible. I just ran into some code today which incorrectly used @noreturn, and it didn't catch what noreturn is supposed to catch (even though the person writing the code thought that that's what it was doing). Strictly speaking, I'm not sure that it's a bug that the alias for noreturn makes it possible to use @noreturn, but it seems error-prone for folks who misremember (or mislearned) how noreturn is supposed to work - and as I understand it, there was discussion of implementing @noreturn before we ended up with noreturn, so it's not entirely surprising that someone would make this mistake. So, I would argue that ideally, we would disallow @noreturn, though given how noreturn is defined, I don't know what a good way to do that would be. Perhaps typeof(*null) should just be disallowed for attributes, though I don't know if special-casing that is any different from special-casing @noreturn to block it. But maybe actual compiler people will have a better idea. --
[Issue 24148] noreturn static array initialization causes ICE
https://issues.dlang.org/show_bug.cgi?id=24148 RazvanN changed: What|Removed |Added CC||razvan.nitu1...@gmail.com Severity|normal |critical --
[Issue 24148] noreturn static array initialization causes ICE
https://issues.dlang.org/show_bug.cgi?id=24148 Max Samukha changed: What|Removed |Added Summary|noreturn static array |noreturn static array |initialization causes ICE |initialization causes ICE |(illegal instruction) | --- Comment #1 from Max Samukha --- It's core.exception.AssertError@src\dmd\backend\cod4.d(405): Assertion failure --
[Issue 24148] New: noreturn static array initialization causes ICE (illegal instruction)
https://issues.dlang.org/show_bug.cgi?id=24148 Issue ID: 24148 Summary: noreturn static array initialization causes ICE (illegal instruction) Product: D Version: D2 Hardware: x86_64 OS: All Status: NEW Keywords: ice-on-valid-code Severity: normal Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: maxsamu...@gmail.com void main() { noreturn[1] x = noreturn[1].init; noreturn[1] x2 = noreturn.init; } Illegal instruction (core dumped) --
[Issue 24112] binary expressions with noreturn vars produce inconsistent results
https://issues.dlang.org/show_bug.cgi?id=24112 --- Comment #6 from Dlang Bot --- dlang/dmd pull request #15584 "Revert "Fix Issue 24112 - binary expressions with noreturn vars produ…" was merged into master: - a90c6d25063b2f5a4e17c165acc63a2800ac68ac by Basile Burg: Revert "Fix Issue 24112 - binary expressions with noreturn vars produce inconsistent results (#15564)" This reverts commit 1a9a19f8b384a4c9f6d27dcd04f83bf8dd1546cf. This breaks the test suite (fail_compilation/noreturn_expr.d). https://github.com/dlang/dmd/pull/15584 --
[Issue 24112] binary expressions with noreturn vars produce inconsistent results
https://issues.dlang.org/show_bug.cgi?id=24112 Basile-z changed: What|Removed |Added Status|RESOLVED|REOPENED CC||b2.t...@gmx.com Resolution|FIXED |--- --- Comment #5 from Basile-z --- The fixed that was merged breaks the one for https://issues.dlang.org/show_bug.cgi?id=24117 --
[Issue 24112] binary expressions with noreturn vars produce inconsistent results
https://issues.dlang.org/show_bug.cgi?id=24112 Dlang Bot changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #4 from Dlang Bot --- dlang/dmd pull request #15564 "Fix Issue 24112 - binary expressions with noreturn vars produce incon…" was merged into master: - c5f9ca5bd2952b8f0667ab94133477e83596cdb9 by Nick Treleaven: Fix Issue 24112 - binary expressions with noreturn vars produce inconsistent results https://github.com/dlang/dmd/pull/15564 --
[Issue 24117] noreturn can be used as expression
https://issues.dlang.org/show_bug.cgi?id=24117 Dlang Bot changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #6 from Dlang Bot --- dlang/dmd pull request #15562 "Fix Issue 24117 - noreturn can be used as expression" was merged into master: - 46f1225eaeaf4332f5769ce5b1e3853d88ede527 by Nick Treleaven: Fix Issue 24117 - noreturn can be used as expression https://github.com/dlang/dmd/pull/15562 --
[Issue 24112] binary expressions with noreturn vars produce inconsistent results
https://issues.dlang.org/show_bug.cgi?id=24112 --- Comment #3 from elpenguin...@gmail.com --- it's true that noreturn isn't an integral type, but it can implicitly convert to integral types. other instances of implicit conversion are allowed (structs with integer alias this, for example), so I think noreturn should be "allowed" as well, for consistency --
[Issue 24112] binary expressions with noreturn vars produce inconsistent results
https://issues.dlang.org/show_bug.cgi?id=24112 Nick Treleaven changed: What|Removed |Added CC||n...@geany.org --- Comment #2 from Nick Treleaven --- > except in the last three statements, which result in a compile error instead. I think that's correct as the spec says: > The operands must be integral types https://dlang.org/spec/expression.html#shift_expressions --
[Issue 24112] binary expressions with noreturn vars produce inconsistent results
https://issues.dlang.org/show_bug.cgi?id=24112 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #1 from Dlang Bot --- @ntrel created dlang/dmd pull request #15564 "Fix Issue 24112 - binary expressions with noreturn vars produce incon…" fixing this issue: - Fix Issue 24112 - binary expressions with noreturn vars produce inconsistent results https://github.com/dlang/dmd/pull/15564 --
[Issue 24114] no crash on use of a noreturn enum member
https://issues.dlang.org/show_bug.cgi?id=24114 Nick Treleaven changed: What|Removed |Added CC||n...@geany.org --- Comment #1 from Nick Treleaven --- Note - the enum declaration is rejected by the fix for issue #24117. --
[Issue 24117] noreturn can be used as expression
https://issues.dlang.org/show_bug.cgi?id=24117 --- Comment #5 from Nick Treleaven --- > enum E {e0 = 0, e1 = 1, illegal = noreturn} > foreach (const i; 0 .. noreturn){} I made a new fix that is more precise which does reject the 2 above and should cover all cases. --
[Issue 24117] noreturn can be used as expression
https://issues.dlang.org/show_bug.cgi?id=24117 --- Comment #4 from Dlang Bot --- @ntrel created dlang/dmd pull request #15562 "Fix Issue 24117 - noreturn can be used as expression" fixing this issue: - Fix Issue 24117 - noreturn can be used as expression https://github.com/dlang/dmd/pull/15562 --
[Issue 24117] noreturn can be used as expression
https://issues.dlang.org/show_bug.cgi?id=24117 --- Comment #3 from Basile-z --- Example 2 was about the member initializer Also if it's set to 0, then this becomes a problem because it's not expected to have two members of the same value, e.g ```d enum E {e0 = 0, e1 = 1, illegal = noreturn} ``` Otherwise I have a 3rd example: ```d void main() { foreach (const i; 0 .. noreturn){} } ``` --
[Issue 24117] noreturn can be used as expression
https://issues.dlang.org/show_bug.cgi?id=24117 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #2 from Dlang Bot --- @ntrel created dlang/dmd pull request #15561 "Fix Issue 24117 - noreturn can be used as expression" fixing this issue: - Fix Issue 24117 - noreturn can be used as expression https://github.com/dlang/dmd/pull/15561 --
[Issue 24117] noreturn can be used as expression
https://issues.dlang.org/show_bug.cgi?id=24117 Nick Treleaven changed: What|Removed |Added CC||n...@geany.org --- Comment #1 from Nick Treleaven --- This code: auto e = noreturn + 1; Gets lowered to: int e = 1; Also, `cast(int) E.illegal` is 0. --
[Issue 24115] No runtime crash on use of a noreturn template argument
https://issues.dlang.org/show_bug.cgi?id=24115 Basile-z changed: What|Removed |Added Resolution|FIXED |INVALID --
[Issue 24115] No runtime crash on use of a noreturn template argument
https://issues.dlang.org/show_bug.cgi?id=24115 Basile-z changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 24117] New: noreturn can be used as expression
https://issues.dlang.org/show_bug.cgi?id=24117 Issue ID: 24117 Summary: noreturn can be used as expression Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: accepts-invalid Severity: normal Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: b2.t...@gmx.com Example 1, in an AddExpression: ```d int v(e)() { return e + 0; } int main() { return v!(noreturn)(); } ``` Example 2, as EnumMember initializer: ```d enum E {e1 = 1, e2 = 2, illegal = noreturn} void main() { E e; e = E.illegal; } ``` --
[Issue 24114] no crash on use of a noreturn enum member
https://issues.dlang.org/show_bug.cgi?id=24114 Basile-z changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --
[Issue 24116] noreturn not accepted as argument of a template value parameter
https://issues.dlang.org/show_bug.cgi?id=24116 Basile-z changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --
[Issue 24116] noreturn not accepted as argument of a template value parameter
https://issues.dlang.org/show_bug.cgi?id=24116 Basile-z changed: What|Removed |Added Summary|no return not accepted as |noreturn not accepted as |argument of a template |argument of a template |value parameter |value parameter --
[Issue 24114] no crash on use of a noreturn enum member
https://issues.dlang.org/show_bug.cgi?id=24114 Basile-z changed: What|Removed |Added See Also||https://issues.dlang.org/sh ||ow_bug.cgi?id=24115 --
[Issue 24115] No runtime crash on use of a noreturn template argument
https://issues.dlang.org/show_bug.cgi?id=24115 Basile-z changed: What|Removed |Added See Also||https://issues.dlang.org/sh ||ow_bug.cgi?id=24114 --
[Issue 24115] New: No runtime crash on use of a noreturn template argument
https://issues.dlang.org/show_bug.cgi?id=24115 Issue ID: 24115 Summary: No runtime crash on use of a noreturn template argument Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: wrong-code Severity: normal Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: b2.t...@gmx.com For the following code there's no runtime crash ``` int v(e)() { return e + 0; } int main() { return v!(noreturn)(); } ``` --
[Issue 24114] New: no crash on use of a noreturn enum member
https://issues.dlang.org/show_bug.cgi?id=24114 Issue ID: 24114 Summary: no crash on use of a noreturn enum member Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: wrong-code Severity: normal Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: b2.t...@gmx.com For the following code there's no runtime crash ``` enum E {e1 = 1, e2 = 2, illegal = noreturn} void main() { E e; // that assignment should have the same effect as assert(0) e = E.illegal; // just to be sure if (e) {} } ``` --
[Issue 24112] New: binary expressions with noreturn vars produce inconsistent results
https://issues.dlang.org/show_bug.cgi?id=24112 Issue ID: 24112 Summary: binary expressions with noreturn vars produce inconsistent results Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: rejects-valid, wrong-code Severity: normal Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: elpenguin...@gmail.com ``` noreturn foo; int a = foo / 1; int b = foo + 1; int c = foo - 1; int d = foo * 1; int e = foo % 1; int f = foo ^^ 1; int g = foo & 1; int h = foo | 1; int i = foo ^ 1; int j = foo << 1; int k = foo >> 1; int l = foo >>> 1; ``` As of DMD 2.105.0, none of these statements produce the expected runtime errors. noreturn vars appear to be treated as integers with the value 0, except in the last three statements, which result in a compile error instead. --
[Issue 24054] return expression expected on noreturn function
https://issues.dlang.org/show_bug.cgi?id=24054 Dlang Bot changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #3 from Dlang Bot --- dlang/dmd pull request #15439 "Fix 24054 - return expression expected on noreturn function" was merged into master: - 01d613ecec3867ee1e71d3f3e08c60de35a41934 by Dennis Korpel: Fix 24054 - return expression expected on noreturn function https://github.com/dlang/dmd/pull/15439 --
[Issue 24054] return expression expected on noreturn function
https://issues.dlang.org/show_bug.cgi?id=24054 Dennis changed: What|Removed |Added CC||dkor...@live.nl --- Comment #2 from Dennis --- > and should probably suggest removal of the statement That doesn't result in valid code, it needs to be replaced with something typed `noreturn`. --
[Issue 24054] return expression expected on noreturn function
https://issues.dlang.org/show_bug.cgi?id=24054 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #1 from Dlang Bot --- @dkorpel created dlang/dmd pull request #15439 "Fix 24054 - return expression expected on noreturn function" fixing this issue: - Fix 24054 - return expression expected on noreturn function https://github.com/dlang/dmd/pull/15439 --
[Issue 24054] New: return expression expected on noreturn function
https://issues.dlang.org/show_bug.cgi?id=24054 Issue ID: 24054 Summary: return expression expected on noreturn function Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: diagnostic Severity: normal Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: elpenguin...@gmail.com ``` noreturn foo() { return; } ``` As of DMD 2.104.2, this results in "Error: return expression expected". This is a misleading error, and should probably suggest removal of the statement. --
[Issue 23950] Weird backend fail with noreturn type - cod1.d(4027): Assertion failure
https://issues.dlang.org/show_bug.cgi?id=23950 RazvanN changed: What|Removed |Added Keywords||backend, ice CC||razvan.nitu1...@gmail.com Severity|normal |critical --
[Issue 23950] Weird backend fail with noreturn type - cod1.d(4027): Assertion failure
https://issues.dlang.org/show_bug.cgi?id=23950 --- Comment #1 from m...@ernestocastellotti.it --- The absurd thing is that instead this code compiles and works correctly: import core.stdc.stdlib; void main() { auto foo = (false != true) && true || abort(); } This looks just like a bad bug in the backend depending on what the code from the frontend --
[Issue 23950] New: Weird backend fail with noreturn type - cod1.d(4027): Assertion failure
https://issues.dlang.org/show_bug.cgi?id=23950 Issue ID: 23950 Summary: Weird backend fail with noreturn type - cod1.d(4027): Assertion failure Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: m...@ernestocastellotti.it The DMD backend fails with this code: import core.stdc.stdlib; void main() { auto foo = false && true || abort(); } This is the error message: core.exception.AssertError@src/dmd/backend/cod1.d(4027): Assertion failure ??:? _d_assertp [0x9884d4] src/dmd/backend/cod1.d:4027 _Z8funccallR11CodeBuilderP4elemjjPjjb [0x8ffd32] src/dmd/backend/cod1.d:3749 _Z6cdfuncR11CodeBuilderP4elemPj [0x8fef41] src/dmd/backend/cgcod.d:2738 _Z7codelemR11CodeBuilderP4elemPjj [0x8f510a] src/dmd/backend/cod2.d:2082 _Z5cdnotR11CodeBuilderP4elemPj [0x90c4d3] src/dmd/backend/cgcod.d:2738 _Z7codelemR11CodeBuilderP4elemPjj [0x8f510a] src/dmd/backend/cgcod.d:2868 _Z8scodelemR11CodeBuilderP4elemPjjb [0x8f555c] src/dmd/backend/cod4.d:709 _Z4cdeqR11CodeBuilderP4elemPj [0x8bec0b] src/dmd/backend/cgcod.d:2738 _Z7codelemR11CodeBuilderP4elemPjj [0x8f510a] src/dmd/backend/cgen.d:198 _Z10gencodelemR11CodeBuilderP4elemPjb [0x940c65] src/dmd/backend/cod3.d:960 _Z14outblkexitcodeR11CodeBuilderP5blockRiPKcPP6Symbolj [0x917fa3] src/dmd/backend/cgcod.d:1455 _Z8blcodgenP5block [0x8f2efc] src/dmd/backend/cgcod.d:291 _Z6codgenP6Symbol [0x8f059d] src/dmd/backend/dout.d:1034 _Z10writefunc2P6Symbol [0x8a457e] src/dmd/backend/dout.d:853 _Z9writefuncP6Symbol [0x8a3ed6] src/dmd/glue.d:1199 _Z25FuncDeclaration_toObjFileP15FuncDeclarationb [0x842a4f] src/dmd/toobj.d:309 _ZN9toObjFile9ToObjFile5visitEP15FuncDeclaration [0x85c1a1] src/dmd/func.d:2991 _ZN15FuncDeclaration6acceptEP7Visitor [0x767119] src/dmd/toobj.d:1021 _Z9toObjFileP7Dsymbolb [0x85c108] src/dmd/glue.d:529 _Z10genObjFileP6Moduleb [0x840b71] src/dmd/glue.d:122 void dmd.glue.generateCodeAndWrite(dmd.dmodule.Module[], const(char)*[], const(char)[], const(char)[], bool, bool, bool, bool, bool) [0x83f39c] src/dmd/mars.d:582 int dmd.mars.tryMain(ulong, const(char)**, ref dmd.globals.Param) [0x64fe08] src/dmd/mars.d:966 _Dmain [0x651354] LDC and GDC have no problem with this code so the problem must be related exclusively to the DMD backend, i have no idea what could be causing it someone with backend experience should look into it. --
[Issue 23930] New: assert(0) passed to function with noreturn parameter causes segfault
https://issues.dlang.org/show_bug.cgi?id=23930 Issue ID: 23930 Summary: assert(0) passed to function with noreturn parameter causes segfault Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: ice-on-valid-code Severity: normal Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: elpenguin...@gmail.com ``` void main() { bar(assert(0)); } void bar(noreturn) {} ``` With DMD 2.103.0 it also prints TYvoid. --
[Issue 23927] Missing unreachable warning after call to a noreturn function as if-condition
https://issues.dlang.org/show_bug.cgi?id=23927 Basile-z changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #1 from Basile-z --- "noreturn is the bottom type which can implicitly convert to any type" bool in that case --
[Issue 23929] New: in operator on noreturn associative array causes dmd crash
https://issues.dlang.org/show_bug.cgi?id=23929 Issue ID: 23929 Summary: in operator on noreturn associative array causes dmd crash Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: ice-on-valid-code Severity: normal Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: elpenguin...@gmail.com A simple one-liner: ``` if (assert(0) in int[noreturn].init) {} ``` --
[Issue 23914] "auto ref" resolution on return value prevented by noreturn (bottom type)
https://issues.dlang.org/show_bug.cgi?id=23914 Dlang Bot changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #4 from Dlang Bot --- dlang/dmd pull request #15240 "Fix Issue 23914 - auto ref resolution on return value prevented by noreturn" was merged into master: - 883de397fb3a1405bdfaaa985abc905049c41fb0 by RazvanN7: Fix Issue 23914 - auto ref resolution on return value prevented by noreturn https://github.com/dlang/dmd/pull/15240 --
[Issue 23927] New: Missing unreachable warning after call to a noreturn function as if-condition
https://issues.dlang.org/show_bug.cgi?id=23927 Issue ID: 23927 Summary: Missing unreachable warning after call to a noreturn function as if-condition Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: accepts-invalid, diagnostic Severity: normal Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: b2.t...@gmx.com The following code compiles without warning ``` alias NR = typeof(assert(0)); NR test(){assert(0);} void main() { if (test()) { } return; } ``` but there should be one on the ReturnStatement located in `main` because it is not reachable. The same problem can be observed if the IfStatement is replaced with a WhileStatement. --
[Issue 23914] "auto ref" resolution on return value prevented by noreturn (bottom type)
https://issues.dlang.org/show_bug.cgi?id=23914 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #3 from Dlang Bot --- @RazvanN7 created dlang/dmd pull request #15240 "Fix Issue 23914 - auto ref resolution on return value prevented by noreturn" fixing this issue: - Fix Issue 23914 - auto ref resolution on return value prevented by noreturn https://github.com/dlang/dmd/pull/15240 --
[Issue 23914] "auto ref" resolution on return value prevented by noreturn (bottom type)
https://issues.dlang.org/show_bug.cgi?id=23914 Vladimir Panteleev changed: What|Removed |Added Summary|"auto ref" resolution |"auto ref" resolution on |prevented by bottom type|return value prevented by | |noreturn (bottom type) --
[Issue 23871] New: ImportC: __attribute((noreturn)) not recognized
https://issues.dlang.org/show_bug.cgi?id=23871 Issue ID: 23871 Summary: ImportC: __attribute((noreturn)) not recognized Product: D Version: D2 Hardware: All OS: Linux Status: NEW Severity: enhancement Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: nay...@abv.bg main.d import xawd; void main() { } xawd.c #include Errors: /usr/include/X11/Intrinsic.h(1729): Error: no type-specifier for parameter /usr/include/X11/Intrinsic.h(1733): Error: no type-specifier for parameter /usr/include/X11/Intrinsic.h(1753): Error: missing comma or semicolon after declaration of `XtAppErrorMsg`, found `__attribute` instead /usr/include/X11/Intrinsic.h(1762): Error: missing comma or semicolon after declaration of `XtErrorMsg`, found `__attribute` instead /usr/include/X11/Intrinsic.h(1785): Error: no type-specifier for parameter /usr/include/X11/Intrinsic.h(1789): Error: no type-specifier for parameter /usr/include/X11/Intrinsic.h(1804): Error: missing comma or semicolon after declaration of `XtAppError`, found `__attribute` instead /usr/include/X11/Intrinsic.h(1808): Error: missing comma or semicolon after declaration of `XtError`, found `__attribute` instead For the first error: extern XtErrorMsgHandler XtAppSetErrorMsgHandler( XtAppContext/* app_context */, XtErrorMsgHandler /* handler */ _X_NORETURN //line 1729 ); It seems it's caused by _X_NORETURN. The other errors are also caused by it, it seems. For the error on line 1753: extern void XtAppErrorMsg( XtAppContext/* app_context */, _Xconst _XtString /* name */, _Xconst _XtString /* type */, _Xconst _XtString /* class */, _Xconst _XtString /* default */, String* /* params */, Cardinal* /* num_params */ ) _X_NORETURN; //line 1753 _X_NORETURN seems to be defined like this: - /* requires xproto >= 7.0.17 */ #if __has_attribute(noreturn) \ || (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 205)) \ || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) # define _X_NORETURN __attribute((noreturn)) #else # define _X_NORETURN #endif /* GNUC */ - It seems __attribute((noreturn)) is not recognized. Using DMD64 D Compiler v2.103.0 --
[Issue 23331] implicit cast from noreturn crashes compiler in various ways
https://issues.dlang.org/show_bug.cgi?id=23331 --- Comment #3 from Dlang Bot --- dlang/dmd pull request #14758 "Revert "Fix Issues 23331, 23379 - fix casts involving noreturn"" was merged into master: - b8e9e3f29021c6f22233d489e8284165035fa5f5 by Iain Buclaw: Revert "Fix Issues 23331, 23379 - fix casts involving noreturn" This reverts commit eb3eb89664e0bc3b61e59e934b4ba0287024914e. https://github.com/dlang/dmd/pull/14758 --
[Issue 23587] cast(void) doesn't work for noreturn
https://issues.dlang.org/show_bug.cgi?id=23587 Dlang Bot changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #7 from Dlang Bot --- dlang/dmd pull request #14758 "Revert "Fix Issues 23331, 23379 - fix casts involving noreturn"" was merged into master: - 8bf1c8dab73adb9b990be334cdde1a068cb0a71e by Iain Buclaw: fix Issue 23587 - cast(void) doesn't work for noreturn https://github.com/dlang/dmd/pull/14758 --
[Issue 23591] [REG 2.101] Invalid casts accepted by the compiler if from type is noreturn
https://issues.dlang.org/show_bug.cgi?id=23591 Dlang Bot changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #2 from Dlang Bot --- dlang/dmd pull request #14758 "Revert "Fix Issues 23331, 23379 - fix casts involving noreturn"" was merged into master: - 227b3edae230a4084eacc994cf940ec4e612232b by Iain Buclaw: fix Issue 23591 - [REG 2.101] Invalid casts accepted by the compiler if from type is noreturn https://github.com/dlang/dmd/pull/14758 --
[Issue 23379] Cast of expressions with type noreturn result in ice
https://issues.dlang.org/show_bug.cgi?id=23379 --- Comment #3 from Dlang Bot --- dlang/dmd pull request #14758 "Revert "Fix Issues 23331, 23379 - fix casts involving noreturn"" was merged into master: - b8e9e3f29021c6f22233d489e8284165035fa5f5 by Iain Buclaw: Revert "Fix Issues 23331, 23379 - fix casts involving noreturn" This reverts commit eb3eb89664e0bc3b61e59e934b4ba0287024914e. https://github.com/dlang/dmd/pull/14758 --
[Issue 23587] cast(void) doesn't work for noreturn
https://issues.dlang.org/show_bug.cgi?id=23587 --- Comment #6 from Iain Buclaw --- (In reply to artha from comment #5) > (In reply to RazvanN from comment #3) > > Why does it matter? The call to fun will never return so casting to void (or > > any other value) it actually a no-op. > > In this case it makes the compiler issue an unwanted warning. The cast is > supposed to tell the compiler I'm purposefully discarding the return value. > You're not wrong. cast(void) bottom is completely valid and the result should be void. --
[Issue 23587] cast(void) doesn't work for noreturn
https://issues.dlang.org/show_bug.cgi?id=23587 --- Comment #5 from ar...@samerion.com --- (In reply to RazvanN from comment #3) > Why does it matter? The call to fun will never return so casting to void (or > any other value) it actually a no-op. In this case it makes the compiler issue an unwanted warning. The cast is supposed to tell the compiler I'm purposefully discarding the return value. As a workaround, I could've done this: ``` fun(); static if (!is(typeof(stuff()) == void)) { writeln("never written"); } ``` But it's a mess, and I don't want to do that every time I call a template delegate. --
[Issue 23591] [REG 2.101] Invalid casts accepted by the compiler if from type is noreturn
https://issues.dlang.org/show_bug.cgi?id=23591 Iain Buclaw changed: What|Removed |Added See Also||https://issues.dlang.org/sh ||ow_bug.cgi?id=23587 --
[Issue 23587] cast(void) doesn't work for noreturn
https://issues.dlang.org/show_bug.cgi?id=23587 Iain Buclaw changed: What|Removed |Added See Also||https://issues.dlang.org/sh ||ow_bug.cgi?id=23591 --
[Issue 23587] cast(void) doesn't work for noreturn
https://issues.dlang.org/show_bug.cgi?id=23587 --- Comment #4 from Iain Buclaw --- (In reply to RazvanN from comment #3) > Why does it matter? The call to fun will never return so casting to void (or > any other value) it actually a no-op. The devils in the detail of the change, not the example code in this bug report. By blowing a hole in the type system has opened up the flood gates to even worse abominations being accepted. --
[Issue 23591] [REG 2.101] Invalid casts accepted by the compiler if from type is noreturn
https://issues.dlang.org/show_bug.cgi?id=23591 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #1 from Dlang Bot --- @ibuclaw updated dlang/dmd pull request #14758 "Revert "Fix Issues 23331, 23379 - fix casts involving noreturn"" fixing this issue: - fix Issue 23591 - [REG 2.101] Invalid casts accepted by the compiler if from type is noreturn https://github.com/dlang/dmd/pull/14758 --
[Issue 23591] [REG 2.101] Invalid casts accepted by the compiler if from type is noreturn
https://issues.dlang.org/show_bug.cgi?id=23591 Iain Buclaw changed: What|Removed |Added Keywords||accepts-invalid CC||ibuc...@gdcproject.org --
[Issue 23591] New: [REG 2.101] Invalid casts accepted by the compiler if from type is noreturn
https://issues.dlang.org/show_bug.cgi?id=23591 Issue ID: 23591 Summary: [REG 2.101] Invalid casts accepted by the compiler if from type is noreturn Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: regression Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: ibuc...@gdcproject.org This nonsense is compilable. --- noreturn square(int x); int example(int i) { int x = cast(string)square(i); int y = cast(real function(char))assert(0); return x + y; } --- Introduced by https://github.com/dlang/dmd/pull/14494 --
[Issue 23587] cast(void) doesn't work for noreturn
https://issues.dlang.org/show_bug.cgi?id=23587 RazvanN changed: What|Removed |Added CC||razvan.nitu1...@gmail.com --- Comment #3 from RazvanN --- Why does it matter? The call to fun will never return so casting to void (or any other value) it actually a no-op. --
[Issue 23587] cast(void) doesn't work for noreturn
https://issues.dlang.org/show_bug.cgi?id=23587 Iain Buclaw changed: What|Removed |Added Keywords||rejects-valid --
[Issue 23587] cast(void) doesn't work for noreturn
https://issues.dlang.org/show_bug.cgi?id=23587 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #2 from Dlang Bot --- @ibuclaw updated dlang/dmd pull request #14758 "Revert "Fix Issues 23331, 23379 - fix casts involving noreturn"" fixing this issue: - fix Issue 23587 - cast(void) doesn't work for noreturn https://github.com/dlang/dmd/pull/14758 --
[Issue 23331] implicit cast from noreturn crashes compiler in various ways
https://issues.dlang.org/show_bug.cgi?id=23331 --- Comment #2 from Dlang Bot --- @ibuclaw created dlang/dmd pull request #14758 "Revert "Fix Issues 23331, 23379 - fix casts involving noreturn"" mentioning this issue: - Revert "Fix Issues 23331, 23379 - fix casts involving noreturn" This reverts commit eb3eb89664e0bc3b61e59e934b4ba0287024914e. https://github.com/dlang/dmd/pull/14758 --
[Issue 23379] Cast of expressions with type noreturn result in ice
https://issues.dlang.org/show_bug.cgi?id=23379 --- Comment #2 from Dlang Bot --- @ibuclaw created dlang/dmd pull request #14758 "Revert "Fix Issues 23331, 23379 - fix casts involving noreturn"" mentioning this issue: - Revert "Fix Issues 23331, 23379 - fix casts involving noreturn" This reverts commit eb3eb89664e0bc3b61e59e934b4ba0287024914e. https://github.com/dlang/dmd/pull/14758 --
[Issue 23331] implicit cast from noreturn crashes compiler in various ways
https://issues.dlang.org/show_bug.cgi?id=23331 Iain Buclaw changed: What|Removed |Added Keywords||backend Status|RESOLVED|REOPENED CC||ibuc...@gdcproject.org Resolution|FIXED |--- --
[Issue 23379] Cast of expressions with type noreturn result in ice
https://issues.dlang.org/show_bug.cgi?id=23379 Iain Buclaw changed: What|Removed |Added Keywords||backend Status|RESOLVED|REOPENED Resolution|FIXED |--- --
[Issue 23587] cast(void) doesn't work for noreturn
https://issues.dlang.org/show_bug.cgi?id=23587 Iain Buclaw changed: What|Removed |Added CC||ibuc...@gdcproject.org --- Comment #1 from Iain Buclaw --- I suspect introduced by https://github.com/dlang/dmd/pull/14494 --
[Issue 23587] New: cast(void) doesn't work for noreturn
https://issues.dlang.org/show_bug.cgi?id=23587 Issue ID: 23587 Summary: cast(void) doesn't work for noreturn Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: regression Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: ar...@samerion.com ``` noreturn stuff() { assert(false); } void doStuff(alias fun)() { // This is a template, so I don't want to have to care about noreturn cast(void) fun(); writeln("never written"); // Should output "void" pragma(msg, typeof(cast(void) fun())); } void main() { doStuff!stuff(); } ``` Starting with DMD 2.101, the pragma in the above example outputs "noreturn" rather than the expected "void" and issues "Warning: statement is not reachable". --
[Issue 16222] empty array literal should have type noreturn[]
https://issues.dlang.org/show_bug.cgi?id=16222 --- Comment #3 from Nick Treleaven --- > we need a typeof([]) that implicitly converts to any T[] (unlike void[]). That would be `noreturn[]`: https://github.com/dlang/DIPs/blob/master/DIPs/accepted/DIP1034.md#the-type-of-the-empty-array-literal --
[Issue 21954] stack corruption on if stmt taking a noreturn array elem as condition
https://issues.dlang.org/show_bug.cgi?id=21954 Iain Buclaw changed: What|Removed |Added Priority|P1 |P3 --
[Issue 16222] empty array literal should have type noreturn[]
https://issues.dlang.org/show_bug.cgi?id=16222 Iain Buclaw changed: What|Removed |Added Priority|P1 |P3 --
[Issue 23439] [REG 2.098] Error: CTFE internal error: literal 'assert(false, "Accessed expression of type noreturn")'
https://issues.dlang.org/show_bug.cgi?id=23439 --- Comment #3 from Dlang Bot --- dlang/dmd pull request #14609 "merge stable" was merged into master: - 048be135480126ff0a8ff9ac48dc11ab22e84c3b by Iain Buclaw: fix Issue 23439 - [REG 2.098] Error: CTFE internal error: literal 'assert(false, "Accessed expression of type noreturn")' (#14596) https://github.com/dlang/dmd/pull/14609 --
[Issue 23439] [REG 2.098] Error: CTFE internal error: literal 'assert(false, "Accessed expression of type noreturn")'
https://issues.dlang.org/show_bug.cgi?id=23439 Dlang Bot changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #2 from Dlang Bot --- dlang/dmd pull request #14596 "fix Issue 23439 - [REG 2.098] Error: CTFE internal error: literal 'assert(false, "Accessed expression of type noreturn")'" was merged into stable: - 5a060be19cd4c513693b4d1f8e0deb27b7bacc31 by Iain Buclaw: fix Issue 23439 - [REG 2.098] Error: CTFE internal error: literal 'assert(false, "Accessed expression of type noreturn")' https://github.com/dlang/dmd/pull/14596 --
[Issue 23439] [REG 2.098] Error: CTFE internal error: literal 'assert(false, "Accessed expression of type noreturn")'
https://issues.dlang.org/show_bug.cgi?id=23439 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #1 from Dlang Bot --- @ibuclaw created dlang/dmd pull request #14596 "fix Issue 23439 - [REG 2.098] Error: CTFE internal error: literal 'assert(false, "Accessed expression of type noreturn")'" fixing this issue: - fix Issue 23439 - [REG 2.098] Error: CTFE internal error: literal 'assert(false, "Accessed expression of type noreturn")' https://github.com/dlang/dmd/pull/14596 --
[Issue 23439] New: [REG 2.098] Error: CTFE internal error: literal 'assert(false, "Accessed expression of type noreturn")'
https://issues.dlang.org/show_bug.cgi?id=23439 Issue ID: 23439 Summary: [REG 2.098] Error: CTFE internal error: literal 'assert(false, "Accessed expression of type noreturn")' Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: regression Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: ibuc...@gdcproject.org Introduced by: https://github.com/dlang/dmd/pull/13142 --- class BasicClass { noreturn noRet; } __gshared basic = new BasicClass(); --
[Issue 23331] implicit cast from noreturn crashes compiler in various ways
https://issues.dlang.org/show_bug.cgi?id=23331 RazvanN changed: What|Removed |Added Status|NEW |RESOLVED CC||razvan.nitu1...@gmail.com Resolution|--- |FIXED --
[Issue 23379] Cast of expressions with type noreturn result in ice
https://issues.dlang.org/show_bug.cgi?id=23379 RazvanN changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 23331] implicit cast from noreturn crashes compiler in various ways
https://issues.dlang.org/show_bug.cgi?id=23331 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #1 from Dlang Bot --- @RazvanN7 updated dlang/dmd pull request #14494 "Fix Issues 23331, 23379 - fix casts involving noreturn" fixing this issue: - Fix Issues 23331, 23379 - fix casts involving noreturn https://github.com/dlang/dmd/pull/14494 --
[Issue 23379] Cast of expressions with type noreturn result in ice
https://issues.dlang.org/show_bug.cgi?id=23379 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #1 from Dlang Bot --- @RazvanN7 updated dlang/dmd pull request #14494 "Fix Issues 23331, 23379 - fix casts involving noreturn" fixing this issue: - Fix Issues 23331, 23379 - fix casts involving noreturn https://github.com/dlang/dmd/pull/14494 --
[Issue 23379] Cast of expressions with type noreturn result in ice
https://issues.dlang.org/show_bug.cgi?id=23379 RazvanN changed: What|Removed |Added Severity|enhancement |critical --
[Issue 23379] New: Cast of expressions with type noreturn result in ice
https://issues.dlang.org/show_bug.cgi?id=23379 Issue ID: 23379 Summary: Cast of expressions with type noreturn result in ice Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: enhancement Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: razvan.nitu1...@gmail.com void main() { auto b = cast(double)(assert(0)); } --
[Issue 23331] New: implicit cast from noreturn crashes compiler in various ways
https://issues.dlang.org/show_bug.cgi?id=23331 Issue ID: 23331 Summary: implicit cast from noreturn crashes compiler in various ways Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: critical Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: ajiesk...@gmail.com Defining any of these three functions in latest master will crash the compiler: auto fun(){return double(new noreturn[](0)[0]);} auto gun(){return double(assert(0));} auto hun(){return int(assert(0));} The underlying reason may or may not be same, since a different assertion trips in the compiler for each, located in different a source file for each of them. --
[Issue 16222] empty array literal should have type noreturn[]
https://issues.dlang.org/show_bug.cgi?id=16222 Nick Treleaven changed: What|Removed |Added CC||n...@geany.org Summary|template failed to |empty array literal should |infer/coerce types for |have type noreturn[] |instantiation | --
[Issue 21956] ice on foreach over an AA of noreturn
https://issues.dlang.org/show_bug.cgi?id=21956 Dlang Bot changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #6 from Dlang Bot --- dlang/dmd pull request #14274 "Fix Issue 21956 - ice on foreach over an AA of noreturn" was merged into master: - 52bb3f701e18dd393065aa3184f1b8ef4bf5690a by RazvanN7: Fix Issue 21956 - ice on foreach over an AA of noreturn https://github.com/dlang/dmd/pull/14274 --
[Issue 23114] Can't use noreturn operand in arithmetic expression
https://issues.dlang.org/show_bug.cgi?id=23114 --- Comment #5 from Dlang Bot --- dlang/dmd pull request #14280 "merge stable" was merged into master: - dbe0600f853466992fe8f3c3f684f520f6a15883 by mhh: Fix Issue 23114 - Make noreturn conversions work https://github.com/dlang/dmd/pull/14280 --
[Issue 21956] ice on foreach over an AA of noreturn
https://issues.dlang.org/show_bug.cgi?id=21956 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #5 from Dlang Bot --- @RazvanN7 created dlang/dmd pull request #14274 "Fix Issue 21956 - Issue 21956 - ice on foreach over an AA of noreturn" fixing this issue: - Fix Issue 21956 - Issue 21956 - ice on foreach over an AA of noreturn https://github.com/dlang/dmd/pull/14274 --
[Issue 23206] ImportC: __declspec(noreturn) does not compile
https://issues.dlang.org/show_bug.cgi?id=23206 Dlang Bot changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #4 from Dlang Bot --- dlang/dmd pull request #14252 "fix Issue 23206 - ImportC: __declspec(noreturn) does not compile" was merged into master: - 9df64451e42743b92cc46cf99b0742eed3382125 by Walter Bright: fix Issue 23206 - ImportC: __declspec(noreturn) does not compile https://github.com/dlang/dmd/pull/14252 --
[Issue 23206] ImportC: __declspec(noreturn) does not compile
https://issues.dlang.org/show_bug.cgi?id=23206 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #3 from Dlang Bot --- @WalterBright created dlang/dmd pull request #14252 "fix Issue 23206 - ImportC: __declspec(noreturn) does not compile" fixing this issue: - fix Issue 23206 - ImportC: __declspec(noreturn) does not compile https://github.com/dlang/dmd/pull/14252 --
[Issue 23206] ImportC: __declspec(noreturn) does not compile
https://issues.dlang.org/show_bug.cgi?id=23206 Walter Bright changed: What|Removed |Added Summary|ImportC: errors compiling |ImportC: |VC .h files that |__declspec(noreturn) does |relies on |not compile --
[Issue 23063] It is possible to return a noreturn value
https://issues.dlang.org/show_bug.cgi?id=23063 Dlang Bot changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #2 from Dlang Bot --- dlang/dmd pull request #14187 "Fix Issue 23063 - It is possible to return a noreturn value" was merged into master: - 8a0812895ccfabcdee31f2140c203367ccee5e97 by RazvanN7: Fix Issue 23063 - It is possible to return a noreturn value https://github.com/dlang/dmd/pull/14187 --
[Issue 23063] It is possible to return a noreturn value
https://issues.dlang.org/show_bug.cgi?id=23063 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #1 from Dlang Bot --- @RazvanN7 created dlang/dmd pull request #14187 "Fix Issue 23063 - It is possible to return a noreturn value" fixing this issue: - Fix Issue 23063 - It is possible to return a noreturn value https://github.com/dlang/dmd/pull/14187 --
[Issue 23114] Can't use noreturn operand in arithmetic expression
https://issues.dlang.org/show_bug.cgi?id=23114 Dlang Bot changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #4 from Dlang Bot --- dlang/dmd pull request #14134 "Fix Issue 23114 - Make noreturn conversions work" was merged into stable: - 8d9c0a33cecc5ff281659962a723f18a7bfd168f by mhh: Fix Issue 23114 - Make noreturn conversions work https://github.com/dlang/dmd/pull/14134 --
[Issue 23114] Can't use noreturn operand in arithmetic expression
https://issues.dlang.org/show_bug.cgi?id=23114 --- Comment #3 from Dlang Bot --- @maxhaton updated dlang/dmd pull request #14091 "Fix Issue 23088 - This bug is a symptom of a bad error message." fixing this issue: - Fix Issue 23114 - Make noreturn conversions work This meant adding the correct implicit conversions to the table in impcnvtab.d https://github.com/dlang/dmd/pull/14091 --