Bug #79927 [Com]: Generator doesn't throw exception after multiple yield from iterable
| From: | roxblnfk at yandex dot com | Date: | Sun, 11 Oct 2020 14:24:11 +0000 |
| Subject: | Bug #79927 [Com]: Generator doesn't throw exception after multiple yield from iterable | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-229542@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=79927&edit=1
ID: 79927
Comment by: roxblnfk at yandex dot com
Reported by: roxblnfk at yandex dot com
Summary: Generator doesn't throw exception after multiple
yield from iterable
Status: Closed
Type: Bug
Package: Scripting Engine problem
Operating System: any
PHP Version: 7.4.8
Assigned To: nikic
Block user comment: N
Private report: N
New Comment:
I think those who wrote the generator rewind code did it with the behavior described in the
documentation.
I wrote the code too, expecting and considering that the generator would throw an exception. The
incorrect behavior was found only during testing.
I, of course, do not insist, but think that it is worth releasing a fix for php7 and writing a
warning in the patch note.
Now php7 does not work as it is written in the documentation regarding Generator::rewind()
Previous Comments:
------------------------------------------------------------------------
[2020-10-11 00:08:29] requinix@php.net
That's right. Because it would not be polite if code that already runs in 7.4 suddenly started
throwing exceptions with the next release.
------------------------------------------------------------------------
[2020-10-10 21:15:09] roxblnfk at ya dot ru
Do i understand correctly that this bug will not be fixed for php 7?
------------------------------------------------------------------------
[2020-08-11 13:49:53] nikic@php.net
Automatic comment on behalf of nikita.ppv@gmail.com
Revision: http://git.php.net/?p=php-src.git;a=commit;h=e25aab64268adb4e233737c274b195e1662f7211
Log: Fixed bug #79927
------------------------------------------------------------------------
[2020-08-03 21:14:46] roxblnfk at yandex dot com
Description:
------------
A generator that yields values from an array does not throw an exception when calling the rewind
method after multiple yields from same yield construction.
Can also be seen at https://3v4l.org/NZ77U
Test script:
---------------
<?php
$generator = (static function () {
yield from [1,2,3];
})();
$generator->next();
$generator->next();
$generator->rewind();
echo $generator->current(); # 3
Expected result:
----------------
RuntimeException on line $generator->rewind();
Actual result:
--------------
3
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=79927&edit=1