invalid_literal_annotation 진단: @literal 어노테이션은 const 생성자에만 쓸 수 있어요

invalid_literal_annotation 진단: @literal 어노테이션은 const 생성자에만 쓸 수 있어요

Dart 분석기가 내보내는 진단에는 이름이 있어요. invalid_literal_annotation@literal 어노테이션이 const 생성자가 아닌 곳에 붙어 있을 때 분석기가 알려주는 컴파일 타임 진단이에요. @literal은 리터럴(literal)처럼 취급해야 하는 생성자에 사용하는 어노테이션이라, 실제로 const 생성자에만 적용할 수 있어요.

출처: invalid_literal_annotation

본문

설명

분석기는 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;

더 알아보기