invalid_literal_annotation 진단: @literal 어노테이션은 const 생성자에만 쓸 수 있어요
invalid_literal_annotation 진단: @literal 어노테이션은 const 생성자에만 쓸 수 있어요
Dart 분석기가 내보내는 진단에는 이름이 있어요. invalid_literal_annotation은 @literal 어노테이션이 const 생성자가 아닌 곳에 붙어 있을 때 분석기가 알려주는 컴파일 타임 진단이에요. @literal은 리터럴(literal)처럼 취급해야 하는 생성자에 사용하는 어노테이션이라, 실제로 const 생성자에만 적용할 수 있어요.
본문
설명
분석기는 literal 어노테이션이 const 생성자가 아닌 다른 것에 적용되었을 때 이 진단을 만들어요.
예시
다음 코드는 생성자가 const 생성자가 아니기 때문에 이 진단을 만들어요.
import 'package:meta/meta.dart';
class C {
@literal
C();
}
흔한 해결 방법
어노테이션이 생성자에 붙어 있고, 그 생성자가 가능하면 항상 const로 호출되어야 한다면 생성자에 const 키워드를 붙여주세요.
import 'package:meta/meta.dart';
class C {
@literal
const C();
}
생성자를 const로 표시할 수 없다면 어노테이션을 제거해요.
어노테이션이 생성자가 아닌 다른 곳에 붙어 있다면 그 어노테이션을 제거해요.
var x = 0;