unreachable_from_main

Stable
Fix available

Unreachable top-level members in executable libraries.

Details

#

Any member declared in an executable library should be used directly inside that library. An executable library is a library that contains a main top-level function or that contains a top-level function annotated with @pragma('vm:entry-point')). Executable libraries are not usually imported and it's better to avoid defining unused members.

This rule assumes that an executable library isn't imported by other libraries except to execute its main function.

BAD:

dart
main() {}
void f() {}

GOOD:

dart
main() {
  f();
}
void f() {}

Enable

#

To enable the unreachable_from_main rule, add unreachable_from_main under linter > rules in your analysis_options.yaml file:

analysis_options.yaml
yaml
linter:
  rules:
    - unreachable_from_main

If you're instead using the YAML map syntax to configure linter rules, add unreachable_from_main: true under linter > rules:

analysis_options.yaml
yaml
linter:
  rules:
    unreachable_from_main: true