E114: Symbol Changed Semantics In Version
E114: Symbol Changed Semantics In Version (특정 버전에서 의미가 바뀐 심볼)
어떤 심볼이 특정 Scala 버전에서 의미(semantics)가 바뀌었다는 뜻의 @migration 어노테이션으로 표시된 코드를 사용할 때 나오는 경고예요.
본문
컴파일러 메시지가 알려주는 내용은 이렇게 정리돼요.
- 그 심볼은 특정 버전에서 의미가 바뀌었어요
-Xmigration설정은 이런 구문에 대해 경고를 띄우는 데 사용돼요- 마이그레이션 메시지가 무엇이 바뀌었는지 설명해 줘요
@migration 어노테이션은 Scala 표준 라이브러리가 Scala 버전 사이에 동작이 바뀐 메서드를 표시할 때 내부적으로 사용해요. -Xmigration 컴파일러 플래그를 쓰면 코드 마이그레이션을 돕기 위해 이런 메서드를 사용할 때 경고를 띄워주죠.
@migration은 주로 표준 라이브러리에서 쓰이고 특정 -Xmigration 플래그 설정까지 필요해서, 단순한 사용자 코드로 이 경고를 재현하긴 어려워요.
이 경고를 처리하려면 마이그레이션 메시지를 확인하고, 필요하다면 바뀐 의미에 맞게 코드를 갱신하면 돼요.
참고: -Xmigration은 안정화된 Scala 3에서는 구현된 적이 없지만, Scala 2.13 라이브러리를 사용하면 컴파일러가 @migration 어노테이션을 찾을 수 있어요.