prefer-immutable-bloc-state
Warns when a Bloc state does not have the @immutable annotation.
Having immutable state objects helps ensure you always pass a newly create object to emit invocations and avoid any issues with the state not being updated.
info
If you keep your bloc state in separate files, consider using the include configuration option to scope the rule to only those files.
⚙️ Config
Set name-pattern (default is State$) to set a regular expression pattern for bloc state names.
analysis_options.yaml
dcm:
rules:
- prefer-immutable-bloc-state:
name-pattern: State$
Example
❌ Bad:
// LINT: Prefer adding '@immutable' to Bloc state.
sealed class CounterState {}
// LINT: Prefer adding '@immutable' to Bloc state.
class CounterIncrement extends CounterState {}
✅ Good:
sealed class CounterState {}
class CounterIncrement extends CounterState {}