OLD | NEW |
1 ## 1.20.0 | 1 ## 1.20.0 |
2 | 2 |
3 ### Dart VM | 3 ### Dart VM |
4 | 4 |
5 * We have improved the way that the VM locates the native code library for a | 5 * We have improved the way that the VM locates the native code library for a |
6 native extension (e.g. `dart-ext:` import). We have updated this | 6 native extension (e.g. `dart-ext:` import). We have updated this |
7 [article on native extensions](https://www.dartlang.org/articles/dart-vm/nativ
e-extensions) | 7 [article on native extensions](https://www.dartlang.org/articles/dart-vm/nativ
e-extensions) |
8 to reflect the VM's improved behavior. | 8 to reflect the VM's improved behavior. |
9 | 9 |
10 ### Core library changes | 10 ### Core library changes |
(...skipping 21 matching lines...) Expand all Loading... |
32 } | 32 } |
33 main() { | 33 main() { |
34 // Error because: | 34 // Error because: |
35 // - if we choose Cup<num> it is not assignable to `cOfInt`, | 35 // - if we choose Cup<num> it is not assignable to `cOfInt`, |
36 // - if we choose Cup<int> then `n` is not assignable to int. | 36 // - if we choose Cup<int> then `n` is not assignable to int. |
37 num n; | 37 num n; |
38 C<int> cOfInt = new C(n); | 38 C<int> cOfInt = new C(n); |
39 } | 39 } |
40 ``` | 40 ``` |
41 | 41 |
| 42 * New feature - use `@checked` to override a method and tighten a parameter |
| 43 type (SDK issue [25578](https://github.com/dart-lang/sdk/issues/25578)). |
| 44 |
| 45 ```dart |
| 46 import 'package:meta/meta.dart' show checked; |
| 47 class View { |
| 48 addChild(View v) {} |
| 49 } |
| 50 class MyView extends View { |
| 51 // this override is legal, it will check at runtime if we actually |
| 52 // got a MyView. |
| 53 addChild(@checked MyView v) {} |
| 54 } |
| 55 main() { |
| 56 dynamic mv = new MyView(); |
| 57 mv.addChild(new View()); // runtime error |
| 58 } |
| 59 ``` |
| 60 |
42 ## 1.19.0 | 61 ## 1.19.0 |
43 | 62 |
44 ### Language changes | 63 ### Language changes |
45 | 64 |
46 * The language now allows a trailing comma after the last argument of a call and | 65 * The language now allows a trailing comma after the last argument of a call and |
47 the last parameter of a function declaration. This can make long argument or | 66 the last parameter of a function declaration. This can make long argument or |
48 parameter lists easier to maintain, as commas can be left as-is when | 67 parameter lists easier to maintain, as commas can be left as-is when |
49 reordering lines. For details, see SDK issue | 68 reordering lines. For details, see SDK issue |
50 [26644](https://github.com/dart-lang/sdk/issues/26644). | 69 [26644](https://github.com/dart-lang/sdk/issues/26644). |
51 | 70 |
(...skipping 1185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1237 they will keep the Dart process alive until they time out. This fixes the | 1256 they will keep the Dart process alive until they time out. This fixes the |
1238 handling of persistent connections. Previously, the client would shut down | 1257 handling of persistent connections. Previously, the client would shut down |
1239 immediately after a request. | 1258 immediately after a request. |
1240 | 1259 |
1241 * **Breaking change:** `HttpServer` no longer compresses all traffic by | 1260 * **Breaking change:** `HttpServer` no longer compresses all traffic by |
1242 default. The new `autoCompress` property can be set to `true` to re-enable | 1261 default. The new `autoCompress` property can be set to `true` to re-enable |
1243 compression. | 1262 compression. |
1244 | 1263 |
1245 * `dart:isolate`: `Isolate.spawnUri` added the optional `packageRoot` argument, | 1264 * `dart:isolate`: `Isolate.spawnUri` added the optional `packageRoot` argument, |
1246 which controls how it resolves `package:` URIs. | 1265 which controls how it resolves `package:` URIs. |
OLD | NEW |