Skip to content

Commit

Permalink
Type desugared transparent inline def unapply call in the correct m…
Browse files Browse the repository at this point in the history
…ode (scala#20108)

This regressed in 5648f12.

Fixes scala#20107.
  • Loading branch information
nicolasstucki authored Apr 9, 2024
2 parents 1e8a653 + 5672caa commit 4ea930b
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
3 changes: 2 additions & 1 deletion compiler/src/dotty/tools/dotc/typer/Applications.scala
Original file line number Diff line number Diff line change
Expand Up @@ -1430,7 +1430,8 @@ trait Applications extends Compatibility {
report.error(em"Structural unapply is not supported", unapplyFn.srcPos)
(unapplyFn, unapplyAppCall)
case Apply(fn, `dummyArg` :: Nil) =>
val inlinedUnapplyFn = Inlines.inlinedUnapplyFun(fn)
val inlinedUnapplyFn = withoutMode(Mode.Pattern):
Inlines.inlinedUnapplyFun(fn)
(inlinedUnapplyFn, inlinedUnapplyFn.appliedToArgs(`dummyArg` :: Nil))
case Apply(fn, args) =>
val (fn1, app) = rec(fn)
Expand Down
6 changes: 6 additions & 0 deletions tests/pos/i20107.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
object foo:
transparent inline def unapply[F](e: F): Option[F] = Some(e.asInstanceOf[F])

class A:
def test(x: Int) = x match
case foo(e) => e

0 comments on commit 4ea930b

Please sign in to comment.