The Phan 3.x release line uses php-ast
's AST version 70 and supports the analysis of all PHP 8.0 syntax except attributes (when run with PHP 8).
The planned 4.x release line will use AST version 80 and require php-ast
1.0.10+ in order to parse/analyze PHP 8.0's #[]
attributes
New features (Analysis):
- Partially support
self<A>
andstatic<B>
in phpdoc types. (#4226)
This support is incomplete and may run into issues with inheritance.
Bug fixes:
- Properly infer the literal string value of
__FUNCTION__
for global functions in namespaces (#4231) - Fix false positive
PhanPossiblyInfiniteLoop
fordo {} while (false);
that is unchangeably false (#4236) - Infer that array_shift and array_pop return null when the passed in array could be empty, not false. (#4239)
- Handle
PhpToken::getAll()
getting renamed toPhpToken::tokenize()
in PHP 8.0.0RC4. (#4189)