unnecessary_late
Don't specify the late
modifier when it is not needed.
Details
#DO not specify the late
modifier for top-level and static variables when the declaration contains an initializer.
Top-level and static variables with initializers are already evaluated lazily as if they are marked late
.
BAD:
late String badTopLevel = '';
GOOD:
String goodTopLevel = '';
BAD:
class BadExample {
static late String badStatic = '';
}
GOOD:
class GoodExample {
late String goodStatic;
}
Enable
#To enable the unnecessary_late
rule, add unnecessary_late
under linter > rules in your analysis_options.yaml
file:
linter:
rules:
- unnecessary_late
If you're instead using the YAML map syntax to configure linter rules, add unnecessary_late: true
under linter > rules:
linter:
rules:
unnecessary_late: true
Unless stated otherwise, the documentation on this site reflects Dart 3.6.2. Page last updated on 2025-01-27. View source or report an issue.