On Sat, 3 Apr 2021 at 17:30, Benjamin Eberlei <kont...@beberlei.de> wrote:
> The problem is that "void" is already not perfect, since the callside > doesn't care about "return null" with no return type vs "return" + void > return type. > > If we had "nothing" and "null" instead of "void", and we'd say like PHP > works, "return;" actually means "return null;", then: > > function foo(): nothing { > return; // Error: cannot return null from a function that returns > nothing. > } > function bar(): null { > return; > // or return null; > } > > This would more consistently tie into union types where |null is allowed, > however on its own it is not: "foo() : null => error". > > As Levi said, this noreturn/never just perpetuates/amplifies the existing > void mistake and feels off, given that other recent changes to PHP have > been more bold, towards removing inconsistencies. > This and Levi's email make compelling arguments and I would like to see this adopted. I have changed my vote to "No". Peter