Skip to content

ICE: java.lang.AssertionError: assertion failed: Non-sensical cast between unrelated types ErasedValueType(I0, Double) and ErasedValueType(I0, Double), at dotty.tools.dotc.transform.Erasure$Boxing$.cast(Erasure.scala:335) #12447

@chengniansun

Description

@chengniansun

Compiler Version

Scala compiler version 3.0.1-RC1-bin-SNAPSHOT-git-4410752 -- Copyright 2002-2021, LAMP/EPFL

System Information

Linux 5.4.0-66-generic x86_64 GNU/Linux

Minimized Code

class I0(I0: Double with I0) extends AnyVal

Output (click arrow to expand)

Details
exception while typing I0.hashCode$extension(this) of class class dotty.tools.dotc.ast.Trees$Apply # -1
exception while typing I0.hashCode$extension(this)() of class class dotty.tools.dotc.ast.Trees$Apply # -1
exception while typing override def hashCode(): Int = I0.hashCode$extension(this)() of class class dotty.tools.dotc.ast.Trees$DefDef # -1
exception while typing @scala.annotation.internal.SourceFile("mutant.scala") final class I0(I0: Double & I0) extends AnyVal() {
  override def hashCode(): Int = I0.hashCode$extension(this)()
  override def equals(x$0: Any): Boolean = I0.equals$extension(this)(x$0)
  private def I0: Double & I0
} of class class dotty.tools.dotc.ast.Trees$TypeDef # -1
exception while typing package <empty> {
  @scala.annotation.internal.SourceFile("mutant.scala") final class I0(I0: Double & I0) extends AnyVal() {
    override def hashCode(): Int = I0.hashCode$extension(this)()
    override def equals(x$0: Any): Boolean = I0.equals$extension(this)(x$0)
    private def I0: Double & I0
  }
  final lazy module val I0: I0$ = new I0$()
  @scala.annotation.internal.SourceFile("mutant.scala") final module class I0$() extends AnyRef() {
    private def writeReplace(): AnyRef = new scala.runtime.ModuleSerializationProxy(classOf[I0.type])
    final def hashCode$extension($this: I0)(): Int = I0.hashCode$extension($this.I0)()
    final def equals$extension($this: I0)(x$0: Any): Boolean =
      matchResult1[Boolean]:
        {
          case val x1: (x$0 : Object) = x$0
          if x1.$isInstanceOf$[I0 @unchecked] then
            {
              case val x$0: I0 = x1.$asInstanceOf$[I0 @unchecked]
              return[matchResult1] $this.I0.==(x$0.I0)
            }
           else ()
          return[matchResult1] false
        }
  }
} of class class dotty.tools.dotc.ast.Trees$PackageDef # -1
exception occurred while compiling mutant.scala
java.lang.AssertionError: assertion failed: Non-sensical cast between unrelated types ErasedValueType(I0, Double) and ErasedValueType(I0, Double) while compiling mutant.scala
Exception in thread "main" java.lang.AssertionError: assertion failed: Non-sensical cast between unrelated types ErasedValueType(I0, Double) and ErasedValueType(I0, Double)
	at scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8)
	at dotty.tools.dotc.transform.Erasure$Boxing$.cast(Erasure.scala:335)
	at dotty.tools.dotc.transform.Erasure$Boxing$.unbox(Erasure.scala:303)
	at dotty.tools.dotc.transform.Erasure$Boxing$.adaptToType(Erasure.scala:379)
	at dotty.tools.dotc.transform.Erasure$Typer.adapt(Erasure.scala:1065)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2813)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2817)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2933)
	at dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:850)
	at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:153)
	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2685)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2748)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2813)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2817)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2933)
	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:837)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2685)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2748)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2813)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2817)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2933)
	at dotty.tools.dotc.typer.Typer.$anonfun$34(Typer.scala:2158)
	at dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:225)
	at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:2158)
	at dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:955)
	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2662)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2747)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2813)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2817)
	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2839)
	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2889)
	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1053)
	at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2344)
	at dotty.tools.dotc.transform.Erasure$Typer.typedClassDef(Erasure.scala:1043)
	at dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$2(Typer.scala:2673)
	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2677)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2747)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2813)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2817)
	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2839)
	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2889)
	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1053)
	at dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2467)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2718)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2748)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2813)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2817)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2933)
	at dotty.tools.dotc.transform.Erasure.run(Erasure.scala:132)
	at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:303)
	at scala.collection.immutable.List.map(List.scala:246)
	at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:304)
	at dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:205)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
	at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1323)
	at dotty.tools.dotc.Run.runPhases$5(Run.scala:216)
	at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:224)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
	at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:67)
	at dotty.tools.dotc.Run.compileUnits(Run.scala:231)
	at dotty.tools.dotc.Run.compileSources(Run.scala:166)
	at dotty.tools.dotc.Run.compile(Run.scala:150)
	at dotty.tools.dotc.Driver.doCompile(Driver.scala:39)
	at dotty.tools.dotc.Driver.process(Driver.scala:199)
	at dotty.tools.dotc.Driver.process(Driver.scala:167)
	at dotty.tools.dotc.Driver.process(Driver.scala:179)
	at dotty.tools.dotc.Driver.main(Driver.scala:209)
	at dotty.tools.dotc.Main.main(Main.scala)

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions