Sébastien Doeraene

Results 629 comments of Sébastien Doeraene

/cc @xuwei-k for the changes to the test at https://github.com/scala/scala3/pull/20539/files#diff-3514058c43797515edabf8b5ca77c277e9d338f82d0ad7f9b022db83e27fd674 which shows that WartRemover's current implementation will be broken by this change.

@Gedochao If we merge this now, we *must* backport it to 3.5.0-RC2. The alternative is to wait for 3.6.0.

I believe I addressed all the comments so far.

IMO this is the actual issue: ```scala val x1: M1[?] = ??? // application to `?` is accepted ``` I don't think this should be accepted. The expansion is not...

> But `R2`, and hence `M2[?]`, should be legal, right ? Unclear. In fact it's unclear that substituting a `?` for a type parameter inside a match type *pattern* is...

> but `U` is not an abstract tycon right ? Is the message incorrect, and if so is the error also incorrect ? Looks like the message incorrect. It should...

Looks like the exemption was added in 6871cff88ee8994215ea30a56b33c3c1af9f2557 by @odersky. Quoting from the commit message: > If `M[_]` is a match type alias, it was rejected for being an unreducible...

It's more than just the patterns, though. If you have ```scala type F[X, Y] = X match { case Int => (Y, Y) } ``` and you now apply `F[Int,...