PHP 8.3: "yield /*comment*/ from" is no longer a parse error ?
- 主要言語
- C
- スター
- 40.4k
- フォーク
- 8.1k
- 平均マージ
- 2日 13時間
- マージ済み PR(30日)
- 96
説明
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: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/529#issuecomment-2209337419
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
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
評価
この issue はまだ評価されていません。