const로 호출하는 생성자가 const 생성자가 아니에요

const로 호출하는 생성자가 const 생성자가 아니에요

const 키워드로 생성자를 호출하면, 그 생성자는 반드시 const로 표시된 생성자여야 해요. 그런데 const가 아닌 생성자를 const로 호출하면 문제가 생기죠. 이 진단이 왜 나오는지, 어떻게 고치는지 함께 볼게요.

출처: const_with_non_const

본문

Description

Dart 분석기는 const 키워드로 const로 표시되지 않은 생성자를 호출할 때 이 진단을 내요.

Example

아래 코드는 A에 있는 생성자가 const 생성자가 아니라서 이 진단이 발생해요.

class A {
  A();
}

A f() => const A();

Common fixes

클래스를 상수 클래스로 만들 수 있다면(클래스의 모든 필드 — 상속받은 필드도 포함해서 — 를 final로 만들 수 있다면), 생성자에 const 키워드를 추가해 주면 돼요.

class A {
  const A();
}

A f() => const A();

그게 어렵다면, const 키워드를 제거해 주면 돼요.

class A {
  A();
}

A f() => A();

더 알아보기