Skip to main content

avoid-duplicate-factories

effort: 3m
has IDE fix
pro+

Warns when a class has a factory constructor with the same implementation as another factory constructor.

This rule does not take into account parameter/factory names and other insignificant details.

Example

❌ Bad:

class SomeClass {
SomeClass(String data);

factory SomeClass.fromString(String data) => SomeClass(data);
// LINT: This factory constructor is a duplicate of SomeClass.fromString.
// Try removing this factory or adding unique functionality.
factory SomeClass.parse(String data) => SomeClass(data);
}

class SomeClass {
SomeClass();

factory SomeClass.empty() => SomeClass();
// LINT: This factory constructor is a duplicate of SomeClass.empty.
// Try removing this factory or adding unique functionality.
factory SomeClass.withData(String data) => SomeClass();
}

✅ Good:

class SomeClass {
SomeClass(String data);

factory SomeClass.fromString(String data) => SomeClass(data);
}

Additional Resources