avoid-relative-lib-imports
Same as avoid_relative_lib_imports in Dart lints
- Group
- Correctness
- Path
lint/correctness/avoid-relative-lib-imports- Default
- On (recommended)
- Origin
- Dart lints
- Rule
- 128 of 512
Disallow relative imports that reach into a lib/ directory.
Flags a relative import whose path contains a lib segment, such as
import '../lib/foo.dart' or import 'lib/foo.dart'; package: and dart:
imports are exempt. Dart treats a file reached by a relative path and the
same file reached by its package: URI as two separate libraries, so
importing into lib/ relatively can create duplicate type identities,
baffling "X is not a Y" errors, and is checks that fail against seemingly
identical types. Import files under lib/ through their package: URI
instead.
Invalid
import '../lib/src/helper.dart';
import '../../lib/util.dart';
import 'lib/config.dart';
import '../../../lib/models/user.dart';
import '../shared/lib/api.dart';
void main() {}import '../lib/src/helper.dart';import '../lib/src/helper.dart';import '../../lib/util.dart';import '../../lib/util.dart';import 'lib/config.dart';import 'lib/config.dart';import '../../../lib/models/user.dart';import '../../../lib/models/user.dart';import '../shared/lib/api.dart';Valid
import 'package:foo/src/bar.dart';
import 'dart:async';
import '../models/user.dart';
import 'helpers/format.dart';
import 'package:bar/bar.dart';
void main() {}Configure avoid-relative-lib-imports
Set its severity in falcon.json. See the configuration guide.
{
"linter": {
"rules": {
"correctness": {
"avoid-relative-lib-imports": "error"
}
}
}
}Or silence one occurrence with a suppression comment; the reason is required.
// falcon-ignore lint/correctness/avoid-relative-lib-imports: <reason>More correctness rules
- avoid-returning-widgets
avoid-returning-widgetsflutterDisallow functions and methods that return a
Widget. - avoid-type-to-string
avoid_type_to_stringrecommendedAvoid
Type.toString()in production code, where type names may be minified. - avoid-uncaught-future-errorsrecommended
Flags local futures first awaited after another await inside a try/catch.
- avoid-unconditional-break
Reports unconditional break, continue, return or throw in a for-loop body.
- avoid-undisposed-instancesrecommendedflutter
Warns when a disposable constructor result is discarded.
- avoid-unmodified-loop-conditionrecommended
Flags loop conditions whose local scalar inputs are never modified by the loop.
- avoid-unnecessary-setstaterecommendedflutter
Avoid setState during build, initState, or didUpdateWidget.
- avoid-unnecessary-stateful-widgetsrecommendedflutter
Warns when a
StatefulWidget's local State contains only a pure build method.