Skip to content

Commit 43a3735

Browse files
authored
[TASK] Update RuleSet::addRule to use getLineNumber (#1284)
Part of #974
1 parent b0ce7af commit 43a3735

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

src/RuleSet/RuleSet.php

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,11 @@ public static function parseRuleSet(ParserState $parserState, RuleSet $ruleSet):
9494
$parserState->consume('}');
9595
}
9696

97+
/**
98+
* @throws \UnexpectedValueException
99+
* if the last `Rule` is needed as a basis for setting position, but does not have a valid position,
100+
* which should never happen
101+
*/
97102
public function addRule(Rule $ruleToAdd, ?Rule $sibling = null): void
98103
{
99104
$propertyName = $ruleToAdd->getRule();
@@ -147,7 +152,14 @@ public function addRule(Rule $ruleToAdd, ?Rule $sibling = null): void
147152
$rulesCount = \count($rules);
148153
if ($rulesCount > 0) {
149154
$last = $rules[$rulesCount - 1];
150-
$ruleToAdd->setPosition($last->getLineNo() + 1, $columnNumber);
155+
$lastsLineNumber = $last->getLineNumber();
156+
if (!\is_int($lastsLineNumber)) {
157+
throw new \UnexpectedValueException(
158+
'A Rule without a line number was found during addRule',
159+
1750718399
160+
);
161+
}
162+
$ruleToAdd->setPosition($lastsLineNumber + 1, $columnNumber);
151163
} else {
152164
$ruleToAdd->setPosition(1, $columnNumber);
153165
}

0 commit comments

Comments
 (0)