Skip to main content

prefer-immutable-selector-value

effort: 3m
teams+

Warns when a Selector return a mutable value.

Returning a mutable value can lead to skipped or incorrect rebuilds. Instead, always return an immutable value.

Example

❌ Bad:

// LINT: Prefer returning immutable values from selector to avoid skipped or incorrect rebuilds.
Selector(selector: (context, object) => SomeClass());

// LINT: Prefer returning immutable values from selector to avoid skipped or incorrect rebuilds.
Selector2(selector: (context, object, another) => SomeClass());

class SomeClass {}

✅ Good:

Selector(selector: (context, object) => SomeClass());

Selector2(selector: (context, object, another) => SomeClass());


class SomeClass {

int get hashCode => ...;


bool operator ==(Object other) => ...;
}

Additional Resources