E145: Enum은 비어 있으면 안 돼요
E145: Enum은 비어 있으면 안 돼요 (Enumerations Should Not Be Empty)
이 에러는 enum을 case 없이 정의할 때 발생해요. Scala 3에서는 enum에 반드시 case가 하나 이상 있어야 하거든요.
본문
이 에러는 어떤 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 문서를 함께 살펴보면 도움이 돼요.