commit | 0496569f090441443227adce1c8cf47d1890a34b | [log] [tgz] |
---|---|---|
author | Jenny Messerly <jmesserly@google.com> | Tue Sep 18 03:21:48 2018 +0000 |
committer | Jenny Messerly <jmesserly@google.com> | Tue Sep 18 03:21:48 2018 +0000 |
tree | e767626b4f82dfbcd343274ab3696b1eed446121 | |
parent | 0471d7e3a1b8e3b4d056df39310e9853c5eb8ad6 [diff] |
implement super mixins in dartdevc and fix a few issues in Analyzer Fixes #34167. This implements the Dart 2 mixin proposal (https://goo.gl/KEKQyv) for DDC. When the mixin is applied, a class is created for the application that extends the correct superclass and has all of the instance members, so `super` works correctly. This also fixes a few minor issues in Analyzer's (mostly complete) implementation: - InterfaceType.isObject now returns false for Dart 2 mixins. - Least upper bound calculation recognizes mixins are not Object. - Interface of the mixin now implements its superclass constraints. - Mixin superclass constraints are checked against the superclass and all previously applied mixins (if any); this keeps it working with the subtype fix above, and also prevents a not-yet-applied mixin from satisfying the constraint The language_2/mixin_declaration tests were updated with a few minor fixes now that we can run Analyzer/dartdevc to test them. This change implements super mixins for DDC's Kernel backend (DDK) too. This will be enabled once Kernel adds a flag to recognize which Class nodes are mixins (vs normal classes). Change-Id: Ib3c4fcb12de9988345e52d92931196828d8227c3 Reviewed-on: https://dart-review.googlesource.com/74965 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Reviewed-by: Vijay Menon <vsm@google.com>
Dart is an open-source, scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps.
Visit the dartlang.org to learn more about the language, tools, getting started, and more.
Browse pub.dartlang.org for more packages and libraries contributed by the community and the Dart team.
If you want to build Dart yourself, here is a guide to getting the source, preparing your machine to build the SDK, and building.
There are more documents on our wiki.
The easiest way to contribute to Dart is to file issues.
You can also contribute patches, as described in Contributing.