Rules / Style / avoid-init-to-null
avoid-init-to-null
Flags explicit = null initializers on declarations that already default to null.
A non-final, non-const, non-late variable whose type is nullable,
absent, or dynamic is already initialized to null, so writing = null
adds noise without changing behavior. Drop the initializer and let the
default stand. Declarations that are final, const, late, or have a
non-nullable type are left alone, since for them the null is either
required or meaningful.
Invalid
example.dartdart
int? topLevel = null;
var inferred = null;
class C {
String? field = null;
dynamic dyn = null;
void method() {
int? local = null;
var x = null;
double? a = null, b;
print('$local $x $a $b');
}
}
Don't explicitly initialize variables to null.
Don't explicitly initialize variables to null.
1int? topLevel = null;
2var inferred = null;
∙
Don't explicitly initialize variables to null.
4class C {
5 String? field = null;
∙
Don't explicitly initialize variables to null.
5 String? field = null;
6 dynamic dyn = null;
∙
Don't explicitly initialize variables to null.
8 void method() {
9 int? local = null;
∙
Don't explicitly initialize variables to null.
9 int? local = null;
10 var x = null;
∙
Don't explicitly initialize variables to null.
10 var x = null;
11 double? a = null, b;
∙
Valid
example.dartdart
int nonNull = 0;
late int? lazy;
class C {
int? uninitialized;
final String? name = null;
const C();
int count = 0;
void method(int? param) {
int? local;
var x = 42;
String value = 'hi';
print('$local $x $value $param');
}
void withDefault({int? param = null}) {
print(param);
}
}
How to configure
Set the severity of avoid-init-to-null in your falcon.json:
falcon.jsonjson
{
"linter": {
"rules": {
"style": {
"avoid-init-to-null": "error"
}
}
}
}