Skip to content

Commit

Permalink
Handle some partials
Browse files Browse the repository at this point in the history
  • Loading branch information
ralila committed Dec 4, 2021
1 parent f833085 commit 8fb2e0f
Show file tree
Hide file tree
Showing 116 changed files with 479 additions and 279 deletions.
@@ -1,12 +1,13 @@
<?php
namespace Psalm\Example\Plugin\ComposerBased;

use Psalm\Plugin;
use Psalm\Plugin\PluginEntryPointInterface;
use Psalm\Plugin\RegistrationInterface;
use SimpleXMLElement;

class PluginEntryPoint implements Plugin\PluginEntryPointInterface
class PluginEntryPoint implements PluginEntryPointInterface
{
public function __invoke(Plugin\RegistrationInterface $registration, ?SimpleXMLElement $config = null): void
public function __invoke(RegistrationInterface $registration, ?SimpleXMLElement $config = null): void
{
require_once __DIR__ . '/EchoChecker.php';
$registration->registerHooksFromClass(EchoChecker::class);
Expand Down
3 changes: 2 additions & 1 deletion src/Psalm/FileBasedPluginAdapter.php
Expand Up @@ -3,6 +3,7 @@

use Psalm\Internal\Analyzer\ClassLikeAnalyzer;
use Psalm\Internal\Scanner\FileScanner;
use Psalm\Plugin\RegistrationInterface;
use SimpleXMLElement;
use UnexpectedValueException;

Expand Down Expand Up @@ -38,7 +39,7 @@ public function __construct(string $path, Config $config, Codebase $codebase)
/**
* @psalm-suppress PossiblyUnusedParam
*/
public function __invoke(Plugin\RegistrationInterface $registration, ?SimpleXMLElement $config = null): void
public function __invoke(RegistrationInterface $registration, ?SimpleXMLElement $config = null): void
{
$fq_class_name = $this->getPluginClassForPath($this->path);

Expand Down
3 changes: 2 additions & 1 deletion src/Psalm/Internal/Cli/Psalm.php
Expand Up @@ -18,6 +18,7 @@
use Psalm\Internal\IncludeCollector;
use Psalm\Internal\Provider;
use Psalm\Internal\Provider\FileProvider;
use Psalm\Internal\Provider\ProjectCacheProvider;
use Psalm\Internal\Stubs\Generator\StubsGenerator;
use Psalm\IssueBuffer;
use Psalm\Progress\DebugProgress;
Expand Down Expand Up @@ -623,7 +624,7 @@ private static function initProviders(array $options, Config $config, string $cu
$file_storage_cache_provider,
$classlike_storage_cache_provider,
new Provider\FileReferenceCacheProvider($config),
new Provider\ProjectCacheProvider(Composer::getLockFilePath($current_dir))
new ProjectCacheProvider(Composer::getLockFilePath($current_dir))
);
}
return $providers;
Expand Down
3 changes: 2 additions & 1 deletion src/Psalm/Report.php
Expand Up @@ -2,6 +2,7 @@
namespace Psalm;

use Psalm\Internal\Analyzer\IssueData;
use Psalm\Report\ReportOptions;

use function array_filter;
use function htmlspecialchars;
Expand Down Expand Up @@ -78,7 +79,7 @@ abstract class Report
public function __construct(
array $issues_data,
array $fixable_issue_counts,
Report\ReportOptions $report_options,
ReportOptions $report_options,
int $mixed_expression_count = 1,
int $total_expression_count = 1
) {
Expand Down
6 changes: 4 additions & 2 deletions tests/AnnotationTest.php
Expand Up @@ -4,13 +4,15 @@
use Psalm\Config;
use Psalm\Context;
use Psalm\Exception\CodeException;
use Psalm\Tests\Traits\InvalidCodeAnalysisTestTrait;
use Psalm\Tests\Traits\ValidCodeAnalysisTestTrait;

use const DIRECTORY_SEPARATOR;

class AnnotationTest extends TestCase
{
use Traits\InvalidCodeAnalysisTestTrait;
use Traits\ValidCodeAnalysisTestTrait;
use InvalidCodeAnalysisTestTrait;
use ValidCodeAnalysisTestTrait;

public function setUp(): void
{
Expand Down
7 changes: 5 additions & 2 deletions tests/ArgTest.php
@@ -1,10 +1,13 @@
<?php
namespace Psalm\Tests;

use Psalm\Tests\Traits\InvalidCodeAnalysisTestTrait;
use Psalm\Tests\Traits\ValidCodeAnalysisTestTrait;

class ArgTest extends TestCase
{
use Traits\InvalidCodeAnalysisTestTrait;
use Traits\ValidCodeAnalysisTestTrait;
use InvalidCodeAnalysisTestTrait;
use ValidCodeAnalysisTestTrait;

/**
* @return iterable<string,array{string,assertions?:array<string,string>,error_levels?:string[]}>
Expand Down
6 changes: 4 additions & 2 deletions tests/ArrayAccessTest.php
Expand Up @@ -4,13 +4,15 @@
use Psalm\Config;
use Psalm\Context;
use Psalm\Exception\CodeException;
use Psalm\Tests\Traits\InvalidCodeAnalysisTestTrait;
use Psalm\Tests\Traits\ValidCodeAnalysisTestTrait;

use const DIRECTORY_SEPARATOR;

class ArrayAccessTest extends TestCase
{
use Traits\InvalidCodeAnalysisTestTrait;
use Traits\ValidCodeAnalysisTestTrait;
use InvalidCodeAnalysisTestTrait;
use ValidCodeAnalysisTestTrait;

public function testEnsureArrayOffsetsExist(): void
{
Expand Down
6 changes: 4 additions & 2 deletions tests/ArrayAssignmentTest.php
Expand Up @@ -2,12 +2,14 @@
namespace Psalm\Tests;

use Psalm\Context;
use Psalm\Tests\Traits\InvalidCodeAnalysisTestTrait;
use Psalm\Tests\Traits\ValidCodeAnalysisTestTrait;
use Psalm\Type;

class ArrayAssignmentTest extends TestCase
{
use Traits\InvalidCodeAnalysisTestTrait;
use Traits\ValidCodeAnalysisTestTrait;
use InvalidCodeAnalysisTestTrait;
use ValidCodeAnalysisTestTrait;

public function testConditionalAssignment(): void
{
Expand Down
7 changes: 5 additions & 2 deletions tests/ArrayFunctionCallTest.php
@@ -1,12 +1,15 @@
<?php
namespace Psalm\Tests;

use Psalm\Tests\Traits\InvalidCodeAnalysisTestTrait;
use Psalm\Tests\Traits\ValidCodeAnalysisTestTrait;

use const DIRECTORY_SEPARATOR;

class ArrayFunctionCallTest extends TestCase
{
use Traits\InvalidCodeAnalysisTestTrait;
use Traits\ValidCodeAnalysisTestTrait;
use InvalidCodeAnalysisTestTrait;
use ValidCodeAnalysisTestTrait;

/**
* @return iterable<string,array{string,assertions?:array<string,string>,error_levels?:string[]}>
Expand Down
7 changes: 5 additions & 2 deletions tests/AssertAnnotationTest.php
Expand Up @@ -2,12 +2,15 @@

namespace Psalm\Tests;

use Psalm\Tests\Traits\InvalidCodeAnalysisTestTrait;
use Psalm\Tests\Traits\ValidCodeAnalysisTestTrait;

use const DIRECTORY_SEPARATOR;

class AssertAnnotationTest extends TestCase
{
use Traits\ValidCodeAnalysisTestTrait;
use Traits\InvalidCodeAnalysisTestTrait;
use ValidCodeAnalysisTestTrait;
use InvalidCodeAnalysisTestTrait;

/**
* @return iterable<string,array{string,assertions?:array<string,string>,error_levels?:string[]}>
Expand Down
7 changes: 5 additions & 2 deletions tests/AssignmentTest.php
@@ -1,10 +1,13 @@
<?php
namespace Psalm\Tests;

use Psalm\Tests\Traits\InvalidCodeAnalysisTestTrait;
use Psalm\Tests\Traits\ValidCodeAnalysisTestTrait;

class AssignmentTest extends TestCase
{
use Traits\InvalidCodeAnalysisTestTrait;
use Traits\ValidCodeAnalysisTestTrait;
use InvalidCodeAnalysisTestTrait;
use ValidCodeAnalysisTestTrait;

/**
* @return iterable<string,array{string,assertions?:array<string,string>,error_levels?:string[]}>
Expand Down
7 changes: 5 additions & 2 deletions tests/AttributeTest.php
@@ -1,10 +1,13 @@
<?php
namespace Psalm\Tests;

use Psalm\Tests\Traits\InvalidCodeAnalysisTestTrait;
use Psalm\Tests\Traits\ValidCodeAnalysisTestTrait;

class AttributeTest extends TestCase
{
use Traits\InvalidCodeAnalysisTestTrait;
use Traits\ValidCodeAnalysisTestTrait;
use InvalidCodeAnalysisTestTrait;
use ValidCodeAnalysisTestTrait;

/**
* @return iterable<string,array{string,assertions?:array<string,string>,error_levels?:string[]}>
Expand Down
6 changes: 4 additions & 2 deletions tests/BinaryOperationTest.php
Expand Up @@ -4,15 +4,17 @@
use Psalm\Config;
use Psalm\Context;
use Psalm\Exception\CodeException;
use Psalm\Tests\Traits\InvalidCodeAnalysisTestTrait;
use Psalm\Tests\Traits\ValidCodeAnalysisTestTrait;

use function class_exists;

use const DIRECTORY_SEPARATOR;

class BinaryOperationTest extends TestCase
{
use Traits\InvalidCodeAnalysisTestTrait;
use Traits\ValidCodeAnalysisTestTrait;
use InvalidCodeAnalysisTestTrait;
use ValidCodeAnalysisTestTrait;

public function testGMPOperations(): void
{
Expand Down
7 changes: 5 additions & 2 deletions tests/CallableTest.php
@@ -1,10 +1,13 @@
<?php
namespace Psalm\Tests;

use Psalm\Tests\Traits\InvalidCodeAnalysisTestTrait;
use Psalm\Tests\Traits\ValidCodeAnalysisTestTrait;

class CallableTest extends TestCase
{
use Traits\InvalidCodeAnalysisTestTrait;
use Traits\ValidCodeAnalysisTestTrait;
use InvalidCodeAnalysisTestTrait;
use ValidCodeAnalysisTestTrait;

/**
* @return iterable<string,array{string,assertions?:array<string,string>,error_levels?:string[]}>
Expand Down
6 changes: 4 additions & 2 deletions tests/ClassLikeStringTest.php
Expand Up @@ -4,11 +4,13 @@
use Psalm\Config;
use Psalm\Context;
use Psalm\Exception\CodeException;
use Psalm\Tests\Traits\InvalidCodeAnalysisTestTrait;
use Psalm\Tests\Traits\ValidCodeAnalysisTestTrait;

class ClassLikeStringTest extends TestCase
{
use Traits\InvalidCodeAnalysisTestTrait;
use Traits\ValidCodeAnalysisTestTrait;
use InvalidCodeAnalysisTestTrait;
use ValidCodeAnalysisTestTrait;

public function testDontAllowStringStandInForNewClass(): void
{
Expand Down
7 changes: 5 additions & 2 deletions tests/ClassLoadOrderTest.php
@@ -1,10 +1,13 @@
<?php
namespace Psalm\Tests;

use Psalm\Tests\Traits\InvalidCodeAnalysisTestTrait;
use Psalm\Tests\Traits\ValidCodeAnalysisTestTrait;

class ClassLoadOrderTest extends TestCase
{
use Traits\InvalidCodeAnalysisTestTrait;
use Traits\ValidCodeAnalysisTestTrait;
use InvalidCodeAnalysisTestTrait;
use ValidCodeAnalysisTestTrait;

/**
* @return iterable<string,array{string,assertions?:array<string,string>,error_levels?:string[]}>
Expand Down
7 changes: 5 additions & 2 deletions tests/ClassScopeTest.php
@@ -1,10 +1,13 @@
<?php
namespace Psalm\Tests;

use Psalm\Tests\Traits\InvalidCodeAnalysisTestTrait;
use Psalm\Tests\Traits\ValidCodeAnalysisTestTrait;

class ClassScopeTest extends TestCase
{
use Traits\InvalidCodeAnalysisTestTrait;
use Traits\ValidCodeAnalysisTestTrait;
use InvalidCodeAnalysisTestTrait;
use ValidCodeAnalysisTestTrait;

/**
* @return iterable<string,array{string,assertions?:array<string,string>,error_levels?:string[]}>
Expand Down
7 changes: 5 additions & 2 deletions tests/ClassTest.php
@@ -1,12 +1,15 @@
<?php
namespace Psalm\Tests;

use Psalm\Tests\Traits\InvalidCodeAnalysisTestTrait;
use Psalm\Tests\Traits\ValidCodeAnalysisTestTrait;

use function class_exists;

class ClassTest extends TestCase
{
use Traits\InvalidCodeAnalysisTestTrait;
use Traits\ValidCodeAnalysisTestTrait;
use InvalidCodeAnalysisTestTrait;
use ValidCodeAnalysisTestTrait;

public function testExtendsMysqli(): void
{
Expand Down
7 changes: 5 additions & 2 deletions tests/CloneTest.php
Expand Up @@ -4,10 +4,13 @@

namespace Psalm\Tests;

use Psalm\Tests\Traits\InvalidCodeAnalysisTestTrait;
use Psalm\Tests\Traits\ValidCodeAnalysisTestTrait;

class CloneTest extends TestCase
{
use Traits\InvalidCodeAnalysisTestTrait;
use Traits\ValidCodeAnalysisTestTrait;
use InvalidCodeAnalysisTestTrait;
use ValidCodeAnalysisTestTrait;

/**
* @return iterable<string,array{string,assertions?:array<string,string>,error_levels?:string[]}>
Expand Down
7 changes: 5 additions & 2 deletions tests/ClosureTest.php
@@ -1,12 +1,15 @@
<?php
namespace Psalm\Tests;

use Psalm\Tests\Traits\InvalidCodeAnalysisTestTrait;
use Psalm\Tests\Traits\ValidCodeAnalysisTestTrait;

use const DIRECTORY_SEPARATOR;

class ClosureTest extends TestCase
{
use Traits\InvalidCodeAnalysisTestTrait;
use Traits\ValidCodeAnalysisTestTrait;
use InvalidCodeAnalysisTestTrait;
use ValidCodeAnalysisTestTrait;

/**
* @return iterable<string,array{string,assertions?:array<string,string>,error_levels?:string[]}>
Expand Down
4 changes: 2 additions & 2 deletions tests/Config/ConfigTest.php
Expand Up @@ -15,7 +15,7 @@
use Psalm\Internal\RuntimeCaches;
use Psalm\Internal\Scanner\FileScanner;
use Psalm\Tests\Config\Plugin\FileTypeSelfRegisteringPlugin;
use Psalm\Tests\Internal\Provider;
use Psalm\Tests\Internal\Provider\FakeParserCacheProvider;
use Psalm\Tests\TestCase;
use Psalm\Tests\TestConfig;

Expand Down Expand Up @@ -71,7 +71,7 @@ private function getProjectAnalyzerWithConfig(Config $config): ProjectAnalyzer
$config,
new Providers(
$this->file_provider,
new Provider\FakeParserCacheProvider()
new FakeParserCacheProvider()
)
);

Expand Down
7 changes: 4 additions & 3 deletions tests/Config/Plugin/AfterAnalysisPlugin.php
@@ -1,17 +1,18 @@
<?php
namespace Psalm\Test\Config\Plugin;

use Psalm\Plugin;
use Psalm\Plugin\PluginEntryPointInterface;
use Psalm\Plugin\RegistrationInterface;
use Psalm\Test\Config\Plugin\Hook\AfterAnalysis;
use SimpleXMLElement;

/** @psalm-suppress UnusedClass */
class AfterAnalysisPlugin implements PluginEntryPointInterface
{
public function __invoke(Plugin\RegistrationInterface $registration, ?SimpleXMLElement $config = null): void
public function __invoke(RegistrationInterface $registration, ?SimpleXMLElement $config = null): void
{
require_once __DIR__ . '/Hook/AfterAnalysis.php';

$registration->registerHooksFromClass(Hook\AfterAnalysis::class);
$registration->registerHooksFromClass(AfterAnalysis::class);
}
}

0 comments on commit 8fb2e0f

Please sign in to comment.