Skip to content

Releases: vimeo/psalm

5.24.0

01 May 20:25
462c80e
Compare
Choose a tag to compare

What's Changed

Features

  • Allow specifying flags to Codebase::isTypeContainedByType by @danog in #10829
  • Allow more callable types as subtypes of callable by @weirdan in #10805
  • Report parent being used in callable context when the class does not extend anything by @kkmuffme in #10838
  • Report error for additional deprecated arg types in PHP 8.1/8.3 by @kkmuffme in #10824
  • Add MissingClassConstType Issue by @jack-worman in #10828
  • Enforce parameter names for consistent constructors by @kkmuffme in #10821
  • Add misc missing errors for invalid callable methods by @kkmuffme in #10839

Fixes

  • Forbid named arguments for ArrayAcccess methods by @weirdan in #10804
  • Don't crash on invalid templates by @weirdan in #10806
  • report error for single param name mismatch too since named args can even be used then by @kkmuffme in #10822
  • add support for named arguments for filter_var and filter_input by @pilif in #10815
  • When inside isset, make array fetch result nullable by @edsrzf in #10756
  • Promoted properties missing in extended __construct should report PropertyNotSetInConstructor by @kkmuffme in #10817
  • Updating signature of getmxrr() by @ThomasLandauer in #10847
  • Improve string-int juggle consistency in array keys and display for int-like strings in type by @kkmuffme in #10814
  • Fix storage not available in thread for intersection doc types by @simonberger in #10856
  • Don't emit MissingOverrideAttribute for implicit Stringable implementations by @edsrzf in #10858
  • Specify array return type of session_get_cookie_params by @jorgsowa in #10859
  • Unknown @psalm annotation should not make whole docblock invalid by @kkmuffme in #10885
  • Add mail to impure functions list by @smaddock in #10923
  • Update PHP 8.2 Call map delta with refined types for string comparison functions by @gsteel in #10883

Docs

  • document that @psalm-internal works for namespace + class too by @kkmuffme in #10866

Internal changes

  • fix tests running with other than called PHP binary if called with a non-default PHP binary by @kkmuffme in #10842
  • Explicitly set value in config to fix warning in tests by @kkmuffme in #10843
  • [PHP 8.4] Fixes for implicit nullability deprecation by @Ayesh in #10832
  • Throw exception instead of silently logging issues occurred during scan by @danog in #10902

Other changes

New Contributors

Full Changelog: 5.23.1...5.24.0

5.23.1

11 Mar 20:36
8471a89
Compare
Choose a tag to compare

What's Changed

Fixes

  • Fixed analysis of existing static methods if the __callStatic() method exists by @issidorov in #10812

Full Changelog: 5.23.0...5.23.1

5.23.0

09 Mar 19:40
005e318
Compare
Choose a tag to compare

What's Changed

Features

  • Update PHP 8.2 stubs to include SensitiveParameterValue by @gsteel in #10726
  • Add list of statements to BeforeFileAnalysisEvent by @ohader in #10728
  • Forbid iterating over generators with non-nullable send() by @weirdan in #10697
  • Initial support for named parameters for callables by @weirdan in #10772

Fixes

  • Improve randomizer stubs by @danog in #10709
  • Fix detecting magic static methods by @issidorov in #10704
  • Fix non-empty-lowercase-string handling with literal non-lowercase strings by @kkmuffme in #10722
  • Fix RiskyTruthyFalsyComparison irrelevant errors when there is no explicit truthy/falsy type by @kkmuffme in #10733
  • Allow Override attribute to be used in pure contexts by @weirdan in #10734
  • Revert "Allow tainted numerics except for 'html' and 'has_quotes'" by @ohader in #10729
  • Fix loading stubs from phar file on Windows by @weirdan in #10748
  • Fix a false flag issue with InvalidConstantAssignmentValue by @MelechMizrachi in #10738
  • Set inside_isset false when analyzing ArrayDimFetch index by @edsrzf in #10752
  • Set inside_isset = false when analyzing arguments by @edsrzf in #10753
  • Fix PHP notice - crash on invalid taint-escape by @kkmuffme in #10760
  • Fix version comparison for @since by @weirdan in #10764
  • Since annotations outside phpstub should not infer php version by @kkmuffme in #10769
  • Backport WeakMap iterator fix from master by @weirdan in #10778
  • Namespace anonymous classes by @weirdan in #10779
  • Update CallMap for sqlsrv_connect and sqlsrv_errors to match reflection by @theodorejb in #10781
  • $resource parameter of mkdir() is nullable since PHP 7.3 by @weirdan in #10802
  • Use wider class-string when combining class strings with intersections by @weirdan in #10800

