Skip to main content

prefer_function_declarations_over_variables

Use a function declaration rather than a variable assignment to bind a function to a name.

Description

#

The analyzer produces this diagnostic when a closure is assigned to a local variable and the local variable is not re-assigned anywhere.

Example

#

The following code produces this diagnostic because the local variable f is initialized to be a closure and isn't assigned any other value:

dart
void g() {
  var f = (int i) => i * 2;
  f(1);
}

Common fixes

#

Replace the local variable with a local function:

dart
void g() {
  int f(int i) => i * 2;
  f(1);
}