> Le 26 nov. 2024 à 01:49, aggelos bellos <aggelosbell...@gmail.com> a écrit :
> 
> Hello everyone,
> 
> In this issue #16761 <https://github.com/php/php-src/issues/16761> it was 
> verified that in the above code it should throw a notice for both yields:
> ```
> <?php
> error_reporting(E_ALL);
> function &y()
> {
>   yield null; // warning
>   yield; // no warning, agreed to be a bug
> }
> foreach (y() as &$y);
> ```
> I have created this PR <https://github.com/php/php-src/pull/16882> which adds 
> the "missing" notice but we aren't sure on
> how to continue on this.
> There are 2 main questions:
> Should we continue with adding the missing notice and merge it also in master?
> Should we deprecate / remove the usage of yield without value in reference 
> generator functions?
> 
> - Aggelos Bellos


Hi,

A notice would be consistent with what happens with: `function &f() { return; 
}; f();`. But don’t add new notices in patch releases, otherwise you may break 
without warning a non-trivial amount of code that conflates notices with fatal 
errors. The bug is not serious enough to warrant such a risk.

Whether it should be deprecated, is a separate question. You should also 
consider what to do with:  `function &g() { yield null; }`, `function &g() { if 
(false) yield; }`, `function &f() { return; }`, etc.

—Claude


Reply via email to