no_annotation_constructor_arguments 진단: 애너테이션이 인자를 가져야 할 때
no_annotation_constructor_arguments 진단: 애너테이션이 인자를 가져야 할 때
Dart 분석기가 내보내는 진단에는 이름이 있어요. no_annotation_constructor_arguments는 애너테이션이 식별자 하나로만 쓰였는데 그 식별자가 변수가 아니라 클래스 이름일 때 분석기가 알려주는 진단이에요. 클래스의 인스턴스를 만들어야만 애너테이션으로 쓸 수 있으니, 그 뒤에 인자 목록이 붙어야 해요.
본문
설명
분석기는 애너테이션이 식별자 하나로만 이루어져 있는데, 그 식별자가 변수가 아니라 클래스의 이름일 때 이 진단을 만들어요. 클래스의 인스턴스를 만들려면 식별자 뒤에 인자 목록이 따라와야 해요.
예시
아래 코드는 C가 클래스인데도 그냥 @C처럼 인자 없이 애너테이션으로 쓰여서 이 진단을 만들어요. 클래스는 자기 안의 const 생성자를 호출하지 않는 한 애너테이션으로 쓸 수 없거든요.
class C {
const C();
}
@C
var x = 0;
흔한 해결 방법
빠진 인자 목록을 추가해요.
class C {
const C();
}
@C()
var x = 0;