Skip to content

Commit a53db1f

Browse files
committed
update invalid default type detection
1 parent 932b3b4 commit a53db1f

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

src/Rules/Generics/TemplateTypeCheck.php

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -150,16 +150,23 @@ public function check(
150150
}
151151

152152
foreach ($defaultType->getReferencedClasses() as $referencedClass) {
153-
if (
154-
$this->reflectionProvider->hasClass($referencedClass)
155-
&& !$this->reflectionProvider->getClass($referencedClass)->isTrait()
156-
) {
153+
if (!$this->reflectionProvider->hasClass($referencedClass)) {
154+
$messages[] = RuleErrorBuilder::message(sprintf(
155+
$invalidDefaultTypeMessage,
156+
$templateTagName,
157+
$referencedClass,
158+
))->identifier('class.notFound')->build();
159+
continue;
160+
}
161+
if (!$this->reflectionProvider->getClass($referencedClass)->isTrait()) {
157162
continue;
158163
}
159164

160-
$messages[] = RuleErrorBuilder::message(sprintf($invalidDefaultTypeMessage, $templateTagName, $referencedClass))
161-
->identifier('generics.invalidTemplateDefault')
162-
->build();
165+
$messages[] = RuleErrorBuilder::message(sprintf(
166+
$invalidDefaultTypeMessage,
167+
$templateTagName,
168+
$referencedClass,
169+
))->identifier('generics.traitBound')->build();
163170
}
164171

165172
$classNameNodePairs = array_map(static fn (string $referencedClass): ClassNameNodePair => new ClassNameNodePair($referencedClass, $node), $defaultType->getReferencedClasses());

0 commit comments

Comments
 (0)