extension_override_with_cascade 진단: 확장 오버라이드는 값이 없어 캐스케이드의 수신자로 쓸 수 없어요

extension_override_with_cascade 진단: 확장 오버라이드는 값이 없어 캐스케이드의 수신자로 쓸 수 없어요

Dart 분석기가 내보내는 진단에는 이름이 있어요. extension_override_with_cascade확장 오버라이드(extension override)를 캐스케이드(cascade) 표현식의 수신자로 사용할 때 분석기가 알려주는 컴파일 타임 진단이에요. 확장 오버라이드는 값이 없어서 캐스케이드의 수신자가 될 수 없어요.

출처: extension_override_with_cascade

본문

설명

분석기는 확장 오버라이드가 캐스케이드 표현식의 수신자로 사용될 때 이 진단을 내보내요. 캐스케이드 표현식 e..m의 값은 수신자 e의 값인데, 확장 오버라이드는 표현식이 아니고 값도 갖지 않아요.

예시

다음 코드는 E(3)이 표현식이 아니기 때문에 이 진단이 나와요.

extension E on int {
  void m() {}
}
void f() {
  E(3)..m();
}

흔한 해결 방법

.. 대신 .을 사용해요.

extension E on int {
  void m() {}
}
void f() {
  E(3).m();
}

캐스케이드로 접근하는 항목이 여러 개라면, 항목마다 확장 오버라이드를 따로 반복해서 써 줘야 해요.

더 알아보기