Releases: bmewburn/vscode-intelephense
Releases · bmewburn/vscode-intelephense
1.13.0
[1.13.0 - 2024-12-17] Pre-release
Added
- PHP 8.4 class member access on instantiation without parentheses.
- PHP 8.4 property hooks.
- PHP 8.4 asymmetric visibility.
- PHP 8.4 deprecated diagnostic for implict nullable parameters.
- Support
@mixin
template types. This improves type inference when using Laravel 11. intelephense.diagnostics.memberAccess
setting that controls whether to show diagnostics relating to member access. Defaults totrue
.
Changed
- Default PHP version now 8.4.
- Updated stubs.
- Parent and Overrides code lens no longer shown above methods that have no parent or overrides to reduce clutter.
Fixed
- Crash when parsing phpdoc with conditional type containing newlines.
Traversable
not treated as covariant toiterable
.- Incorrect types for some
$_SERVER
elements. - Enums not recognised as implementations of interfaces.
- Incorrect parse error for empty heredoc.
- Type not narrowed when using nullsafe operator.
- Template types not resolved for
__invoke
. - Go to type definition not working for foreach value.
- Incorrect formatting of comments above
default
in match expression. - False method signature diagnostics when using older versions of PHP.
- Variable type incorrectly inferred as
never
inside while loops with logical conditional expression. - False readonly property error when initialising trait declared property in exhibiting class.
- Bad range formatting when selecting part of a multiline call chain.
- Template types not resolved when passing
Iterator
toiterable
constraint.
1.12.6
[1.12.6 - 2024-09-09]
Fixed
- Template types incorrect when implementing
Iterator
. Traverable
template types lost.assert
not working when fully qualified.- False
unset
variables after logical expression when usingor
operator. - No completion suggestions for variables declared in array destructure.
- Don't reduce function return types to minimal type as eagerly.
- False unused symbol diagnostic for promoted property with no visibility modifier.
1.12.5
[1.12.5 - 2024-08-29]
Fixed
- Performance issue with large arrays. Array shapes are now only generated internally on arrays with 20 or less elements.
- Go to type definition not working when origin is an assignment expression.
- Type lost when built in constants
true
,false
, andnull
are prefixed with backslash. static
as a template type argument resolving to wrong type.- False method signature compatibility errors for built-in PHP symbols when targeting PHP versions < 8.1.
- Incorrect and cut-off completion suggestions when triggered by
use
inside a top level anonymous function. - Don't eagerly reduce unions when substituting templated types.
- False return type error diagnostics when calling templated parent methods.
1.12.4
[1.12.4 - 2024-08-19]
Fixed
- Parameter type showing
unset
for anonymous functions declared within an unpacked array. - Callable signatures with
static
typed parameter losing template type args. - Parameter type showing
unset
for anonymous functions declared within an anonymous class header. - Licence key not syncing across machines in VSCode.
1.12.3
[1.12.3 - 2024-08-13]
Fixed
- Hover, go to definition not working on phpdoc
@see
FQSEN. - Callable signatures with
static
typed parameter resolving to incorrect type. - Type inference within
for
statements with no control expression. - Should not do additional type checks on variables that have
unset
type. - Variables with type
null
not taking on by ref parameter type when passed as argument. - Anonymous function parameters showing as undefined when function declared inside array.
- Variables assigned to in
try
block have typeunset
incatch
clause.
1.12.2
1.12.1
1.12.0
See 1.11.x Pre-Release
Added
- Code lens for references, abstract/interface implementations, trait usages, method overrides, method parent. Code lenses are disabled by default and can be enabled by setting the
intelephense.codeLens.references.enable
,intelephense.codeLens.implementations.enable
,intelephense.codeLens.usages.enable
,intelephense.codeLens.overrides.enable
,intelephense.codeLens.parent.enable
settings totrue
respectively. Premium - Find all references for
__construct
. - Object shape property hover.
Changed
- Built in array function stubs now have templated definitions.
- Improved DOMNodeList::getIterator stub
Fixed
- Comparing class-string in conditional return yielding incorrect type when subject is subtype of test type.
- No type inference and false undefined property when accessing property of intersection type with object shape component.
@internal
annotation missing description in hover.
1.11.8 Pre-Release
Fixed
- Lost variable types after
xor
expr;
1.11.7 Pre-release
Changed
- Reducing to minimal union types is now less eager.
Fixed
- False undefined class constant in unreachable code.
- Cannot read properties of undefined (reading 'length') intelephense.js:2:2322561