Skip to content

Commit 349b1ad

Browse files
staabmondrejmirtes
authored andcommitted
Prevent unnecessary type-traversal
1 parent 3103b88 commit 349b1ad

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

src/Analyser/MutatingScope.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5048,6 +5048,9 @@ private function exactInstantiation(New_ $node, Name $className): Type
50485048

50495049
$traverser = new ConstructorClassTemplateTraverser($classTemplateTypes);
50505050
foreach ($constructorVariant->getParameters() as $parameter) {
5051+
if (!$parameter->getType()->hasTemplateOrLateResolvableType()) {
5052+
continue;
5053+
}
50515054
TypeTraverser::map($parameter->getType(), $traverser);
50525055
}
50535056
$classTemplateTypes = $traverser->getClassTemplateTypes();
@@ -5219,6 +5222,11 @@ classReflection: $classReflection->withTypes($types)->asFinal(),
52195222
[],
52205223
);
52215224
}
5225+
5226+
if (!$newGenericType->hasTemplateOrLateResolvableType()) {
5227+
return $newGenericType;
5228+
}
5229+
52225230
return TypeTraverser::map($newGenericType, new GenericTypeTemplateTraverser($resolvedTemplateTypeMap));
52235231
}
52245232

0 commit comments

Comments
 (0)