Closed
Description
Proposed specification:
Used to annotate compilation unit `c`.
Indicates that the unit should not be used outside of this package, and that any breaking changes that occur to the unit will not be considered a breaking change for the package.
Tools such as the analyzer, can provide feedback if:
- the compilation unit is made visible in a dart file residing in a "public" file (i.e. not in lib/src)
I'm finding this increasingly necessary when working on large packages.
For example, assume I have the following in lib/src/internal.dart
:
import 'package:meta/meta.dart';
@internal
class KeyValuePair<K, V> {
final K key;
final V value;
const KeyValuePair(this.key, this.value);
}
And later in my application I write the following in lib/my_package.dart
:
export 'package:my_package/src/internal.dart`
// ^ WARNING: Exporting symbol `KeyValuePair`, which is marked `@internal`.