Skip to content
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

phpstan 1.3 crashes for some reason #6300

Closed
williamdes opened this issue Jan 4, 2022 · 12 comments
Closed

phpstan 1.3 crashes for some reason #6300

williamdes opened this issue Jan 4, 2022 · 12 comments

Comments

@williamdes
Copy link

Bug report

phpstan 1.3 crashes, 1.2 works fine

this is NOT a memory limit error

Code snippet that reproduces the problem

No idea of what it is, on my workstation and on @Guileas's workstation it crashes too

On the CI it fails differently

Traces

On workstations

Segmentation fault (core dumped)

On CIs

Error: Child process error (exit code 255): 
   Symfony\Component\ErrorHandler\Error\FatalError 

  Allowed memory size of 1073741824 bytes exhausted (tried to allocate 262144 bytes)

  at phar://vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php:27
     23▕         $this->mixinExcludeClasses = $mixinExcludeClasses;
     24▕     }
     25▕     public function hasMethod(\PHPStan\Reflection\ClassReflection $classReflection, string $methodName) : bool
     26▕     {
  ➜  27▕         return $this->findMethod($classReflection, $methodName) !== null;
     28▕     }
     29▕     public function getMethod(\PHPStan\Reflection\ClassReflection $classReflection, string $methodName) : \PHPStan\Reflection\MethodReflection
     30▕     {
     31▕         $method = $this->findMethod($classReflection, $methodName);


   Whoops\Exception\ErrorException 

  Allowed memory size of 1073741824 bytes exhausted (tried to allocate 262144 bytes)

  at phar://vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php:27
     23▕         $this->mixinExcludeClasses = $mixinExcludeClasses;
     24▕     }
     25▕     public function hasMethod(\PHPStan\Reflection\ClassReflection $classReflection, string $methodName) : bool
     26▕     {
  ➜  27▕         return $this->findMethod($classReflection, $methodName) !== null;
     28▕     }
     29▕     public function getMethod(\PHPStan\Reflection\ClassReflection $classReflection, string $methodName) : \PHPStan\Reflection\MethodReflection
     30▕     {
     31▕         $method = $this->findMethod($classReflection, $methodName);

      +1 vendor frames 
  2   [internal]:0
      Whoops\Run::handleShutdown()

Script ./vendor/bin/phpstan --memory-limit=1G handling the phpstan event returned with error code 1
 -- --------------------------------------------------------------------------- 
     Error                                                                      
 -- --------------------------------------------------------------------------- 
     Child process error (exit code 255):                                       
        Symfony\Component\ErrorHandler\Error\FatalError                         
                                                                                
       Allowed memory size of 1073741824 bytes exhausted (tried to allocate     
     262144 bytes)                                                              
                                                                                
       at                                                                       
     phar://vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMeth  
     odsClassReflectionExtension.php:27                                         
          23▕         $this->mixinExcludeClasses = $mixinExcludeClasses;        
          24▕     }                                                             
          25▕     public function                                               
     hasMethod(\PHPStan\Reflection\ClassReflection $classReflection, string     
     $methodName) : bool                                                        
          26▕     {                                                             
       ➜  27▕         return $this->findMethod($classReflection,                
     $methodName) !== null;                                                     
          28▕     }                                                             
          29▕     public function                                               
     getMethod(\PHPStan\Reflection\ClassReflection $classReflection, string     
     $methodName) : \PHPStan\Reflection\MethodReflection                        
          30▕     {                                                             
          31▕         $method = $this->findMethod($classReflection,             
     $methodName);                                                              
                                                                                
                                                                                
        Whoops\Exception\ErrorException                                         
                                                                                
       Allowed memory size of 1073741824 bytes exhausted (tried to allocate     
     262144 bytes)                                                              
                                                                                
       at                                                                       
     phar://vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMeth  
     odsClassReflectionExtension.php:27                                         
          23▕         $this->mixinExcludeClasses = $mixinExcludeClasses;        
          24▕     }                                                             
          25▕     public function                                               
     hasMethod(\PHPStan\Reflection\ClassReflection $classReflection, string     
     $methodName) : bool                                                        
          26▕     {                                                             
       ➜  27▕         return $this->findMethod($classReflection,                
     $methodName) !== null;                                                     
          28▕     }                                                             
          29▕     public function                                               
     getMethod(\PHPStan\Reflection\ClassReflection $classReflection, string     
     $methodName) : \PHPStan\Reflection\MethodReflection                        
          30▕     {                                                             
          31▕         $method = $this->findMethod($classReflection,             
     $methodName);                                                              
                                                                                
           +1 vendor frames                                                     
       2   [internal]:0                                                         
           Whoops\Run::handleShutdown()                                         
                                                                                
 -- --------------------------------------------------------------------------- 

Expected output

Work as always

Did PHPStan help you today? Did it make you happy in any way?

Yes !!!!

@mergeable
Copy link

mergeable bot commented Jan 4, 2022

This bug report is missing a link to reproduction on phpstan.org.

It will most likely be closed after manual review.

@williamdes
Copy link
Author

williamdes commented Jan 4, 2022

I use larastan extension cc @nunomaduro

Final trace

[...]

/var/www/app/Jobs/xxx/xxxx.php
--- consumed 0 B, total 220 MB
/var/www/app/Transformers/AddressTransformer.php
Segmentation fault (core dumped)
bash-5.1# ./vendor/bin/phpstan --memory-limit=2G '--debug' '-vvv'

@ondrejmirtes
Copy link
Member

This is probably an infinite recursion problem. Running with XDebug (don't forget to add --xdebug when running PHPStan too) might show us the stack trace where it keeps repeating.

@williamdes
Copy link
Author

PHP Warning:  Xdebug MUST be loaded as a Zend extension in Unknown on line 0
--- consumed 0 B, total 186 MB
/var/www/app/Transformers/AddressTransformer.php
Uncaught Error: Xdebug has detected a possible infinite loop, and aborted your script with a stack depth of '256' frames in phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php:185
#0 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Php/PhpClassReflectionExtension.php(292): PHPStan\Reflection\ClassReflection->getNativeReflection()
#1 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Php\PhpClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#2 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#3 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#4 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#5 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#6 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#7 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#8 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#9 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#10 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#11 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#12 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#13 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#14 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#15 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#16 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#17 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#18 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#19 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#20 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#21 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#22 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#23 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#24 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#25 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#26 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#27 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#28 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#29 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#30 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#31 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#32 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#33 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#34 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#35 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#36 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#37 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#38 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#39 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#40 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#41 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#42 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#43 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#44 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#45 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#46 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#47 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#48 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#49 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#50 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#51 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#52 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#53 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#54 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#55 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#56 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#57 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#58 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#59 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#60 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#61 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#62 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#63 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#64 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#65 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#66 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#67 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#68 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#69 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#70 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#71 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#72 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#73 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#74 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#75 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#76 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#77 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#78 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#79 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#80 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#81 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#82 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#83 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#84 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#85 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#86 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#87 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#88 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#89 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#90 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#91 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#92 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#93 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#94 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#95 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#96 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#97 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#98 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#99 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#100 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#101 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#102 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#103 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#104 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#105 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#106 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#107 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#108 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#109 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#110 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#111 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#112 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#113 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#114 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#115 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#116 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#117 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#118 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#119 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#120 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#121 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#122 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#123 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#124 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#125 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#126 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#127 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#128 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#129 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#130 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#131 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#132 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#133 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#134 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#135 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#136 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#137 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#138 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#139 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#140 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#141 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#142 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#143 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#144 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#145 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#146 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#147 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#148 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#149 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#150 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#151 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#152 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#153 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#154 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#155 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#156 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#157 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#158 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#159 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#160 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#161 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#162 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#163 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#164 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#165 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#166 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#167 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#168 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#169 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#170 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#171 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#172 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#173 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#174 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#175 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#176 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#177 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#178 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#179 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#180 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#181 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#182 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#183 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#184 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#185 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#186 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#187 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#188 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#189 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#190 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#191 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#192 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#193 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#194 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#195 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#196 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#197 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#198 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#199 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#200 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#201 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#202 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#203 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#204 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#205 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#206 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#207 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#208 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#209 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#210 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#211 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#212 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#213 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#214 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#215 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#216 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#217 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#218 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#219 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(44): PHPStan\Type\ObjectType->hasMethod('get')
#220 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/Mixin/MixinMethodsClassReflectionExtension.php(27): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->findMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#221 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(353): PHPStan\Reflection\Mixin\MixinMethodsClassReflectionExtension->hasMethod(Object(PHPStan\Reflection\ClassReflection), 'get')
#222 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(443): PHPStan\Reflection\ClassReflection->hasMethod('get')
#223 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(3409): PHPStan\Type\ObjectType->hasMethod('get')
#224 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(3419): PHPStan\Analyser\MutatingScope->getMethodReflection(Object(PHPStan\Type\ObjectType), 'get')
#225 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(1685): PHPStan\Analyser\MutatingScope->methodCallReturnType(Object(PHPStan\Type\ObjectType), 'get', Object(PhpParser\Node\Expr\StaticCall))
#226 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(1691): PHPStan\Analyser\MutatingScope->PHPStan\Analyser\{closure}()
#227 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(495): PHPStan\Analyser\MutatingScope->resolveType(Object(PhpParser\Node\Expr\StaticCall))
#228 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Rules/IssetCheck.php(159): PHPStan\Analyser\MutatingScope->getType(Object(PhpParser\Node\Expr\StaticCall))
#229 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Rules/Variables/EmptyRule.php(57): PHPStan\Rules\IssetCheck->check(Object(PhpParser\Node\Expr\StaticCall), Object(PHPStan\Analyser\MutatingScope), 'in empty()', Object(Closure))
#230 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/FileAnalyser.php(94): PHPStan\Rules\Variables\EmptyRule->processNode(Object(PhpParser\Node\Expr\Empty_), Object(PHPStan\Analyser\MutatingScope))
#231 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Node/ClassStatementsGatherer.php(95): PHPStan\Analyser\FileAnalyser->PHPStan\Analyser\{closure}(Object(PhpParser\Node\Expr\Empty_), Object(PHPStan\Analyser\MutatingScope))
#232 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(436): PHPStan\Node\ClassStatementsGatherer->__invoke(Object(PhpParser\Node\Expr\Empty_), Object(PHPStan\Analyser\MutatingScope))
#233 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(2316): PHPStan\Analyser\NodeScopeResolver::PHPStan\Analyser\{closure}(Object(PhpParser\Node\Expr\Empty_), Object(PHPStan\Analyser\MutatingScope))
#234 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(1369): PHPStan\Analyser\NodeScopeResolver->callNodeCallbackWithExpression(Object(Closure), Object(PhpParser\Node\Expr\Empty_), Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Analyser\ExpressionContext))
#235 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(571): PHPStan\Analyser\NodeScopeResolver->processExprNode(Object(PhpParser\Node\Expr\Empty_), Object(PHPStan\Analyser\MutatingScope), Object(Closure), Object(PHPStan\Analyser\ExpressionContext))
#236 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(289): PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\If_), Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#237 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(451): PHPStan\Analyser\NodeScopeResolver->processStmtNodes(Object(PhpParser\Node\Stmt\ClassMethod), Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#238 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(289): PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\ClassMethod), Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Node\ClassStatementsGatherer))
#239 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(535): PHPStan\Analyser\NodeScopeResolver->processStmtNodes(Object(PhpParser\Node\Stmt\Class_), Array, Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Node\ClassStatementsGatherer))
#240 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(289): PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Class_), Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#241 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(501): PHPStan\Analyser\NodeScopeResolver->processStmtNodes(Object(PhpParser\Node\Stmt\Namespace_), Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#242 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(260): PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Namespace_), Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#243 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/FileAnalyser.php(181): PHPStan\Analyser\NodeScopeResolver->processNodes(Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#244 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/Analyser.php(69): PHPStan\Analyser\FileAnalyser->analyseFile('/var/www/app/Tr...', Array, Object(PHPStan\Rules\Registry), NULL)
#245 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Command/AnalyserRunner.php(62): PHPStan\Analyser\Analyser->analyse(Array, Object(Closure), Object(Closure), true, Array)
#246 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Command/AnalyseApplication.php(163): PHPStan\Command\AnalyserRunner->runAnalyser(Array, Array, Object(Closure), Object(Closure), true, true, '/var/www/phpsta...', NULL, NULL, Object(_PHPStan_71572f9a1\Symfony\Component\Console\Input\ArgvInput))
#247 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Command/AnalyseApplication.php(95): PHPStan\Command\AnalyseApplication->runAnalyser(Array, Array, true, '/var/www/phpsta...', Object(PHPStan\Command\Symfony\SymfonyOutput), Object(PHPStan\Command\Symfony\SymfonyOutput), Object(_PHPStan_71572f9a1\Symfony\Component\Console\Input\ArgvInput))
#248 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/src/Command/AnalyseCommand.php(173): PHPStan\Command\AnalyseApplication->analyse(Array, false, Object(PHPStan\Command\Symfony\SymfonyOutput), Object(PHPStan\Command\Symfony\SymfonyOutput), false, true, '/var/www/phpsta...', Array, Object(_PHPStan_71572f9a1\Symfony\Component\Console\Input\ArgvInput))
#249 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Command/Command.php(259): PHPStan\Command\AnalyseCommand->execute(Object(_PHPStan_71572f9a1\Symfony\Component\Console\Input\ArgvInput), Object(_PHPStan_71572f9a1\Symfony\Component\Console\Output\ConsoleOutput))
#250 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(848): _PHPStan_71572f9a1\Symfony\Component\Console\Command\Command->run(Object(_PHPStan_71572f9a1\Symfony\Component\Console\Input\ArgvInput), Object(_PHPStan_71572f9a1\Symfony\Component\Console\Output\ConsoleOutput))
#251 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(259): _PHPStan_71572f9a1\Symfony\Component\Console\Application->doRunCommand(Object(PHPStan\Command\AnalyseCommand), Object(_PHPStan_71572f9a1\Symfony\Component\Console\Input\ArgvInput), Object(_PHPStan_71572f9a1\Symfony\Component\Console\Output\ConsoleOutput))
#252 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(157): _PHPStan_71572f9a1\Symfony\Component\Console\Application->doRun(Object(_PHPStan_71572f9a1\Symfony\Component\Console\Input\ArgvInput), Object(_PHPStan_71572f9a1\Symfony\Component\Console\Output\ConsoleOutput))
#253 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/bin/phpstan(94): _PHPStan_71572f9a1\Symfony\Component\Console\Application->run()
#254 phar:///var/www/vendor/phpstan/phpstan/phpstan.phar/bin/phpstan(95): _PHPStan_71572f9a1\{closure}()
#255 /var/www/vendor/phpstan/phpstan/phpstan(8): require('phar:///var/www...')
#256 {main}
Used memory: 190 MB
bash-5.1# 

@ondrejmirtes
Copy link
Member

Looks like something related to @mixin and some code like empty(Foo::get()). Can you please try to make a minimal example where it still crashes like that? Along with --xdebug you can try running PHPStan with --debug, it will show you the file that causes it.

@williamdes
Copy link
Author

Looks like something related to @mixin and some code like empty(Foo::get()). Can you please try to make a minimal example where it still crashes like that? Along with --xdebug you can try running PHPStan with --debug, it will show you the file that causes it.

./vendor/bin/phpstan analyse --memory-limit=2G --debug -vvv --xdebug /var/www/app/Transformers/AddressTransformer.php

It will also do that on the set method when I remove the get one from the example

<?php

namespace App\Transformers;

use Illuminate\Support\Facades\Redis;

class AddressTransformer
{

    public function getPostalCodeAndCity($lat, $lng)
    {
        $redisKey = 'foo';
        if (empty(Redis::get($redisKey))) {
            Redis::set($redisKey, $res);
        } else {
            return Redis::get($redisKey);
        }
    }
}

It seems to be linked to the Redis interface: https://github.com/laravel/framework/blob/8.x/src/Illuminate/Support/Facades/Redis.php

@ondrejmirtes
Copy link
Member

In hindsight it's obvious this needed to be handled. Fixed: phpstan/phpstan-src@9ab4e6f

Please test dev-master of phpstan/phpstan once the PHAR is built. Thanks!

@williamdes
Copy link
Author

Thank you for the quick fix !

It did result in new errors

 ------ ----------------------------------------------------------------------------- 
  Line   Transformers/AddressTransformer.php                                          
 ------ ----------------------------------------------------------------------------- 
  195    Call to an undefined static method Illuminate\Support\Facades\Redis::get().  
  210    Call to an undefined static method Illuminate\Support\Facades\Redis::set().  
  214    Call to an undefined static method Illuminate\Support\Facades\Redis::get().  
 ------ ----------------------------------------------------------------------------- 

That said they are not undefined, not sure if this is a phpstan or larastan error to handle

@ondrejmirtes
Copy link
Member

Yeah, I expected that. If you look at the fix and the test, it's gonna make sense to you.

Class A says method foo() is on class B. Class B says method foo() is on class A. So the right answer here is actually that the method does not exist.

Of course I don't know what's the reason behind this problem in Larastan/Laravel, I haven't looked into that. I'm just preventing the crash with my fix.

@williamdes
Copy link
Author

Yeah, I expected that. If you look at the fix and the test, it's gonna make sense to you.

Class A says method foo() is on class B. Class B says method foo() is on class A. So the right answer here is actually that the method does not exist.

Of course I don't know what's the reason behind this problem in Larastan/Laravel, I haven't looked into that. I'm just preventing the crash with my fix.

Oh okay, as you can see on https://laravel.com/docs/8.x/redis#interacting-with-redis it is valid and should work
It works in production and everything, so something fails to explain to phpstan that it has the methods
But even my IDE does not see the methods
Kinda hate the lravel facades magic things

cc @nunomaduro

@ondrejmirtes
Copy link
Member

Just open an issue on Larastan repo :)

@github-actions
Copy link

github-actions bot commented Feb 6, 2022

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Feb 6, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants