diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2020-03-16 18:37:01 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-03-16 18:37:01 +0100 |
commit | 4565a7f269e8ac94c8445fccc3a3639f75fe462e (patch) | |
tree | 38d0e9a1c9e4b4be1ce3af1a8e4a31976d57d00c | |
parent | 6a0b59d085c2e155fdf7c174c380fa34da60e877 (diff) | |
download | php-git-4565a7f269e8ac94c8445fccc3a3639f75fe462e.tar.gz |
Fix assertion when (real) is used
And bring back a test for it...
-rw-r--r-- | Zend/tests/real_cast.phpt | 10 | ||||
-rw-r--r-- | Zend/zend_language_scanner.l | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/Zend/tests/real_cast.phpt b/Zend/tests/real_cast.phpt new file mode 100644 index 0000000000..180ef79230 --- /dev/null +++ b/Zend/tests/real_cast.phpt @@ -0,0 +1,10 @@ +--TEST-- +The (real) cast is no longer supported +--FILE-- +<?php + +var_dump((real) 42); + +?> +--EXPECTF-- +Parse error: The (real) cast has been removed, use (float) instead in %s on line %d diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 285ade26df..232ccdf8be 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -1497,6 +1497,7 @@ NEWLINE ("\r"|"\n"|"\r\n") <ST_IN_SCRIPTING>"("{TABS_AND_SPACES}"real"{TABS_AND_SPACES}")" { if (PARSER_MODE()) { zend_throw_exception(zend_ce_parse_error, "The (real) cast has been removed, use (float) instead", 0); + RETURN_TOKEN(T_ERROR); } RETURN_TOKEN(T_DOUBLE_CAST); } |