augustjune / context-applied

Compiler plugin for intuitive tagless final
MIT License
128 stars 8 forks source link

2.13.12 compiler failure without explicit type declaration #16

Open rela13x opened 1 year ago

rela13x commented 1 year ago

repo to reproduce: https://github.com/augustjune/context-applied

in a few words:

 scalaVersion := "2.13.12",
 libraryDependencies += compilerPlugin("org.augustjune" %% "context-applied" % "0.1.4"),

code

trait X[A] {
  def f(a: A): Int
}
implicit def derive[A: X, B: X] = new X[(A, B)] {
  override def f(a: (A, B)): Int = ???
}

leads to

[error] ## Exception when compiling 1 sources to /Users/alexr/dev/pp/scala-course-2-13-12/plain2/target/scala-2.13/classes
[error] java.lang.UnsupportedOperationException: Position.point on NoPosition
[error] scala.reflect.internal.util.Position.fail(Position.scala:24)
...

which basically understandable, but there is no understandable output.

can be fixed by: