2017-10-27 21:21:13 +00:00
|
|
|
## 1.1.4
|
|
|
|
|
2017-11-03 19:04:20 +00:00
|
|
|
* Added dart2js.dart.
|
2017-10-27 21:21:13 +00:00
|
|
|
|
2017-09-28 19:33:27 +00:00
|
|
|
## 1.1.2
|
|
|
|
|
|
|
|
* Rollback SDK constraint update for 2.0.0. No longer needed.
|
|
|
|
|
2017-07-19 21:30:39 +00:00
|
|
|
## 1.1.1
|
|
|
|
* Update SDK constraint to be 2.0.0 dev friendly.
|
|
|
|
|
2017-07-10 21:58:11 +00:00
|
|
|
## 1.1.0
|
|
|
|
* Introduce `@alwaysThrows` to declare that a function always throws
|
|
|
|
(SDK issue [17999](https://github.com/dart-lang/sdk/issues/17999)). This
|
|
|
|
is first available in Dart SDK 1.25.0-dev.1.0.
|
|
|
|
|
|
|
|
```dart
|
|
|
|
import 'package:meta/meta.dart';
|
|
|
|
|
|
|
|
// Without knowing that [failBigTime] always throws, it looks like this
|
|
|
|
// function might return without returning a bool.
|
|
|
|
bool fn(expected, actual) {
|
|
|
|
if (expected != actual)
|
|
|
|
failBigTime(expected, actual);
|
|
|
|
else
|
|
|
|
return True;
|
|
|
|
}
|
|
|
|
|
|
|
|
@alwaysThrows
|
|
|
|
void failBigTime(expected, actual) {
|
|
|
|
throw new StateError('Expected $expected, but was $actual.');
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2016-09-19 16:45:24 +00:00
|
|
|
## 1.0.4
|
|
|
|
* Introduce `@virtual` to allow field overrides in strong mode
|
|
|
|
(SDK issue [27384](https://github.com/dart-lang/sdk/issues/27384)).
|
|
|
|
|
|
|
|
```dart
|
|
|
|
import 'package:meta/meta.dart' show virtual;
|
|
|
|
class Base {
|
|
|
|
@virtual int x;
|
|
|
|
}
|
|
|
|
class Derived extends Base {
|
|
|
|
int x;
|
|
|
|
|
|
|
|
// Expose the hidden storage slot:
|
|
|
|
int get superX => super.x;
|
|
|
|
set superX(int v) { super.x = v; }
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2016-09-14 00:26:24 +00:00
|
|
|
## 1.0.3
|
|
|
|
* Introduce `@checked` to override a method and tighten a parameter
|
|
|
|
type (SDK issue [25578](https://github.com/dart-lang/sdk/issues/25578)).
|
|
|
|
|
|
|
|
```dart
|
|
|
|
import 'package:meta/meta.dart' show checked;
|
|
|
|
class View {
|
|
|
|
addChild(View v) {}
|
|
|
|
}
|
|
|
|
class MyView extends View {
|
|
|
|
// this override is legal, it will check at runtime if we actually
|
|
|
|
// got a MyView.
|
|
|
|
addChild(@checked MyView v) {}
|
|
|
|
}
|
|
|
|
main() {
|
|
|
|
dynamic mv = new MyView();
|
|
|
|
mv.addChild(new View()); // runtime error
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2016-08-15 18:58:59 +00:00
|
|
|
## 1.0.2
|
|
|
|
* Introduce `@visibleForTesting` annotation for declarations that may be referenced only in the library or in a test.
|
|
|
|
|
2016-06-21 22:33:07 +00:00
|
|
|
## 1.0.1
|
|
|
|
* Updated `@factory` to allow statics and methods returning `null`.
|
|
|
|
|
2016-06-13 22:48:13 +00:00
|
|
|
## 1.0.0
|
|
|
|
* First stable API release.
|
|
|
|
|
2016-06-02 23:13:03 +00:00
|
|
|
## 0.12.2
|
|
|
|
* Updated `@protected` to include implemented interfaces (linter#252).
|
|
|
|
|
2016-04-18 21:29:45 +00:00
|
|
|
## 0.12.1
|
|
|
|
* Fixed markdown in dartdocs.
|
|
|
|
|
2016-04-12 00:07:14 +00:00
|
|
|
## 0.12.0
|
|
|
|
* Introduce `@optionalTypeArgs` annotation for classes whose type arguments are to be treated as optional.
|
|
|
|
|
2016-04-06 21:58:25 +00:00
|
|
|
## 0.11.0
|
|
|
|
* Added new `Required` constructor with a means to specify a reason to explain why a parameter is required.
|
|
|
|
|
2016-03-03 18:53:08 +00:00
|
|
|
## 0.10.0
|
|
|
|
* Introduce `@factory` annotation for methods that must either be abstract or
|
|
|
|
must return a newly allocated object.
|
|
|
|
* Introduce `@literal` annotation that indicates that any invocation of a
|
|
|
|
constructor must use the keyword `const` unless one or more of the
|
|
|
|
arguments to the constructor is not a compile-time constant.
|
|
|
|
|
2016-02-22 21:38:29 +00:00
|
|
|
## 0.9.0
|
2016-02-25 22:33:34 +00:00
|
|
|
* Introduce `@protected` annotation for members that must only be called from
|
|
|
|
instance members of subclasses.
|
2016-02-25 22:16:06 +00:00
|
|
|
* Introduce `@required` annotation for optional parameters that should be treated
|
|
|
|
as required.
|
2016-02-25 22:33:34 +00:00
|
|
|
* Introduce `@mustCallSuper` annotation for methods that must be invoked by all
|
|
|
|
overriding methods.
|