mirror of
https://github.com/dart-lang/sdk
synced 2024-10-04 16:54:55 +00:00
[release] Move CHANGELOG entries to 2.18
Change-Id: I35d887541c8de985b55daed7c732c0d8302d278a Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/251542 Reviewed-by: Johnni Winther <johnniwinther@google.com> Reviewed-by: Alexander Markov <alexmarkov@google.com> Reviewed-by: Lasse Nielsen <lrn@google.com>
This commit is contained in:
parent
e473caca03
commit
f2bd1e9641
107
CHANGELOG.md
107
CHANGELOG.md
|
@ -1,71 +1,15 @@
|
||||||
## 2.19.0
|
## 2.19.0
|
||||||
|
|
||||||
#### Dart command line
|
|
||||||
|
|
||||||
- **Breaking change** [#46100](https://github.com/dart-lang/sdk/issues/46100):
|
|
||||||
The standalone `dartanalyzer` tool has been removed as previously
|
|
||||||
announced. `dartanalyzer` is replaced by the `dart analyze` command.
|
|
||||||
|
|
||||||
### Language
|
### Language
|
||||||
|
|
||||||
- **Breaking Change** [#48167](https://github.com/dart-lang/sdk/issues/48167):
|
|
||||||
Mixin of classes that don't extend `Object` is no longer supported:
|
|
||||||
```dart
|
|
||||||
class Base {}
|
|
||||||
class Mixin extends Base {}
|
|
||||||
class C extends Base with Mixin {}
|
|
||||||
```
|
|
||||||
This should instead be written using a mixin declaration of `Mixin`:
|
|
||||||
```dart
|
|
||||||
class Base {}
|
|
||||||
mixin Mixin on Base {}
|
|
||||||
class C extends Base with Mixin {}
|
|
||||||
```
|
|
||||||
This feature has not been supported in most compilation targets for some
|
|
||||||
time but is now completely removed.
|
|
||||||
|
|
||||||
### Libraries
|
### Libraries
|
||||||
|
|
||||||
#### `dart:async`
|
|
||||||
|
|
||||||
- The `Stream.fromIterable` stream can now be listened to more than once.
|
|
||||||
|
|
||||||
### `dart:collection`
|
|
||||||
|
|
||||||
- Deprecates `BidirectionalIterator`.
|
|
||||||
|
|
||||||
### `dart:developer`
|
### `dart:developer`
|
||||||
|
|
||||||
- Deprecates `UserTag.MAX_USER_TAGS` in favor of `UserTag.maxUserTags`.
|
- Deprecates `UserTag.MAX_USER_TAGS` in favor of `UserTag.maxUserTags`.
|
||||||
|
|
||||||
### Dart VM
|
|
||||||
|
|
||||||
Implementation of `async`/`async*`/`sync*` is revamped in Dart VM,
|
|
||||||
both in JIT and AOT modes. This also affects Flutter except Flutter Web.
|
|
||||||
|
|
||||||
Besides smaller code size and better performance of async methods,
|
|
||||||
the new implementation carries a few subtle changes in behavior:
|
|
||||||
|
|
||||||
- If `async` method returns before reaching the first `await`, it now returns a completed Future.
|
|
||||||
Previously `async` methods completed resulting Future in separate microtasks.
|
|
||||||
|
|
||||||
- Stack traces no longer have duplicate entries for `async` methods.
|
|
||||||
|
|
||||||
- New implementation now correctly throws an error if `null` occurs as
|
|
||||||
an argument of a logical expression (`&&` and `||`) which also contains
|
|
||||||
an `await`.
|
|
||||||
|
|
||||||
- New implementation avoids unnecessary extending the liveness of local
|
|
||||||
variables in `async`/`async*`/`sync*` methods, which means that unused
|
|
||||||
objects stored in local variables in such methods might be garbage
|
|
||||||
collected earlier than they were before
|
|
||||||
(see issue [#36983](https://github.com/dart-lang/sdk/issues/36983) for details).
|
|
||||||
|
|
||||||
|
|
||||||
### Tools
|
### Tools
|
||||||
|
|
||||||
#### Dart command line
|
|
||||||
|
|
||||||
#### Linter
|
#### Linter
|
||||||
|
|
||||||
Updated the Linter to `1.26.0`, which includes changes that
|
Updated the Linter to `1.26.0`, which includes changes that
|
||||||
|
@ -131,8 +75,32 @@ them, you must set the lower bound on the SDK constraint for your package to
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
- **Breaking Change** [#48167](https://github.com/dart-lang/sdk/issues/48167):
|
||||||
|
Mixin of classes that don't extend `Object` is no longer supported:
|
||||||
|
```dart
|
||||||
|
class Base {}
|
||||||
|
class Mixin extends Base {}
|
||||||
|
class C extends Base with Mixin {}
|
||||||
|
```
|
||||||
|
This should instead be written using a mixin declaration of `Mixin`:
|
||||||
|
```dart
|
||||||
|
class Base {}
|
||||||
|
mixin Mixin on Base {}
|
||||||
|
class C extends Base with Mixin {}
|
||||||
|
```
|
||||||
|
This feature has not been supported in most compilation targets for some
|
||||||
|
time but is now completely removed.
|
||||||
|
|
||||||
### Core libraries
|
### Core libraries
|
||||||
|
|
||||||
|
#### `dart:async`
|
||||||
|
|
||||||
|
- The `Stream.fromIterable` stream can now be listened to more than once.
|
||||||
|
|
||||||
|
### `dart:collection`
|
||||||
|
|
||||||
|
- Deprecates `BidirectionalIterator`.
|
||||||
|
|
||||||
#### `dart:html`
|
#### `dart:html`
|
||||||
|
|
||||||
- Add `connectionState` attribute and `connectionstatechange` listener to
|
- Add `connectionState` attribute and `connectionstatechange` listener to
|
||||||
|
@ -202,6 +170,29 @@ them, you must set the lower bound on the SDK constraint for your package to
|
||||||
- Allow omitting the `unencodedPath` positional argument to `Uri.http` and
|
- Allow omitting the `unencodedPath` positional argument to `Uri.http` and
|
||||||
`Uri.https` to default to an empty path.
|
`Uri.https` to default to an empty path.
|
||||||
|
|
||||||
|
### Dart VM
|
||||||
|
|
||||||
|
Implementation of `async`/`async*`/`sync*` is revamped in Dart VM,
|
||||||
|
both in JIT and AOT modes. This also affects Flutter except Flutter Web.
|
||||||
|
|
||||||
|
Besides smaller code size and better performance of async methods,
|
||||||
|
the new implementation carries a few subtle changes in behavior:
|
||||||
|
|
||||||
|
- If `async` method returns before reaching the first `await`, it now returns a completed Future.
|
||||||
|
Previously `async` methods completed resulting Future in separate microtasks.
|
||||||
|
|
||||||
|
- Stack traces no longer have duplicate entries for `async` methods.
|
||||||
|
|
||||||
|
- New implementation now correctly throws an error if `null` occurs as
|
||||||
|
an argument of a logical expression (`&&` and `||`) which also contains
|
||||||
|
an `await`.
|
||||||
|
|
||||||
|
- New implementation avoids unnecessary extending the liveness of local
|
||||||
|
variables in `async`/`async*`/`sync*` methods, which means that unused
|
||||||
|
objects stored in local variables in such methods might be garbage
|
||||||
|
collected earlier than they were before
|
||||||
|
(see issue [#36983](https://github.com/dart-lang/sdk/issues/36983) for details).
|
||||||
|
|
||||||
### Tools
|
### Tools
|
||||||
|
|
||||||
#### Dart command line
|
#### Dart command line
|
||||||
|
@ -211,6 +202,10 @@ them, you must set the lower bound on the SDK constraint for your package to
|
||||||
announced. `dart2js` is replaced by the `dart compile js` command, `dartdevc`
|
announced. `dart2js` is replaced by the `dart compile js` command, `dartdevc`
|
||||||
is no longer exposed as a command-line tool.
|
is no longer exposed as a command-line tool.
|
||||||
|
|
||||||
|
- **Breaking change** [#46100](https://github.com/dart-lang/sdk/issues/46100):
|
||||||
|
The standalone `dartanalyzer` tool has been removed as previously
|
||||||
|
announced. `dartanalyzer` is replaced by the `dart analyze` command.
|
||||||
|
|
||||||
#### Linter
|
#### Linter
|
||||||
|
|
||||||
Updated the Linter to `1.25.0`, which includes changes that
|
Updated the Linter to `1.25.0`, which includes changes that
|
||||||
|
|
Loading…
Reference in a new issue