From dd9fb48a0c8b16f9b9fdd60303ff5cd7a9848c8a Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 28 Aug 2025 18:09:17 +0200 Subject: [PATCH] run array_unique() only once per class --- src/Target/MapBuilder.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Target/MapBuilder.php b/src/Target/MapBuilder.php index 73395524f..c76403f5c 100644 --- a/src/Target/MapBuilder.php +++ b/src/Target/MapBuilder.php @@ -160,20 +160,20 @@ public function build(Filter $filter, FileAnalyser $analyser): array } foreach ($this->parentClasses($classDetails, $class) as $parentClass) { - $merged = array_merge_recursive( + $classes[$class->namespacedName()] = array_merge_recursive( $classes[$class->namespacedName()], $classes[$parentClass->namespacedName()], ); - foreach ($merged as $mergedFile => $lines) { - $merged[$mergedFile] = array_unique($lines); + if (!isset($classesThatExtendClass[$parentClass->namespacedName()])) { + continue; } - $classes[$class->namespacedName()] = $merged; + $this->process($classesThatExtendClass, $parentClass->namespacedName(), $class->file(), $class->startLine(), $class->endLine()); + } - if (isset($classesThatExtendClass[$parentClass->namespacedName()])) { - $this->process($classesThatExtendClass, $parentClass->namespacedName(), $class->file(), $class->startLine(), $class->endLine()); - } + foreach ($classes[$class->namespacedName()] as $file => $lines) { + $classes[$class->namespacedName()][$file] = array_unique($lines); } }