Skip to content

val unapply with ClassTags stackoverflows the compiler #7532

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
nicolasstucki opened this issue Nov 11, 2019 · 0 comments
Closed

val unapply with ClassTags stackoverflows the compiler #7532

nicolasstucki opened this issue Nov 11, 2019 · 0 comments

Comments

@nicolasstucki
Copy link
Contributor

minimized code

class Tasty {
  type Term
  type Select

  given scala.reflect.ClassTag[Term] = ???
  given scala.reflect.ClassTag[Select] = ???
  object Select {
    def unapply(x: Select): Boolean = ???
  }
}

object Foo {
  def impl(given tasty: Tasty): Unit = {
    import tasty.{_, given}
    val Select() = (??? : Term)
  }
}
Stack trace
java.lang.StackOverflowError while compiling Foo.scala
Exception in thread "main" java.lang.StackOverflowError
        at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:162)
        at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:170)
        at dotty.tools.dotc.core.TypeComparer.topLevelSubType(TypeComparer.scala:127)
        at dotty.tools.dotc.core.Types$Type.$less$colon$less(Types.scala:853)
        at dotty.tools.dotc.typer.Typer.adaptNoArgsOther$6(Typer.scala:2771)
        at dotty.tools.dotc.typer.Typer.adaptNoArgs$1(Typer.scala:2840)
        at dotty.tools.dotc.typer.Typer.adapt1(Typer.scala:3046)
        at dotty.tools.dotc.typer.Typer.adapt(Typer.scala:2452)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2241)
        at dotty.tools.dotc.typer.Typer.typeSelectOnTerm$1(Typer.scala:455)
        at dotty.tools.dotc.typer.Typer.typedSelect(Typer.scala:478)
        at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2039)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2116)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2241)
        at dotty.tools.dotc.typer.Applications.tryWithProto$1(Applications.scala:1093)
        at dotty.tools.dotc.typer.Applications.tryWithName$1$$anonfun$1(Applications.scala:1100)
        at dotty.tools.dotc.typer.Typer.tryEither(Typer.scala:2249)
        at dotty.tools.dotc.typer.Applications.tryWithName$5(Applications.scala:1108)
        at dotty.tools.dotc.typer.Applications.trySelectUnapply$1(Applications.scala:1114)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1123)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2165)
        at dotty.tools.dotc.typer.Typer.tryWithClassTag(Typer.scala:687)
        at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1190)
        at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:83)
        at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2059)
        at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2117)
        at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2153)
        ...
nicolasstucki added a commit to dotty-staging/dotty that referenced this issue Nov 11, 2019
odersky added a commit that referenced this issue Nov 15, 2019
Fix #7532: Do not search for ClassTag if abstract types are equal
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant