| Index: pkg/compiler/lib/src/resolved_visitor.dart
|
| diff --git a/pkg/compiler/lib/src/resolved_visitor.dart b/pkg/compiler/lib/src/resolved_visitor.dart
|
| deleted file mode 100644
|
| index a3810ebad778e217d6b0b1f4a129cae96a3705ee..0000000000000000000000000000000000000000
|
| --- a/pkg/compiler/lib/src/resolved_visitor.dart
|
| +++ /dev/null
|
| @@ -1,873 +0,0 @@
|
| -// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
|
| -// for details. All rights reserved. Use of this source code is governed by a
|
| -// BSD-style license that can be found in the LICENSE file.
|
| -
|
| -library dart2js.resolved_visitor;
|
| -
|
| -import 'constants/expressions.dart';
|
| -import 'dart_types.dart' show
|
| - DartType;
|
| -import 'diagnostics/invariant.dart' show
|
| - invariant;
|
| -import 'diagnostics/spannable.dart' show
|
| - Spannable;
|
| -import 'elements/elements.dart' show
|
| - Element,
|
| - Elements,
|
| - ErroneousElement,
|
| - FunctionElement,
|
| - LocalFunctionElement,
|
| - LocalVariableElement,
|
| - ParameterElement,
|
| - PrefixElement,
|
| - TypeVariableElement;
|
| -import 'resolution/operators.dart' as op;
|
| -import 'resolution/semantic_visitor.dart';
|
| -import 'resolution/send_resolver.dart' show
|
| - SendResolverMixin;
|
| -import 'resolution/send_structure.dart' show
|
| - NewStructure,
|
| - SemanticSendStructure,
|
| - SendStructure;
|
| -import 'resolution/tree_elements.dart' show
|
| - TreeElements;
|
| -import 'tree/tree.dart';
|
| -import 'universe/universe.dart' show
|
| - CallStructure,
|
| - Selector;
|
| -
|
| -/// Enum for the visit methods added in [ResolvedVisitor].
|
| -// TODO(johnniwinther): Remove this.
|
| -enum ResolvedKind {
|
| - ASSERT,
|
| - TYPE_LITERAL,
|
| - SUPER,
|
| - OPERATOR,
|
| - TYPE_PREFIX,
|
| - GETTER,
|
| - STATIC,
|
| - CLOSURE,
|
| - DYNAMIC,
|
| - ERROR,
|
| - SEND_SET,
|
| - NEW,
|
| - SUPER_CONSTRUCTOR,
|
| -}
|
| -
|
| -/// Abstract interface for a [ResolvedVisitor].
|
| -// TODO(johnniwinther): Remove this.
|
| -abstract class ResolvedKindVisitor<R> {
|
| - @deprecated
|
| - R visitSuperSend(Send node);
|
| -
|
| - @deprecated
|
| - R visitOperatorSend(Send node);
|
| - R visitGetterSend(Send node);
|
| -
|
| - @deprecated
|
| - R visitClosureSend(Send node);
|
| - @deprecated
|
| - R visitDynamicSend(Send node);
|
| - @deprecated
|
| - R visitStaticSend(Send node);
|
| -
|
| - R handleSuperConstructorInvoke(Send node);
|
| - R handleSendSet(SendSet node);
|
| - R handleNewExpression(NewExpression node);
|
| -
|
| - /// Visitor callback for a type literal.
|
| - @deprecated
|
| - R visitTypeLiteralSend(Send node);
|
| -
|
| - /// Visitor callback for the class prefix of a static access, like `Foo` in
|
| - /// `Foo.staticField`.
|
| - // TODO(johnniwinther): Remove this when not needed by the inferrer.
|
| - @deprecated
|
| - R visitTypePrefixSend(Send node);
|
| -
|
| - @deprecated
|
| - R visitAssertSend(Send node);
|
| -
|
| - internalError(Spannable node, String reason);
|
| -}
|
| -
|
| -/// Visitor that returns the [ResolvedKind] corresponding to the called visitor
|
| -/// method.
|
| -class ResolvedKindComputer implements ResolvedKindVisitor {
|
| - const ResolvedKindComputer();
|
| -
|
| - ResolvedKind visitSuperSend(Send node) => ResolvedKind.SUPER;
|
| - ResolvedKind visitOperatorSend(Send node) => ResolvedKind.OPERATOR;
|
| - ResolvedKind visitGetterSend(Send node) => ResolvedKind.GETTER;
|
| - ResolvedKind visitClosureSend(Send node) => ResolvedKind.CLOSURE;
|
| - ResolvedKind visitDynamicSend(Send node) => ResolvedKind.DYNAMIC;
|
| - ResolvedKind visitStaticSend(Send node) => ResolvedKind.STATIC;
|
| - ResolvedKind visitTypeLiteralSend(Send node) => ResolvedKind.TYPE_LITERAL;
|
| - ResolvedKind visitTypePrefixSend(Send node) => ResolvedKind.TYPE_PREFIX;
|
| - ResolvedKind visitAssertSend(Send node) => ResolvedKind.ASSERT;
|
| - ResolvedKind handleSuperConstructorInvoke(Send node) {
|
| - return ResolvedKind.SUPER_CONSTRUCTOR;
|
| - }
|
| - ResolvedKind handleSendSet(SendSet node) => ResolvedKind.SEND_SET;
|
| - ResolvedKind handleNewExpression(NewExpression node) => ResolvedKind.NEW;
|
| - internalError(Spannable node, String reason) => ResolvedKind.ERROR;
|
| -}
|
| -
|
| -abstract class ResolvedVisitor<R>
|
| - implements Visitor<R>, ResolvedKindVisitor<R> {}
|
| -
|
| -abstract class BaseResolvedVisitor<R> extends Visitor<R>
|
| - implements ResolvedVisitor<R> {
|
| -
|
| - TreeElements elements;
|
| -
|
| - BaseResolvedVisitor(this.elements);
|
| -
|
| - /// Dispatch using the old [ResolvedVisitor] logic.
|
| - // TODO(johnniwinther): Remove this.
|
| - _oldDispatch(Send node, ResolvedKindVisitor visitor) {
|
| - Element element = elements[node];
|
| - if (elements.isAssert(node)) {
|
| - return visitor.visitAssertSend(node);
|
| - } else if (elements.isTypeLiteral(node)) {
|
| - return visitor.visitTypeLiteralSend(node);
|
| - } else if (node.isSuperCall) {
|
| - if (element != null && element.isConstructor) {
|
| - return visitor.handleSuperConstructorInvoke(node);
|
| - }
|
| - return visitor.visitSuperSend(node);
|
| - } else if (node.isOperator) {
|
| - return visitor.visitOperatorSend(node);
|
| - } else if (node.isPropertyAccess) {
|
| - if (!Elements.isUnresolved(element) && element.impliesType) {
|
| - return visitor.visitTypePrefixSend(node);
|
| - } else {
|
| - return visitor.visitGetterSend(node);
|
| - }
|
| - } else if (element != null && Initializers.isConstructorRedirect(node)) {
|
| - return visitor.visitStaticSend(node);
|
| - } else if (Elements.isClosureSend(node, element)) {
|
| - return visitor.visitClosureSend(node);
|
| - } else {
|
| - if (node.isConditional) {
|
| - if (node.receiver != null) {
|
| - Element receiverElement = elements[node.receiver];
|
| - if (receiverElement != null && receiverElement.isClass) {
|
| - // Handle C?.b as C.b
|
| - return visitor.visitStaticSend(node);
|
| - }
|
| - }
|
| - return visitor.visitDynamicSend(node);
|
| - } else if (Elements.isUnresolved(element)) {
|
| - if (element == null) {
|
| - // Example: f() with 'f' unbound.
|
| - // This can only happen inside an instance method.
|
| - return visitor.visitDynamicSend(node);
|
| - } else {
|
| - return visitor.visitStaticSend(node);
|
| - }
|
| - } else if (element.isInstanceMember) {
|
| - // Example: f() with 'f' bound to instance method.
|
| - return visitor.visitDynamicSend(node);
|
| - } else if (!element.isInstanceMember) {
|
| - // Example: A.f() or f() with 'f' bound to a static function.
|
| - // Also includes new A() or new A.named() which is treated like a
|
| - // static call to a factory.
|
| - return visitor.visitStaticSend(node);
|
| - } else {
|
| - return visitor.internalError(node, "Cannot generate code for send");
|
| - }
|
| - }
|
| - }
|
| -
|
| - internalError(Spannable node, String reason);
|
| -
|
| - R visitNode(Node node) {
|
| - internalError(node, "Unhandled node");
|
| - return null;
|
| - }
|
| -}
|
| -
|
| -abstract class NewResolvedVisitor<R> extends BaseResolvedVisitor<R>
|
| - with SendResolverMixin,
|
| - GetBulkMixin<R, dynamic>,
|
| - SetBulkMixin<R, dynamic>,
|
| - ErrorBulkMixin<R, dynamic>,
|
| - InvokeBulkMixin<R, dynamic>,
|
| - IndexSetBulkMixin<R, dynamic>,
|
| - CompoundBulkMixin<R, dynamic>,
|
| - UnaryBulkMixin<R, dynamic>,
|
| - BaseBulkMixin<R, dynamic>,
|
| - BinaryBulkMixin<R, dynamic>,
|
| - PrefixBulkMixin<R, dynamic>,
|
| - PostfixBulkMixin<R, dynamic>,
|
| - NewBulkMixin<R, dynamic> {
|
| -
|
| - final ResolvedSemanticDispatcher<R> _semanticDispatcher =
|
| - new ResolvedSemanticDispatcher<R>();
|
| -
|
| - final ResolvedSemanticDispatcher<ResolvedKind> _resolvedKindDispatcher =
|
| - new ResolvedSemanticDispatcher<ResolvedKind>();
|
| -
|
| - NewResolvedVisitor(TreeElements elements) : super(elements);
|
| -
|
| - /// Dispatch using the new [SemanticSendVisitor] logic.
|
| - _newDispatch(Send node,
|
| - ResolvedKindVisitor kindVisitor,
|
| - SemanticSendVisitor sendVisitor) {
|
| - Element element = elements[node];
|
| - if (element != null && element.isConstructor) {
|
| - if (node.isSuperCall) {
|
| - return kindVisitor.handleSuperConstructorInvoke(node);
|
| - } else {
|
| - return kindVisitor.visitStaticSend(node);
|
| - }
|
| - } else if (element != null && element.isPrefix) {
|
| - return kindVisitor.visitGetterSend(node);
|
| - } else if (!elements.isTypeLiteral(node) &&
|
| - node.isPropertyAccess &&
|
| - !Elements.isUnresolved(element) &&
|
| - element.impliesType) {
|
| - return kindVisitor.visitTypePrefixSend(node);
|
| - } else {
|
| - SendStructure sendStructure = computeSendStructure(node);
|
| - if (sendStructure != null) {
|
| - var arg = sendVisitor == _resolvedKindDispatcher
|
| - ? kindVisitor : sendStructure;
|
| - return sendStructure.dispatch(sendVisitor, node, arg);
|
| - } else {
|
| - return kindVisitor.visitStaticSend(node);
|
| - }
|
| - }
|
| - }
|
| -
|
| - @override
|
| - R visitDynamicSend(Send node) {
|
| - return internalError(node, "visitDynamicSend is deprecated");
|
| - }
|
| -
|
| - @override
|
| - R visitSuperSend(Send node) {
|
| - return internalError(node, "visitSuperSend is deprecated");
|
| - }
|
| -
|
| - @override
|
| - R visitOperatorSend(Send node) {
|
| - return internalError(node, "visitOperaterSend is deprecated");
|
| - }
|
| -
|
| - @override
|
| - R visitClosureSend(Send node) {
|
| - return internalError(node, "visitClosureSend is deprecated");
|
| - }
|
| -
|
| - @override
|
| - R visitTypeLiteralSend(Send node) {
|
| - return internalError(node, "visitTypeLiteralSend is deprecated");
|
| - }
|
| -
|
| - @override
|
| - R visitTypePrefixSend(Send node) {
|
| - return internalError(node, "visitTypePrefixSend is deprecated");
|
| - }
|
| -
|
| - @override
|
| - R visitAssertSend(Send node) {
|
| - return internalError(node, "visitAssertSend is deprecated");
|
| - }
|
| -
|
| - @override
|
| - R visitStaticSend(Send node) {
|
| - return internalError(node, "visitStaticSend is deprecated");
|
| - }
|
| -
|
| - bool checkResolvedKind(Node node,
|
| - ResolvedKind oldKind,
|
| - ResolvedKind newKind) {
|
| - return invariant(node, oldKind == newKind,
|
| - message: 'old=$oldKind != new=$newKind');
|
| - }
|
| -
|
| - ResolvedKind computeResolvedKindFromStructure(
|
| - Node node, SemanticSendStructure structure) {
|
| - return structure.dispatch(
|
| - _resolvedKindDispatcher, node, const ResolvedKindComputer());
|
| - }
|
| -
|
| - @override
|
| - R visitSend(Send node) {
|
| - assert(checkResolvedKind(
|
| - node,
|
| - _oldDispatch(node, const ResolvedKindComputer()),
|
| - _newDispatch(node, const ResolvedKindComputer(),
|
| - _resolvedKindDispatcher)));
|
| - return _newDispatch(node, this, this);
|
| - }
|
| -
|
| - @override
|
| - R visitSendSet(Send node) {
|
| - SendStructure structure = computeSendStructure(node);
|
| - if (structure == null) {
|
| - return internalError(node, 'No structure for $node');
|
| - } else {
|
| - assert(checkResolvedKind(node,
|
| - ResolvedKind.SEND_SET,
|
| - computeResolvedKindFromStructure(node, structure)));
|
| - return structure.dispatch(this, node, structure);
|
| - }
|
| - }
|
| -
|
| - @override
|
| - R visitNewExpression(NewExpression node) {
|
| - NewStructure structure = computeNewStructure(node);
|
| - if (structure == null) {
|
| - return internalError(node, 'No structure for $node');
|
| - } else {
|
| - assert(checkResolvedKind(node,
|
| - ResolvedKind.NEW,
|
| - computeResolvedKindFromStructure(node, structure)));
|
| - return structure.dispatch(this, node, structure);
|
| - }
|
| - }
|
| -
|
| - @override
|
| - R apply(Node node, arg) {
|
| - return visitNode(node);
|
| - }
|
| -
|
| - @override
|
| - R bulkHandleNode(
|
| - Node node,
|
| - String message,
|
| - SemanticSendStructure structure) {
|
| - return structure.dispatch(_semanticDispatcher, node, this);
|
| - }
|
| -}
|
| -
|
| -/// Visitor that dispatches [SemanticSendVisitor] calls to the corresponding
|
| -/// visit methods in [ResolvedVisitor].
|
| -class ResolvedSemanticDispatcher<R> extends Object
|
| - with GetBulkMixin<R, ResolvedKindVisitor<R>>,
|
| - SetBulkMixin<R, ResolvedKindVisitor<R>>,
|
| - InvokeBulkMixin<R, ResolvedKindVisitor<R>>,
|
| - PrefixBulkMixin<R, ResolvedKindVisitor<R>>,
|
| - PostfixBulkMixin<R, ResolvedKindVisitor<R>>,
|
| - SuperBulkMixin<R, ResolvedKindVisitor<R>>,
|
| - CompoundBulkMixin<R, ResolvedKindVisitor<R>>,
|
| - IndexSetBulkMixin<R, ResolvedKindVisitor<R>>,
|
| - NewBulkMixin<R, ResolvedKindVisitor<R>>,
|
| - ErrorBulkMixin<R, ResolvedKindVisitor<R>>
|
| - implements SemanticSendVisitor<R, ResolvedKindVisitor<R>> {
|
| -
|
| - ResolvedSemanticDispatcher();
|
| -
|
| - @override
|
| - R apply(Node node, ResolvedKindVisitor<R> visitor) {
|
| - return visitor.internalError(
|
| - node, "ResolvedSemanticDispatcher.apply unsupported.");
|
| - }
|
| -
|
| - @override
|
| - R bulkHandleNode(
|
| - Node node,
|
| - String message,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return bulkHandleError(node, null, visitor);
|
| - }
|
| -
|
| - R bulkHandleError(
|
| - Node node,
|
| - ErroneousElement error,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - if (node.asSendSet() != null) {
|
| - return visitor.handleSendSet(node);
|
| - } else if (node.asNewExpression() != null) {
|
| - return visitor.handleNewExpression(node);
|
| - }
|
| - return visitor.internalError(node, "No resolved kind for $node.");
|
| - }
|
| -
|
| - @override
|
| - R bulkHandleGet(Node node, ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitGetterSend(node);
|
| - }
|
| -
|
| - @override
|
| - R bulkHandleInvoke(Node node, ResolvedKindVisitor<R> visitor) {
|
| - // Most invokes are static.
|
| - return visitor.visitStaticSend(node);
|
| - }
|
| -
|
| - @override
|
| - R bulkHandlePrefix(Node node, ResolvedKindVisitor<R> visitor) {
|
| - return visitor.handleSendSet(node);
|
| - }
|
| -
|
| - @override
|
| - R bulkHandlePostfix(Node node, ResolvedKindVisitor<R> visitor) {
|
| - return visitor.handleSendSet(node);
|
| - }
|
| -
|
| - @override
|
| - R bulkHandleSuper(Node node, ResolvedKindVisitor<R> visitor) {
|
| - if (node.asSendSet() != null) {
|
| - return visitor.handleSendSet(node);
|
| - }
|
| - return visitor.visitSuperSend(node);
|
| - }
|
| -
|
| - @override
|
| - R bulkHandleSet(SendSet node, ResolvedKindVisitor<R> visitor) {
|
| - return visitor.handleSendSet(node);
|
| - }
|
| -
|
| - @override
|
| - R bulkHandleCompound(SendSet node, ResolvedKindVisitor<R> visitor) {
|
| - return visitor.handleSendSet(node);
|
| - }
|
| -
|
| - @override
|
| - R bulkHandleIndexSet(SendSet node, ResolvedKindVisitor<R> visitor) {
|
| - return visitor.handleSendSet(node);
|
| - }
|
| -
|
| - @override
|
| - R bulkHandleNew(NewExpression node, ResolvedKindVisitor<R> visitor) {
|
| - return visitor.handleNewExpression(node);
|
| - }
|
| -
|
| - @override
|
| - void previsitDeferredAccess(
|
| - Send node,
|
| - PrefixElement prefix,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - }
|
| -
|
| - @override
|
| - R errorInvalidAssert(
|
| - Send node,
|
| - NodeList arguments,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitAssertSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitLocalFunctionPostfix(
|
| - Send node,
|
| - LocalFunctionElement function,
|
| - op.IncDecOperator operator,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.handleSendSet(node);
|
| - }
|
| -
|
| - @override
|
| - R visitLocalFunctionPrefix(
|
| - Send node,
|
| - LocalFunctionElement function,
|
| - op.IncDecOperator operator,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.handleSendSet(node);
|
| - }
|
| -
|
| - @override
|
| - R visitStaticSetterGet(
|
| - Send node,
|
| - FunctionElement setter,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitGetterSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitStaticSetterInvoke(
|
| - Send node,
|
| - FunctionElement setter,
|
| - NodeList arguments,
|
| - CallStructure callStructure,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitStaticSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitSuperSetterGet(
|
| - Send node,
|
| - FunctionElement setter,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitSuperSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitSuperSetterInvoke(
|
| - Send node,
|
| - FunctionElement setter,
|
| - NodeList arguments,
|
| - CallStructure callStructure,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitSuperSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitTopLevelSetterGet(
|
| - Send node,
|
| - FunctionElement setter,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitGetterSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitTopLevelSetterInvoke(
|
| - Send node,
|
| - FunctionElement setter,
|
| - NodeList arguments,
|
| - CallStructure callStructure,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitStaticSend(node);
|
| - }
|
| -
|
| - @override
|
| - R errorUndefinedBinaryExpression(
|
| - Send node,
|
| - Node left,
|
| - Operator operator,
|
| - Node right,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitOperatorSend(node);
|
| - }
|
| -
|
| - @override
|
| - R errorUndefinedUnaryExpression(
|
| - Send node,
|
| - Operator operator,
|
| - Node expression,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitOperatorSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitUnresolvedGet(
|
| - Send node,
|
| - Element element,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitGetterSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitUnresolvedSuperGet(
|
| - Send node,
|
| - Element element,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitSuperSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitUnresolvedInvoke(
|
| - Send node,
|
| - Element element,
|
| - NodeList arguments,
|
| - Selector selector,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitStaticSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitUnresolvedPostfix(
|
| - Send node,
|
| - Element element,
|
| - op.IncDecOperator operator,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.handleSendSet(node);
|
| - }
|
| -
|
| - @override
|
| - R visitUnresolvedPrefix(
|
| - Send node,
|
| - Element element,
|
| - op.IncDecOperator operator,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.handleSendSet(node);
|
| - }
|
| -
|
| - @override
|
| - R visitAs(
|
| - Send node,
|
| - Node expression,
|
| - DartType type,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitOperatorSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitAssert(
|
| - Send node,
|
| - Node expression,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitAssertSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitBinary(
|
| - Send node,
|
| - Node left,
|
| - op.BinaryOperator operator,
|
| - Node right,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitOperatorSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitEquals(
|
| - Send node,
|
| - Node left,
|
| - Node right,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitOperatorSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitIs(
|
| - Send node,
|
| - Node expression,
|
| - DartType type,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitOperatorSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitIsNot(
|
| - Send node,
|
| - Node expression,
|
| - DartType type,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitOperatorSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitIfNull(
|
| - Send node,
|
| - Node left,
|
| - Node right,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitOperatorSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitLogicalAnd(
|
| - Send node,
|
| - Node left,
|
| - Node right,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitOperatorSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitLogicalOr(
|
| - Send node,
|
| - Node left,
|
| - Node right,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitOperatorSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitNot(
|
| - Send node,
|
| - Node expression,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitOperatorSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitNotEquals(
|
| - Send node,
|
| - Node left,
|
| - Node right,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitOperatorSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitUnary(
|
| - Send node,
|
| - op.UnaryOperator operator,
|
| - Node expression,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitOperatorSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitDynamicPropertyInvoke(
|
| - Send node,
|
| - Node receiver,
|
| - NodeList arguments,
|
| - Selector selector,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitDynamicSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitIfNotNullDynamicPropertyInvoke(
|
| - Send node,
|
| - Node receiver,
|
| - NodeList arguments,
|
| - Selector selector,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitDynamicSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitThisPropertyInvoke(
|
| - Send node,
|
| - NodeList arguments,
|
| - Selector selector,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitDynamicSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitExpressionInvoke(
|
| - Send node,
|
| - Node receiver,
|
| - NodeList arguments,
|
| - Selector selector,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitClosureSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitParameterInvoke(
|
| - Send node,
|
| - ParameterElement parameter,
|
| - NodeList arguments,
|
| - CallStructure callStructure,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitClosureSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitLocalVariableInvoke(
|
| - Send node,
|
| - LocalVariableElement variable,
|
| - NodeList arguments,
|
| - CallStructure callStructure,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitClosureSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitLocalFunctionInvoke(
|
| - Send node,
|
| - LocalFunctionElement function,
|
| - NodeList arguments,
|
| - CallStructure callStructure,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitClosureSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitThisInvoke(
|
| - Send node,
|
| - NodeList arguments,
|
| - CallStructure callStructure,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitClosureSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitClassTypeLiteralGet(
|
| - Send node,
|
| - ConstantExpression constant,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitTypeLiteralSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitTypedefTypeLiteralGet(
|
| - Send node,
|
| - ConstantExpression constant,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitTypeLiteralSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitDynamicTypeLiteralGet(
|
| - Send node,
|
| - ConstantExpression constant,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitTypeLiteralSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitTypeVariableTypeLiteralGet(
|
| - Send node,
|
| - TypeVariableElement element,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitTypeLiteralSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitClassTypeLiteralInvoke(
|
| - Send node,
|
| - ConstantExpression constant,
|
| - NodeList arguments,
|
| - CallStructure callStructure,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitTypeLiteralSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitTypedefTypeLiteralInvoke(
|
| - Send node,
|
| - ConstantExpression constant,
|
| - NodeList arguments,
|
| - CallStructure callStructure,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitTypeLiteralSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitDynamicTypeLiteralInvoke(
|
| - Send node,
|
| - ConstantExpression constant,
|
| - NodeList arguments,
|
| - CallStructure callStructure,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitTypeLiteralSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitTypeVariableTypeLiteralInvoke(
|
| - Send node,
|
| - TypeVariableElement element,
|
| - NodeList arguments,
|
| - CallStructure callStructure,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitTypeLiteralSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitIndex(
|
| - Send node,
|
| - Node receiver,
|
| - Node index,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitOperatorSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitSuperIndex(
|
| - Send node,
|
| - FunctionElement function,
|
| - Node index,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitSuperSend(node);
|
| - }
|
| -
|
| - @override
|
| - R visitLocalFunctionIncompatibleInvoke(
|
| - Send node,
|
| - LocalFunctionElement function,
|
| - NodeList arguments,
|
| - CallStructure callStructure,
|
| - ResolvedKindVisitor<R> visitor) {
|
| - return visitor.visitClosureSend(node);
|
| - }
|
| -}
|
|
|