This release features full PHP 8.1 support.
Added
- [PHP 8.1] Added support for intersection types using a new
IntersectionType
node. Additionally aComplexType
parent class forNullableType
,UnionType
andIntersectionType
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 fromExpr\CallLike
, which provides anisFirstClassCallable()
method to determine whether a placeholder id present.getArgs()
can be used to assert that the call is not a first-class callable and returnsArg[]
rather thanarray<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.