E145: Enum은 비어 있으면 안 돼요

E145: Enum은 비어 있으면 안 돼요 (Enumerations Should Not Be Empty)

이 에러는 enum을 case 없이 정의할 때 발생해요. Scala 3에서는 enum에 반드시 case가 하나 이상 있어야 하거든요.

출처: Scala 3 Reference

본문

이 에러는 어떤 case도 없이 enum을 정의했을 때 나와요.

Scala 3에서 enum은 최소한 하나의 case를 포함해야 해요. case가 없는 enum은 값이 하나도 없어서 의미 있게 쓰일 수가 없어요. 만약 값이 없는 sealed 계층 구조가 필요하다면, sealed trait을 쓰는 걸 고려해 보세요.

Example

enum Empty {}

Error

-- [E145] Syntax Error: example.scala:1:5 --------------------------------------
1 |enum Empty {}
  |     ^^^^^
  |     Enumerations must contain at least one case
  |-----------------------------------------------------------------------------
  | Explanation (enabled by `-explain`)
  |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  | Enumeration Empty must contain at least one case
  | Example Usage:
  |  enum Empty {
  |     case Option1, Option2
  |  }
   -----------------------------------------------------------------------------

Solution

// Add at least one case to the enum
enum Status {
  case Active, Inactive
}
// Or use a sealed trait if no cases are needed yet
sealed trait Empty

더 알아보기

  • enum과 sealed 계층 구조의 차이에 대해서는 Scala 3 Reference의 enum 문서를 함께 살펴보면 도움이 돼요.