undefined_operator 진단: 정의되지 않은 연산자를 사용했을 때

undefined_operator 진단: 정의되지 않은 연산자를 사용했을 때

분석기가 내보내는 진단에는 이름이 있어요. undefined_operator어떤 객체에 대해 사용자가 정의할 수 있는 연산자(operator)가 정의되어 있지 않은데 그 연산자를 호출했을 때 Dart 분석기가 알려주는 진단이에요. 예를 들어 +, -, == 같은 연산자를 특정 클래스에 정의해 두지 않았는데 사용하려고 하면 생겨요.

출처: undefined_operator

본문

설명

분석기는 사용자가 정의할 수 있는 연산자가 정의되어 있지 않은 객체에 대해 그 연산자가 호출되었을 때 이 진단을 만들어요.

예시

다음 코드는 클래스 C+ 연산자를 정의하지 않기 때문에 이 진단을 만들어요.

class C {}

C f(C c) => c + 2;

흔한 해결 방법

연산자를 클래스에 정의해야 한다면, 연산자를 정의해요.

class C {
  C operator +(int i) => this;
}

C f(C c) => c + 2;

더 알아보기