intelephense
1.14.41.16.1
CHANGELOG.mdCHANGELOG.md+132
Index: package/CHANGELOG.md
===================================================================
--- package/CHANGELOG.md
+++ package/CHANGELOG.md
@@ -1,6 +1,138 @@
# Change Log
+## [1.16.1 - 2025-11-22]
+
+#### Fixed
+- Stack overflow when determining return type of dynamic call.
+- PHPDoc with `$this` as a type not recognised.
+- False cannot access member from scope diagnostics when `__call` and `__get` could be used to access non public members.
+- Only the first class constant shown as completion suggestion when using comma separated declarations and PHPDoc.
+- Variables declared in an array element showing as undefined in subsequent elements.
+- Promoted property with setter hook showing `$value` parameter as undefined.
+
+## [1.16.0 - 2025-11-20]
+
+#### Added
+- Initial support for PHP 8.5.
+
+#### Changed
+- Default PHP version now 8.5.
+
+#### Fixed
+- False undefined variables when declared in a `for` loop initialser and referenced in the following `for` loop initialser.
+- False undefined variables when declared in an argument list and referenced in the following argument.
+- Modifying a variable array type after a loop can affect the variable array element type within the loop.
+- `@param-out` and `@param-closure-this` details not showing in hover.
+- Hover links not wrapped in `<>` and therefore not clickable.
+- Symbol outline failing if `@property` property names are missing `$` prefix.
+- False type errors when assigning a generic type to a declared type which does not have type arguments.
+- Omitting template type arguments causing type errors because of unresolved template.
+
+## [1.15.3 - 2025-11-17]
+
+#### Fixed
+- Template constraints not resolving properly if constraint contains reference to another template.
+- Template types not resolving properly in conditional types.
+- Undefined superglobals after indexing with files open.
+- `array_map` callback parameters inferred as `mixed` if they have a type declaration.
+- PHPDoc leaking to subsequent statements.
+- Anonymous class properties showing as undefined.
+- `[]` as an `@method` parameter default value not parsed.
+- `void` being included as part of union in inlay hint return type.
+- Return types from duplicate methods/functions being reduced to minimal type when unioned instead of previous version behaviour of non-minimal unions.
+- Property types not being inferred from constructor as a fallback when no type is declared/annotated.
+- HTML/JS/CSS language features not working until edits made to the HTML/JS/CSS.
+- `$this` type narrowing not working.
+- Go to definition from a callable array using `__CLASS__` as the scope not working.
+- Removed space at end of `<?php` suggestion.
+
+## [1.15.2 - 2025-11-13]
+
+#### Fixed
+- Several cannot read prop of undefined and range errors.
+- Incorrect suggestion for function when class of same name has been imported.
+- Incorrect indentation when accepting override/implementation suggestion.
+- Incorrect type inference when iterating ArrayIterator and subclasses.
+- False type error, wrong type inlay hint and bad anon function suggestion when expected signature has a variadic paramter.
+
+## [1.15.1 - 2025-11-12]
+
+#### Fixed
+- Formatting broken for mixed PHP/HTML when PHPDoc used.
+- Undefined variables in functions and methods when preceeding code edited to add/remove new lines.
+- `class_alias()` not working if class name argument is a string literal instead of `::class` constant.
+- `@method` parsing broken for `static` methods.
+- PHPDoc that follows an abstract method being ignored (causing CI4 Builder undefined methods).
+- `global $argv` declaration showing undefined variable.
+- Function reported as undefined when defined in an encapsulating function.
+- False not all paths return value diagnostic when a custom `never` function is called.
+
+## [1.15.0 - 2025-11-11]
+
+#### Added
+- Support for LSP `CompletionItemLabelDetails`.
+- Support parsing inline comments in array shapes.
+- Diagnostic when accessing members that are not visible from scope. Previously they were reported as undefined members.
+- Completion suggestions for outer scope variables, with additional use clause edits, when inside anonymous functions.
+- Suggestions for anonymous function signature is call argument context.
+- Fallback to an appropriate type for `non-empty-mixed`.
+- Support conditional types for parameters.
+- `is_subclass_of` type narrowing.
+- Suggestions when comparing to a variable with literal union type in switch, match, equality contexts.
+- Array key suggestions when assigning sub-array to array shape.
+- Setting to control font case for parameter and property name suggestions. `intelephense.completion.parameterCase` (default `camel`) and `intelephense.completion.propertyCase` (default `snake`).
+- Support for `@param-closure-this`.
+- Support for `@param-out`.
+- Support relative links in PHPDoc. Relative URIs wil be resolved to an absolute URI relative to the current file. URIs without any `.` or `..` prefix will be resolved relative to the workspace folder.
+- Added completion suggestions relative to existing partial use declarations. Must be enabled with `intelephense.completion.suggestRelativeToPartialUseDeclaration`. The setting value is the maximum number of namespace segments which can appear in the suggested edit. Defaults to `0` (disabled).
+- Support for `MyClass::*` wildcard and non-wildcard syntax for class constant union types in PHPDoc.
+- Support for constants in PHPDoc union types. Constants must be UPPERCASE and must be fully qualified to avoid name resolution ambiguities with object types.
+- Auto-closing of short tag echo (`<?=`). Can be turned off with `intelephense.shortOpenEchoAutoClose`. VSCode only.
+- Support for inlay hints. Hints are shown for call declaration return types, anonymous function parameter types, and call argument parameter names. Can be turned off with `intelephense.inlayHint.returnTypes`, `intelephense.inlayHint.parameterTypes`, and `intelephense.inlayHint.parameterNames` respectively. **[Premium](https://intelephense.com)**
+- Visiblity modifiers are now shown in outline.
+- Support for `SignatureHelp.activeSignature`.
+- Suggest variable names in `compact`.
+- Support for `class_alias`.
+- Added a document link provider to navigate on click to required/included files. **[Premium](https://intelephense.com)**
+
+
+#### Changed
+- Removed workspace file limitation. Larger workspaces will consume more resources.
+- Suggest trait names in all contexts not just in `use` clauses.
+- Type, function, constant suggestions now use contiguous substring searching.
+- Modified suggestion sort order via sortText property to improve suggestion order 🤞.
+- Now more tolerant of FQSENs that aren't fully qualified in `@see`, `@uses`.
+- Override suggestions are now shown without having to first qualify the context with a visibility modifier or `function`.
+- Improved Workspace symbol search. Search now uses contiguous substring matching. For example `mfc` would find `my_function`. Searching can also be done using the fully qualified structural element name (FQSEN) (or part there-of) of the symbol. This can narrow down the type of symbol as well. For example `mc:f(` would find the method `MyClass::foo()`.
+- Updated and improved various stubs.
+- For performance reasons, only named function call expressions will be analysed for `never` return types (eg `dd()`). Previously, all call expressions were analysed. A workaround for this limitation is to use the patterns `return $foo->never();` or `$test || throw $foo->never()` to declare that the path exits. **! BREAKING !**
+- Method override/implementation suggestions now include a parent call and not implemented throw respectively.
+
+#### Fixed
+- Renaming a constant reference not renaming the declaration.
+- Type suggestions following `@method static`.
+- Template with union type restriction not inferred properly.
+- Type aliases not resolved in some contexts.
+- Inline `@see` not hiding url when description provided.
+- Statement keyword suggestions not appearing for control structures without braces.
+- PHPDoc not formatted correctly above enum cases.
+- Type inference inconsistent with `ArrayAccess` and subtypes.
+- Keyword suggestions missing in switch expression.
+- `readonly` on anonymous class causing parse error.
+- Array key suggestions not showing in constructor calls.
+- False method signature not compatible diagnostics.
+- Various control flow analysis issues within loops.
+- Not warning on unused private promoted properties.
+- Incorrect Generator type arguments when exiting before yield.
+- Incorrect diagnostic message when `readonly` used with property hook.
+- Using `self` in call signature in traits doesn't resolve to exhibiting class.
+- Intersected object types not producing intersected type for property.
+- False type errors for PHP math extensions that have operator overloading.
+- Magic method implementation suggestions produce invalid code if abstract modifier is present.
+- Smart select bugged if selecting at end of a file that doesn't end in an empty line.
+- Some stub symbols being excluded, resulting in undefined symbol errors, when the symbol has a phpdoc with no tags.
+
## [1.14.4 - 2025-04-01]
#### Fixed
- Completion suggestions not showing in phpdoc.