Rules / Style / no-leading-underscores-for-local-identifiers

no-leading-underscores-for-local-identifiers

lint/style/no-leading-underscores-for-local-identifiers
recommended
Same as no_leading_underscores_for_local_identifiers · Dart lints

Flags local variables and parameters whose names begin with an underscore.

A leading underscore marks a declaration as library-private, but that privacy only applies to top-level and class members — locals, parameters, closure parameters, for-in variables, and catch clause bindings are already confined to their scope. Prefixing them with an underscore implies a privacy that does not exist and misleads the reader, so drop it. Wildcard names made solely of underscores (e.g. _, __) are exempt, being the idiomatic way to name a deliberately unused binding.

Invalid

example.dartdart
// Local variables and parameters must not start with an underscore.

void f(int _param) {}

void g() {
  var _local = 1;
  print(_local);
}

void h() {
  final _temp = 2;
  print(_temp);
}

void i() {
  for (var _x in <int>[]) {
    print(_x);
  }
}

void j() {
  try {
  } catch (_e) {
    print(_e);
  }
}

void k() {
  final fn = (int _p) => 0;
  print(fn(1));
}
Avoid leading underscores for local identifiers.
2
3void f(int _param) {}
Avoid leading underscores for local identifiers.
5void g() {
6 var _local = 1;
Avoid leading underscores for local identifiers.
10void h() {
11 final _temp = 2;
Avoid leading underscores for local identifiers.
15void i() {
16 for (var _x in <int>[]) {
Avoid leading underscores for local identifiers.
22 try {
23 } catch (_e) {
Avoid leading underscores for local identifiers.
28void k() {
29 final fn = (int _p) => 0;

Valid

example.dartdart
// Locals without leading underscores; wildcards and members are exempt.

int _private = 0;

class C {
  int _field = 0;
}

void f(int param) {
  print(param);
}

void g() {
  var local = 1;
  print(local);
}

void h(int _) {}

void i() {
  var __ = 1;
  print(__);
}

How to configure

Set the severity of no-leading-underscores-for-local-identifiers in your falcon.json:

falcon.jsonjson
{
  "linter": {
    "rules": {
      "style": {
        "no-leading-underscores-for-local-identifiers": "error"
      }
    }
  }
}