Skip to content

StackOverflow in TypeAssigner with @inline & type alias #1891

Closed
@OlivierBlanvillain

Description

@OlivierBlanvillain
object Test {
  case class CC2[A, B](a: A, b: B)

  type T2[A, B] = CC2[A, B]

  class ArrowAssoc[A](val self: A) {
    @inline def f[B](y: B): CC2[A, B] = CC2(self, y)
  }

  def foo = (new ArrowAssoc(1)).f(2)
}
Exception in thread "main" java.lang.StackOverflowError
        at dotty.tools.dotc.ast.tpd$.localSyms(tpd.scala:20)
        at dotty.tools.dotc.typer.TypeAssigner$$anonfun$avoidingType$1.apply(TypeAssigner.scala:133)
        at dotty.tools.dotc.typer.TypeAssigner$$anonfun$avoidingType$1.apply(TypeAssigner.scala:133)
        at dotty.tools.dotc.typer.TypeAssigner$$anon$2.forbidden$lzycompute(TypeAssigner.scala:54)
        at dotty.tools.dotc.typer.TypeAssigner$$anon$2.forbidden(TypeAssigner.scala:54)
        at dotty.tools.dotc.typer.TypeAssigner$$anon$2$$anonfun$toAvoid$1.apply(TypeAssigner.scala:59)
        at dotty.tools.dotc.typer.TypeAssigner$$anon$2$$anonfun$toAvoid$1.apply(TypeAssigner.scala:58)
        at dotty.tools.dotc.core.Types$ExistsAccumulator.apply(Types.scala:3735)
        at dotty.tools.dotc.core.Types$Type.existsPart(Types.scala:236)
        at dotty.tools.dotc.typer.TypeAssigner$$anon$2.toAvoid(TypeAssigner.scala:58)
        at dotty.tools.dotc.typer.TypeAssigner$$anon$2.apply(TypeAssigner.scala:69)
        at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:3479)
        at dotty.tools.dotc.typer.TypeAssigner$$anon$2.apply(TypeAssigner.scala:126)
        at dotty.tools.dotc.typer.TypeAssigner$class.avoid(TypeAssigner.scala:129)
        at dotty.tools.dotc.typer.Typer.avoid(Typer.scala:64)
        at dotty.tools.dotc.typer.TypeAssigner$$anon$2.apply(TypeAssigner.scala:123)
        at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:3479)
        at dotty.tools.dotc.typer.TypeAssigner$$anon$2.apply(TypeAssigner.scala:126)
        ...

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions