const 생성자를 const 없이 호출하면 안 돼요

const 생성자를 const 없이 호출하면 안 돼요 (@literal 생성자)

Dart 분석기가 @literal 어노테이션이 붙은 생성자를 const 키워드 없이 호출할 때 이 진단을 내보내요. 모든 인자가 상수라면 생성자를 const로 호출할 수 있는데, 그런 상황인데도 const를 빼먹었을 때 나타나죠. @literal 어노테이션은 "가능하면 상수 값을 만들 때 이 생성자를 사용하라"는 뜻이에요.

출처: non_const_call_to_literal_constructor

본문

아래 코드는 인자에 상수만 넘기고 있는데도 생성자를 const 없이 호출하고 있어서 이 진단이 발생해요.

import 'package:meta/meta.dart';

class C {
  @literal
  const C();
}

C f() => C();

흔한 해결 방법

생성자 호출 앞에 const 키워드를 붙여주면 돼요.

import 'package:meta/meta.dart';

class C {
  @literal
  const C();
}

void f() => const C();

더 알아보기