Description
Description
The following code:
<?php
function generator()
{
yield from gen2();
yield /* comment */ from gen2();
yield
from
gen2();
yield // comment
from gen2();
yield
/* comment */
from
gen2();
}
Resulted in this output:
_no output_
But I expected this output instead:
Parse error: syntax error, unexpected identifier "gen2" in /in/2SI2Q on line 7
For a full analysis of the differences in tokenization, see: PHPCSStandards/PHP_CodeSniffer#529 (comment)
While I'm not necessarily challenging this change, I'd like to know if this was a deliberate/intentional change.
I have not been able to find anything in the PHP 8.3 CHANGELOG about this change, nor in the NEWS file. I can't even seem to find the commit which caused this change.
If this change was intentional, this is probably a documentation issue and the change should be annotated in the PHP 8.3 CHANGELOG.
If this change was unintentional, I believe it may be prudent to revert the change (or at least revert the side-effects of the commit which incidentally caused this change).
I'd like to get some clarity about this as it will inform how the PHP_CodeSniffer issue linked above should be fixed.
PHP Version
PHP 8.3.8
Operating System
Not relevant