Skip to content

Commit 1673dd5

Browse files
committed
Add missing type checks for self-referencing constant
1 parent 3ed21df commit 1673dd5

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

src/Rules/Traits/ConflictingTraitConstantsRule.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,18 +227,22 @@ private function processSingleConstant(ClassReflection $classReflection, Reflect
227227
$traitValueExpr = $traitConstant->getValueExpression();
228228
$isTraitSelfReferencing = (
229229
$traitValueExpr instanceof Node\Expr\ClassConstFetch
230+
&& $traitValueExpr->class instanceof Node\Name
231+
&& $traitValueExpr->name instanceof Node\Identifier
230232
&& $traitValueExpr->class->name === 'self'
231233
&& $traitValueExpr->name->name === $traitConstant->getName()
232234
);
233235
if ($isTraitSelfReferencing) {
234236
$isValueSelfReference = (
235237
$valueExpr instanceof Node\Expr\ClassConstFetch
238+
&& $valueExpr->class instanceof Node\Name
239+
&& $valueExpr->name instanceof Node\Identifier
236240
&& $valueExpr->class->name === 'self'
237241
&& $valueExpr->name->name === $traitConstant->getName()
238242
);
239243
if (
240244
!$isValueSelfReference
241-
&& isset($classConstantValueType)
245+
&& isset($constantNativeTypeType)
242246
&& !$classConstantValueType instanceof $constantNativeTypeType
243247
&& $classConstantValueType->isSuperTypeOf($constantNativeTypeType)->no()
244248
) {

0 commit comments

Comments
 (0)