Skip to content

PHP-Parser 4.13.0

Compare
Choose a tag to compare
@nikic nikic released this 20 Sep 12:25
· 361 commits to master since this release

This release features full PHP 8.1 support.

Added

  • [PHP 8.1] Added support for intersection types using a new IntersectionType node. Additionally a ComplexType parent class for NullableType, UnionType and IntersectionType has been added.
  • [PHP 8.1] Added support for explicit octal literals.
  • [PHP 8.1] Added support for first-class callables. These are represented using a call whose first argument is a VariadicPlaceholder. The representation is intended to be forward-compatible with partial function application, just like the PHP feature itself. Call nodes now extend from Expr\CallLike, which provides an isFirstClassCallable() method to determine whether a placeholder id present. getArgs() can be used to assert that the call is not a first-class callable and returns Arg[] rather than array<Arg|VariadicPlaceholder>.

Fixed

  • Multiple modifiers for promoted properties are now accepted. In particular this allows something like public readonly for promoted properties.
  • Formatting-preserving pretty printing for comments in array literals has been fixed.