E203: Deprecated Assignment Syntax

E203: Deprecated Assignment Syntax

이 경고는 (x = value)처럼 할당 표현 주위에 괄호를 사용할 때 발생해요. Scala 3.7부터 이 문법은 할당이 아니라 요소가 하나인 이름 있는 튜플(named tuple)로 해석돼요.

출처: Scala 3 Reference

본문

이 경고는 기존의 할당 해석에서 새로운 이름 있는 튜플 의미론으로 코드를 전환하도록 도와주는 마이그레이션 경고예요.

예시 (Example)

def example() =
  var age: Int = 28
  (age = 29)

에러 (Error)

-- [E203] Syntax Migration Warning: example.scala:3:2 --------------------------
3 |  (age = 29)
  |  ^^^^^^^^^^
  |Deprecated syntax: since 3.7 this is interpreted as a named tuple with one element,
  |not as an assignment.
  |
  |To assign a value, use curly braces: `{age = 29}`.
  |This can be rewritten automatically under -rewrite -source 3.6-migration.

해결 방법 (Solution)

할당에는 괄호 대신 중괄호를 사용해요.

def example() =
  var age: Int = 28
  { age = 29 }

대안으로, -rewrite -source 3.6-migration을 붙여 컴파일하면 자동 재작성 기능으로 문법을 자동으로 갱신할 수 있어요.