Skip to content

Missing import in quoted pattern crashes the compiler #6325

Closed
@nicolasstucki

Description

@nicolasstucki
object Test {
  def res(x: quoted.Expr[Int]) given tasty.Reflection: quoted.Expr[Int] = x match {
    case '{ 1 + (${Bind(b)}: Int) } => ???
    case _ => ???
  }
}

crashes after missing import is reported

-- [E006] Unbound Identifier Error: tests/pos/quotedPatterns.scala:5:19 --------
5 |    case '{ (${Bind(b)}: Int) } => ???
  |               ^^^^^^^
  |               Not found: Bind

longer explanation available when compiling with `-explain`
exception occurred while typechecking tests/pos/quotedPatterns.scala
exception occurred while compiling tests/pos/quotedPatterns.scala
java.util.NoSuchElementException: head of empty list while compiling tests/pos/quotedPatterns.scala
Exception in thread "main" java.util.NoSuchElementException: head of empty list
	at scala.collection.immutable.Nil$.head(List.scala:430)
	at scala.collection.immutable.Nil$.head(List.scala:427)
	at dotty.tools.dotc.ast.tpd$Splice$.apply(tpd.scala:1184)
	at dotty.tools.dotc.typer.Typer.$anonfun$typedSplice$1(Typer.scala:2019)
	at dotty.tools.dotc.util.Stats$.track(Stats.scala:37)
	at dotty.tools.dotc.typer.Typer.typedSplice(Typer.scala:2006)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2135)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2149)
	at dotty.tools.dotc.typer.Typer.$anonfun$typed$2(Typer.scala:2183)
	at dotty.tools.dotc.reporting.TraceSyntax.apply(trace.scala:56)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2176)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2195)
	at dotty.tools.dotc.typer.Typer.ascription$1(Typer.scala:577)
	at dotty.tools.dotc.typer.Typer.$anonfun$typedTyped$5(Typer.scala:614)
	at dotty.tools.dotc.typer.Typer.cases$1(Typer.scala:566)
	at dotty.tools.dotc.typer.Typer.$anonfun$typedTyped$1(Typer.scala:612)
	at dotty.tools.dotc.util.Stats$.track(Stats.scala:37)
	at dotty.tools.dotc.typer.Typer.typedTyped(Typer.scala:552)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2099)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2149)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2137)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2149)
	at dotty.tools.dotc.typer.Typer.$anonfun$typed$2(Typer.scala:2183)
	at dotty.tools.dotc.reporting.TraceSyntax.apply(trace.scala:56)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2176)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2195)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2271)
	at dotty.tools.dotc.typer.Typer.$anonfun$typedQuote$1(Typer.scala:1944)
	at dotty.tools.dotc.util.Stats$.track(Stats.scala:37)
	at dotty.tools.dotc.typer.Typer.typedQuote(Typer.scala:1934)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2134)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2149)
	at dotty.tools.dotc.typer.Typer.$anonfun$typed$2(Typer.scala:2183)
	at dotty.tools.dotc.reporting.TraceSyntax.apply(trace.scala:56)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2176)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2195)
	at dotty.tools.dotc.typer.Typer.typedPattern(Typer.scala:2275)
	at dotty.tools.dotc.typer.Typer.$anonfun$typedCase$1(Typer.scala:1122)
	at dotty.tools.dotc.util.Stats$.track(Stats.scala:37)
	at dotty.tools.dotc.typer.Typer.typedCase(Typer.scala:1109)
	at dotty.tools.dotc.typer.Typer.$anonfun$typedCases$1(Typer.scala:1081)
	at dotty.tools.dotc.core.Decorators$ListDecorator$.loop$1(Decorators.scala:62)

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions