Skip to content

Pickler crash when binding typed pattern to name #16843

Closed
@prolativ

Description

@prolativ

Compiler version

3.3.1-RC1-bin-20230204-a356581-NIGHTLY nad before

Minimized code

import scala.quoted.*

case class Foo(x: Int)

inline def foo = ${ fooImpl }

def fooImpl(using Quotes) = 
  val tmp = '{
    1 match
      case x @ (y: Int) => 0
  }

  '{}
val x = foo

Output (click arrow to expand)

error] ./MacroTest.scala:1:9: Exception occurred while executing macro expansion.
[error] java.lang.AssertionError: assertion failed: no symbol at Addr(13)
[error]         at scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8)
[error]         at dotty.tools.dotc.core.tasty.TreeUnpickler$OwnerTree.search$1(TreeUnpickler.scala:1623)
[error]         at dotty.tools.dotc.core.tasty.TreeUnpickler$OwnerTree.search$1(TreeUnpickler.scala:1629)
[error]         at dotty.tools.dotc.core.tasty.TreeUnpickler$OwnerTree.findOwner(TreeUnpickler.scala:1638)
[error]         at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.symbolAt(TreeUnpickler.scala:268)
[error]         at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readSymRef(TreeUnpickler.scala:261)
[error]         at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readSimpleType$1(TreeUnpickler.scala:423)
[error]         at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readType(TreeUnpickler.scala:464)
[error]         at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readLengthTerm$1(TreeUnpickler.scala:1387)
[error]         at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readTerm(TreeUnpickler.scala:1449)
[error]         at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readCase(TreeUnpickler.scala:1502)
[error]         at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readCases$$anonfun$2(TreeUnpickler.scala:1493)
[error]         at dotty.tools.tasty.TastyReader.collectWhile(TastyReader.scala:137)
[error]         at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readCases(TreeUnpickler.scala:1494)
[error]         at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readLengthTerm$1(TreeUnpickler.scala:1337)
[error]         at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readTerm(TreeUnpickler.scala:1449)
[error]         at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readLengthTerm$1(TreeUnpickler.scala:1314)
[error]         at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readTerm(TreeUnpickler.scala:1449)
[error]         at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readTerm(TreeUnpickler.scala:1166)
[error]         at dotty.tools.dotc.core.tasty.TreeUnpickler.unpickle(TreeUnpickler.scala:113)
[error]         at dotty.tools.dotc.core.tasty.DottyUnpickler.computeRootTrees(DottyUnpickler.scala:62)
[error]         at dotty.tools.dotc.ast.tpd$TreeProvider.rootTrees(tpd.scala:1287)
[error]         at dotty.tools.dotc.ast.tpd$TreeProvider.rootTrees$(tpd.scala:1276)
[error]         at dotty.tools.dotc.core.tasty.DottyUnpickler.rootTrees(DottyUnpickler.scala:44)
[error]         at dotty.tools.dotc.ast.tpd$TreeProvider.tree(tpd.scala:1291)
[error]         at dotty.tools.dotc.ast.tpd$TreeProvider.tree$(tpd.scala:1276)
[error]         at dotty.tools.dotc.core.tasty.DottyUnpickler.tree(DottyUnpickler.scala:44)
[error]         at dotty.tools.dotc.quoted.PickledQuotes$.unpickle(PickledQuotes.scala:274)
[error]         at dotty.tools.dotc.quoted.PickledQuotes$.unpickleTerm(PickledQuotes.scala:84)
[error]         at scala.quoted.runtime.impl.QuotesImpl.unpickleExprV2(QuotesImpl.scala:3084)
[error]         at Macro$package$.fooImpl(Macro.scala:8)
[error] 
[error] val x = foo
[error]         ^^^

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions