implicit_call_tearoffs
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:
class Callable {
void call() {}
}
void callIt(void Function() f) {
f();
}
callIt(Callable());
GOOD:
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:
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:
linter:
rules:
implicit_call_tearoffs: true
Unless stated otherwise, the documentation on this site reflects Dart 3.6.0. Page last updated on 2025-01-27. View source or report an issue.