#
41bbb116 |
| 30-Mar-2023 |
Ilija Tovilo |
Unary minus const expression consistency - of 0.0 should result in -0.0 Closes GH-10978
|
#
93592ea7 |
| 17-Nov-2022 |
蝦米 |
Fix GH-9769: Misleading error message for unpacking of objects Only arrays can be unpacked in constant expressions. Closes GH-9776.
|
#
2cfb028e |
| 01-Sep-2022 |
Ilija Tovilo |
Fix class name FQN when AST dumping new and class const Fixes GH-9447 Closes GH-9462
|
Revision tags: php-8.1.7RC1 |
|
#
4397811d |
| 14-Apr-2022 |
Ilija Tovilo |
Fix preloading of constants containing enums Fixes GH-8133 |
Revision tags: php-8.1.4RC1, php-8.1.3, php-8.1.2RC1, php-8.1.0, php-7.3.33 |
|
#
812df2bd |
| 12-Nov-2021 |
Cameron Porter |
Fix bug #81611 Add zend_fetch_class_with_scope() which accepts a scope to use for self/parent, and use that during constant expression evaluation. Closes GH-7649. |
Revision tags: php-7.3.32 |
|
#
f34114b1 |
| 01-Oct-2021 |
Nikita Popov |
Export AST for default value strings in reflection When dumping default values in ReflectionXXX::__toString(), for expression initializers print the AST export instead of trying to e
Export AST for default value strings in reflection When dumping default values in ReflectionXXX::__toString(), for expression initializers print the AST export instead of trying to evaluate the expression. With the introduction of "new in initializers" the result of the evaluation will commonly not be printable at all, and "__toString" will throw an exception, which is not particularly useful. Using the AST export also provides more information on how the parameter was originally declared, e.g. it preserves the fact that a certain constant was used. Closes GH-7540.
show more ...
|
Revision tags: php-7.3.31 |
|
#
7d6a7e78 |
| 31-Aug-2021 |
Nikita Popov |
Use array_set_zval_key() in zend_ast_add_array_element() This reimplemented basically the same logic. |
#
b964d007 |
| 26-Aug-2021 |
Nikita Popov |
Fix AST print of first class callable in anon class expr This will cause a compile error later, but the expression is printed first. Fixes oss-fuzz #37473. |
Revision tags: php-7.3.30 |
|
#
60484818 |
| 02-Aug-2021 |
Nikita Popov |
Add additional double to string APIs zend_double_to_str() converts a double to string in the way that (string) would (using %.*H using precision). smart_str_append_double() prov
Add additional double to string APIs zend_double_to_str() converts a double to string in the way that (string) would (using %.*H using precision). smart_str_append_double() provides some more fine control over the precision, and whether a zero fraction should be appeneded for whole numbers. A caveat here is that raw calls to zend_gcvt and going through s*printf has slightly different behavior for the degenarate precision=0 case. zend_gcvt will add a dummy E+0 in that case, while s*printf convert this to precision=1 and will not. I'm going with the s*printf behavior here, which is more common, but does result in a minor change to the precision.phpt test.
show more ...
|
#
8834cf01 |
| 27-Jul-2021 |
Nikita Popov |
Handle missing class when evaluating CONST_ENUM_INIT When resolving constants on a dynamically declared class during preloading, the enum class may not be available. Fail gracefully
Handle missing class when evaluating CONST_ENUM_INIT When resolving constants on a dynamically declared class during preloading, the enum class may not be available. Fail gracefully in that case. Possibly we shouldn't be trying to evaluate constants on non-linked classes at all?
show more ...
|
#
a374230c |
| 22-Jul-2021 |
Nikita Popov |
Add support for internal enums This adds support for internal enums with the same basic approach as userland enums. Enum values are stored as CONSTANT_AST and objects created during
Add support for internal enums This adds support for internal enums with the same basic approach as userland enums. Enum values are stored as CONSTANT_AST and objects created during constant updating at runtime. This means that we need to use mutable_data for internal enums. This just adds basic support and APIs, it does not include the stubs integration from #7212. Closes GH-7302.
show more ...
|
Revision tags: php-7.3.29 |
|
#
6780aaa5 |
| 02-Jun-2021 |
Nikita Popov |
Implement readonly properties Add support for readonly properties, for which only a single initializing assignment from the declaring scope is allowed. RFC: https://wiki.php.net
Implement readonly properties Add support for readonly properties, for which only a single initializing assignment from the declaring scope is allowed. RFC: https://wiki.php.net/rfc/readonly_properties_v2 Closes GH-7089.
show more ...
|
#
b6dcab2c |
| 19-Jul-2021 |
Nikita Popov |
Fix assert with attribute + first-class callable in assert This is going to result in a compile-time error, but AST printing is invoked first and should handle it gracefully. Handle it b
Fix assert with attribute + first-class callable in assert This is going to result in a compile-time error, but AST printing is invoked first and should handle it gracefully. Handle it by falling back to more generic printing code. Fixes oss-fuzz #36264.
show more ...
|
#
d0b09a7b |
| 20-May-2021 |
Joe Watkins |
Add first-class callables Support acquiring a Closure to a callable using the syntax func(...), $obj->method(...), etc. This is essentially a shortcut for Closure::fromCallable().
Add first-class callables Support acquiring a Closure to a callable using the syntax func(...), $obj->method(...), etc. This is essentially a shortcut for Closure::fromCallable(). RFC: https://wiki.php.net/rfc/first_class_callable_syntax Closes GH-7019. Co-Authored-By: Nikita Popov <nikita.ppv@gmail.com>
show more ...
|
#
52d3d0d8 |
| 15-Jun-2021 |
Nikita Popov |
Add limited support for new in initializers Add support for new expressions inside parameter default values, static variable initializers, global constant initializers and attribute
Add limited support for new in initializers Add support for new expressions inside parameter default values, static variable initializers, global constant initializers and attribute arguments. RFC: https://wiki.php.net/rfc/new_in_initializers Closes GH-7153.
show more ...
|
#
069a9fa5 |
| 05-Jul-2021 |
George Peter Banyard |
Pure Intersection types (#6799) Implement pure intersection types RFC RFC: https://wiki.php.net/rfc/pure-intersection-types Co-authored-by: Nikita Popov <nikic@php.net>
Pure Intersection types (#6799) Implement pure intersection types RFC RFC: https://wiki.php.net/rfc/pure-intersection-types Co-authored-by: Nikita Popov <nikic@php.net> Co-authored-by: Ilija Tovilo <ilutov@php.net>
show more ...
|
#
aff36587 |
| 29-Jun-2021 |
Patrick Allaert |
Fixed some spaces used instead of tabs |
#
b6958bb8 |
| 31-May-2021 |
George Peter Banyard |
Implement "Deprecate implicit non-integer-compatible float to int conversions" RFC. (#6661) RFC: https://wiki.php.net/rfc/implicit-float-int-deprecate Co-authored-by: Nikita Popov <
Implement "Deprecate implicit non-integer-compatible float to int conversions" RFC. (#6661) RFC: https://wiki.php.net/rfc/implicit-float-int-deprecate Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
show more ...
|
#
d60bc0e2 |
| 14-May-2021 |
Tyson Andre |
Support doc comments on enum cases (#6984) Because php supports doc comments on class constants, I believe it would also make sense to support them on enum cases. I don't have s
Support doc comments on enum cases (#6984) Because php supports doc comments on class constants, I believe it would also make sense to support them on enum cases. I don't have strong opinions about whether attributes should be moved to be the last element or whether the doc comment should go after the attribute, but the ast will likely change again before php 8.1 is stable. So far, all attributes are the last ast child node. I didn't notice that doc comments weren't implemented due to https://github.com/php/php-src/pull/6489 being a large change. https://wiki.php.net/rfc/enumerations did not mention whether or not doc comments were meant to be supported
show more ...
|
Revision tags: php-7.3.28 |
|
#
4dcde9cf |
| 09-Apr-2021 |
Dmitry Stogov |
Don't evalutae ZEND_AST_CLASS_CONST to ZEND_AST_CONSTANT ar compile-time. Keep at to run-time and use Fast Class Cache during run-time evaluation. |
Revision tags: php-7.3.27, php-7.3.26, php-7.3.26RC1, php-7.3.25, php-7.3.25RC1, php-7.3.24, php-7.3.24RC1 |
|
#
5caaf40b |
| 29-Sep-2020 |
George Peter Banyard |
Introduce pseudo-keyword ZEND_FALLTHROUGH And use it instead of comments |
Revision tags: php-7.3.23, php-7.3.23RC1, php-7.3.22, php-7.3.22RC1, php-7.3.21, php-7.3.21RC1, php-7.3.20, php-7.3.20RC1 |
|
#
269c8dac |
| 10-Jun-2020 |
Ilija Tovilo |
Implement enums RFC: https://wiki.php.net/rfc/enumerations Co-authored-by: Nikita Popov <nikita.ppv@gmail.com> Closes GH-6489. |
#
27cd7a11 |
| 07-Jan-2021 |
Nikita Popov |
Add support for string keys in array unpacking This adds support for: $array1 = ['a' => 1, 'b' => 2]; $array2 = ['b' => 3, 'c' => 4]; $array = [...$array1, ...$a
Add support for string keys in array unpacking This adds support for: $array1 = ['a' => 1, 'b' => 2]; $array2 = ['b' => 3, 'c' => 4]; $array = [...$array1, ...$array2]; // => ['a' => 1, 'b' => 3, 'c' => 4] RFC: https://wiki.php.net/rfc/array_unpacking_string_keys Closes GH-6584.
show more ...
|
#
3e01f5af |
| 15-Jan-2021 |
Nikita Popov |
Replace zend_bool uses with bool We're starting to see a mix between uses of zend_bool and bool. Replace all usages with the standard bool type everywhere. Of course, zend_bool
Replace zend_bool uses with bool We're starting to see a mix between uses of zend_bool and bool. Replace all usages with the standard bool type everywhere. Of course, zend_bool is retained as an alias.
show more ...
|
#
9e3e8345 |
| 09-Sep-2020 |
Hailong Zhao |
Remove the duplicate line in zend_ast.c Closes GH-6107. |