History log of /php-ast/ast.c (Results 1 – 25 of 161)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 71f6a54d 11-Nov-2023 Nikita Popov

Add support for typed class constants


# 741eda1c 11-Nov-2023 Nikita Popov

Add missing comma

Ooops.


# c132c5d5 11-Nov-2023 Nikita Popov

Remove unused array


# dfca9531 11-Nov-2023 Nikita Popov

Fix strict-prototypes error


# 260678d4 09-Aug-2022 Tyson Andre

Add encaps var flags for AST_DIM/AST_VAR for php 8.2 (#227)

For https://wiki.php.net/rfc/deprecate_dollar_brace_string_interpolation

Closes #224

In util.php: Don't print a

Add encaps var flags for AST_DIM/AST_VAR for php 8.2 (#227)

For https://wiki.php.net/rfc/deprecate_dollar_brace_string_interpolation

Closes #224

In util.php: Don't print a 0 flag value for combinable flags

For php-ast self-testing, minimize the number of changes in the future
when similar combinable flags get added to existing ast var types.

show more ...


# e7dceba7 08-Aug-2022 Tyson Andre

Add support for TYPE_TRUE for php 8.2 (#229)

* Add support for TYPE_TRUE for php 8.2

https://wiki.php.net/rfc/true-type

* Fix test name


# ad71d350 08-Aug-2022 Tyson Andre

Fix redundant call to ast_to_zval (#230)

I noticed in 1.1.0dev that the __declId did not match a polyfill
when short arrow functions were nested.
ast_to_zval was already being called

Fix redundant call to ast_to_zval (#230)

I noticed in 1.1.0dev that the __declId did not match a polyfill
when short arrow functions were nested.
ast_to_zval was already being called on the above lines in ast.c,
calling it again would create `ast\Node` instances again.

show more ...


# e460595b 07-Aug-2022 Tyson Andre

Add tests, flag constants for php 8.2 readonly classes (#228)

* Add tests, flag constants for php 8.2 readonly classes

* Address review comments


# 91f59467 07-Aug-2022 Tyson Andre

php-ast 1.1.0dev: Deprecate AST versions 50 and 60, drop support for php < 7.2 (#185)

* Deprecate AST versions 50 and 60

AST version 70 has been supported since php-ast 1.0.1 (2019-

php-ast 1.1.0dev: Deprecate AST versions 50 and 60, drop support for php < 7.2 (#185)

* Deprecate AST versions 50 and 60

AST version 70 has been supported since php-ast 1.0.1 (2019-02-11).

Related to #114

* Drop support for php <= 7.1

Update documentation to mention this.

* Update test expectation for AST version 60 deprecation

show more ...


# f2f7cadc 07-Aug-2022 Tyson Andre

Fix test failures seen in php 8.2 (#226)

Fix bug where ZEND_AST_ARROW_FUNC output for 'stmts' in php 8.2 did not match
earlier php versions, which would affect tools using php-ast.

Fix test failures seen in php 8.2 (#226)

Fix bug where ZEND_AST_ARROW_FUNC output for 'stmts' in php 8.2 did not match
earlier php versions, which would affect tools using php-ast.

Handle var_export's output changing to always be fully qualified in php 8.2 test
output (`\ast\Node::__set_state(array(` starting with backslash)

And start running tests in php 8.2.

show more ...


# 8f1e75f6 27-Nov-2021 Tyson Andre

Release 1.0.16: Optimize ast\Node property setting. Document `#[AllowsDynamicProperties]` in stubs (#219)

Add `#[AllowsDynamicProperties]` to AST stubs

Use OBJ_PROP_NUM for ast\Node

Release 1.0.16: Optimize ast\Node property setting. Document `#[AllowsDynamicProperties]` in stubs (#219)

Add `#[AllowsDynamicProperties]` to AST stubs

Use OBJ_PROP_NUM for ast\Node and ast\Metadata building

(Do it even for Metadata.
The resulting assembly code should be smaller and it's an example of
how to write other classes efficiently in the future)

Mark 1.0.15 and 1.0.16 as stable

show more ...


# 6b05823e 27-Nov-2021 Tyson Andre

Update php versions tested in CI, prepare the 1.0.15 release (#218)

* Update php versions tested in CI

PHP '8.1' isn't published yet on docker hub.

Start testing with php 8

Update php versions tested in CI, prepare the 1.0.15 release (#218)

* Update php versions tested in CI

PHP '8.1' isn't published yet on docker hub.

Start testing with php 8.1 in appveyor

* Prepare for a 1.0.15 release

Make it possible to test with php 8.2 without deprecation notes for
endLineno, etc. See #217

Also, document how to properly update cache slot numbers if new
properties are added to ast\Node in the future.

show more ...


# e36cc7de 27-Nov-2021 Tyson Andre

Allow dynamic properties (e.g. endLineno) without deprecation notice in ast\Node (#217)

(But use the default deprecation behavior for ast\Metadata)

1. php-ast itself sets the dynami

Allow dynamic properties (e.g. endLineno) without deprecation notice in ast\Node (#217)

(But use the default deprecation behavior for ast\Metadata)

1. php-ast itself sets the dynamic property on endLineno right now,
causing deprecation notices in PHP 8.2.
Because all declaration types are associative arrays(not lists),
a future AST version number may add this as a property of
$node->children instead to avoid this notice.
2. WeakMap is only available in PHP 8.0+ (and WeakReference 7.4),
but https://github.com/phan/phan targets PHP 7.2+.
3. Because some nodes make `$node->children` a list,
applications such as Phan using php-ast can't associate string keys
with that.
(e.g. to mark nodes that were already processed in a certain step)

https://github.com/nikic/php-parser solves that by adding
`attributes`, `setAttribute`, `getAttribute`, etc. separately from
children, but php-ast currently doesn't have an attributes node.

That may be worth it in a future release.
4. When processing a large number of ast nodes in a large number of
files, the deprecation notices have a noticeable performance impact,
even when suppressed.

Related to #214

show more ...


# a5b2f602 27-Nov-2021 Tyson Andre

Use array_init_size as size hint for created arrays (#216)


# c533904c 24-Jul-2021 Tyson Andre

Support php 8.1 read-only properties, first-class callable syntax (#209)

Add php 8.1 readonly property support, first-class callables

And run all tests even after the first case fai

Support php 8.1 read-only properties, first-class callable syntax (#209)

Add php 8.1 readonly property support, first-class callables

And run all tests even after the first case fails

Mark ast version 90 as current and 85 as no longer experimental.

Add date to changelog, bump version in php_ast.h

show more ...


# 83c769f5 07-Jul-2021 Tyson Andre

Support php 8.1 intersection types (#208)

* Add tests of final class constant modifier, update metadata (https://wiki.php.net/rfc/final_class_const for php 8.1)
* Support proposed php 8.

Support php 8.1 intersection types (#208)

* Add tests of final class constant modifier, update metadata (https://wiki.php.net/rfc/final_class_const for php 8.1)
* Support proposed php 8.1 intersection types (https://wiki.php.net/rfc/pure-intersection-types)
* Allow using any modifier on any class element in metadata

show more ...


# 25f390bb 17-Apr-2021 Tyson Andre

Start testing with github actions (#202)

The script `ci/test_dockerized.sh 8.0` can be used to run the exact same
tests locally.

Closes #198

Change the comment text to

Start testing with github actions (#202)

The script `ci/test_dockerized.sh 8.0` can be used to run the exact same
tests locally.

Closes #198

Change the comment text to avoid -Wimplicit-fallthrough to avoid noise
https://developers.redhat.com/blog/2017/03/10/wimplicit-fallthrough-in-gcc-7/

show more ...


# b09570df 17-Apr-2021 Tyson Andre

Support php 8.1 never RFC (#199)

https://wiki.php.net/rfc/noreturn_type


# 28f5201f 05-Apr-2021 Tyson Andre

Support php 8.1 enums (#197)

* Support php 8.1 enums

* Test with travis and php 8.0, again

* AST_ENUM_CASE can have attributes

* Set `type` property of `AST_CLASS`

Support php 8.1 enums (#197)

* Support php 8.1 enums

* Test with travis and php 8.0, again

* AST_ENUM_CASE can have attributes

* Set `type` property of `AST_CLASS` iff ast version 85+

(iff === if and only if)

* Add AST_CLASS's type in version 85+ prior to php 8.1

* [skip ci] Document support for php 8.1 enums

show more ...


# 72f459a9 06-Feb-2021 Tyson Andre

Use zend_compile_string_to_ast in php 8.1 instead (#196)

Fixes a compilation error in php 8.1-dev


# d2b90349 07-Oct-2020 Nikita Popov

Adjust for new stub naming convention


# 7e9865c5 02-Oct-2020 Nikita Popov

Make stubs namespaced

This is now support in gen_stub.


# e0eeaec5 13-Sep-2020 Tyson Andre

Fix missing break in switch statement (#186)

This is currently harmless because 80 > 70,
but would be a potential problem if refactoring


# 15a7ebd5 12-Sep-2020 Tyson Andre

Add param defaults to reflection (of php-ast's functions) in php 8 (#152)

Add param defaults to reflection in php 8

Support generated arginfo macros in older php versions

T

Add param defaults to reflection (of php-ast's functions) in php 8 (#152)

Add param defaults to reflection in php 8

Support generated arginfo macros in older php versions

Throw in `new ast\Node` for invalid parameter types in php 7. (already the default for php 8)

show more ...


# f958360a 12-Sep-2020 Tyson Andre

Make AST version 80 the current AST version. (#179)

This will stop being experimental in 1.0.10.

Closes #178


1234567