| Index: CHANGELOG.md
|
| diff --git a/CHANGELOG.md b/CHANGELOG.md
|
| index 80be7f32e9c0f203b4f613be70796ebe89522574..726e7fb1499323ea8483523eb4d23ff97c0d4000 100644
|
| --- a/CHANGELOG.md
|
| +++ b/CHANGELOG.md
|
| @@ -7,7 +7,7 @@
|
| ### Core library changes
|
|
|
| * `dart:io`
|
| - * Unified backends for `SecureSocket`, `SecurityContext`, and
|
| + * Unified backends for `SecureSocket`, `SecurityContext`, and
|
| `X509Certificate` to be consistent across all platforms. All
|
| `SecureSocket`, `SecurityContext`, and `X509Certificate` properties and
|
| methods are now supported on iOS and OSX.
|
| @@ -24,10 +24,12 @@
|
| * During a dynamic type check, `void` is not required to be `null` anymore.
|
| In practice, this makes overriding `void` functions with non-`void` functions
|
| safer.
|
| +
|
| * During static analysis, a function or setter declared using `=>` with return
|
| type `void` now allows the returned expression to have any type. For example,
|
| assuming the declaration `int x;`, it is now type correct to have
|
| `void f() => ++x;`.
|
| +
|
| * A new function-type syntax has been added to the language.
|
| Intuitively, the type of a function can be constructed by textually replacing
|
| the function's name with `Function` in its declaration. For instance, the
|
| @@ -35,11 +37,13 @@
|
| wherever a type can be written. It is thus now possible to declare fields
|
| containing functions without needing to write typedefs: `void Function() x;`.
|
| The new function type has one restriction: it may not contain the old-style
|
| - function-type syntax for its parameters. The following is thus
|
| - illegal: `void Function(int f())`.
|
| + function-type syntax for its parameters. The following is thus illegal:
|
| + `void Function(int f())`.
|
| `typedefs` have been updated to support this new syntax.
|
| +
|
| Examples:
|
| - ```
|
| +
|
| + ```dart
|
| typedef F = void Function(); // F is the name for a `void` callback.
|
| int Function(int) f; // A field `f` that contains an int->int function.
|
|
|
| @@ -55,40 +59,39 @@
|
|
|
| #### Strong Mode
|
|
|
| -* Removed ad hoc Future.then inference in favor of using FutureOr. Prior to
|
| -adding FutureOr to the language, the analyzer implented an ad hoc type inference
|
| -for Future.then (and overrides) treating it as if the onValue callback was typed
|
| -to return FutureOr for the purposes of inference. This ad hoc inference has
|
| -been removed now that FutureOr has been added.
|
| +* Removed ad hoc `Future.then` inference in favor of using `FutureOr`. Prior to
|
| + adding `FutureOr` to the language, the analyzer implented an ad hoc type
|
| + inference for `Future.then` (and overrides) treating it as if the onValue
|
| + callback was typed to return `FutureOr` for the purposes of inference.
|
| + This ad hoc inference has been removed now that `FutureOr` has been added.
|
|
|
| -Packages that implement `Future` must either type the `onValue` parameter to
|
| -`.then` as returning `FutureOr<T>`, or else must leave the type of the parameter
|
| -entirely to allow inference to fill in the type.
|
| + Packages that implement `Future` must either type the `onValue` parameter to
|
| + `.then` as returning `FutureOr<T>`, or else must leave the type of the parameter
|
| + entirely to allow inference to fill in the type.
|
|
|
| -* The following is also a change in strong mode: During static analysis, a
|
| - function or setter declared using `=>` with return type `void` now allows the
|
| - returned expression to have any type.
|
| -* The new function-type syntax is also supported by strong mode.
|
| +* During static analysis, a function or setter declared using `=>` with return
|
| + type `void` now allows the returned expression to have any type.
|
|
|
| ### Core library changes
|
|
|
| +* `dart:async`, `dart:core`, `dart:io`
|
| + * Adding to a closed sink, including `IOSink`, is no longer not allowed. In
|
| + 1.24, violations are only reported (on stdout or stderr), but a future
|
| + version of the Dart SDK will change this to throwing a `StateError`.
|
| +
|
| +* `dart:convert`
|
| + * **BREAKING** Removed the deprecated `ChunkedConverter` class.
|
| + * JSON maps are now typed as `Map<String, dynamic>` instead of
|
| + `Map<dynamic, dynamic>`. A JSON-map is not a `HashMap` or `LinkedHashMap`
|
| + anymore (but just a `Map`).
|
| +
|
| * `dart:io`
|
| * Added `Platform.localeName`, needed for accessing the locale on platforms
|
| that don't store it in an environment variable.
|
| * Added `ProcessInfo.currentRss` and `ProcessInfo.maxRss` for inspecting
|
| the Dart VM process current and peak resident set size.
|
| - * Added 'RawSynchronousSocket', a basic synchronous socket implementation.
|
| -* `dart:convert`
|
| - * Removed deprecated `ChunkedConverter` class.
|
| - * JSON maps are now typed as `Map<String, dynamic>` instead of
|
| - `Map<dynamic, dynamic>`. A JSON-map is not a `HashMap` or `LinkedHashMap`
|
| - anymore (but just a `Map`).
|
| -* `dart:async`, `dart:io`, `dart:core`
|
| - * Adding to a closed sink, including `IOSink`, is not allowed anymore. In
|
| - 1.24, violations are only reported (on stdout or stderr), but a future
|
| - version of the Dart SDK will change this to throwing a `StateError`.
|
| + * Added `RawSynchronousSocket`, a basic synchronous socket implementation.
|
|
|
| -### Dart VM
|
|
|
| ### Tool Changes
|
|
|
|
|