implicit_call_tearoffs

Stable
Core
Fix available

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

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);

Enable

#

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

If you're instead using the YAML map syntax to configure linter rules, add implicit_call_tearoffs: true under linter > rules:

analysis_options.yaml
yaml
linter:
  rules:
    implicit_call_tearoffs: true