All Versions
71
Latest Version
Avg Release Cycle
8 days
Latest Release
1233 days ago
Changelog History
Page 7
Changelog History
Page 7
-
v3.4.11 Changes
August 09, 2019π Features
- Psalter : Undefined Variables can now be removed automatically (#1967) - thanks @jeffreyyoo!
- 0οΈβ£ Psalm now warns about missing interface return types (#1846) and bad default types for static properties (#1974)
π Bugfixes
- π Improve DOM property types (#1951), thanks @ShiraNai7!
- π Allow comparisons to templated param classes (#1970)
- Language Server : fix erroneous property not initialised issues (#1973)
- π Fix handling of
setcookie
(#1972) - Prevent fatal error with empty
@template-extends
docblock (#1963) - No false positives about unused variables after
continue
(#1980) - Prevent PHP Notice with malformed docblock type (#1563)
ComplicatedExpressionException
should no longer cause a fatal error onelseif
(#1985)- π Support fully-qualified param types in
@method
annotations (#1989) - Psalter : Allow full replacements to take precedence over minor alterations, avoiding corrupted output (#1991)
- π Fix
setlocale
param types (#1988), thanks @BackEndTea!
-
v3.4.10 Changes
July 23, 2019π Bugfixes
- π Improve refinement of templated types (#1886, #1927, #1931, #1932)
- prevent a
LogicException
when scanning files nestedclass_exists
checks (#1925) - invalidate cached grandchild of stubbed class (#1935)
- π fix evaluation of
a/b/c/d/../../../../
(#1940) @inheritdoc
leads to@throws
being inherited - thanks @smelesh (#1945)- π allow assertions on templated values (#1937)
- π support use of a third arg in
explode
that can lead to empty output (#1953) - Language Server add support for completing built-in class names (#1863)
- Language Server allow signature help to kick in for root functions without proper scope
- π Allow templated assertions on already-templated values (#1956)
- π Improve detection of unused private properties - thanks @2e3s (#1962)
- π Improve file path resolution on Windows
-
v3.4.9 Changes
July 09, 2019π Fixes an issue with negated iterable/array assertions introduced in 3.4.8 (#1922)
-
v3.4.8 Changes
July 09, 2019π 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)
-
v3.4.7 Changes
June 28, 2019π Bugfixes
π Fixes an issue (#1859) introduced in 3.4.3 where conditional definitions of functions e.g.
if (!function\_exists("some\_function")) {function some\_function() {...}}
would result in a crash
some_function
does exist in the runtime, and it's internal.Also fixes a similar issue (#1860) where Psalm could crash while analysing blocks surrounded by a
if (class_exists(Foo::class))
if Psalm thinksFoo
always exists. -
v3.4.6 Changes
June 27, 2019π Features
- π makes Psalm 20% faster by reducing object cloning
- β added a SonarQube report type - thanks @lewinski! (#1808)
- π trailing commas are now supported in object-like array docblocks (#1802)
- add documentation for the assertion syntax (#1810)
- Language server: improve autocompletion of methods and properties - thanks @iluuu1994 (#1831, #1834)
- Language server: improve legibility of on-hover definitions - thanks @iluuu1994 (#1833)
- Language server: add jump-to-definition of docblock types (#1832)
- Language server: jump between parentheses having autocompleted method name - thanks @iluuu1994 (#1839)
- warn when running Psalm with
pcre.jit=1
on Macs with PHP 7.3
π Bugfixes
- π improve treatment of
if (class_exists(Foo::class)) {...}
when the class doesnβt exist in Psalm's world (#1801) - π complain about
DeprecatedClass
when using a deprecated class's constants (#1803, #1814) - π¨ psalm-refactor : ensure directory exists before moving file (#1802)
- π fix expected argument count message when too-few params are provided (#1811)
object&Foo
is converted toFoo
when resolving templates (#1813)- the effect of
array_filter($arr, 'is_numeric')
(and relatedis_...
functions) is now interpreted correctly (#1816) - π allow comparison to
static
withinstanceof static
(#1458) - π handle intersection when expanding template (#1818)
- π improve behaviour of
callable
reconciliation (#1825) - donβt allow object-like array to be unioned with
mixed
(#1826) - resolve docblock
self
references in the scanning phase (unless inside traits) (#1827) - Language Server always show references to method, even if arguments are incomplete (#1835)
- prevent invalid templated returns - thanks (#1842, #1845)
- π allow static class strings to be compared (#1848)
- π improve messaging about invalid types with hyphens in (#1852)
- π allow
MethodParamsProvider
to accept an empty array - thanks @Daeroni (#1854)
-
v3.4.5 Changes
June 16, 2019π Features
- psalm-language-server :
--enable-autocompletion
is now enabled by default, after a ton of great work by @joshdifabio - π¨ psalm-refactor : allow multiple class renames at once
- π¨ psalm-refactor : allow multiple method renames when the methods reference one another
- there's now a non-zero exit code when a config file is not found (#1779)
- PHP 7.4 : nullable typed properties e.g.
public ?int $foo
are now also checked for initialisation (#1787) - π
DeprecatedFunction
is now emitted when using a deprecated function (#1793) - slightly improved readability for object-like array output in error messages, thanks @Kocal (#1708)
π Bugfixes
- interface
@template-extends
wasn't being inherited properly (#1766) - get rid of notice with a by-ref array assignment with an unmet var-id (#1770)
T<true>
orT<false>
are now acceptable as standins for ofT<bool>
(#1775)--report-show-info=false
now works as advertised (#1773)- psalm-language-server fixed erroneous behaviour on save seen in Vim and Sublime (#1780)
- π allow
scalar
type insprintf
(#1792) - missing static class constants are now complained about (#1791)
- π allow
uksort
to acceptversion_compare
(and improve handling of multiple-signature callmap options) (#1781) UndefinedFunction
no longer causes analysis to stop in the given block (#1790)- Missing docblock brackets are now detected (#1784)
- psalm-language-server :
-
v3.4.4 Changes
June 10, 2019π This minor release adds inference of property types from simple constructors. It can be turned off with
inferPropertyTypesFromConstructor="false"
in the config.π Bugfixes
- β adds
psalm-refactor
binary to composer sovendor/bin/psalm-refactor
actually works...
- β adds
-
v3.4.3 Changes
June 10, 2019π Features
- π¨ psalm-refactor - classes can now be renamed and moved, and instance methods can be moved into subclasses. More info here.
- the presence of a
class-string<T>
-typed param automatically constraints the@template
typeT
to an object, if no constraint is present (#1738) - you can now specify that reports should only contain errors (#1617)
π Bugfixes
- the
uopz
extension is now always disabled to prevent crashes (#1741) - π
DeprecatedInterface
can now be suppressed withreferencedMethod
(#1746) - the effect of
is_countable
is now understood (#1742) - some more issues are suppressed during property constructor checks (#1764)
- β‘οΈ Windows baseline files should be preserved during updates (#1747)
- π better compatibility with Symfony 4.3 (#1752)
-
v3.4.2 Changes
June 05, 2019This bumps requirements so Psalm can be installed in Symfony 4.3