メインコンテンツにスキップ

無効な内部アノテーション

パッケージのプライベート API の公開要素のみを内部としてアノテーションできます。

説明

#

宣言が internal アノテーションでアノテーションされており、その宣言が 公開ライブラリ にあるか、またはプライベート名を持っている場合に、アナライザはこの診断を生成します。

#

以下のコードは、公開ライブラリ にある場合、この診断を生成します。なぜなら、internal アノテーションは 公開ライブラリ の宣言に適用できないからです。

dart
import 'package:meta/meta.dart';

@internal
class C {}

以下のコードは、公開ライブラリまたは内部ライブラリのいずれにある場合でも、この診断を生成します。なぜなら、internal アノテーションはプライベート名を持つ宣言に適用できないからです。

dart
import 'package:meta/meta.dart';

@internal
class _C {}

void f(_C c) {}

一般的な修正

#

宣言がプライベート名を持っている場合は、アノテーションを削除してください。

dart
class _C {}

void f(_C c) {}

宣言が公開名を持っており、パッケージの内部であることを意図している場合は、アノテーションされた宣言を内部ライブラリ (つまり、src ディレクトリ内のライブラリ) に移動してください。

それ以外の場合は、アノテーションの使用を削除してください。

dart
class C {}