Skip to main content

invalid_factory_method_impl

Factory method '{0}' doesn't return a newly allocated object.

Description

#

The analyzer produces this diagnostic when a method that is annotated with the factory annotation doesn't return a newly allocated object.

Example

#

The following code produces this diagnostic because the method createC returns the value of a field rather than a newly created instance of C:

dart
import 'package:meta/meta.dart';

class Factory {
  C c = C();

  @factory
  C createC() => c;
}

class C {}

Common fixes

#

Change the method to return a newly created instance of the return type:

dart
import 'package:meta/meta.dart';

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

class C {}