2016-07-25 00:02:15 +02:00
|
|
|
<?php
|
2016-07-26 00:37:44 +02:00
|
|
|
namespace Psalm\Tests;
|
2016-07-25 00:02:15 +02:00
|
|
|
|
2017-04-25 05:45:02 +02:00
|
|
|
class IssueSuppressionTest extends TestCase
|
2016-07-25 00:02:15 +02:00
|
|
|
{
|
2018-11-06 03:57:36 +01:00
|
|
|
use Traits\ValidCodeAnalysisTestTrait;
|
|
|
|
use Traits\InvalidCodeAnalysisTestTrait;
|
2016-07-25 00:02:15 +02:00
|
|
|
|
2017-01-13 20:07:23 +01:00
|
|
|
/**
|
2017-04-25 05:45:02 +02:00
|
|
|
* @return array
|
2017-01-13 20:07:23 +01:00
|
|
|
*/
|
2018-11-06 03:57:36 +01:00
|
|
|
public function providerValidCodeParse()
|
2016-07-25 00:02:15 +02:00
|
|
|
{
|
2017-04-25 05:45:02 +02:00
|
|
|
return [
|
|
|
|
'undefinedClass' => [
|
|
|
|
'<?php
|
|
|
|
class A {
|
|
|
|
/**
|
|
|
|
* @psalm-suppress UndefinedClass
|
|
|
|
* @psalm-suppress MixedMethodCall
|
|
|
|
* @psalm-suppress MissingReturnType
|
|
|
|
*/
|
|
|
|
public function b() {
|
|
|
|
B::fooFoo()->barBar()->bat()->baz()->bam()->bas()->bee()->bet()->bes()->bis();
|
|
|
|
}
|
2017-05-27 02:05:57 +02:00
|
|
|
}',
|
2017-04-25 05:45:02 +02:00
|
|
|
],
|
2017-10-27 00:19:19 +02:00
|
|
|
'undefinedClassOneLine' => [
|
|
|
|
'<?php
|
|
|
|
class A {
|
2018-01-11 21:50:45 +01:00
|
|
|
public function b(): void {
|
2017-10-27 00:19:19 +02:00
|
|
|
/**
|
|
|
|
* @psalm-suppress UndefinedClass
|
|
|
|
*/
|
|
|
|
new B();
|
|
|
|
}
|
|
|
|
}',
|
|
|
|
],
|
|
|
|
'undefinedClassOneLineInFile' => [
|
|
|
|
'<?php
|
|
|
|
/**
|
|
|
|
* @psalm-suppress UndefinedClass
|
|
|
|
*/
|
|
|
|
new B();',
|
|
|
|
],
|
2017-04-25 05:45:02 +02:00
|
|
|
'excludeIssue' => [
|
|
|
|
'<?php
|
|
|
|
fooFoo();',
|
|
|
|
'assertions' => [],
|
2017-05-27 02:05:57 +02:00
|
|
|
'error_levels' => ['UndefinedFunction'],
|
|
|
|
],
|
2017-04-25 05:45:02 +02:00
|
|
|
];
|
2016-12-14 18:28:38 +01:00
|
|
|
}
|
2017-10-27 00:19:19 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @return array
|
|
|
|
*/
|
2018-11-06 03:57:36 +01:00
|
|
|
public function providerInvalidCodeParse()
|
2017-10-27 00:19:19 +02:00
|
|
|
{
|
|
|
|
return [
|
|
|
|
'undefinedClassOneLineWithLineAfter' => [
|
|
|
|
'<?php
|
|
|
|
class A {
|
|
|
|
public function b() {
|
|
|
|
/**
|
|
|
|
* @psalm-suppress UndefinedClass
|
|
|
|
*/
|
|
|
|
new B();
|
|
|
|
new C();
|
|
|
|
}
|
|
|
|
}',
|
2018-04-13 01:42:24 +02:00
|
|
|
'error_message' => 'UndefinedClass - src' . DIRECTORY_SEPARATOR . 'somefile.php:8 - Class or interface C',
|
2017-10-27 00:19:19 +02:00
|
|
|
],
|
|
|
|
'undefinedClassOneLineInFileAfter' => [
|
|
|
|
'<?php
|
|
|
|
/**
|
|
|
|
* @psalm-suppress UndefinedClass
|
|
|
|
*/
|
|
|
|
new B();
|
|
|
|
new C();',
|
2018-04-13 01:42:24 +02:00
|
|
|
'error_message' => 'UndefinedClass - src' . DIRECTORY_SEPARATOR . 'somefile.php:6 - Class or interface C',
|
2017-10-27 00:19:19 +02:00
|
|
|
],
|
|
|
|
];
|
|
|
|
}
|
2016-07-25 00:02:15 +02:00
|
|
|
}
|