summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/tests/real_cast.phpt10
-rw-r--r--Zend/zend_language_scanner.l1
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);
}