-
-
Notifications
You must be signed in to change notification settings - Fork 868
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for array shape for ArrayAccess classes not working. #8549
Labels
Milestone
Comments
Broke in this PR: phpstan/phpstan-src#1623 |
@lulco After the latest push in 1.9.x, PHPStan now reports different result with your code snippet: @@ @@
+PHP 8.1 (6 errors)
+==========
+
+21: Return type mixed of method Options::offsetGet() is not covariant with tentative return type mixed of method ArrayAccess::offsetGet().
45: Dumped type: string
+46: Cannot assign offset 'name' to Options<array<string, string>>.
+46: Options<array{name: string}> does not accept string.
+47: Cannot assign offset 'name' to Options<array<string, string>>.
+47: Options<array{name: string}> does not accept int.
+
+PHP 7.1 – 8.0 (5 errors)
+==========
+
+45: Dumped type: string
+46: Cannot assign offset 'name' to Options<array<string, string>>.
+46: Options<array{name: string}> does not accept string.
+47: Cannot assign offset 'name' to Options<array<string, string>>.
47: Options<array{name: string}> does not accept int. Full reportPHP 8.1 (6 errors)
PHP 7.1 – 8.0 (5 errors)
|
14 tasks
I take a look at this and:
@rvanvelzen Since both of the PR were made by you, can you help me on this ? |
@lulco After the latest push in 1.10.x, PHPStan now reports different result with your code snippet: @@ @@
+PHP 8.1 (6 errors)
+==========
+
+21: Return type mixed of method Options::offsetGet() is not covariant with tentative return type mixed of method ArrayAccess<key-of<TArray of array>,value-of<TArray of array>>::offsetGet().
45: Dumped type: string
+46: Cannot assign offset 'name' to Options<array<string, string>>.
+46: Options<array{name: string}> does not accept string.
+47: Cannot assign offset 'name' to Options<array<string, string>>.
+47: Options<array{name: string}> does not accept int.
+
+PHP 7.1 – 8.0 (5 errors)
+==========
+
+45: Dumped type: string
+46: Cannot assign offset 'name' to Options<array<string, string>>.
+46: Options<array{name: string}> does not accept string.
+47: Cannot assign offset 'name' to Options<array<string, string>>.
47: Options<array{name: string}> does not accept int. Full reportPHP 8.1 (6 errors)
PHP 7.1 – 8.0 (5 errors)
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Bug report
In #7619 there is mentioned the way how to use array shape for ArrayAccess https://phpstan.org/r/95a7bcea-3198-4297-8770-823861adacfb but it seems it is not working anymore. Can you please check it? Thank you very much.
The text was updated successfully, but these errors were encountered: