Deprecate provisional and Provisional and make them unusable.

Will be removed in Dart 3.

Change-Id: I0bf8b01f23bab5a7871f0562562b7ad98887394f
Reviewed-on: https://dart-review.googlesource.com/69462
Reviewed-by: Leaf Petersen <leafp@google.com>
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
This commit is contained in:
Lasse R.H. Nielsen 2018-08-17 07:55:12 +00:00 committed by commit-bot@chromium.org
parent ff46f9f8c7
commit 42f295ece5
3 changed files with 15 additions and 45 deletions

View file

@ -14,6 +14,11 @@
### Core library changes
#### `dart:core`:
* Deprecated the `provisional` annotation and the `Provisional`
annotation class. These should have been removed before releasing Dart 2.0,
and they have no effect.
## 2.1.0-dev.1.0
### Tool Changes

View file

@ -111,7 +111,6 @@ class _WaitForUtils {
* subsequent calls block waiting for a condition that is only satisfied when
* an earlier call returns.
*/
@provisional
T waitFor<T>(Future<T> future, {Duration timeout}) {
T result;
bool futureCompleted = false;

View file

@ -109,57 +109,23 @@ class _Override {
const Object override = const _Override();
/**
* The annotation `@Provisional('message')` marks a feature as provisional.
* An annotation class that was used during development of Dart 2.
*
* An API is considered to be provisional if it is still going through the
* process of stabilizing and is subject to change or removal.
*
* The intent of the `@Provisional` annotation is to mark APIs that are still in
* development or that are added only tentatively. Adding the API allows users
* to experiment with using the APIs, which can provide valuable feedback. Such
* provisional APIs do not promise stability. They can be changed or removed
* without warning.
*
* The `@Provisional` annotation applies to:
* - library directives,
* - public top-level declarations, and
* - public members of public classes.
*
* Provisionality is transitive:
* - If a library is provisional, so is every member of it.
* - If a class is provisional, so is every member of it.
* - If a variable is provisional, so are its implicit getter and setter.
*
* Further, if a class is provisional, so are classes that extend, implement,
* and mix-in the class.
*
* A tool that processes Dart source code may report when:
* - the code imports a provisional library.
* - the code exports a provisional library, or any provisional member of
*  a non-provisional library.
* - the code refers statically to a provisional declaration.
* - the code dynamically uses a member of an object with a statically known
* type, where the member is provisional on the static type of the object.
*
* If the provisional use is inside a library, class or method which is itself
* provisional, the tool should not bother the user about it.
* A provisional feature is expected to use other provisional features.
* Should not be used any more.
*/
@deprecated
class Provisional {
/**
* A brief message describing how or why the feature is provisional.
*/
final String message;
const Provisional({String message})
: this.message = message ?? "Subject to change or removal.";
String get message => null;
const Provisional({String message});
}
/**
* Marks a feature as provisional with the message "Subject to change or
* removal".
* An annotation that was used during development of Dart 2.
*
* Should not be used any more.
*/
const Provisional provisional = const Provisional();
@deprecated
const Null provisional = null;
class _Proxy {
const _Proxy();