mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 04:16:51 +00:00
0496569f09
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> |
||
---|---|---|
.. | ||
lib | ||
test | ||
LICENSE | ||
pubspec.yaml |