Update CHANGELOG.md for Dart 2.4.0 stable

Closes #37239
https://github.com/dart-lang/sdk/pull/37239

GitOrigin-RevId: 534651bc9dcf23672d829b92b07f985a3ccd529d
Change-Id: I7d53f304ebbb73ac09d3cb0157ffc2aa4e66471e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105727
Commit-Queue: Aadil Maan <aadilmaan@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
This commit is contained in:
Aadil Maan 2019-06-13 18:31:05 +00:00 committed by Alexander Thomas
parent 9676ca0ff9
commit 9b55e3027a

View file

@ -1,7 +1,27 @@
## 2.3.3-dev.XX.0
## 2.4.1-dev.XX.0
(Add new changes here, and they will be copied to the change section for the
next dev version)
### Language
### Core libraries
#### `dart:core`
* Update `Uri` class to support [RFC6874](https://tools.ietf.org/html/rfc6874):
"%25" or "%" can be appended to the end of a valid IPv6 representing a Zone
Identifier. A valid zone ID consists of unreversed character or Percent
encoded octet, which was defined in RFC3986.
IPv6addrz = IPv6address "%25" ZoneID
[29456]: https://github.com/dart-lang/sdk/issues/29456
### Dart VM
### Tools
## 2.4.0 - 2019-06-24
### Core libraries
#### `dart:isolate`
@ -9,34 +29,15 @@
* `TransferableTypedData` class was added to facilitate faster cross-isolate
communication of `Uint8List` data.
#### Linter
* **Breaking change**: `Isolate.resolvePackageUri` will always throw an
`UnsupportedError` when compiled with dart2js or DDC. This was the only
remaining API in `dart:isolate` that didn't automatically throw since we
dropped support for this library in [Dart 2.0.0][1]. Note that the API already
throws in dart2js if the API is used directly without manually setting up a
`defaultPackagesBase` hook.
The Linter was updated to `0.1.91`, which includes the following changes:
[1]: https://github.com/dart-lang/sdk/blob/master/CHANGELOG.md#200---2018-08-07
* fixed missed cases in `prefer_const_constructors`
* fixed `prefer_initializing_formals` to no longer suggest API breaking changes
* updated `omit_local_variable_types` to allow explicit `dynamic`s
* (internal) migration from deprecated analyzer APIs
## 2.3.2-dev.0.1
### Language
* **Breaking change:** Covariance of type variables used in super-interfaces
is now enforced (issue [35097][]). For example, the following code was
previously accepted and will now be rejected:
```dart
class A<X> {};
class B<X> extends A<void Function(X)> {};
```
* The identifier `async` can now be used in asynchronous and generator
functions.
[35097]: https://github.com/dart-lang/sdk/issues/35097
### Core libraries
#### `dart:developer`
* Exposed `result`, `errorCode` and `errorDetail` getters in
@ -66,65 +67,10 @@ class B<X> extends A<void Function(X)> {};
interface, this is a breaking change, as implementing classes will need to
implement the new getter.
#### `dart:isolate`
* **Breaking change**: `Isolate.resolvePackageUri` will always throw an
`UnsupportedError` when compiled with dart2js or DDC. This was the only
remaining API in `dart:isolate` that didn't automatically throw since we
dropped support for this library in [Dart 2.0.0][1]. Note that the API already
throws in dart2js if the API is used directly without setting up manually a
`defaultPackagesBase` hook.
[1]: https://github.com/dart-lang/sdk/blob/master/CHANGELOG.md#200---2018-08-07
#### `dart:core`
* Update `Uri` class to support RFC6874: https://tools.ietf.org/html/rfc6874
"%25" or "%" can be appended to the end of a valid IPv6 representing a Zone
Identifier. A valid zone ID consists of unreversed character or Percent
encoded octet, which was defined in RFC3986.
IPv6addrz = IPv6address "%25" ZoneID
[29456]: https://github.com/dart-lang/sdk/issues/29456
### Dart VM
### Tools
#### Linter
The Linter was updated to `0.1.90`, which includes the following changes:
* fixed null-reference in `unrelated_type_equality_checks`
* new lint: `unsafe_html`
#### Pub
* `pub publish` will no longer warn about missing dependencies for import
statements in `example/`.
* OAuth2 authentication will explicitely ask for the `openid` scope.
## 2.3.2-dev.0.0
### Tools
#### Linter
Updated the linter to `0.1.89`, which includes the following changes:
* Broadened `prefer_null_aware_operators` to work beyond local variables.
* Added `prefer_if_null_operators`.
* Fixed `prefer_contains` false positives.
* Fixed `unnecessary_parenthesis` false positives.
## 2.3.1-dev.0.0
### Core libraries
#### `dart:async`
* **Breaking change:**
Fixed bug in `StreamIterator` that allowed constructor argument to be `null`
and allowed `await for` on a `null` stream. This is now a runtime error.
* **Breaking change:** The `await for` allowed `null` as a stream due to a bug
in `StreamIterator` class. This bug has now been fixed.
#### `dart:core`
@ -149,10 +95,49 @@ Updated the linter to `0.1.89`, which includes the following changes:
This change only affects implementers of the `RegExp` interface; current
code using Dart regular expressions will not be affected.
#### `dart:isolate`
### Language
* **Breaking change:** The `await for` allowed `null` as a stream due to a bug
in `StreamIterator` class. This bug has now been fixed.
* **Breaking change:** Covariance of type variables used in super-interfaces
is now enforced (issue [35097][]). For example, the following code was
previously accepted and will now be rejected:
```dart
class A<X> {};
class B<X> extends A<void Function(X)> {};
```
* The identifier `async` can now be used in asynchronous and generator
functions.
[35097]: https://github.com/dart-lang/sdk/issues/35097
### Tools
#### Linter
The Linter was updated to `0.1.91`, which includes the following changes:
* Fixed missed cases in `prefer_const_constructors`
* Fixed `prefer_initializing_formals` to no longer suggest API breaking changes
* Updated `omit_local_variable_types` to allow explicit `dynamic`s
* Fixed null-reference in `unrelated_type_equality_checks`
* New lint: `unsafe_html`
* Broadened `prefer_null_aware_operators` to work beyond local variables.
* Added `prefer_if_null_operators`.
* Fixed `prefer_contains` false positives.
* Fixed `unnecessary_parenthesis` false positives.
* New lint: `prefer_double_quotes`
* Fixed `prefer_asserts_in_initializer_lists` false positives
* Fixed `curly_braces_in_flow_control_structures` to handle more cases
* New lint: `prefer_double_quotes`
* New lint: `sort_child_properties_last`
* Fixed `type_annotate_public_apis` false positive for `static const` initializers
#### Pub
* `pub publish` will no longer warn about missing dependencies for import
statements in `example/`.
* OAuth2 authentication will explicitely ask for the `openid` scope.
## 2.3.2 - 2019-06-11