Revision tags: php-7.4.7, php-7.3.19, php-7.4.7RC1, php-7.3.19RC1 |
|
#
9bf11983 |
| 24-May-2020 |
Ilija Tovilo |
Implement nullsafe ?-> operator RFC: https://wiki.php.net/rfc/nullsafe_operator Closes GH-5619. Co-authored-by: Nikita Popov <nikita.ppv@gmail.com> |
#
7a3dcc3e |
| 15-Jun-2020 |
Nikita Popov |
Treat namespaced names as single token Namespace names are now lexed as single tokens of type T_NAME_QUALIFIED, T_NAME_FULLY_QUALIFIED or T_NAME_RELATIVE. RFC: https://wiki.php.
Treat namespaced names as single token Namespace names are now lexed as single tokens of type T_NAME_QUALIFIED, T_NAME_FULLY_QUALIFIED or T_NAME_RELATIVE. RFC: https://wiki.php.net/rfc/namespaced_names_as_token Closes GH-5827.
show more ...
|
Revision tags: php-7.4.6, php-7.2.31, php-7.4.6RC1, php-7.3.18RC1, php-7.2.30, php-7.4.5, php-7.3.17 |
|
#
9fa1d133 |
| 09-Apr-2020 |
Ilija Tovilo |
Implement match expression RFC: https://wiki.php.net/rfc/match_expression_v2 Closes GH-5371. |
Revision tags: php-7.4.5RC1, php-7.3.17RC1, php-7.3.18, php-7.4.4, php-7.2.29, php-7.3.16, php-7.4.4RC1, php-7.3.16RC1, php-7.4.3, php-7.2.28 |
|
#
47cf18ba |
| 15-Feb-2020 |
Nikita Popov |
Don't include trailing newline in comment token Don't include a trailing newline in T_COMMENT tokens, instead leave it for a following T_WHITESPACE token. The newline does not belong
Don't include trailing newline in comment token Don't include a trailing newline in T_COMMENT tokens, instead leave it for a following T_WHITESPACE token. The newline does not belong to the comment logically, and this makes for an ugly special case, as other tokens do not include trailing newlines. Whitespace-sensitive tooling will want to either forward or backward emulate this change. Closes GH-5182.
show more ...
|
#
55717656 |
| 19-Jun-2020 |
Nikita Popov |
Forbid use of <?= as a semi-reserved identifier One of the weirdest pieces of PHP code I've ever seen. In terms of tokens, this gets internally translated to use x as y; ech
Forbid use of <?= as a semi-reserved identifier One of the weirdest pieces of PHP code I've ever seen. In terms of tokens, this gets internally translated to use x as y; echo as my_echo; On master it crashes because this "echo" does not have attached identifier metadata. Make sure it is added and then reject the use of "<?=" as an identifier inside zend_lex_tstring. Fixes oss-fuzz #23547.
show more ...
|
#
c7ad8a87 |
| 12-Jun-2020 |
Nikita Popov |
Initialize indentation_uses_spaces field This avoids reading a trap representation from _Bool, but shouldn't matter as far as behavior is concerned. |
#
b03cafd1 |
| 05-Jun-2020 |
Nikita Popov |
Fix bug #77966: Cannot alias a method named "namespace" This is a bit tricky: In this cases we have "namespace as", which means that we will only recognize "namespace" as an identifier w
Fix bug #77966: Cannot alias a method named "namespace" This is a bit tricky: In this cases we have "namespace as", which means that we will only recognize "namespace" as an identifier when the lookahead token is already at the "as". This means that zend_lex_tstring picks up the wrong identifier. We solve this by actually assigning the identifier as the semantic value on the parser stack -- as in almost all cases we will not actually need the identifier, this is just an (offset, size) reference, not a copy of the string. Additionally, we need to teach the lexer feedback mechanism used by tokenizer TOKEN_PARSE mode to apply feedback to something other than the very last token. To that purpose we pass through the token text and check the tokens in reverse order to find the right one. Closes GH-5668.
show more ...
|
#
80598f12 |
| 08-Apr-2020 |
Alex Dowad |
Syntax errors caused by unclosed {, [, ( mention specific location Aside from a few very specific syntax errors for which detailed exceptions are thrown, generally PHP just emits the def
Syntax errors caused by unclosed {, [, ( mention specific location Aside from a few very specific syntax errors for which detailed exceptions are thrown, generally PHP just emits the default error messages generated by bison on syntax error. These messages are very uninformative; they just say "Unexpected ... at line ...". This is most problematic with constructs which can span an arbitrary number of lines, such as blocks of code delimited by { }, 'if' conditions delimited by ( ), and so on. If a closing delimiter is missed, the block will run for the entire remainder of the source file (which could be thousands of lines), and then at the end, a parse error will be thrown with the dreaded words: "Unexpected end of file". Therefore, track the positions of opening and closing delimiters and ensure that they match up correctly. If any mismatch or missing delimiter is detected, immediately throw a parse error which points the user to the offending line. This is best done in the *lexer* and not in the parser. Thanks to Nikita Popov and George Peter Banyard for suggesting improvements. Fixes bug #79368. Closes GH-5364.
show more ...
|
#
3709e74b |
| 06-Apr-2020 |
Máté Kocsis |
Store default parameter values of internal functions in arg info Closes GH-5353. From now on, PHP will have reflection information about default values of parameters of internal function
Store default parameter values of internal functions in arg info Closes GH-5353. From now on, PHP will have reflection information about default values of parameters of internal functions. Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
show more ...
|
#
4565a7f2 |
| 16-Mar-2020 |
Nikita Popov |
Fix assertion when (real) is used And bring back a test for it... |
#
c9db3227 |
| 28-Feb-2020 |
George Peter Banyard |
Remove deprecated (real) cast Closes GH-5220 |
#
30c23887 |
| 28-Feb-2020 |
Nikita Popov |
Merge branch 'PHP-7.4' * PHP-7.4: Fixed bug #79062
|
#
375191aa |
| 28-Feb-2020 |
Nikita Popov |
Merge branch 'PHP-7.3' into PHP-7.4 * PHP-7.3: Fixed bug #79062
|
#
6c48da9a |
| 28-Feb-2020 |
Nikita Popov |
Fixed bug #79062 Back up the doc comment when performing heredoc scanahead. |
Revision tags: php-7.3.15RC1, php-7.4.3RC1, php-7.3.15, php-7.2.27, php-7.4.2, php-7.3.14, php-7.3.14RC1, php-7.4.2RC1 |
|
#
d5c886ab |
| 30-Dec-2019 |
Nikita Popov |
Merge branch 'PHP-7.4' * PHP-7.4: Properly propagate url_stat exceptions during include
|
#
f77747b0 |
| 30-Dec-2019 |
Nikita Popov |
Properly propagate url_stat exceptions during include Make sure we abort operations early, and that we don't emit additional warnings or errors if an exception has been thrown. |
Revision tags: php-7.4.1, php-7.2.26, php-7.3.13, php-7.4.1RC1, php-7.3.13RC1, php-7.2.26RC1, php-7.4.0, php-7.2.25, php-7.3.12, php-7.4.0RC6, php-7.3.12RC1, php-7.2.25RC1 |
|
#
e0a40133 |
| 30-Oct-2019 |
Nikita Popov |
Make "unterminated comment" into a parse error |
Revision tags: php-7.4.0RC5, php-7.1.33, php-7.2.24, php-7.3.11, php-7.4.0RC4 |
|
#
4e563e6c |
| 14-Oct-2019 |
Nikita Popov |
Merge branch 'PHP-7.4' * PHP-7.4: Fix handling of overflowing invalid octal in tokenizer
|
#
641f9615 |
| 12-Oct-2019 |
Nikita Popov |
Fix handling of overflowing invalid octal in tokenizer If token_get_all() is used, we still need to correctly distinguish LNUMBER vs DNUMBER here for backwards compatibility. |
#
595e8c67 |
| 10-Oct-2019 |
Nikita Popov |
Merge branch 'PHP-7.4'
|
#
6878c583 |
| 10-Oct-2019 |
Nikita Popov |
Report error if stream_read is not implemented We need to return -1 in this case. Slightly restructure the code to avoid unnecessary conditions. |
Revision tags: php-7.3.11RC1, php-7.2.24RC1 |
|
#
e9f4676b |
| 07-Oct-2019 |
Nikita Popov |
Merge branch 'PHP-7.4'
|
#
2f648444 |
| 07-Oct-2019 |
Nikita Popov |
Fix leak when include fails in a read operation Usually it will already fail when opening, but reads can also fail since PHP 7.4, in which case we still need to place the file handle
Fix leak when include fails in a read operation Usually it will already fail when opening, but reads can also fail since PHP 7.4, in which case we still need to place the file handle in open_files to make sure the destructor will run on it.
show more ...
|
#
50505072 |
| 04-Oct-2019 |
Nikita Popov |
Merge branch 'PHP-7.4'
|
#
b078ae6c |
| 04-Oct-2019 |
Nikita Popov |
Merge branch 'PHP-7.3' into PHP-7.4
|