commit | 8b92fe3bbd3472fd092b6aa804250bffe16cd564 | [log] [tgz] |
---|---|---|
author | Daniel Hillerström <hillerstrom@google.com> | Mon Aug 27 08:31:15 2018 +0000 |
committer | commit-bot@chromium.org <commit-bot@chromium.org> | Mon Aug 27 08:31:15 2018 +0000 |
tree | 09eef81e2071e6b7d5bd200079409f138b1c99f8 | |
parent | 72e6353c3250f261aa2ee9ebf8d8692cd2987038 [diff] |
Checks whether a class extends or implements FutureOr. According to the specification (§10.9) it is a compile-time error to extend, implement, or use FutureOr as a mixin. Expands the "multiple implements" check to include a test for whether a class attempts to extend or implement the 'FutureOr' class. The mixin case is indirectly caught by another syntactic check for mixed in types (c.f. checkSemantics method in source_loader.dart). It verifies whether a mixin has zero constructors. Since FutureOr has a constructor the check fails. This is technically enough to meet the specification, but it leads to a confusing error message for this particular case. To improve the quality of the error message, we may want to merge some of the mixed in check into checkSupertypes in kernel_class_builder.dart. Closes https://github.com/dart-lang/sdk/issues/33744 Change-Id: I887ea9431fd50059399937f4236523ed917e3673 Reviewed-on: https://dart-review.googlesource.com/71141 Commit-Queue: Daniel Hillerström <hillerstrom@google.com> Reviewed-by: Aske Simon Christensen <askesc@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.