760baa3b55
This makes super calls name-based (no target) and add direct calls with both receiver and explicit target. Super call resolution translates the name-based super calls into direct calls after they have been cloned into the mixin application. For JS backends, it should suffice to clone mixed-in methods that contain super calls, but that transformation is not part of this CL. This also adds a --target option to dartk designating the target to which the kernel IR should be specialized. The new transformation is run when --target=vm. BUG= R=kmillikin@google.com Review URL: https://chromereviews.googleplex.com/486537013 .
18 lines
615 B
Dart
18 lines
615 B
Dart
library kernel.transformations.flags;
|
|
|
|
import '../ast.dart';
|
|
|
|
/// Flags summarizing the kinds of AST nodes contained in a given member or
|
|
/// class, for speeding up transformations that only affect certain types of
|
|
/// nodes.
|
|
///
|
|
/// These are set by the frontend and the deserializer.
|
|
class TransformerFlag {
|
|
/// The class or member contains 'super' calls, that is, one of the AST nodes
|
|
/// [SuperPropertyGet], [SuperPropertySet], [SuperMethodInvocation].
|
|
static const int superCalls = 1 << 0;
|
|
|
|
// TODO(asgerf): We could also add a flag for 'async' and will probably have
|
|
// one for closures as well.
|
|
}
|