Skip to content

JSON codec built from auto-derived schema fails for enumeration with intermediate type  #668

@dubinsky

Description

@dubinsky
//> using scala 3.4.0
//> using dep dev.zio::zio-schema:1.0.1
//> using dep dev.zio::zio-schema-derivation:1.0.1
//> using dep dev.zio::zio-schema-json:1.0.1

sealed trait Animal
object Animal:
  sealed trait Mammal extends Animal
  case object Bison extends Mammal
  given schema: zio.schema.Schema[Animal] = zio.schema.DeriveSchema.gen[Animal]
  given jsonCodec: zio.json.JsonCodec[Animal] = zio.schema.codec.JsonCodec.jsonCodec(schema)

  @main def main: String =
    import zio.json.EncoderOps
    val value: Animal = Bison
    // Exception in thread "main" java.lang.ClassCastException:
    //   class zio.schema.Schema$Enum1 cannot be cast to class zio.schema.Schema$CaseClass0
    value.toJson

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions