어노테이션은 const 생성자만 호출할 수 있어요
어노테이션은 const 생성자만 호출할 수 있어요
Dart 분석기가 어노테이션으로 존재하는 생성자를 호출하고 있는데, 그 생성자가 const 생성자가 아닐 때 이 진단을 내보내요. 어노테이션은 컴파일 타임에 평가되어야 하기 때문에 반드시 상수 표현식이어야 하죠.
본문
아래 코드는 C의 생성자가 const 생성자가 아니라서 이 진단이 발생해요.
@C()
void f() {}
class C {
C();
}
흔한 해결 방법
클래스가 const 생성자를 가질 수 있다면, 어노테이션에 사용할 const 생성자를 만들어주면 돼요.
@C()
void f() {}
class C {
const C();
}
클래스가 const 생성자를 가질 수 없다면, 어노테이션을 제거하거나 다른 클래스를 어노테이션에 사용하면 돼요.