Skip to content

Releases: vimeo/psalm

4.22.0

27 Feb 10:57
fc2c6ab
Compare
Choose a tag to compare

What's Changed

Fixes

New Contributors

Full Changelog: 4.21.0...4.22.0

4.21.0

20 Feb 00:33
d8bec4c
Compare
Choose a tag to compare

What's Changed

Deprecations

Features

  • Resolve DIR / FILE when const/variable is used for include by @tomasz-kusy in #7585
  • add ReflectionIntersectionType stub by @orklah in #7621
  • Allow config to define thread count (4.x) by @M1ke in #7633
  • add phpredis stubs by @kkmuffme in #7614
  • Add configuration option to disable @var parsing everywhere except for properties. by @danog in #7434

Fixes

  • Strip colours from success message by @weirdan in #7620
  • Honour global function suppressions for UndefinedFunction by @weirdan in #7657
  • Update return type for mysqli::connect_error by @morozov in #7660
  • Correct name of ErrorException::__construct $line param by @chloekek in #7659
  • Fix false positive for unused variable in try (fixes #7613). by @AndrolGenhald in #7664
  • Throw exception if file_put_contents failed by @dmitryuk in #7690

New Contributors

Full Changelog: 4.20.0...4.21.0

4.20.0

03 Feb 20:54
f82a70e
Compare
Choose a tag to compare

What's Changed

Deprecations

  • [TASK] Add AfterFunctionLikeAnalysisEvent::getFunctionlikeStorage by @ohader in #7532

Fixes

  • Fix for Exception->getCode return type provider by @VincentLanglet in #7525
  • fix wrong detection of purity by @orklah in #7545
  • Fix object constant inference by @klimick in #7542
  • Handle first class callable on unknown functions by @orklah in #7546
  • Revert "PHP 8.1: Report missing typehints in overridden native methods" by @weirdan in #7539
  • Ensure trait_exists() always returns bool by @Ocramius in #7554
  • sealed keyed arrays by @orklah in #7558
  • AtomicStaticCallAnalyzer: clear tmp var from context by @vincent4vx in #7561
  • improving error message for Could not resolve config path by @phptest2 in #7573

Internal changes

New Contributors

  • @phptest2 made their first contribution in #7573

Full Changelog: 4.19.0...v4.20.0

5.0.0-alpha1

03 Feb 01:00
cfce264
Compare
Choose a tag to compare
5.0.0-alpha1 Pre-release
Pre-release

What's Changed

Removed

Deprecations

  • [TASK] Add AfterFunctionLikeAnalysisEvent::getFunctionlikeStorage by @ohader in #7532

Features

Fixes

Docs

Internal changes

New Contributors

Full Changelog: 4.19.0...5.0.0-alpha1

4.19.0

28 Jan 06:35
a2ad69a
Compare
Choose a tag to compare

What's Changed

Deprecations

Features

  • Errors on superior/inferior reconciliation by @orklah in #7335
  • PHP 8.2: seal all properties configuration by @danog in #7242
  • Add support of template for docblock methods by @vincent4vx in #7385
  • Resolve generics of inherited pseudo methods by @vincent4vx in #7430
  • PHP 8.1: Report missing typehints in overridden native methods by @danog in #7363
  • Add configuration option to disable @psalm-suppress all by @danog in #7431
  • Add support of docblock method using parent keyword by @vincent4vx in #7414

Fixes

Docs

  • Fix typo in documentation filename by @danog in #7373

Internal changes

Other changes

  • !!! Deprecate \Psalm\Plugin\RegistrationInterface methods by @ohader in #7455

New Contributors

Full Changelog: 4.18.1...4.19.0

4.18.1

08 Jan 21:44
dda05fa
Compare
Choose a tag to compare

What's changed

Fixed

Full Changelog: 4.18...4.18.1

4.18

07 Jan 08:25
760badd
Compare
Choose a tag to compare

Compatibility

Psalm now required Composer 2.

What's Changed

Deprecations

  • Deprecated Codebase::$php_major_version and Codebase::$php_minor_version properties by @weirdan in #7265
  • Deprecated THtmlEscapedString by @weirdan in #7284

Features

  • Template and variable types inference for methods marked with psalm-if-this-is by @klimick in #7259
  • [Feat]: Initial Support for LSP Code Actions by @tm1000 in #7255
  • Allow assertions on mutable object properties. by @AndrolGenhald in #7252
  • Disallow ksorting lists by @danog in #7019

Fixes

Internal changes

  • Increase composer timeout by @weirdan in #7264
  • Move from deprecated Composer 1 to Composer 2 runtime api by @DeyV in #7239

New Contributors

Full Changelog: 4.17.0...4.18

4.17.0

01 Jan 19:32
6f4707a
Compare
Choose a tag to compare

What's Changed

Features

  • Fix first-class callables with built-in, magic, undefined methods and callable expressions by @trowski in #7232

Fixes

Internal changes

New Contributors

Full Changelog: 4.16.1...4.17.0

4.16.1

26 Dec 08:28
aa7e400
Compare
Choose a tag to compare

What's Changed

Fixes

Full Changelog: 4.16.0...4.16.1

4.16.0

26 Dec 02:17
aea1cba
Compare
Choose a tag to compare

What's Changed

Removed

  • Codebase::$use_referencing_files, Context::$possible_param_types and FunctionLikeStorage::$template_covariants were removed. We do not believe they were used by anyone, thus we don't consider it to be a BC break

Features

Fixes

  • Fix non-empty-literal-string to behave as subtype of non-empty-string (fixes #7095). by @AndrolGenhald in #7105
  • fix reconciliation between positive-int and inferior/superior assertions by @orklah in #7106
  • don't stop analyzing array, even if we already have a type and we can't create an object like by @orklah in #7093
  • fix missing case for displaying varId by @orklah in #7054
  • array_count_values return type for uncertain arrays by @weirdan in #7115
  • Class property issue suppression fixes. by @AndrolGenhald in #7130
  • Fix type inference of closure params by @klimick in #7135
  • Fix closure param type inference with named params by @klimick in #7139
  • Post-assertions in loops by @klimick in #7143
  • fix CI by @orklah in #7153
  • Fix optional arguments in number_format (fixes #7158). by @AndrolGenhald in #7159
  • Fix ldap_set_rebind_proc signature by @villfa in #7145
  • Fixed compatibility with SoapClient by @yethee in #7140
  • display class-strings in keyed arrays syntax and allow using them for assertions by @orklah in #7152
  • ISSUE-5962 Fixed wrong line number for @method annotations by @nowaja in #7157
  • Fix conflicting array_map return provider fake variables. by @AndrolGenhald in #7167
  • Fix faulty comparison with typed closure by @muglug in #7175
  • doesn't infer empty for ReflectionClass::getAttributes without params by @orklah in #7180
  • Fixed ignoreTypeStats & useStrictTypes flag value detection for directories in config by @SMAtaurRahman in #7182
  • fix #7178 again by @orklah in #7189
  • fix other occurences of getAttributes by @orklah in #7190
  • MySqli: some parameters are nullable by @igitur in #7186
  • allow destructuring on a possible null variable as long as there is an array alongside by @orklah in #7193
  • Added pure annotations to enum functions by @ricardoboss in #7194
  • fix(stubs): UnitEnum::cases() can return an empty list by @azjezz in #7197
  • Add early file filtering to FileProvider::getFilesInDir() by @dvz in #7201
  • flag the context as "inside_conditional" when analyzing leftover cases to prevent emitting unused error by @orklah in #7203
  • Restore attributes in ClassConstantStorage by @weirdan in #7217

Docs

Internal changes

  • Remove useless chunk of code in ScopeAnalyzer by @muglug in #7097
  • Use getSingleAtomic() instead of array_values(getAtomicTypes())[0]. by @AndrolGenhald in #7134
  • fix some more expressions that can be replaced by getSingleAtomic by @orklah in #7137
  • Fix parser cache files maintenance by @dvz in #7082
  • Convertion of partials to full imports by @rarila in #7155
  • Set allow-plugins for Composer 2.2 by @villfa in #7149
  • Codingstyle: declare construct & namespace declaration by @rarila in #7165
  • Remove superflous exclude pattern in phpcs.xml by @rarila in #7168
  • Removed misleading parentheses after language construct by @kamil-tekiela in #7183
  • fix wrong handling of flags in context by @orklah in #7195
  • allow phpcodesniffer-composer-installer plugin by @orklah in #7205
  • Workaround for PHPUnit process isolation issue with composer 2.2 by @weirdan in #7208
  • Remove unused in-array assertions by @muglug in #7202

New Contributors

Full Changelog: v4.15.0...4.16.0