Psalm v3.4.6 Release Notes

Release Date: 2019-06-27 // almost 5 years ago
  • πŸ”‹ 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 to Foo when resolving templates (#1813)
    • the effect of array_filter($arr, 'is_numeric') (and related is_... functions) is now interpreted correctly (#1816)
    • πŸ‘ allow comparison to static with instanceof 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)