Skip to content

Regression in 3.14: Could not get class storage for (ClassLikeStorageProvider.php) #4013

@caugner

Description

@caugner

The following issue in a Laravel project first appears in 3.14.0 (still in 3.14.1) and did not appear in 3.13.1:

$ vendor/bin/psalm
Scanning files...
Analyzing files...

E░░░░░░░░E░░░
   InvalidArgumentException

  Could not get class storage for

  at D:\path\to\project\vendor\vimeo\psalm\src\Psalm\Internal\Provider\ClassLikeStorageProvider.php:45
    41|     public function get($fq_classlike_name)
    42|     {
    43|         $fq_classlike_name_lc = strtolower($fq_classlike_name);
    44|         if (!isset(self::$storage[$fq_classlike_name_lc])) {
  > 45|             throw new \InvalidArgumentException('Could not get class storage for ' . $fq_classlike_name_lc);
    46|         }
    47|
    48|         return self::$storage[$fq_classlike_name_lc];
    49|     }

  1   D:\path\to\project\vendor\vimeo\psalm\src\Psalm\Internal\Analyzer\Statements\Expression\Call\Method\AtomicMethodCallAnalyzer.php:340
      Psalm\Internal\Provider\ClassLikeStorageProvider::get()

  2   D:\path\to\project\vendor\vimeo\psalm\src\Psalm\Internal\Analyzer\Statements\Expression\Call\MethodCallAnalyzer.php:173
      Psalm\Internal\Analyzer\Statements\Expression\Call\Method\AtomicMethodCallAnalyzer::analyze(Object(Psalm\Internal\Analyzer\StatementsAnalyzer), Object(PhpParser\Node\Expr\MethodCall), Object(Psalm\Codebase), Object(Psalm\Context), Object(Psalm\Type\Atomic\TNamedObject), Object(Psalm\Type\Atomic\TGe
nericObject), "$builder", Object(Psalm\Internal\Analyzer\Statements\Expression\Call\Method\AtomicMethodCallAnalysisResult))

Edit:

$ php --version
PHP 7.3.21 (cli) (built: Aug  4 2020 11:21:19) ( ZTS MSVC15 (Visual C++ 2017) x64 )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.21, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.21, Copyright (c) 1999-2018, by Zend Technologies
    with Xdebug v2.9.6, Copyright (c) 2002-2020, by Derick Rethans

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions