Skip to content

Commit 78e5228

Browse files
authored
RenderCallbackRule should use ObjectType for service class instance (#582)
1 parent 7da46c1 commit 78e5228

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

src/Rules/Drupal/RenderCallbackRule.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ private function getType(Node\Expr $node, Scope $scope): Type
280280
if ($type->isClassStringType()->yes()) {
281281
return $type;
282282
}
283-
// Covers \Drupal\Core\Controller\ControllerResolver::createController.
283+
// Covers \Drupal\Core\Controller\ControllerResolver::createController.
284284
if (substr_count($type->getValue(), ':') === 1) {
285285
[$class_or_service, $method] = explode(':', $type->getValue(), 2);
286286

@@ -291,7 +291,7 @@ private function getType(Node\Expr $node, Scope $scope): Type
291291
return new ConstantArrayType(
292292
[new ConstantIntegerType(0), new ConstantIntegerType(1)],
293293
[
294-
new ConstantStringType($serviceDefinition->getClass(), true),
294+
new ObjectType($serviceDefinition->getClass()),
295295
new ConstantStringType($method)
296296
]
297297
);

src/Rules/Drupal/Tests/BrowserTestBaseDefaultThemeRule.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ public function processNode(Node $node, Scope $scope): array
3838

3939
// Do some cheap preflight tests to make sure the class is in a
4040
// namespace that makes sense to inspect.
41-
$parts = $node->namespacedName->parts;
41+
// @phpstan-ignore-next-line
42+
$parts = method_exists($node->namespacedName, 'getParts') ? $node->namespacedName->getParts() : $node->namespacedName->parts;
4243
// The namespace is too short to be a test so skip inspection.
4344
if (count($parts) < 3) {
4445
return [];

0 commit comments

Comments
 (0)