Skip to content

Commit 0fa49e6

Browse files
committed
[TASK] Update RuleSet::comparePositionable to use new methods
`getLineNo` and `getColNo` are deprecated. They were originally used in this method to ease backporting and transition to their replacement counterparts: `getLineNumber` and `getColumnNumber`, which differ by returning `null` in the case of 'not set'. Part of #974
1 parent b961840 commit 0fa49e6

1 file changed

Lines changed: 23 additions & 3 deletions

File tree

src/RuleSet/RuleSet.php

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -314,13 +314,33 @@ protected function renderRules(OutputFormat $outputFormat): string
314314

315315
/**
316316
* @return int negative if `$first` is before `$second`; zero if they have the same position; positive otherwise
317+
*
318+
* @throws \UnexpectedValueException if either argument does not have a valid position, which should never happen
317319
*/
318320
private static function comparePositionable(Positionable $first, Positionable $second): int
319321
{
320-
if ($first->getLineNo() === $second->getLineNo()) {
321-
return $first->getColNo() - $second->getColNo();
322+
$firstsLineNumber = $first->getLineNumber();
323+
$secondsLineNumber = $second->getLineNumber();
324+
if (!isset($firstsLineNumber, $secondsLineNumber)) {
325+
throw new \UnexpectedValueException(
326+
'A Rule without a line number was passed to comparePositionable',
327+
1750637683
328+
);
322329
}
323-
return $first->getLineNo() - $second->getLineNo();
330+
331+
if ($firstsLineNumber === $secondsLineNumber) {
332+
$firstsColumnNumber = $first->getColumnNumber();
333+
$secondsColumnNumber = $second->getColumnNumber();
334+
if (!isset($firstsColumnNumber, $secondsColumnNumber)) {
335+
throw new \UnexpectedValueException(
336+
'A Rule without a column number was passed to comparePositionable',
337+
1750637761
338+
);
339+
}
340+
return $firstsColumnNumber - $secondsColumnNumber;
341+
}
342+
343+
return $firstsLineNumber - $secondsLineNumber;
324344
}
325345

326346
private function hasRule(Rule $rule): bool

0 commit comments

Comments
 (0)