E047: Cyclic Reference Involving Implicit — 암시적 값을 포함한 순환 참조예요

E047: Cyclic Reference Involving Implicit — 암시적 값을 포함한 순환 참조예요

컴파일러가 암시적 값(implicit value)을 포함한 순환 참조를 감지했을 때 이 에러가 나와요.

출처: Scala 3 Reference

본문

컴파일러 메시지는 이렇게 말해요. "Cyclic reference involving implicit " — 암시적 값을 포함한 순환 참조라는 뜻이에요.

문제가 되는 심볼(symbol)이 순환 고리의 일부로 선언되어 있어서 컴파일러가 그 타입을 결정할 수 없어요. 이런 일은 주로 심볼 정의의 오른쪽(RHS)에, 추론되고 있는 타입에 의존하는 암시적 탐색(implicit search) 이 포함되어 있을 때 생겨요.

이 에러를 피하려면 심볼에 명시적인 타입 애너테이션을 붙여 주는 걸 시도해 볼게요.

이 에러는 CyclicReferenceInvolving(E046)과 관련이 있지만, 순환 고리에 암시적 값이 포함된 경우를 특별히 다뤄요. TypeErrors.scala에서 이런 조건일 때 발생해요.

  • 심볼이 given이나 implicit val일 때(메서드는 제외)
  • 심볼의 소유자(owner)가 용어(term, 로컬 스코프)일 때

더 알아보기 (Learn more)