E147: 중복된 수식어예요

E147: 중복된 수식어예요 (Redundant Modifier)

정의에 수식어(modifier)를 붙였는데, 그 정의가 이미 암시적으로 그 성질을 갖고 있어서 수식어가 아무 효과가 없을 때 발생하는 경고예요.

출처: Scala 3 Reference

본문

이 경고는 어떤 정의에 수식어를 적용했는데, 그 정의가 이미 암시적으로 해당 성질을 갖고 있어 수식어가 효과를 발휘하지 못할 때 나와요.

흔한 경우로는 다음이 있어요.

  • given 정의에는 final 수식어를 붙일 필요가 없어요. Scala 3에서 given은 언제나 암시적으로 final이거든요.

Example

object Example {
  final given g: Object()
}

Error

-- [E147] Syntax Warning: example.scala:2:2 ------------------------------------
2 |  final given g: Object()
  |  ^^^^^
  |  Modifier final is redundant for this definition

Solution

object Example {
  // Remove the redundant `final` modifier - givens are implicitly final
  given g: Object()
}

더 알아보기

  • given 정의와 그 성질에 대한 자세한 내용은 Scala 3 Reference의 contextual abstractions 문서를 참고하세요.