You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/CHANGELOG.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,6 +30,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
30
30
-**Magic `__call` method return type.** Calling undefined methods on objects with a `__call` method now resolves to `__call`'s declared return type for hover and type inference.
31
31
-**SoapClient arbitrary methods.** Calling any method on `SoapClient` (or subclasses) no longer produces false-positive "unknown member" diagnostics. SoapClient is a SOAP proxy where any method name is valid at runtime.
32
32
-**`self::class` and `static::class` in template arguments.** Passing `self::class` or `static::class` to a method with `@template T` + `@param class-string<T>` now correctly resolves T to the enclosing class instead of failing to resolve or resolving to the called class.
33
+
-**Bare array return values no longer flagged against typed array parameters.** When a method returns `array` (without generic parameters), passing the result to a parameter expecting `array<T>` no longer triggers a false type mismatch error.
34
+
-**Foreach over `::class` literal arrays resolves static access.** Variables assigned from `foreach ([A::class, B::class] as $className)` are now recognized as class-strings, so `$className::CONST` and `$className::method()` no longer produce unresolved-member-access diagnostics.
33
35
-**Use-map shadowing no longer causes false type errors.** When a file imports a namespaced class under the same short name as a global class (e.g. `use App\Exceptions\Exception;`), type hierarchy checks no longer cycle and incorrectly flag subclass arguments as incompatible with parent interfaces like `Throwable`.
34
36
-**Multi-namespace function return type resolution.** In files with multiple `namespace { }` blocks, function return types were resolved against the first namespace instead of the function's own namespace. This caused incorrect type inference for variables assigned from function calls in later namespace blocks.
35
37
-**Template inference through stub interfaces.**`@template-implements` on stub-loaded interfaces (e.g. `IteratorAggregate<int, Foo>`) now correctly propagates substituted return types to child methods that omit a return type annotation. Previously these resolved as untyped.
0 commit comments