Closed
Description
import io.circe._
case class Foo(id: Foo.Id) derives Codec.AsObject // Cannot find encoder/decoder of Id
object Foo {
opaque type Id = Long
}
The above very common opaque type use case won't compile.
Seems compiler don't know Id
is Long
while deriving.
Note, if opaque type defined in top level, it compiles just fine.
import io.circe._
opaque type FooId = Long
case class Foo(id: FooId) derives Codec.AsObject // Compiles ok
Metadata
Metadata
Assignees
Labels
No labels