Psalm v3.4.8 Release Notes
Release Date: 2019-07-09 // almost 5 years ago-
🔋 Features
- Language server - class autocompletion now adds uses automatically (#1822)
- Language server - @iluuu1994 added support for signature help, which shows you the expected function/method argument types as you're adding/updating those calls (#1862)
- Language server - go to definition now works for variables too, showing where they were first defined (#1888)
- ➕ added support for unions in
@psalm-assert
annotations (#1897, #1911) - 👍 allow resolving directories from the config location (opt-in) - thanks @bdsl! (#1910)
@psalm-assert-if-true
can now make assertions on$this
(#1915)
🛠 Bugfixes
- 👍 allow spread operators for inferred property types (#1873)
- ⬇️ reduce memory leaks
- 👌 improve display of
iterable<TKey, TValue>
types (#1875) - 👍 allow any
bool
input formicrotime
(#1876) - Better signature for
ImagickDraw
methods - thanks @Daeroni - and forcal_from_jd
- thanks @vadim2991 class_alias
statements are no longer taken into account when inside aclass_exists(Nonexistant::class)
conditional (#1891)- dead code detection - improved after @TysonAndre reported some dead code in Psalm's own codebase (#1899, #1900, #1901)
- template traits when they're included in classes that extend another template (#1902)
- inherit templates from parent interfaces (#1903)
- 👍 allow empty array to be coerced to a mixed one when templated (#1886)
- 👍 allow comparisons to templated class strings (#1885)
- no memoization of magic properties after calling the magic set method (#1869)
- closures can now contain
@var
docblocks with references to templates (#1865) - exit explicitly when
composer.json
is invalid (#1907) - populate the scope appropriately with
catch
variables if thetry
block always leaves (#1909)