mutant icon indicating copy to clipboard operation
mutant copied to clipboard

Skip mutation of `else T.absurd`

Open rodrigovilina opened this issue 3 years ago • 1 comments

Sorbet declares unreachable else-clauses using a call to T.absurd. This is necessary for sorbet to actually verify all possible types or values have been already checked.

We need to be able to skip the mutations that remove the else branch when it's content is a call to T.absurd, because most of the times there is no practical way to reach it in tests.

case elem # say this is T.any(Integer, String)
when Integer then some
when String then some_other
else T.absurd(elem)
end

rodrigovilina avatar Dec 06 '21 14:12 rodrigovilina

This is true for both case statements and if statements.

rodrigovilina avatar Dec 06 '21 14:12 rodrigovilina