OLD | NEW |
1 ## 1.24.0 | 1 ## 1.24.0 |
2 | 2 |
3 ### Language | 3 ### Language |
4 * During a dynamic type check, `void` is not required to be `null` anymore. | 4 * During a dynamic type check, `void` is not required to be `null` anymore. |
5 In practice, this makes overriding `void` functions with non-`void` functions | 5 In practice, this makes overriding `void` functions with non-`void` functions |
6 safer. | 6 safer. |
7 * During static analysis, a function declared using `=>` with return type `void` | 7 * During static analysis, a function or setter declared using `=>` with return |
8 now allows the returned expression to have any type. For example, assuming the | 8 type `void` now allows the returned expression to have any type. For example, |
9 declaration `int x;`, it is now type correct to have `void f() => ++x;`. | 9 assuming the declaration `int x;`, it is now type correct to have |
| 10 `void f() => ++x;`. |
10 | 11 |
11 #### Strong Mode | 12 #### Strong Mode |
12 | 13 |
13 * Removed ad hoc Future.then inference in favor of using FutureOr. Prior to | 14 * Removed ad hoc Future.then inference in favor of using FutureOr. Prior to |
14 adding FutureOr to the language, the analyzer implented an ad hoc type inference | 15 adding FutureOr to the language, the analyzer implented an ad hoc type inference |
15 for Future.then (and overrides) treating it as if the onValue callback was typed | 16 for Future.then (and overrides) treating it as if the onValue callback was typed |
16 to return FutureOr for the purposes of inference. This ad hoc inference has | 17 to return FutureOr for the purposes of inference. This ad hoc inference has |
17 been removed now that FutureOr has been added. | 18 been removed now that FutureOr has been added. |
18 | 19 |
19 Packages that implement `Future` must either type the `onValue` parameter to | 20 Packages that implement `Future` must either type the `onValue` parameter to |
20 `.then` as returning `FutureOr<T>`, or else must leave the type of the parameter | 21 `.then` as returning `FutureOr<T>`, or else must leave the type of the parameter |
21 entirely to allow inference to fill in the type. | 22 entirely to allow inference to fill in the type. |
22 | 23 |
23 * The following is also a change in strong mode: During static analysis, a | 24 * The following is also a change in strong mode: During static analysis, a |
24 function declared using `=>` with return type `void` now allows the returned | 25 function or setter declared using `=>` with return type `void` now allows the |
25 expression to have any type. | 26 returned expression to have any type. |
26 | 27 |
27 ### Core library changes | 28 ### Core library changes |
28 | 29 |
29 * `dart:io` | 30 * `dart:io` |
30 * Added `Platform.localeName`, needed for accessing the locale on platforms | 31 * Added `Platform.localeName`, needed for accessing the locale on platforms |
31 that don't store it in an environment variable. | 32 that don't store it in an environment variable. |
32 * Added `ProcessInfo.currentRss` and `ProcessInfo.maxRss` for inspecting | 33 * Added `ProcessInfo.currentRss` and `ProcessInfo.maxRss` for inspecting |
33 the Dart VM process current and peak resident set size. | 34 the Dart VM process current and peak resident set size. |
34 * Added 'RawSynchronousSocket', a basic synchronous socket implementation. | 35 * Added 'RawSynchronousSocket', a basic synchronous socket implementation. |
35 * `dart:convert` | 36 * `dart:convert` |
(...skipping 1875 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1911 they will keep the Dart process alive until they time out. This fixes the | 1912 they will keep the Dart process alive until they time out. This fixes the |
1912 handling of persistent connections. Previously, the client would shut down | 1913 handling of persistent connections. Previously, the client would shut down |
1913 immediately after a request. | 1914 immediately after a request. |
1914 | 1915 |
1915 * **Breaking change:** `HttpServer` no longer compresses all traffic by | 1916 * **Breaking change:** `HttpServer` no longer compresses all traffic by |
1916 default. The new `autoCompress` property can be set to `true` to re-enable | 1917 default. The new `autoCompress` property can be set to `true` to re-enable |
1917 compression. | 1918 compression. |
1918 | 1919 |
1919 * `dart:isolate`: `Isolate.spawnUri` added the optional `packageRoot` argument, | 1920 * `dart:isolate`: `Isolate.spawnUri` added the optional `packageRoot` argument, |
1920 which controls how it resolves `package:` URIs. | 1921 which controls how it resolves `package:` URIs. |
OLD | NEW |