Skip to content

Allow refinements in enums #6959

Closed
Closed
@anatoliykmetyuk

Description

@anatoliykmetyuk
enum DbRequest {
  case SqlReq(table: String, where: String)
  case MongoReq(jsonBody: String)
}; import DbRequest._

enum DbDriver {
  type Request <: DbRequest

  case mongo extends DbDriver { type Request = MongoAddr }
  case myslq extends DbDriver { type Request = MySQLAddr }
}

Gives:

[error] -- Error: /Users/anatolii/Projects/dotty/ecosystem/mainmethods/src/main/scala/Main.scala:9:30
[error] 9 |  case mongo extends DbDriver { type Request = MongoAddr }
[error]   |                              ^
[error]   |                              end of statement expected
[error] -- [E040] Syntax Error: /Users/anatolii/Projects/dotty/ecosystem/mainmethods/src/main/scala/Main.scala:9:32
[error] 9 |  case mongo extends DbDriver { type Request = MongoAddr }
[error]   |                                ^^^^
[error]   |                                ';' expected, but 'type' found
[error] -- [E079] Syntax Error: /Users/anatolii/Projects/dotty/ecosystem/mainmethods/src/main/scala/Main.scala:10:2
[error] 10 |  case myslq extends DbDriver { type Request = MySQLAddr }
[error]    |  ^^^^
[error]    |  Only case class or case object allowed
[error] three errors found

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