|
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