invalid_factory_method_decl 진단: factory 메서드에 반환 타입이 없을 때

invalid_factory_method_decl 진단: factory 메서드에 반환 타입이 없을 때

Dart 분석기가 내보내는 진단에는 이름이 있어요. invalid_factory_method_decl@factory 애너테이션이 붙은 메서드의 반환 타입이 void일 때 분석기가 알려주는 컴파일 타임 진단이에요. factory 메서드는 무언가를 만들어 반환해야 하는데 void면 아무것도 반환하지 않으니까요.

출처: invalid_factory_method_decl

본문

설명

factory 애너테이션이 붙은 메서드가 void 반환 타입을 가질 때 분석기는 이 진단을 만들어요. factory는 새 객체를 만들어 주는 역할이므로 반환 타입이 반드시 있어야 해요.

예시

아래 코드는 메서드 createC@factory 애너테이션을 달았는데 아무 값도 반환하지 않기 때문에 이 진단이 나와요.

import 'package:meta/meta.dart';

class Factory {
  @factory
  void createC() {}
}

class C {}

흔한 해결 방법

반환 타입을 void가 아닌 다른 타입으로 바꿔요.

import 'package:meta/meta.dart';

class Factory {
  @factory
  C createC() => C();
}

class C {}

더 알아보기