Pular para o conteúdo principal

implicit_reopen

Saiba mais sobre a regra de lint implicit_reopen.

Experimental
Correção disponível
Lançado no Dart 3.0

Não reabra classes implicitamente.

Detalhes

#

Ao usar o modificador interface, base, final ou sealed em uma classe, ou o modificador base em um mixin, o autor pode controlar se classes e mixins podem ser implementados, estendidos e/ou usados como mixin a partir de fora da biblioteca em que são definidos. Em alguns casos, o autor pode relaxar esses controles sem querer e "reabrir" uma classe implicitamente. (Uma reabertura semelhante não pode ocorrer com um mixin.)

Esta lint protege contra a reabertura não intencional de uma classe, exigindo que esses casos sejam explícitos com a anotação @reopen em package:meta.

RUIM:

dart
interface class I {}
​
class C extends I {} // LINT

BOM:

dart
interface class I {}
​
final class C extends I {}
dart
import 'package:meta/meta.dart';
​
interface class I {}
​
@reopen
class C extends I {}

Ativar

#

Para ativar a regra implicit_reopen, adicione implicit_reopen em linter > rules no seu arquivo analysis_options.yaml:

analysis_options.yaml
yaml
linter:
  rules:
    - implicit_reopen

Se você usa a sintaxe de mapa YAML para configurar as regras de lint, adicione implicit_reopen: true em linter > rules:

analysis_options.yaml
yaml
linter:
  rules:
    implicit_reopen: true

Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.