Closed
Description
object Test {
def res(x: quoted.Expr[Int]) given tasty.Reflection: quoted.Expr[Int] = x match {
case '{ val a: Int = $y; 1} => y
}
}
fail to Ycheck
exception while typing {
case val y: scala.quoted.Expr[Int] = x4._1
return[matchResult1]
{
y:scala.quoted.Expr[Int]
}
} of class class dotty.tools.dotc.ast.Trees$Block # 1604
...
...
...
*** error while checking tests/pos/quotedPatterns.scala after phase crossCast ***
exception occurred while compiling tests/pos/quotedPatterns.scala
java.lang.AssertionError: assertion failed: bad owner; value y has owner value a, expected was method res
owner chain = value y, value a, method res, object Test, package <empty>, package <root>, ctxOwners = method res, method res, method res, method res, method res, method res, object Test, object Test, object Test, package <empty>, package <root>, package <root>, package <root>, package <root>, package <root>, package <root>, package <root>, package <root>, <none>, <none>, <none>, <none> while compiling tests/pos/quotedPatterns.scala
Exception in thread "main" java.lang.AssertionError: assertion failed: bad owner; value y has owner value a, expected was method res
owner chain = value y, value a, method res, object Test, package <empty>, package <root>, ctxOwners = method res, method res, method res, method res, method res, method res, object Test, object Test, object Test, package <empty>, package <root>, package <root>, package <root>, package <root>, package <root>, package <root>, package <root>, package <root>, <none>, <none>, <none>, <none>
at scala.Predef$.assert(Predef.scala:223)
at dotty.tools.dotc.transform.TreeChecker$Checker.checkOwner(TreeChecker.scala:356)
at dotty.tools.dotc.transform.TreeChecker$Checker.$anonfun$typedStats$1(TreeChecker.scala:425)
at dotty.tools.dotc.transform.TreeChecker$Checker.$anonfun$typedStats$1$adapted(TreeChecker.scala:424)
at scala.collection.immutable.List.foreach(List.scala:392)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedStats(TreeChecker.scala:424)
at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:698)
at dotty.tools.dotc.typer.Typer.$anonfun$typedBlock$1(Typer.scala:701)
at dotty.tools.dotc.util.Stats$.track(Stats.scala:37)
at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:700)
at dotty.tools.dotc.transform.TreeChecker$Checker.super$typedBlock(TreeChecker.scala:411)
at dotty.tools.dotc.transform.TreeChecker$Checker.$anonfun$typedBlock$1(TreeChecker.scala:411)
at dotty.tools.dotc.transform.TreeChecker$Checker.withDefinedSyms(TreeChecker.scala:169)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedBlock(TreeChecker.scala:411)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2077)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2124)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:117)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:267)
...