| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| 6.0.6 source code.tar.gz | 2026-06-22 | 2.2 MB | |
| 6.0.6 source code.zip | 2026-06-22 | 2.6 MB | |
| README.md | 2026-06-22 | 4.5 kB | |
| Totals: 3 Items | 4.7 MB | 0 | |
New features:
- Add
non-falsy-stringtype (excludes both''and'0'); alignnon-empty-stringwith PHPStan/Psalm semantics to only exclude''—!== ''now narrows tonon-empty-stringwhileif ($x)narrows tonon-falsy-string(#5514, #5517)
Bug fixes:
- Fix
PhanUndeclaredVariablefalse positive for the implicit$valueparameter in property set hooks that have no explicit parameter node (#5512, #5513) - Fix
PhanImpossibleTypeComparisonfalse positive when comparing a string to'0'after narrowing out''(#5514, #5517) - Fix
class_exists()check losing the<T>generic parameter fromclass-string<T>variables inside the if-branch (#5515, #5518) - Fix
PhanInvalidConstantExpressionfalse positive for closures and arrow functions in constant expressions on PHP 8.5 (#5516, #5519) - Fix false positive
PhanPossiblyUndeclaredVariablefor variables assigned in atryblock when there is nocatch(#4419, #5520) - Fix parsing failure for union types with spaces around
|or&inside array shape (array{...}) and generic (array<...>) annotation syntax (#5521, #5524) - Fix false positive
PhanTypeMismatchArgumentwhen a@template T of A|Bparameter is passed to a function expectingA|B(#5522, #5525) - Fix
PhanConstantTypeMismatchInheritancefalse positive for covariant class constant overrides where the child's type is a proper subtype of the parent's (#5528, #5530) - Fix false positive
PhanAccessReadOnlyPropertywhen using??=as a lazy-initialization pattern on non-nullable nativereadonlyproperties (#5531, #5532) - Fix
selfkeyword being incorrectly rejected inside arguments of attributes applied to classes (#5536, #5537) - Fix false positive
PhanIncompatibleRealPropertyTypewhen a child class redeclares a property with the same intersection type as the parent — intersection types are now interned so identity comparisons work correctly (#5534, #5539) - Fix
PhanReadOnlyPrivatePropertyfalse positive when using compound assignment operators (??=,+=, etc.) on array keys of a private property (#5538, #5540) - Fix false positive
PhanTypeMissingReturnRealfor: never-declared functions whose last statement calls anothernever-returning userland function — was intermittent due to AST node flag caching (#5535, #5541) - Fix child class properties that redeclare a parent property (e.g. to widen visibility or via
@inheritDoc) without their own type annotation being assigned an empty union type instead of inheriting the parent's type (#5544, #5545)
Miscellaneous:
- Fix
Redis::mget()andRedis::mset()stub signatures (#5529) - Fix
Redis::setnx()andRedisCluster::setoption()stub parameter definitions (#5546) - Fix
StringFunctionPlugincrash withUndefined array key 1when checked functions are called with named arguments that skip positional parameters (#5547, #5548) - Update Composer to 2.9.8 in Docker test environment (#5533)