Skip to content

Commit

Permalink
Added reproducer for stub property not set in constructor
Browse files Browse the repository at this point in the history
  • Loading branch information
weirdan committed Dec 5, 2021
1 parent 056497e commit 7a5051b
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 0 deletions.
56 changes: 56 additions & 0 deletions tests/StubTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -1301,4 +1301,60 @@ function em(EntityManager $em) : void {

$this->analyzeFile($file_path, new Context());
}

public function testOverriddenStubProperty(): void
{
$this->project_analyzer = $this->getProjectAnalyzerWithConfig(
TestConfig::loadFromXML(
dirname(__DIR__),
'<?xml version="1.0"?>
<psalm>
<projectFiles>
<directory name="src" />
</projectFiles>
<stubs>
<file name="tests/fixtures/stubs/SymfonyKernel.phpstub" />
</stubs>
</psalm>'
)
);

$vendor_file_path = getcwd() . '/vendor/Kernel.php';

$this->addFile(
$vendor_file_path,
'<?php
namespace Symfony\Component\HttpKernel;
class Kernel {
protected $environment;
public function __construct(string $environment)
{
if (!$this->environment = $environment) {
throw new InvalidArgumentException;
}
}
}'
);

$file_path = getcwd() . '/src/somefile.php';
$this->addFile(
$file_path,
'<?php
namespace Sonata\DoctrineORMAdminBundle\Tests\App;
use Symfony\Component\HttpKernel\Kernel;
final class AppKernel extends Kernel
{
public function __construct()
{
parent::__construct("test");
}
}
'
);

$this->analyzeFile($file_path, new Context(), false);
}
}
11 changes: 11 additions & 0 deletions tests/fixtures/stubs/SymfonyKernel.phpstub
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php

namespace Symfony\Component\HttpKernel;

class Kernel
{
/**
* @var string
*/
protected $environment;
}

0 comments on commit 7a5051b

Please sign in to comment.