Internal changes

New Contributors

Full Changelog: 5.22.2...5.23.0

5.22.2

22 Feb 23:40
d768d91
Compare
Choose a tag to compare

What's Changed

Fixes

Full Changelog: 5.22.1...5.22.2

5.22.1

15 Feb 22:56
e9dad66
Compare
Choose a tag to compare

What's Changed

Fixes

Full Changelog: 5.22.0...5.22.1

5.22.0

14 Feb 04:42
fe2c67e
Compare
Choose a tag to compare

What's Changed

Features

  • Allow inline comments in typedef shapes by @weirdan in #10623
  • allow typedef imports from any kind of classlike by @weirdan in #10625
  • Allow enum cases to be global constants by @weirdan in #10634
  • New InvalidOverride issue for Override attribute by @edsrzf in #10644
  • Analyze dynamic names for static property and const fetches by @edsrzf in #10629
  • New MissingOverrideAttribute issue by @edsrzf in #10651
  • Flag stdClass::__construct() calls that have arguments by @weirdan in #10661
  • Improve Reflection stubs by @vudaltsov in #10091
  • Forbid constructors from returning any values by @weirdan in #10686
  • Report first class callables generated for unknown static methods by @weirdan in #10691
  • Process @psalm-this-out on __construct() as well by @weirdan in #10690
  • Report invalid number of arguments for psalm-taint-* by @staabm in #10699

Fixes

Internal changes

  • Drop unused local composer repo by @weirdan in #10647
  • Clarify that Pull request labels failure is to be resolved by maintainers by @weirdan in #10649
  • Fix unstable hasFullyQualified(Interface|Enum)() by @weirdan in #10603
  • Revert partial mistakenly pushed fix by @danog in #10671

Full Changelog: 5.21.1...5.22.0

5.21.1

01 Feb 01:05
8c473e2
Compare
Choose a tag to compare

What's Changed

Fixes

  • Fix baseline loading for path specified on the command line by @weirdan in #10628

Full Changelog: 5.21.0...5.21.1

5.21.0

30 Jan 23:15
04ba935
Compare
Choose a tag to compare

What's Changed

Features

Fixes

Internal changes

New Contributors

Full Changelog: 5.20.0...5.21.0

5.20.0

18 Jan 12:21
3f284e9
Compare
Choose a tag to compare

What's Changed

Features

  • report error for non-strict or empty comparison on truthy+falsy union by @kkmuffme in #10502

Fixes

Full Changelog: 5.19.1...5.20.0

5.19.1

17 Jan 11:48
b958349
Compare
Choose a tag to compare

What's Changed

Fixes

  • Deprecated Template Classes are not ignored by @psalm-suppress DeprecatedClass by @samlitowitz in #10518
  • Implement __set method in SimpleXMLElement stub by @kthaler in #10536
  • Make getrandmax type more specific and unserialize to require class-string by @kkmuffme in #10540
  • Fix mb_get_info can return null - CI failing bc of reflection by @kkmuffme in #10543
  • make basename & dirname return types more specific by @kkmuffme in #10545
  • add support for extract to set variables for keyed arrays and respect EXTR_SKIP by @kkmuffme in #10544
  • remove redundat directory separator which caused "//" in path not found errors by @kkmuffme in #10542
  • Fix empty literal string becomes non-empty-string by @kkmuffme in #10499

New Contributors

Full Changelog: 5.19.0...5.20.0