Improvements 🔧
get_defined_vars()
return type contains known variables (#3624), #11948, #11740, thanks @MartinMystikJonas!- Lazier return in
UnionType->isSuperTypeOfWithReason()
(#3692, #3713), thanks @staabm! - 5x Faster
IntersectionType->getEnumCases()
(#3695), thanks @staabm! MixedType::toArrayKey()
returnsBenevolentUnionType
(#3696)- Optimization - do not enter anonymous classes during loop analysis (phpstan/phpstan-src@621e168)
- Introduce
ClassAsClassConstantRule
(#3697), #10859, thanks @paulbalandan! - 10% faster
FunctionCallParametersCheck
(#3734), thanks @staabm! - Faster
MutatingScope::getNodeKey()
(#3736), thanks @staabm!
Bugfixes 🐛
- Fix
iterator_to_array
return type with generators (#3652), thanks @paulbalandan! - Array map on multiple elements is a list (#3716), #12223, thanks @VincentLanglet!
- RegexArrayShapeMatcher: fix regex wildcard omitted from type (#3721), #12211, thanks @staabm!
- RegexArrayShapeMatcher: fix regex alternatives in capture group are concatenated (#3722), #12210, #12173, thanks @staabm!
- RegexArrayShapeMatcher: Don't narrow 'J' modifier (#3723), #12126, thanks @staabm!
- Add support for internal classes that overload offset access (#3725), #12235, thanks @Girgias!
- Support
#
comments in regex withx
modifier (#3735, #3739), #12242, thanks @staabm!
Function signature fixes 🤖
- More precise reflection classes return types (#3731), thanks @staabm!
- Fix
DOMDocument::create*()
return types (#3737), #12278, thanks @staabm!