Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 7e7b5bd

Browse files
Modernize rules with RuleErrorBuilder
1 parent 8f1dab2 commit 7e7b5bd

6 files changed

+40
-32
lines changed

‎src/Rules/Symfony/ContainerInterfacePrivateServiceRule.php‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
use PhpParser\Node\Expr\MethodCall;
77
use PHPStan\Analyser\Scope;
88
use PHPStan\Rules\Rule;
9-
use PHPStan\Rules\RuleError;
9+
use PHPStan\Rules\RuleErrorBuilder;
1010
use PHPStan\Symfony\ServiceMap;
1111
use PHPStan\TrinaryLogic;
1212
use PHPStan\Type\ObjectType;
@@ -32,9 +32,6 @@ public function getNodeType(): string
3232
return MethodCall::class;
3333
}
3434

35-
/**
36-
* @return (string|RuleError)[] errors
37-
*/
3835
public function processNode(Node $node, Scope $scope): array
3936
{
4037
if (!$node->name instanceof Node\Identifier) {
@@ -72,7 +69,10 @@ public function processNode(Node $node, Scope $scope): array
7269
if ($serviceId !== null) {
7370
$service = $this->serviceMap->getService($serviceId);
7471
if ($service !== null && !$service->isPublic()) {
75-
return [sprintf('Service "%s" is private.', $serviceId)];
72+
return [
73+
RuleErrorBuilder::message(sprintf('Service "%s" is private.', $serviceId))
74+
->build(),
75+
];
7676
}
7777
}
7878

‎src/Rules/Symfony/ContainerInterfaceUnknownServiceRule.php‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use PhpParser\PrettyPrinter\Standard;
88
use PHPStan\Analyser\Scope;
99
use PHPStan\Rules\Rule;
10-
use PHPStan\Rules\RuleError;
10+
use PHPStan\Rules\RuleErrorBuilder;
1111
use PHPStan\Symfony\ServiceMap;
1212
use PHPStan\Type\ObjectType;
1313
use PHPStan\Type\Symfony\Helper;
@@ -36,9 +36,6 @@ public function getNodeType(): string
3636
return MethodCall::class;
3737
}
3838

39-
/**
40-
* @return (string|RuleError)[] errors
41-
*/
4239
public function processNode(Node $node, Scope $scope): array
4340
{
4441
if (!$node->name instanceof Node\Identifier) {
@@ -73,7 +70,9 @@ public function processNode(Node $node, Scope $scope): array
7370
$service = $this->serviceMap->getService($serviceId);
7471
$serviceIdType = $scope->getType($node->getArgs()[0]->value);
7572
if ($service === null && !$scope->getType(Helper::createMarkerNode($node->var, $serviceIdType, $this->printer))->equals($serviceIdType)) {
76-
return [sprintf('Service "%s" is not registered in the container.', $serviceId)];
73+
return [
74+
RuleErrorBuilder::message(sprintf('Service "%s" is not registered in the container.', $serviceId))->build(),
75+
];
7776
}
7877
}
7978

‎src/Rules/Symfony/InvalidArgumentDefaultValueRule.php‎

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
use PhpParser\Node\Expr\MethodCall;
77
use PHPStan\Analyser\Scope;
88
use PHPStan\Rules\Rule;
9-
use PHPStan\Rules\RuleError;
9+
use PHPStan\Rules\RuleErrorBuilder;
1010
use PHPStan\Type\ArrayType;
1111
use PHPStan\Type\Constant\ConstantIntegerType;
1212
use PHPStan\Type\IntegerType;
@@ -30,9 +30,6 @@ public function getNodeType(): string
3030
return MethodCall::class;
3131
}
3232

33-
/**
34-
* @return (string|RuleError)[] errors
35-
*/
3633
public function processNode(Node $node, Scope $scope): array
3734
{
3835
if (!(new ObjectType('Symfony\Component\Console\Command\Command'))->isSuperTypeOf($scope->getType($node->var))->yes()) {
@@ -62,12 +59,22 @@ public function processNode(Node $node, Scope $scope): array
6259

6360
// not an array
6461
if (($mode & 4) !== 4 && !(new UnionType([new StringType(), new NullType()]))->isSuperTypeOf($defaultType)->yes()) {
65-
return [sprintf('Parameter #4 $default of method Symfony\Component\Console\Command\Command::addArgument() expects string|null, %s given.', $defaultType->describe(VerbosityLevel::typeOnly()))];
62+
return [
63+
RuleErrorBuilder::message(sprintf(
64+
'Parameter #4 $default of method Symfony\Component\Console\Command\Command::addArgument() expects string|null, %s given.',
65+
$defaultType->describe(VerbosityLevel::typeOnly())
66+
))->build(),
67+
];
6668
}
6769

6870
// is array
6971
if (($mode & 4) === 4 && !(new UnionType([new ArrayType(new IntegerType(), new StringType()), new NullType()]))->isSuperTypeOf($defaultType)->yes()) {
70-
return [sprintf('Parameter #4 $default of method Symfony\Component\Console\Command\Command::addArgument() expects array<int, string>|null, %s given.', $defaultType->describe(VerbosityLevel::typeOnly()))];
72+
return [
73+
RuleErrorBuilder::message(sprintf(
74+
'Parameter #4 $default of method Symfony\Component\Console\Command\Command::addArgument() expects array<int, string>|null, %s given.',
75+
$defaultType->describe(VerbosityLevel::typeOnly())
76+
))->build(),
77+
];
7178
}
7279

7380
return [];

‎src/Rules/Symfony/InvalidOptionDefaultValueRule.php‎

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
use PhpParser\Node\Expr\MethodCall;
77
use PHPStan\Analyser\Scope;
88
use PHPStan\Rules\Rule;
9-
use PHPStan\Rules\RuleError;
9+
use PHPStan\Rules\RuleErrorBuilder;
1010
use PHPStan\Type\ArrayType;
1111
use PHPStan\Type\BooleanType;
1212
use PHPStan\Type\Constant\ConstantIntegerType;
@@ -32,9 +32,6 @@ public function getNodeType(): string
3232
return MethodCall::class;
3333
}
3434

35-
/**
36-
* @return (string|RuleError)[] errors
37-
*/
3835
public function processNode(Node $node, Scope $scope): array
3936
{
4037
if (!(new ObjectType('Symfony\Component\Console\Command\Command'))->isSuperTypeOf($scope->getType($node->var))->yes()) {
@@ -66,13 +63,24 @@ public function processNode(Node $node, Scope $scope): array
6663
if (($mode & 8) !== 8) {
6764
$checkType = new UnionType([new StringType(), new IntegerType(), new NullType(), new BooleanType()]);
6865
if (!$checkType->isSuperTypeOf($defaultType)->yes()) {
69-
return [sprintf('Parameter #5 $default of method Symfony\Component\Console\Command\Command::addOption() expects %s, %s given.', $checkType->describe(VerbosityLevel::typeOnly()), $defaultType->describe(VerbosityLevel::typeOnly()))];
66+
return [
67+
RuleErrorBuilder::message(sprintf(
68+
'Parameter #5 $default of method Symfony\Component\Console\Command\Command::addOption() expects %s, %s given.',
69+
$checkType->describe(VerbosityLevel::typeOnly()),
70+
$defaultType->describe(VerbosityLevel::typeOnly())
71+
))->build(),
72+
];
7073
}
7174
}
7275

7376
// is array
7477
if (($mode & 8) === 8 && !(new UnionType([new ArrayType(new MixedType(), new StringType()), new NullType()]))->isSuperTypeOf($defaultType)->yes()) {
75-
return [sprintf('Parameter #5 $default of method Symfony\Component\Console\Command\Command::addOption() expects array<string>|null, %s given.', $defaultType->describe(VerbosityLevel::typeOnly()))];
78+
return [
79+
RuleErrorBuilder::message(sprintf(
80+
'Parameter #5 $default of method Symfony\Component\Console\Command\Command::addOption() expects array<string>|null, %s given.',
81+
$defaultType->describe(VerbosityLevel::typeOnly())
82+
))->build(),
83+
];
7684
}
7785

7886
return [];

‎src/Rules/Symfony/UndefinedArgumentRule.php‎

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
use PhpParser\PrettyPrinter\Standard;
99
use PHPStan\Analyser\Scope;
1010
use PHPStan\Rules\Rule;
11-
use PHPStan\Rules\RuleError;
11+
use PHPStan\Rules\RuleErrorBuilder;
1212
use PHPStan\Symfony\ConsoleApplicationResolver;
1313
use PHPStan\Type\ObjectType;
1414
use PHPStan\Type\Symfony\Helper;
@@ -39,9 +39,6 @@ public function getNodeType(): string
3939
return MethodCall::class;
4040
}
4141

42-
/**
43-
* @return (string|RuleError)[] errors
44-
*/
4542
public function processNode(Node $node, Scope $scope): array
4643
{
4744
$classReflection = $scope->getClassReflection();
@@ -78,7 +75,7 @@ public function processNode(Node $node, Scope $scope): array
7875
if ($scope->getType(Helper::createMarkerNode($node->var, $argType, $this->printer))->equals($argType)) {
7976
continue;
8077
}
81-
$errors[] = sprintf('Command "%s" does not define argument "%s".', $name, $argName);
78+
$errors[] = RuleErrorBuilder::message(sprintf('Command "%s" does not define argument "%s".', $name, $argName))->build();
8279
}
8380
}
8481

‎src/Rules/Symfony/UndefinedOptionRule.php‎

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
use PhpParser\PrettyPrinter\Standard;
99
use PHPStan\Analyser\Scope;
1010
use PHPStan\Rules\Rule;
11-
use PHPStan\Rules\RuleError;
11+
use PHPStan\Rules\RuleErrorBuilder;
1212
use PHPStan\Symfony\ConsoleApplicationResolver;
1313
use PHPStan\Type\ObjectType;
1414
use PHPStan\Type\Symfony\Helper;
@@ -39,9 +39,6 @@ public function getNodeType(): string
3939
return MethodCall::class;
4040
}
4141

42-
/**
43-
* @return (string|RuleError)[] errors
44-
*/
4542
public function processNode(Node $node, Scope $scope): array
4643
{
4744
$classReflection = $scope->getClassReflection();
@@ -78,7 +75,7 @@ public function processNode(Node $node, Scope $scope): array
7875
if ($scope->getType(Helper::createMarkerNode($node->var, $optType, $this->printer))->equals($optType)) {
7976
continue;
8077
}
81-
$errors[] = sprintf('Command "%s" does not define option "%s".', $name, $optName);
78+
$errors[] = RuleErrorBuilder::message(sprintf('Command "%s" does not define option "%s".', $name, $optName))->build();
8279
}
8380
}
8481

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /