Skip to content

Error unpickling complex type quotes #4591

Closed
@nicolasstucki

Description

@nicolasstucki
import dotty.tools.dotc.quoted.Toolbox._
import scala.quoted._

object Test {

  def foo[T: Type](init: Expr[T]): Expr[Unit] = '{
    var x = ~init
  }

  def main(args: Array[String]): Unit = {
    foo('(Option(9))).run
  }
}

crashes with

Exception in thread "main" scala.MatchError: AppliedType(TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),module scala),Option),List(TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),module scala),Int))) (of class dotty.tools.dotc.core.Types$CachedAppliedType)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readPathTerm$1(TreeUnpickler.scala:936)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readLengthTerm$1(TreeUnpickler.scala:1099)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readTerm(TreeUnpickler.scala:1105)
	at dotty.tools.dotc.core.tasty.TreeUnpickler.unpickleExpr(TreeUnpickler.scala:85)
	at dotty.tools.dotc.core.tasty.DottyUnpickler.unpickleExpr(DottyUnpickler.scala:50)
	at dotty.tools.dotc.core.quoted.PickledQuotes$.unpickle(PickledQuotes.scala:105)
	at dotty.tools.dotc.core.quoted.PickledQuotes$.unpickleType(PickledQuotes.scala:75)
	at dotty.tools.dotc.core.quoted.PickledQuotes$.quotedTypeToTree(PickledQuotes.scala:61)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readHole(TreeUnpickler.scala:1158)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readLengthType$1(TreeUnpickler.scala:314)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readType(TreeUnpickler.scala:386)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readTpt(TreeUnpickler.scala:1119)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readLengthTerm$1(TreeUnpickler.scala:1093)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readTerm(TreeUnpickler.scala:1105)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readTpt(TreeUnpickler.scala:1116)
	at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readNewDef(TreeUnpickler.scala:767)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions