From 4072823d321e6157b1c4cd3d7a79cd3b9b698449 Mon Sep 17 00:00:00 2001 From: Sebastian Bergmann Date: Thu, 28 Aug 2025 13:45:26 +0200 Subject: [PATCH] Avoid extra loop --- src/Target/MapBuilder.php | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/Target/MapBuilder.php b/src/Target/MapBuilder.php index 87b560ef6..73395524f 100644 --- a/src/Target/MapBuilder.php +++ b/src/Target/MapBuilder.php @@ -160,11 +160,17 @@ public function build(Filter $filter, FileAnalyser $analyser): array } foreach ($this->parentClasses($classDetails, $class) as $parentClass) { - $classes[$class->namespacedName()] = array_merge_recursive( + $merged = array_merge_recursive( $classes[$class->namespacedName()], $classes[$parentClass->namespacedName()], ); + foreach ($merged as $mergedFile => $lines) { + $merged[$mergedFile] = array_unique($lines); + } + + $classes[$class->namespacedName()] = $merged; + if (isset($classesThatExtendClass[$parentClass->namespacedName()])) { $this->process($classesThatExtendClass, $parentClass->namespacedName(), $class->file(), $class->startLine(), $class->endLine()); } @@ -187,15 +193,6 @@ public function build(Filter $filter, FileAnalyser $analyser): array unset($classesThatExtendClass[$className]); } - /** - * @todo Avoid duplication and remove this loop - */ - foreach ($classes as $className => $files) { - foreach (array_keys($files) as $file) { - $classes[$className][$file] = array_unique($classes[$className][$file]); - } - } - return [ 'namespaces' => $namespaces, 'traits' => $traits,