You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@bdsl added detection of property type variance in #5131. Non-invariant property types causes a fatal error if the property types are specified in PHP code, but can also signal issues with your code if they're specified in docblocks. Psalm has two separate issues for this, NonInvariantPropertyType and NonInvariantDocblockPropertyType.
Taint Analysis@adrienlucas added an option to dump the taint flow graph for debugging purposes (#5080)
Language Server@joehoyle added support for static class method completion (#5085) and completions for array keys (#5105) and constants (#5115)
Thanks to @weirdan, Psalm now emits exit code 1 only when it has internal issues. When it finds issues with your code it emits code 2 (#5087)
@weirdan added checks to prevent invalid implementation of Traversable (#5171)
Changes
The meaning of non-empty-string has been clarified to mean "every string except the empty string ''". A new type, non-falsy-string, represents "every string except the empty string and the string '0'". This follows PHP's treatment of falsiness, where the string '0' is treated as false.
Bugfixes
Don't discard staticness of objects when combining types (#5029)
@orklah fixed #5021 by having Psalm calculate more literal values
@lukasbestle fixed #5037 by removing the SimpleXMLIterator's reliance on the new \Stringable interface
avoid false-positive in a dynamic property fetch inside a ternary
prevent complex assertions from crashing reflection (#5025)