최상위 정의의 시작이 기대돼요

최상위 정의의 시작이 기대돼요 (E088: Expected Start Of Top Level Definition)

수식어를 썼는데 그 뒤에 유효한 정의가 없으면 이 에러가 나요. private, protected, final, abstract 같은 수식어 뒤에는 class, trait, object, enum, def, val, var 같은 정의가 와야 해요.

출처: Scala 3 Reference

본문

수식어(modifier)가 주어졌는데 그 뒤에 유효한 정의가 없으면 이 에러가 발생해요.

private, protected, final, abstract 같은 수식어를 쓴 뒤에는 class, trait, object, enum, def, val, var 같은 정의를 반드시 제공해야 해요.

예시 (Example)

final

final 뒤에 아무 정의도 없네요.

에러 (Error)

-- [E088] Syntax Error: example.scala:1:5 --------------------------------------
1 |final
  |     ^
  |     Expected start of definition
  |-----------------------------------------------------------------------------
  | Explanation (enabled by `-explain`)
  |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  | You have to provide either class, trait, object, or enum definitions after modifiers
   -----------------------------------------------------------------------------

해결 방법 (Solution)

수식어 뒤에 정의를 붙여주세요.

// Add a definition after the modifier
final class Example

메서드나 값의 경우도 마찬가지예요.

// Or for methods/values
final val x = 42