avoid-unused-after-null-check
- Group
- Correctness
- Path
lint/correctness/avoid-unused-after-null-check- Default
- Off, opt in
- Origin
- Falcon
- Rule
- 182 of 512
Reports a null-checked local ignored by a branch that passes another local of the same resolved type to a call. Declaration identities keep shadowed names distinct. Branch-local replacements and unknown types are excluded.
Invalid
void text(String? checked, String replacement) {
if (checked != null) { print(replacement); }
}
void integer(int? checked, int replacement) {
if (null != checked) { print(replacement); }
}
void decimal(double? checked, double replacement) {
if ((checked) != null) { print(replacement); }
}
void boolean(bool? checked, bool replacement) {
if (checked != null) { print(replacement); }
}
void consume({required String value}) {}
void named(String? checked, String replacement) {
if (checked != null) { consume(value: replacement); }
}
void shadowed(String? checked, String replacement) {
if (checked != null) { { final checked = 'other'; print(checked); } print(replacement); }
}
void headline(String value) {
final String? myNullableValue = 'hello';
if (myNullableValue != null) { print(value); }
}
class Item {}
void userType(Item? checked, Item replacement) {
if (checked != null) { print(replacement); }
}
void numeric(num? checked, num replacement) {
if (checked != null) { print(replacement); }
}
void matchingGeneric(List<int>? checked, List<int> replacement) {
if (checked != null) { print(replacement); }
}void text(String? checked, String replacement) { if (checked != null) { print(replacement); }void integer(int? checked, int replacement) { if (null != checked) { print(replacement); }void decimal(double? checked, double replacement) { if ((checked) != null) { print(replacement); }void boolean(bool? checked, bool replacement) { if (checked != null) { print(replacement); }void named(String? checked, String replacement) { if (checked != null) { consume(value: replacement); }void shadowed(String? checked, String replacement) { if (checked != null) { { final checked = 'other'; print(checked); } print(replacement); } final String? myNullableValue = 'hello'; if (myNullableValue != null) { print(value); }void userType(Item? checked, Item replacement) { if (checked != null) { print(replacement); }void numeric(num? checked, num replacement) { if (checked != null) { print(replacement); }void matchingGeneric(List<int>? checked, List<int> replacement) { if (checked != null) { print(replacement); }Valid
void usesChecked(String? checked, String replacement) {
if (checked != null) { print(checked); print(replacement); }
}
void unrelated(String? checked, int count) {
if (checked != null) { print(count); }
}
void literal(String? checked) {
if (checked != null) { print('ready'); }
}
void nullBranch(String? checked, String replacement) {
if (checked == null) { print(replacement); }
}
void empty(String? checked) { if (checked != null) {} }
void compound(String? checked, String replacement) {
if (checked != null && checked.isNotEmpty) { print(replacement); }
}
void captured(String? checked, String replacement) {
if (checked != null) {
void use() { print(checked); }
print(replacement);
use();
}
}
void elseOnly(String? checked, String replacement) {
if (checked != null) {} else { print(replacement); }
}
void alreadyNonNull(String checked, String replacement) {
if (checked != null) { print(replacement); }
}
void branchLocal(String? token, List<String> lines) {
if (token != null) { for (final line in lines) print(line); }
}
void onlyShadowed(String? checked) {
if (checked != null) { final checked = 'other'; print(checked); }
}
void callbackParameter(String? checked, List<String> lines) {
if (checked != null) { lines.forEach((String line) { print(line); }); }
}
void genericMismatch(List<int>? checked, List<String> replacement) {
if (checked != null) { print(replacement); }
}Configure avoid-unused-after-null-check
Set its severity in falcon.json. See the configuration guide.
{
"linter": {
"rules": {
"correctness": {
"avoid-unused-after-null-check": "error"
}
}
}
}Or silence one occurrence with a suppression comment; the reason is required.
// falcon-ignore lint/correctness/avoid-unused-after-null-check: <reason>More correctness rules
- avoid-unused-parameters
avoid-unused-parametersrecommendedDisallow declared parameters that are never used, excluding primary constructors.
- avoid-watch-outside-buildrecommendedprovider
Flags listening Provider accesses proven to run outside Flutter builds.
- avoid-web-libraries-in-flutter
avoid_web_libraries_in_flutterrecommendedflutterDisallow importing web-only
dart:libraries from Flutter code. - await-only-futures
await_only_futuresrecommendedAwait only values assignable to futures;
FutureOr, dynamic, bottom types and extension types are accepted like the analyzer. - banned-importscross-file
Report imports forbidden by package-relative architectural boundaries.
- cancel-subscriptions
cancel_subscriptionsrecommendedCancel instances of
dart:asyncStreamSubscription. - check-is-not-closed-after-async-gaprecommendedbloc
Flags Bloc
addandemitcalls after an await without a freshisClosedcheck. - close-sinks
close_sinksrecommendedClose instances of
dart:coreSink.