|
14 | 14 | use function array_unique; |
15 | 15 | use function range; |
16 | 16 | use SebastianBergmann\CodeCoverage\Filter; |
| 17 | +use SebastianBergmann\CodeCoverage\StaticAnalysis\Class_; |
17 | 18 | use SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser; |
| 19 | +use SebastianBergmann\CodeCoverage\StaticAnalysis\Trait_; |
18 | 20 |
|
19 | 21 | /** |
20 | 22 | * @phpstan-import-type TargetMap from Mapper |
@@ -50,16 +52,7 @@ public function build(Filter $filter, FileAnalyser $analyser): array |
50 | 52 | } |
51 | 53 |
|
52 | 54 | $this->process($traits, $trait->namespacedName(), $file, $trait->startLine(), $trait->endLine()); |
53 | | - |
54 | | - foreach ($trait->methods() as $method) { |
55 | | - $methodName = $trait->namespacedName() . '::' . $method->name(); |
56 | | - |
57 | | - $this->process($methods, $methodName, $file, $method->startLine(), $method->endLine()); |
58 | | - |
59 | | - foreach (range($method->startLine(), $method->endLine()) as $line) { |
60 | | - $reverseLookup[$file . ':' . $line] = $methodName; |
61 | | - } |
62 | | - } |
| 55 | + $this->processMethods($trait, $file, $methods, $reverseLookup); |
63 | 56 | } |
64 | 57 | } |
65 | 58 |
|
@@ -121,15 +114,7 @@ public function build(Filter $filter, FileAnalyser $analyser): array |
121 | 114 | } |
122 | 115 | } |
123 | 116 |
|
124 | | - foreach ($class->methods() as $method) { |
125 | | - $methodName = $class->namespacedName() . '::' . $method->name(); |
126 | | - |
127 | | - $this->process($methods, $methodName, $file, $method->startLine(), $method->endLine()); |
128 | | - |
129 | | - foreach (range($method->startLine(), $method->endLine()) as $line) { |
130 | | - $reverseLookup[$file . ':' . $line] = $methodName; |
131 | | - } |
132 | | - } |
| 117 | + $this->processMethods($class, $file, $methods, $reverseLookup); |
133 | 118 |
|
134 | 119 | $classesThatExtendClass[$class->namespacedName()] = []; |
135 | 120 | $classDetails[] = $class; |
@@ -201,6 +186,19 @@ public function build(Filter $filter, FileAnalyser $analyser): array |
201 | 186 | ]; |
202 | 187 | } |
203 | 188 |
|
| 189 | + private function processMethods(Class_|Trait_ $classOrTrait, string $file, array &$methods, array &$reverseLookup): void |
| 190 | + { |
| 191 | + foreach ($classOrTrait->methods() as $method) { |
| 192 | + $methodName = $classOrTrait->namespacedName() . '::' . $method->name(); |
| 193 | + |
| 194 | + $this->process($methods, $methodName, $file, $method->startLine(), $method->endLine()); |
| 195 | + |
| 196 | + foreach (range($method->startLine(), $method->endLine()) as $line) { |
| 197 | + $reverseLookup[$file . ':' . $line] = $methodName; |
| 198 | + } |
| 199 | + } |
| 200 | + } |
| 201 | + |
204 | 202 | /** |
205 | 203 | * @param TargetMapPart $data |
206 | 204 | * @param non-empty-string $unit |
|
0 commit comments