Improvements 🔧
- Improve constant string union handling for concat and encapsed string (#2057), thanks @schlndh!
- PhpVersion: supportsDisjunctiveNormalForm (#2130), thanks @janedbal!
- Constant scalar types might accept general type from the same family (#2131) - this moves some errors from earlier levels to level 7
- Implement OversizedArrayBuilder to improve huge constant array performance (#2116), #8215, thanks @staabm!
- Improve performance again by dumbing down nested arrays (#2077)
- Result cache should not be invalidated by changes to editorUrl, editorUrlTitle and errorFormat parameters (#2136), thanks @bendavies!
- Faster
MutatingScope::shouldInvalidateExpression()
(#2139), thanks @staabm! - Add
ReturnStatementsNode::hasNativeReturnTypehint()
(#2141), thanks @janedbal! - TypeNodeResolver -
lowercase-string
andnon-empty-lowercase-string
are known (phpstan/phpstan-src@884ceb0)
Bugfixes 🐛
- OversizedArrayType contains at least 1 element (#2126), thanks @staabm!
- Fix
pathinfo($s, PATHINFO_ALL)
return type (#2014), thanks @staabm! - Bump fidry/cpu-core-counter version (#2133), thanks @czukowski!
- Fix
MixedType::hasOffsetValueType()
for subtracted types (#2135), #6705, thanks @herndlm! - Fix dumbed down arrays (#2137), #8004
- Return type of
parent::__set_state()
method is only object (#2138), thanks @blankse! - Fix fatal error when autoloader opens directories (#2154), thanks @staabm!
- Fix returntype for DateInterval::createFromDateString (#2038), thanks @verfriemelt-dot-org!
- Fix hasSideEffects for AnnotationMethodReflection (#2155), thanks @VincentLanglet!
- Fix constant-string handling in union-types (#2134), #8568, #8562, thanks @staabm!
- IntersectionType - check if it's an oversized array and return benevolent union in getOffsetValueType (phpstan/phpstan-src@80b5cdd)
Internals 🔍
- Use isArray, isConstantArray instead of instanceof in TypeCombinartor::union (#2118), thanks @rajyan!
- Fix typo (#2127), thanks @rajyan!
- AnalyserIntegrationTest - run with bleedingEdge (phpstan/phpstan-src@db2de6f)
- Refactor options handling in
FilterVarDynamicReturnTypeExtension
(#2120), thanks @herndlm! - Add
Type::isScalar()
(#2149), thanks @herndlm! - Removed unused fileName in FetchedNode (#2150), thanks @staabm!
- Removed unused NodeList class (#2151), thanks @staabm!
- Add namespace to bug-8573.php / fix
GenericsIntegrationTest
(#2147), thanks @herndlm!