implicit_ reopen
Learn about the implicit_reopen linter rule.
Don't implicitly reopen classes.
Details
#
Using an interface, base,
final, or sealed modifier on a
class, or a base modifier on a mixin, authors can
control whether classes and mixins allow being implemented,
extended, and/or mixed in from outside of the library where
they're defined. In some cases, it's possible for an author to
inadvertently relax these controls and implicitly "reopen" a
class. (A similar reopening cannot occur with a mixin.)
This lint guards against unintentionally reopening a class by
requiring such cases to be made explicit with the
@reopen
annotation in package:meta.
BAD:
interface class I {}
class C extends I {} // LINT
GOOD:
interface class I {}
final class C extends I {}
import 'package:meta/meta.dart';
interface class I {}
@reopen
class C extends I {}
Enable
#
To enable the implicit_reopen rule, add
implicit_reopen under
linter > rules in your
analysis_options.yaml
file:
linter:
rules:
- implicit_reopen
If you're instead using the YAML map syntax to configure
linter rules, add implicit_reopen: true under
linter > rules:
linter:
rules:
implicit_reopen: true
除非另有说明,文档之所提及适用于 Dart 3.12.2 版本报告页面问题.