Skip to content

Conversation

@dwijnand
Copy link
Member

@dwijnand dwijnand commented Aug 29, 2021

In the ordinal method, drop the use of @unchecked by skipping children
that are sealed traits or sealed abstract classes and don't have any
anonymous subclasses.

The @unchecked I added in ee5a82f. In a
PR to do specifically with reachability I started seeing similar warnings in
ordinal (this was before adding @unchecked was merged) so I'm hoping
with this patch to avoid the false positives properly.

@dwijnand
Copy link
Member Author

dwijnand commented Sep 9, 2021

This is failing because the "tricksier" variation in the second half of tests/patmat/t6146.scala is now emitting an unreachable warning.

But first: I found that the definition order of the T1/T2 traits, the O1/O2 objects and the external child Shorty changed whether or not the unreachable warning was emitted by ordinal. That made me believe that the definition order affected which were the sealed children or possibly just affected the ordinal match emission. Turns out it's the logic of suppressing reachability warnings until we hit a case that matches that was affecting it: Shorty never matches, but if case _: Shorty => comes first (which happens when it's declared before the traits) then it's ignored. So I'm addressing that first in #13485.

In that "emit deferred reachability warnings" PR, in turn, I discovered that my fix for unboxed/boxed primitives (#13290) wasn't right, the unreachable ones were just not getting reported.

So now I need to fix Shorty not being considered a valid case for O1.O2.Format and then the match won't have any unreachable cases.

In the `ordinal` method, drop the use of `@unchecked` by skipping
children that are sealed traits or sealed abstract classes and don't
have any anonymous subclasses.

The `@unchecked` I added in ee5a82f.
In a PR to specifically with reachability I started similar warnings in
`ordinal` (this was before adding `@unchecked` was merged) so I'm hoping
with this patch to avoid the false positives properly.
@dwijnand
Copy link
Member Author

Fix that, and something else breaks. Taking a break from this.

@dwijnand dwijnand closed this Sep 22, 2021
@dwijnand dwijnand deleted the check-ordinal-match branch September 22, 2021 17:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant