Contents
Contents

Explicitly tear-off call methods when using an object as a Function.

This rule is available as of Dart 2.19.0.

Rule sets: core, recommended, flutter

This rule has a quick fix available.

Details

#

DO Explicitly tear off .call methods from objects when assigning to a Function type. There is less magic with an explicit tear off. Future language versions may remove the implicit call tear off.

BAD:

dart
class Callable {
  void call() {}
}
void callIt(void Function() f) {
  f();
}

callIt(Callable());

GOOD:

dart
class Callable {
  void call() {}
}
void callIt(void Function() f) {
  f();
}

callIt(Callable().call);

Usage

#

To enable the implicit_call_tearoffs rule, add implicit_call_tearoffs under linter > rules in your analysis_options.yaml file:

analysis_options.yaml
yaml
linter:
  rules:
    - implicit_call_tearoffs