Skip to content

[implicit search] Comparison method violates its general contract! #12479

Closed
@scf37

Description

@scf37

Compiler version

3.0.0-RC3

Minimized code

No minimized code, sorry.

Output (click arrow to expand)

scalac: Error: Comparison method violates its general contract!
java.lang.IllegalArgumentException: Comparison method violates its general contract!
	at java.util.TimSort.mergeHi(TimSort.java:899)
	at java.util.TimSort.mergeAt(TimSort.java:516)
	at java.util.TimSort.mergeForceCollapse(TimSort.java:457)
	at java.util.TimSort.sort(TimSort.java:254)
	at java.util.Arrays.sort(Arrays.java:1438)
	at scala.collection.SeqOps.sorted(Seq.scala:700)
	at scala.collection.SeqOps.sorted$(Seq.scala:692)
	at scala.collection.immutable.List.scala$collection$immutable$StrictOptimizedSeqOps$$super$sorted(List.scala:79)
	at scala.collection.immutable.StrictOptimizedSeqOps.sorted(StrictOptimizedSeqOps.scala:78)
	at scala.collection.immutable.StrictOptimizedSeqOps.sorted$(StrictOptimizedSeqOps.scala:78)
	at scala.collection.immutable.List.sorted(List.scala:79)
	at scala.collection.SeqOps.sortWith(Seq.scala:727)
	at scala.collection.SeqOps.sortWith$(Seq.scala:727)
	at scala.collection.AbstractSeq.sortWith(Seq.scala:1149)
	at dotty.tools.dotc.typer.Implicits$ImplicitSearch.sort$1(Implicits.scala:1283)
	at dotty.tools.dotc.typer.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:1298)
	at dotty.tools.dotc.typer.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:1305)
	at dotty.tools.dotc.typer.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1338)
	at dotty.tools.dotc.typer.Implicits.inferImplicit(Implicits.scala:974)
	at dotty.tools.dotc.typer.Implicits.inferImplicit$(Implicits.scala:769)
	at dotty.tools.dotc.typer.Typer.inferImplicit(Typer.scala:103)
	at dotty.tools.dotc.typer.Implicits.inferImplicitArg(Implicits.scala:843)
	at dotty.tools.dotc.typer.Implicits.inferImplicitArg$(Implicits.scala:769)
	at dotty.tools.dotc.typer.Typer.inferImplicitArg(Typer.scala:103)
	at dotty.tools.dotc.typer.Typer.implicitArgs$1(Typer.scala:3287)
	at dotty.tools.dotc.typer.Typer.addImplicitArgs$3(Typer.scala:3323)
	at dotty.tools.dotc.typer.Typer.adaptNoArgsImplicitMethod$2(Typer.scala:3402)
	at dotty.tools.dotc.typer.Typer.adaptNoArgs$1(Typer.scala:3580)
	at dotty.tools.dotc.typer.Typer.adapt1(Typer.scala:3793)
	at dotty.tools.dotc.typer.Typer.adapt(Typer.scala:3134)
	at dotty.tools.dotc.typer.Typer.readapt$1(Typer.scala:3145)
	at dotty.tools.dotc.typer.Typer.adapt1(Typer.scala:3780)
	at dotty.tools.dotc.typer.Typer.adapt(Typer.scala:3134)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2804)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2920)
	at dotty.tools.dotc.typer.Typer.$anonfun$35(Typer.scala:2146)
	at dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:225)
	at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:2146)
	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2650)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2734)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2804)
	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2826)
	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2876)
	at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2332)
	at dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$2(Typer.scala:2661)
	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2665)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2734)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2804)
	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2826)
	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2876)
	at dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2455)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2706)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2735)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2804)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2920)
	at dotty.tools.dotc.typer.FrontEnd.liftedTree1$1(FrontEnd.scala:79)
	at dotty.tools.dotc.typer.FrontEnd.typeCheck$$anonfun$1(FrontEnd.scala:84)
	at dotty.tools.dotc.typer.FrontEnd.monitor(FrontEnd.scala:43)
	at dotty.tools.dotc.typer.FrontEnd.typeCheck(FrontEnd.scala:85)
	at dotty.tools.dotc.typer.FrontEnd.runOn$$anonfun$3(FrontEnd.scala:120)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
	at scala.collection.immutable.List.foreach(List.scala:333)
	at dotty.tools.dotc.typer.FrontEnd.runOn(FrontEnd.scala:120)
	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:215)
	at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:223)
	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:230)
	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.Main.process(Main.scala)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions