Print Lists consistently in exhaustivity warnings #3003
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
First off - I wasn't too sure if I should open an issue for this, since it's so trivial. I apologise if I should.
This PR adjusts how
List
s are printed in error messages. Previously, depending on the specific pattern match in question, an unmatched::
would print differently depending on whether we ended up with aTyp
space orKon
space. For the simplest example,Typ(::)
was printed asList(_)
, butKon(::, Int, List[Int])
was printed asList(_, _*)
. The error messages were also slightly confusing, since to meList(_)
suggests that the list has only one member, whereas a::
can have one-or-more members. After adjustments,List
now prints consistently as though we had ended up with theKon
space. Note that the code is equivalent to showingKon(tp, signature(tp).map(Typ(_, false)))
./cc @liufengyun