use-closest-build-context
- Group
- Correctness
- Path
lint/correctness/use-closest-build-context- Default
- On (recommended)
- Origin
- Falcon
- Domain
- flutter
- Rule
- 483 of 512
Use the nearest BuildContext parameter inside nested callbacks. Only resolved Flutter contexts are checked, avoiding unrelated variables named context.
Invalid
import 'package:flutter/material.dart';
void example(BuildContext outer) {
final callback0 = (BuildContext inner) { use(outer); };
final callback1 = (BuildContext inner) => use(outer);
final callback2 = (BuildContext inner) { return Theme.of(outer); };
void callback3(BuildContext inner) { use(outer); }
final callback4 = (BuildContext inner) { final nested = (BuildContext closest) { use(inner); }; };
}void example(BuildContext outer) {final callback0 = (BuildContext inner) { use(outer); };final callback0 = (BuildContext inner) { use(outer); };final callback1 = (BuildContext inner) => use(outer);final callback1 = (BuildContext inner) => use(outer);final callback2 = (BuildContext inner) { return Theme.of(outer); };final callback2 = (BuildContext inner) { return Theme.of(outer); };void callback3(BuildContext inner) { use(outer); }void callback3(BuildContext inner) { use(outer); }final callback4 = (BuildContext inner) { final nested = (BuildContext closest) { use(inner); }; };Valid
import 'package:flutter/material.dart';
void example(BuildContext outer) {
final callback0 = (BuildContext inner) { use(inner); };
final callback1 = (BuildContext inner) => use(inner);
final callback2 = (BuildContext inner) { return Theme.of(inner); };
void callback3(BuildContext inner) { use(inner); }
final callback4 = (int value) { use(outer); };
}Configure use-closest-build-context
Set its severity in falcon.json. See the configuration guide.
{
"linter": {
"rules": {
"correctness": {
"use-closest-build-context": "error"
}
}
}
}Or silence one occurrence with a suppression comment; the reason is required.
// falcon-ignore lint/correctness/use-closest-build-context: <reason>More correctness rules
- use-key-in-widget-constructors
use_key_in_widget_constructorsrecommendedflutterRequire public widget constructors to accept or initialize a Flutter
Key. - use-once-constructors-once-provider
use_once_constructors_once_providerflutterRequire Riverpod once-providers to be created through
.once(). - use-ref-and-state-synchronouslyrecommendedriverpod
Flags notifier ref and state accesses after an async gap without ref.mounted.
- use-ref-read-synchronouslyrecommendedriverpod
Flags Riverpod WidgetRef.read calls after an async gap without a mounted guard.
- use-setstate-synchronouslyrecommendedflutter
Require a mounted check before calling setState after an async gap.
- valid-regexps
valid_regexpsrecommendedDisallow statically known invalid
dart:coreregular expressions. - void-checks
void_checksrecommendedDon't pass or assign values to
void(orFutureOr<void>) locations. - add-equatable-propsrecommendedequatable
Flags concrete Equatable subclasses that do not declare an instance props property.