Skip to content

def == with an implicit crashes the compiler #6816

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
soronpo opened this issue Jul 6, 2019 · 1 comment
Closed

def == with an implicit crashes the compiler #6816

soronpo opened this issue Jul 6, 2019 · 1 comment

Comments

@soronpo
Copy link
Contributor

soronpo commented Jul 6, 2019

minimized code

trait Bar
class MyBool
trait Foo {
  def == (that : Foo)(implicit b : Bar) : Boolean = ???
}

case class FooCC(f : Foo) //Compiler crash

FWIW, the following code compiles fine in dotty, but gets a missing implicit error in scalac:

trait Bar
class MyBool
trait Foo {
  def == (that : Foo)(implicit b : Bar) : MyBool = new MyBool
}

case class FooCC(f : Foo) //implicit not found in scalac

Related scalac issue: scala/bug#10536
Related dotty issue if extension methods will replace == in Any: https://github.com/lampepfl/dotty/issues/5803

Stack trace
error while transforming (f: Foo) extends Object(), _root_.scala.Product, _root_.scala.Serializable { 
  val f: Foo
  def productElementName(x$1: _root_.scala.Int): java.lang.String = 
    x$1 match 
      {
        case 0 => "f"
        case _ => 
          throw 
            new java.lang.IndexOutOfBoundsException(
              java.lang.String.valueOf(x$1)
            )
      }
  def copy(f: Foo): FooCC = new FooCC(f)
  def copy$default$1: Foo = FooCC.this.f:Foo(FooCC.this.f) @uncheckedVariance
  def _1: Foo = this.f
}
error while transforming @scala.annotation.internal.SourceFile(
  "C:\\IdeaProjects\\dottytest\\src\\main\\scala\\Main.scala"
) case class FooCC(f: Foo) extends Object(), _root_.scala.Product, _root_.scala.
  Serializable
 { 
  val f: Foo
  def productElementName(x$1: _root_.scala.Int): java.lang.String = 
    x$1 match 
      {
        case 0 => "f"
        case _ => 
          throw 
            new java.lang.IndexOutOfBoundsException(
              java.lang.String.valueOf(x$1)
            )
      }
  def copy(f: Foo): FooCC = new FooCC(f)
  def copy$default$1: Foo = FooCC.this.f:Foo(FooCC.this.f) @uncheckedVariance
  def _1: Foo = this.f
}
error while transforming package <empty> {
  @scala.annotation.internal.SourceFile(
    "C:\\IdeaProjects\\dottytest\\src\\main\\scala\\Main.scala"
  ) trait Bar() extends Object {}
  @scala.annotation.internal.SourceFile(
    "C:\\IdeaProjects\\dottytest\\src\\main\\scala\\Main.scala"
  ) trait Foo() extends Object { 
    def ==(that: Foo)(implicit b: Bar): Boolean = ???
  }
  @scala.annotation.internal.SourceFile(
    "C:\\IdeaProjects\\dottytest\\src\\main\\scala\\Main.scala"
  ) case class FooCC(f: Foo) extends Object(), _root_.scala.Product, _root_.
    scala
  .Serializable { 
    val f: Foo
    def productElementName(x$1: _root_.scala.Int): java.lang.String = 
      x$1 match 
        {
          case 0 => "f"
          case _ => 
            throw 
              new java.lang.IndexOutOfBoundsException(
                java.lang.String.valueOf(x$1)
              )
        }
    def copy(f: Foo): FooCC = new FooCC(f)
    def copy$default$1: Foo = FooCC.this.f:Foo(FooCC.this.f) @uncheckedVariance
    def _1: Foo = this.f
  }
  final lazy module val FooCC: FooCC$ = new FooCC$()
  final module class FooCC$() extends Object(), Function1[Foo, FooCC], _root_.
    scala
  .Serializable { this: FooCC.type => 
    def apply(f: Foo): FooCC = new FooCC(f)
    def unapply(x$1: FooCC): FooCC = x$1
  }
  final lazy module val Main: Main$ = new Main$()
  final module class Main$() extends Object(), _root_.scala.Serializable { 
    this: Main.type =>
   
    def main(args: Array[String]): Unit = 
      {
        println("Hello world!")
        println(Main.msg)
      }
    def msg: String = "I was compiled by dotty :)"
  }
}
java.lang.AssertionError: assertion failed: ImplicitMethodType(List(b), List(TypeRef(ThisType(TypeRef(NoPrefix,module class <empty>)),class Bar)), TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),module scala),class Boolean)) ConstantType(Constant(false)) while compiling C:\IdeaProjects\dottytest\src\main\scala\Main.scala
[info] exception occurred while compiling C:\IdeaProjects\dottytest\src\main\scala\Main.scala
[error] ## Exception when compiling 1 sources to C:\IdeaProjects\dottytest\target\scala-0.16\classes
[error] assertion failed: ImplicitMethodType(List(b), List(TypeRef(ThisType(TypeRef(NoPrefix,module class <empty>)),class Bar)), TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),module scala),class Boolean)) ConstantType(Constant(false))
[error] dotty.DottyPredef$.assertFail(DottyPredef.scala:16)
[error] dotty.tools.dotc.core.Types$OrType.<init>(Types.scala:2799)
[error] dotty.tools.dotc.core.Types$CachedOrType.<init>(Types.scala:2853)
[error] dotty.tools.dotc.core.Types$OrType$.apply(Types.scala:2858)
[error] dotty.tools.dotc.core.TypeComparer.orType$$anonfun$1(TypeComparer.scala:1933)
[error] dotty.tools.dotc.core.TypeComparer.liftIfHK(TypeComparer.scala:1947)
[error] dotty.tools.dotc.core.TypeComparer.orType(TypeComparer.scala:1933)
[error] dotty.tools.dotc.core.TypeComparer.lub(TypeComparer.scala:1753)
[error] dotty.tools.dotc.core.TypeComparer.lub$$anonfun$1(TypeComparer.scala:1758)
[error] scala.collection.LinearSeqOptimized.foldLeft(LinearSeqOptimized.scala:126)
[error] scala.collection.LinearSeqOptimized.foldLeft$(LinearSeqOptimized.scala:122)
[error] scala.collection.immutable.List.foldLeft(List.scala:89)
[error] scala.collection.TraversableOnce.$div$colon(TraversableOnce.scala:154)
[error] scala.collection.TraversableOnce.$div$colon$(TraversableOnce.scala:154)
[error] scala.collection.AbstractTraversable.$div$colon(Traversable.scala:108)
[error] dotty.tools.dotc.core.TypeComparer.lub(TypeComparer.scala:1758)
[error] dotty.tools.dotc.typer.TypeAssigner.assignType(TypeAssigner.scala:521)
[error] dotty.tools.dotc.typer.Typer.assignType(Typer.scala:87)
[error] dotty.tools.dotc.ast.tpd$.Match(tpd.scala:129)
[error] dotty.tools.dotc.transform.SyntheticMembers.equalsBody$1(SyntheticMembers.scala:207)
[error] dotty.tools.dotc.transform.SyntheticMembers.syntheticRHS$1(SyntheticMembers.scala:124)
[error] dotty.tools.dotc.transform.SyntheticMembers.syntheticDef$3$$anonfun$2$$anonfun$1(SyntheticMembers.scala:132)
[error] dotty.tools.dotc.transform.SyntheticMembers.synthesizeDef$$anonfun$1(SyntheticMembers.scala:82)
[error] dotty.tools.dotc.ast.tpd$.polyDefDef(tpd.scala:262)
[error] dotty.tools.dotc.ast.tpd$.DefDef(tpd.scala:221)
[error] dotty.tools.dotc.transform.SyntheticMembers.synthesizeDef(SyntheticMembers.scala:82)
[error] dotty.tools.dotc.transform.SyntheticMembers.syntheticDef$1(SyntheticMembers.scala:132)
[error] dotty.tools.dotc.transform.SyntheticMembers.syntheticDefIfMissing$1(SyntheticMembers.scala:105)
[error] dotty.tools.dotc.transform.SyntheticMembers.caseAndValueMethods$$anonfun$1(SyntheticMembers.scala:295)
[error] scala.collection.immutable.List.flatMap(List.scala:338)
[error] dotty.tools.dotc.transform.SyntheticMembers.caseAndValueMethods(SyntheticMembers.scala:295)
[error] dotty.tools.dotc.transform.SyntheticMembers.addSyntheticMembers(SyntheticMembers.scala:471)
[error] dotty.tools.dotc.transform.PostTyper$PostTyperTransformer.transform$$anonfun$3(PostTyper.scala:236)
[error] dotty.tools.dotc.transform.PostTyper$PostTyperTransformer.withNoCheckNews(PostTyper.scala:96)
[error] dotty.tools.dotc.transform.PostTyper$PostTyperTransformer.transform(PostTyper.scala:237)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1343)
[error] dotty.tools.dotc.transform.MacroTransform$Transformer.transform(MacroTransform.scala:54)
[error] dotty.tools.dotc.transform.PostTyper$PostTyperTransformer.transform(PostTyper.scala:253)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform$$anonfun$2(Trees.scala:1363)
[error] scala.collection.immutable.List.mapConserve(List.scala:179)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1363)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeMap.transformStats(Trees.scala:1361)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1349)
[error] dotty.tools.dotc.transform.MacroTransform$Transformer.transform(MacroTransform.scala:54)
[error] dotty.tools.dotc.transform.PostTyper$PostTyperTransformer.transform(PostTyper.scala:312)
[error] dotty.tools.dotc.transform.MacroTransform.run(MacroTransform.scala:21)
[error] dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:316)
[error] scala.collection.immutable.List.map(List.scala:286)
[error] dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:318)
[error] dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:158)
[error] dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:36)
[error] scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:33)
[error] scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:198)
[error] dotty.tools.dotc.Run.runPhases$5(Run.scala:170)
[error] dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:178)
[error] dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:102)
[error] dotty.tools.dotc.Run.compileUnits(Run.scala:185)
[error] dotty.tools.dotc.Run.compileSources(Run.scala:120)
[error] dotty.tools.dotc.Run.compile(Run.scala:104)
[error] dotty.tools.dotc.Driver.doCompile(Driver.scala:34)
[error] dotty.tools.dotc.Driver.process(Driver.scala:172)
[error] dotty.tools.dotc.Main.process(Main.scala)
[error] xsbt.CachedCompilerImpl.run(CachedCompilerImpl.java:69)
[error] xsbt.CompilerInterface.run(CompilerInterface.java:41)
[error] sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error] sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[error] sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[error] java.lang.reflect.Method.invoke(Unknown Source)
[error] sbt.internal.inc.AnalyzingCompiler.call(AnalyzingCompiler.scala:237)
[error] sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:111)
[error] sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:90)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$3(MixedAnalyzingCompiler.scala:82)
[error] scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:133)
[error] sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:73)
[error] sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:116)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:307)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:307)
[error] sbt.internal.inc.Incremental$.doCompile(Incremental.scala:106)
[error] sbt.internal.inc.Incremental$.$anonfun$compile$4(Incremental.scala:87)
[error] sbt.internal.inc.IncrementalCommon.recompileClasses(IncrementalCommon.scala:116)
[error] sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:63)
[error] sbt.internal.inc.Incremental$.$anonfun$compile$3(Incremental.scala:89)
[error] sbt.internal.inc.Incremental$.manageClassfiles(Incremental.scala:134)
[error] sbt.internal.inc.Incremental$.compile(Incremental.scala:80)
[error] sbt.internal.inc.IncrementalCompile$.apply(Compile.scala:67)
[error] sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:311)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:269)
[error] sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:159)
[error] sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:238)
[error] sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:69)
[error] sbt.Defaults$.compileIncrementalTaskImpl(Defaults.scala:1549)
[error] sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:1523)
[error] scala.Function1.$anonfun$compose$1(Function1.scala:44)
[error] sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:40)
[error] sbt.std.Transform$$anon$4.work(System.scala:67)
[error] sbt.Execute.$anonfun$submit$2(Execute.scala:269)
[error] sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:16)
[error] sbt.Execute.work(Execute.scala:278)
[error] sbt.Execute.$anonfun$submit$1(Execute.scala:269)
[error] sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:178)
[error] sbt.CompletionService$$anon$2.call(CompletionService.scala:37)
[error] java.util.concurrent.FutureTask.run(Unknown Source)
[error] java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
[error] java.util.concurrent.FutureTask.run(Unknown Source)
[error] java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
[error] java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
[error] java.lang.Thread.run(Unknown Source)
[error]            
[error] java.lang.AssertionError: assertion failed: ImplicitMethodType(List(b), List(TypeRef(ThisType(TypeRef(NoPrefix,module class <empty>)),class Bar)), TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),module scala),class Boolean)) ConstantType(Constant(false))
[error] 	at dotty.DottyPredef$.assertFail(DottyPredef.scala:16)
[error] 	at dotty.tools.dotc.core.Types$OrType.<init>(Types.scala:2799)
[error] 	at dotty.tools.dotc.core.Types$CachedOrType.<init>(Types.scala:2853)
[error] 	at dotty.tools.dotc.core.Types$OrType$.apply(Types.scala:2858)
[error] 	at dotty.tools.dotc.core.TypeComparer.orType$$anonfun$1(TypeComparer.scala:1933)
[error] 	at dotty.tools.dotc.core.TypeComparer.liftIfHK(TypeComparer.scala:1947)
[error] 	at dotty.tools.dotc.core.TypeComparer.orType(TypeComparer.scala:1933)
[error] 	at dotty.tools.dotc.core.TypeComparer.lub(TypeComparer.scala:1753)
[error] 	at dotty.tools.dotc.core.TypeComparer.lub$$anonfun$1(TypeComparer.scala:1758)
[error] 	at scala.collection.LinearSeqOptimized.foldLeft(LinearSeqOptimized.scala:126)
[error] 	at scala.collection.LinearSeqOptimized.foldLeft$(LinearSeqOptimized.scala:122)
[error] 	at scala.collection.immutable.List.foldLeft(List.scala:89)
[error] 	at scala.collection.TraversableOnce.$div$colon(TraversableOnce.scala:154)
[error] 	at scala.collection.TraversableOnce.$div$colon$(TraversableOnce.scala:154)
[error] 	at scala.collection.AbstractTraversable.$div$colon(Traversable.scala:108)
[error] 	at dotty.tools.dotc.core.TypeComparer.lub(TypeComparer.scala:1758)
[error] 	at dotty.tools.dotc.typer.TypeAssigner.assignType(TypeAssigner.scala:521)
[error] 	at dotty.tools.dotc.typer.Typer.assignType(Typer.scala:87)
[error] 	at dotty.tools.dotc.ast.tpd$.Match(tpd.scala:129)
[error] 	at dotty.tools.dotc.transform.SyntheticMembers.equalsBody$1(SyntheticMembers.scala:207)
[error] 	at dotty.tools.dotc.transform.SyntheticMembers.syntheticRHS$1(SyntheticMembers.scala:124)
[error] 	at dotty.tools.dotc.transform.SyntheticMembers.syntheticDef$3$$anonfun$2$$anonfun$1(SyntheticMembers.scala:132)
[error] 	at dotty.tools.dotc.transform.SyntheticMembers.synthesizeDef$$anonfun$1(SyntheticMembers.scala:82)
[error] 	at dotty.tools.dotc.ast.tpd$.polyDefDef(tpd.scala:262)
[error] 	at dotty.tools.dotc.ast.tpd$.DefDef(tpd.scala:221)
[error] 	at dotty.tools.dotc.transform.SyntheticMembers.synthesizeDef(SyntheticMembers.scala:82)
[error] 	at dotty.tools.dotc.transform.SyntheticMembers.syntheticDef$1(SyntheticMembers.scala:132)
[error] 	at dotty.tools.dotc.transform.SyntheticMembers.syntheticDefIfMissing$1(SyntheticMembers.scala:105)
[error] 	at dotty.tools.dotc.transform.SyntheticMembers.caseAndValueMethods$$anonfun$1(SyntheticMembers.scala:295)
[error] 	at scala.collection.immutable.List.flatMap(List.scala:338)
[error] 	at dotty.tools.dotc.transform.SyntheticMembers.caseAndValueMethods(SyntheticMembers.scala:295)
[error] 	at dotty.tools.dotc.transform.SyntheticMembers.addSyntheticMembers(SyntheticMembers.scala:471)
[error] 	at dotty.tools.dotc.transform.PostTyper$PostTyperTransformer.transform$$anonfun$3(PostTyper.scala:236)
[error] 	at dotty.tools.dotc.transform.PostTyper$PostTyperTransformer.withNoCheckNews(PostTyper.scala:96)
[error] 	at dotty.tools.dotc.transform.PostTyper$PostTyperTransformer.transform(PostTyper.scala:237)
[error] 	at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1343)
[error] 	at dotty.tools.dotc.transform.MacroTransform$Transformer.transform(MacroTransform.scala:54)
[error] 	at dotty.tools.dotc.transform.PostTyper$PostTyperTransformer.transform(PostTyper.scala:253)
[error] 	at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform$$anonfun$2(Trees.scala:1363)
[error] 	at scala.collection.immutable.List.mapConserve(List.scala:179)
[error] 	at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1363)
[error] 	at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transformStats(Trees.scala:1361)
[error] 	at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1349)
[error] 	at dotty.tools.dotc.transform.MacroTransform$Transformer.transform(MacroTransform.scala:54)
[error] 	at dotty.tools.dotc.transform.PostTyper$PostTyperTransformer.transform(PostTyper.scala:312)
[error] 	at dotty.tools.dotc.transform.MacroTransform.run(MacroTransform.scala:21)
[error] 	at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:316)
[error] 	at scala.collection.immutable.List.map(List.scala:286)
[error] 	at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:318)
[error] 	at dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:158)
[error] 	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] 	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] 	at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:36)
[error] 	at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:33)
[error] 	at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:198)
[error] 	at dotty.tools.dotc.Run.runPhases$5(Run.scala:170)
[error] 	at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:178)
[error] 	at dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] 	at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:102)
[error] 	at dotty.tools.dotc.Run.compileUnits(Run.scala:185)
[error] 	at dotty.tools.dotc.Run.compileSources(Run.scala:120)
[error] 	at dotty.tools.dotc.Run.compile(Run.scala:104)
[error] 	at dotty.tools.dotc.Driver.doCompile(Driver.scala:34)
[error] 	at dotty.tools.dotc.Driver.process(Driver.scala:172)
[error] 	at dotty.tools.dotc.Main.process(Main.scala)
[error] 	at xsbt.CachedCompilerImpl.run(CachedCompilerImpl.java:69)
[error] 	at xsbt.CompilerInterface.run(CompilerInterface.java:41)
[error] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error] 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[error] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[error] 	at java.lang.reflect.Method.invoke(Unknown Source)
[error] 	at sbt.internal.inc.AnalyzingCompiler.call(AnalyzingCompiler.scala:237)
[error] 	at sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:111)
[error] 	at sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:90)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$3(MixedAnalyzingCompiler.scala:82)
[error] 	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:133)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:73)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:116)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:307)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:307)
[error] 	at sbt.internal.inc.Incremental$.doCompile(Incremental.scala:106)
[error] 	at sbt.internal.inc.Incremental$.$anonfun$compile$4(Incremental.scala:87)
[error] 	at sbt.internal.inc.IncrementalCommon.recompileClasses(IncrementalCommon.scala:116)
[error] 	at sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:63)
[error] 	at sbt.internal.inc.Incremental$.$anonfun$compile$3(Incremental.scala:89)
[error] 	at sbt.internal.inc.Incremental$.manageClassfiles(Incremental.scala:134)
[error] 	at sbt.internal.inc.Incremental$.compile(Incremental.scala:80)
[error] 	at sbt.internal.inc.IncrementalCompile$.apply(Compile.scala:67)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:311)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:269)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:159)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:238)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:69)
[error] 	at sbt.Defaults$.compileIncrementalTaskImpl(Defaults.scala:1549)
[error] 	at sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:1523)
[error] 	at scala.Function1.$anonfun$compose$1(Function1.scala:44)
[error] 	at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:40)
[error] 	at sbt.std.Transform$$anon$4.work(System.scala:67)
[error] 	at sbt.Execute.$anonfun$submit$2(Execute.scala:269)
[error] 	at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:16)
[error] 	at sbt.Execute.work(Execute.scala:278)
[error] 	at sbt.Execute.$anonfun$submit$1(Execute.scala:269)
[error] 	at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:178)
[error] 	at sbt.CompletionService$$anon$2.call(CompletionService.scala:37)
[error] 	at java.util.concurrent.FutureTask.run(Unknown Source)
[error] 	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
[error] 	at java.util.concurrent.FutureTask.run(Unknown Source)
[error] 	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
[error] 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
[error] 	at java.lang.Thread.run(Unknown Source)
[error] (Compile / compileIncremental) java.lang.AssertionError: assertion failed: ImplicitMethodType(List(b), List(TypeRef(ThisType(TypeRef(NoPrefix,module class <empty>)),class Bar)), TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),module scala),class Boolean)) ConstantType(Constant(false))
[error] Total time: 3 s, completed 00:05:52 07/07/2019
@som-snytt
Copy link
Contributor

scala 2.13.0> :pa
// Entering paste mode (ctrl-D to finish)

trait Bar
class MyBool
trait Foo {
  def == (that : Foo)(implicit b : Bar) : Boolean = ???
}

case class FooCC(f : Foo)

// Exiting paste mode, now interpreting.

              case class FooCC(f : Foo)
                         ^
On line 7: error: could not find implicit value for parameter b: Bar

@anatoliykmetyuk anatoliykmetyuk self-assigned this Jul 23, 2019
anatoliykmetyuk added a commit to dotty-staging/dotty that referenced this issue Jul 24, 2019
…loaded

We cannot resolve implicit parameters outside Typer. Hence methods
that require implicit parameters should not be considered.
@anatoliykmetyuk anatoliykmetyuk removed their assignment Aug 22, 2019
odersky added a commit that referenced this issue Aug 30, 2019
Fix #6816: Deny methods with implicit members from tpd.applyOverloaded
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

3 participants