Dart Analyze logoDart Analyze/
DRT-W1428

Setters can't use 'async', 'async*', or 'sync*'DRT-W1428

Major severityMajor
Bug Risk categoryBug Risk

The analyzer produces this diagnostic when the body of a setter is prefixed by one of the following modifiers: async, async*, or sync*. Setter bodies must be synchronous.

Example

The following code produces this diagnostic because the body of the setter x is marked as being async:

class C {
  set x(int i) async {}
}

Common fixes

If the setter can be synchronous, then remove the modifier:

class C {
  set x(int i) {}
}

If the setter can't be synchronous, then use a method to set the value instead:

class C {
  void x(int i) async {}
}