Skip to content

Commit cbb7d2f

Browse files
committed
refactor: cleaned up FixApplier
1 parent ce968a1 commit cbb7d2f

1 file changed

Lines changed: 10 additions & 25 deletions

File tree

src/Fix/FixApplier.php

Lines changed: 10 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,12 @@ public function apply(File $file, array $fixes): FixResult
1717
return new FixResult($file);
1818
}
1919

20-
$plans = [];
21-
foreach ($fixes as $index => $fix) {
22-
$plan = $fix instanceof FixPlan ? $fix : new FixPlan($fix);
23-
$plans[] = [
24-
'index' => $index,
25-
'plan' => $plan,
26-
];
27-
}
28-
29-
usort($plans, static function (array $a, array $b): int {
30-
$offsetComparison = $a['plan']->firstOffset() <=> $b['plan']->firstOffset();
20+
$plans = array_map(
21+
static fn ($fix): FixPlan => $fix instanceof FixPlan ? $fix : new FixPlan($fix),
22+
$fixes,
23+
);
3124

32-
return $offsetComparison !== 0
33-
? $offsetComparison
34-
: $a['index'] <=> $b['index'];
35-
});
25+
usort($plans, static fn (FixPlan $a, FixPlan $b): int => $a->firstOffset() <=> $b->firstOffset());
3626

3727
/** @var list<Fix> $acceptedFixes */
3828
$acceptedFixes = [];
@@ -42,7 +32,7 @@ public function apply(File $file, array $fixes): FixResult
4232
$content = $file->content;
4333
$length = strlen($content);
4434

45-
foreach ($plans as ['plan' => $plan]) {
35+
foreach ($plans as $plan) {
4636
if (!$this->canApply($file, $length, $plan, $acceptedFixes)) {
4737
$skipped++;
4838
continue;
@@ -69,10 +59,10 @@ public function apply(File $file, array $fixes): FixResult
6959
$sourceOffset = $fix->untilOffset;
7060
}
7161

72-
$content = $fixedContent . substr($content, $sourceOffset);
62+
$fixedContent .= substr($content, $sourceOffset);
7363

7464
return new FixResult(
75-
file: $file->withContent($content),
65+
file: $file->withContent($fixedContent),
7666
applied: $acceptedPlans,
7767
skipped: $skipped,
7868
appliedFixes: $acceptedFixes,
@@ -91,7 +81,6 @@ private function canApply(File $file, int $contentLength, FixPlan $plan, array $
9181
foreach ($plan->fixes as $fix) {
9282
if (
9383
$fix->filePath !== $file->path
94-
|| $fix->filePath !== $first->filePath
9584
|| $fix->sniffCode !== $first->sniffCode
9685
|| $fix->beginOffset < 0
9786
|| $fix->untilOffset < $fix->beginOffset
@@ -138,9 +127,7 @@ private function conflictsWithAcceptedFix(Fix $fix, array $acceptedFixes): bool
138127
|| ($index < count($acceptedFixes) && self::overlaps($acceptedFixes[$index], $fix));
139128
}
140129

141-
/**
142-
* @param list<Fix> $fixes
143-
*/
130+
/** @param list<Fix> $fixes */
144131
private function insertFix(array &$fixes, Fix $fix): void
145132
{
146133
$lastIndex = count($fixes) - 1;
@@ -152,9 +139,7 @@ private function insertFix(array &$fixes, Fix $fix): void
152139
array_splice($fixes, $this->insertionIndex($fixes, $fix), 0, [$fix]);
153140
}
154141

155-
/**
156-
* @param list<Fix> $fixes
157-
*/
142+
/** @param list<Fix> $fixes */
158143
private function insertionIndex(array $fixes, Fix $fix): int
159144
{
160145
$low = 0;

0 commit comments

Comments
 (0)