Releases: vimeo/psalm
Releases · vimeo/psalm
5.22.2
5.22.1
5.22.0
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
- Fix ownerDocument type in dom-ext classes by @fluffycondor in #10619
- Fix numeric scalar validate filter var input return type wrong by @kkmuffme in #10621
- Stable baseline by @weirdan in #10633
- Allow sebastian/diff v6 by @simPod in #10639
- CallMap: Adjust return type for
inotify_add_watch()
toint|false
by @UlrichEckhardt in #10637 - Fix check-type when using builtin types from within a namespace by @robchett in #10648
- Do not add
callable
as a native property type by @weirdan in #10654 - Fix additional places where base_dir was broken due to missing separator by @kkmuffme in #10630
- Late binding of enum cases by @weirdan in #10655
- Suppress
UndefinedClass
inwhatever_exists()
by @weirdan in #10659 - Fix parsing magic method annotations by @issidorov in #10665
- Strip callmap prefixes from parameter names by @weirdan in #10666
- Narrow
ord()
return type toint<0,255>
by @weirdan in #10676 - Template union object incorrect assertions by @robchett in #10677
- Don't show backtrace in
InvalidDocblock
issue message by @weirdan in #10679 - Class consts in array shapes by @weirdan in #10678
- Prevent mixed|null by @robchett in #10675
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
5.21.0
What's Changed
Features
Fixes
- Fix #10552 by @danog in #10572
- Unit test improvements for php-parser 5 by @edsrzf in #10574
- Fix template replacement edge case by @klimick in #10586
- Switch condition order by @edsrzf in #10594
- Partial revert "Fix auto completion by partial property or method" by @issidorov in #10588
- [LSP] Add issue type in description by @weirdan in #10607
- Do not validate callable arguments in lenient contexts by @weirdan in #10601
readgzfile()
is impure by @weirdan in #10600- Allow properties on intersections with enum interfaces by @weirdan in #10599
key_exists()
is an alias forarray_key_exists()
by @weirdan in #10598- Fix language server running with
opcache.save_comments=0
by @weirdan in #10614 - Report
MissingConstructor
for natively typed mixed properties by @weirdan in #10615
Internal changes
- Bump actions/cache from 3 to 4 by @dependabot in #10584
- Baseline update by @jorgsowa in #10593
- Re-work CheckTrivialExprVisitor by @edsrzf in #10612
- Minor php-parser tweaks by @edsrzf in #10605
New Contributors
Full Changelog: 5.20.0...5.21.0
5.20.0
5.19.1
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
- @samlitowitz made their first contribution in #10518
- @kthaler made their first contribution in #10536
Full Changelog: 5.19.0...5.20.0
5.19.0
What's Changed
Features
- Reduce memory consumption of caching and parallel processing without igbinary by @sj-i in #10532
- filter_input & filter_var return type more specific by @kkmuffme in #10498
Fixes
- strtok always returns a non-empty-string when it does not return false by @kkmuffme in #10497
- Fix #10512: Fixed SessionUpdateTimestampHandlerInterface parameter names by @zerkms in #10524
- Fix GH-10465 by @florisluiten in #10483
- Fix callable without args not handled correctly by @kkmuffme in #10500
- Add error when using readonly property in by-ref arg by @kkmuffme in #10505
- fix: #10496 #10503 by @ging-dev in #10508
New Contributors
- @florisluiten made their first contribution in #10483
Full Changelog: 5.18.0...5.19.0
5.18.0
What's Changed
Features
Fixes
- Fix #10460 by @danog in #10464
- Emit AfterCodebasePopulatedEvent even on partial scans by @danog in #10457
- Small assertion fix by @danog in #10455
- Fix shaped array class string key combination by @danog in #10450
- Fix remaining POSIX-only absolute path detection by @theodorejb in #10452
- dont combine empty string with numeric-string by @kkmuffme in #10459
- Fix type not equal when parent by @kkmuffme in #10477
- Use same parameter names in stubs by @danog in #10480
- fix false positive ArgumentTypeCoercion for callback param by @kkmuffme in #10454
- report error for invalid array key type by @kkmuffme in #10481
- fix literal int/string comparisons only using one literal by @kkmuffme in #10484
- add InvalidArgument error when passing false to true param by @kkmuffme in #10488
- Fix Uncaught RuntimeException: PHP Error: Uninitialized string offset 0 when $pattern is empty by @iMu3ic in #10489
Internal changes
- fix composer scripts running with inconsistent php versions by @kkmuffme in #10463
- update fidry/cpu-core-counter dependency by @kkmuffme in #10456
- fix psalm v4 hardcoded in tests by @kkmuffme in #10475
New Contributors
Full Changelog: 5.17.0...5.18.0
5.17.0
What's Changed
Features
Fixes
- Update MongoDB stubs for 1.17 by @alcaeus in #10402
- Fix backtick analysis by @danog in #10409
- Declare we do not support document highlighting by @tm1000 in #10408
- update define types to be correct by @kkmuffme in #10423
- Fix return type of DOMXPath::query by @nielsdos in #10443
- Fix CLI -r error by @kkmuffme in #10442
- Use correct file path while adding unused suppressions for virtual __… by @danog in #10434
- Restore support for null coalesce on match expressions by @tscni in #10422
- Fix static magic method pureness not being inherited from traits by @tscni in #10429
- Fix POSIX only detection of absolute paths by @rarila in #10441
- Emit UnusedPsalmSuppress issues for suppressed issues already removed by @danog in #10431
- Use keyed arrays when assigning literal union keys & assertion fixes by @danog in #10439
Internal changes
New Contributors
Full Changelog: 5.16.0...5.17.0