E125: Class Cannot Extend Enum

This error is emitted when a class attempts to extend an enum.

In Scala 3, enums are sealed by design and can only be extended by their defined cases within the same enum declaration. External classes cannot extend enums.


Example

enum Color:
  case Red, Green, Blue

class CustomColor extends Color

Error

-- [E125] Syntax Error: example.scala:4:6 --------------------------------------
4 |class CustomColor extends Color
  |^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |class CustomColor in package <empty> extends enum Color, but extending enums is prohibited.

Solution

// Add new cases within the enum definition
enum Color:
  case Red, Green, Blue
  case Custom(rgb: Int)
// Or use a sealed trait if you need external extensibility
sealed trait Color
object Color:
  case object Red extends Color
  case object Green extends Color
  case object Blue extends Color

case class CustomColor(rgb: Int) extends Color