You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've found that I got compilation error in REPR when the splain plugin is enabled:
scala> import shapeless._, me.limansky._, cats.instances.all._
import shapeless._
import me.limansky._
import cats.instances.all._
scala> case class Foo(n: Int); case class Bar(s: String, f: Foo)
defined class Foo
defined class Bar
scala> MapReader[Bar].read(Map("s" -> "b", "n" -> "6"))
<console>:25: error: implicit error;
!I ev: MapReader[Bar]
MapReader.genericReader invalid because
!I mapReader: MapReader[R]
Generic.materialize invalid because
type parameters weren't correctly instantiated outside of the implicit tree: inferred type arguments [shapeless.::[String,shapeless.::[Foo,shapeless.HNil]],Nothing] do not conform to method materializeCoproduct's type parameter bounds [V <: shapeless.Coproduct,R <: shapeless.Coproduct]
MapReader[Bar].read(Map("s" -> "b", "n" -> "6"))
The same code without plugin works fine:
scala> import shapeless._, me.limansky._
import shapeless._
import me.limansky._
scala> import shapeless._, me.limansky._, cats.instances.all._
import shapeless._
import me.limansky._
import cats.instances.all._
scala> case class Foo(n: Int); case class Bar(s: String, f: Foo)
defined class Foo
defined class Bar
scala> MapReader[Bar].read(Map("s" -> "b", "n" -> "6"))
res0: Bar = Bar(b,Foo(6))
Yes it does. In this case it doesn't explain the error:
scala> MapReader[Bar].read(Map("s" -> "b", "n" -> "6"))
<console>:25: error: could not find implicit value for parameter ev: me.limansky.MapReader[Bar]
MapReader[Bar].read(Map("s" -> "b", "n" -> "6"))
then it's probably analogous to #4, due to the nature of the reflective hack used to hijack the compiler phases. it's likeley this isn't going to be fixed until I implement parts of the plugin in the compiler itself, which is hopefully soon.
Activity
tek commentedon Jan 17, 2017
does it happen as well if you deactivate the plugin features via
-P:splain:all:false?limansky commentedon Jan 17, 2017
Yes it does. In this case it doesn't explain the error:
tek commentedon Jan 17, 2017
then it's probably analogous to #4, due to the nature of the reflective hack used to hijack the compiler phases. it's likeley this isn't going to be fixed until I implement parts of the plugin in the compiler itself, which is hopefully soon.