Skip to content

Compiler crash: assignment inside anonymous class inside value class #4811

@allanrenucci

Description

@allanrenucci
class StringOps(val s: String) extends AnyVal {
  def lines: Iterator[String] = new collection.AbstractIterator[String] {
    private[this] var index = 0
    def hasNext: Boolean = false
    def next(): String = {
      index = 1 // I'm causing the crash
      ""
    }
  }
}
> dotc Test.scala
Exception in thread "main" java.lang.AssertionError: assertion failed
	at scala.Predef$.assert(Predef.scala:204)
	at dotty.tools.dotc.ast.tpd$TreeOps$.$anonfun$becomes$1(tpd.scala:864)
	at dotty.tools.dotc.core.Symbols$Symbol.orElse(Symbols.scala:554)
	at dotty.tools.dotc.ast.tpd$TreeOps$.becomes$extension(tpd.scala:863)
	at dotty.tools.dotc.transform.Getters.transformAssign(Getters.scala:75)
	at dotty.tools.dotc.transform.MegaPhase.goAssign(MegaPhase.scala:667)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions