diff options
| author | Nikita Popov <nikic@php.net> | 2012-07-22 20:11:09 +0200 |
|---|---|---|
| committer | Nikita Popov <nikic@php.net> | 2012-07-22 20:11:09 +0200 |
| commit | 134089372b94de2e3e8c2a1aba4cbc415c803d67 (patch) | |
| tree | 90fca0bc751801e6a63ab571e85097890882f137 /Zend/tests/generators/errors | |
| parent | 94b2ccae9ce95c4c71bb8db8ce75dcdf26df7d7a (diff) | |
| download | php-git-134089372b94de2e3e8c2a1aba4cbc415c803d67.tar.gz | |
Throw error also for return occuring before yield
Previously only an error was thrown when return occured after yield. Also
returns before the first yield would fail for by-ref generators.
Now the error message is handled in pass_two, so all returns are checked.
Diffstat (limited to 'Zend/tests/generators/errors')
| -rw-r--r-- | Zend/tests/generators/errors/generator_cannot_return_before_yield_error.phpt | 13 | ||||
| -rw-r--r-- | Zend/tests/generators/errors/generator_cannot_return_error.phpt | 2 |
2 files changed, 14 insertions, 1 deletions
diff --git a/Zend/tests/generators/errors/generator_cannot_return_before_yield_error.phpt b/Zend/tests/generators/errors/generator_cannot_return_before_yield_error.phpt new file mode 100644 index 0000000000..ad618d20ba --- /dev/null +++ b/Zend/tests/generators/errors/generator_cannot_return_before_yield_error.phpt @@ -0,0 +1,13 @@ +--TEST-- +Generators cannot return values (even before yield) +--FILE-- +<?php + +function gen() { + return $foo; + yield; +} + +?> +--EXPECTF-- +Fatal error: Generators cannot return values using "return" in %s on line 4 diff --git a/Zend/tests/generators/errors/generator_cannot_return_error.phpt b/Zend/tests/generators/errors/generator_cannot_return_error.phpt index 9a46bff5e6..51149062a7 100644 --- a/Zend/tests/generators/errors/generator_cannot_return_error.phpt +++ b/Zend/tests/generators/errors/generator_cannot_return_error.phpt @@ -10,4 +10,4 @@ function gen() { ?> --EXPECTF-- -Fatal error: Generators cannot return values using "return" in %s on line %d +Fatal error: Generators cannot return values using "return" in %s on line 5 |
