Skip to content

enum branches can extend any class #6601

Closed
@Blaisorblade

Description

@Blaisorblade

Noticed by accident that enum cases might extend the wrong enum. That is, Z below is accepted and should probably be rejected. I also confirmed that Z indeed extends Expr and not Var.

object GADTs2 {
  enum Var[G, A] {
    case Z[A, G] extends Expr[(A, G), A]
  }
  enum Expr[G, A] {
    case Lit[G](n: Int) extends Expr[G, Int]
        // case S[A, G](x:
  }
}

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