Index: pkg/compiler/lib/src/resolution/send_structure.dart |
diff --git a/pkg/compiler/lib/src/resolution/send_structure.dart b/pkg/compiler/lib/src/resolution/send_structure.dart |
index 9fa6416d489f991c4219221681cb021a779b958e..04ec01469b9cd6c863328310f76d5e000c919cd0 100644 |
--- a/pkg/compiler/lib/src/resolution/send_structure.dart |
+++ b/pkg/compiler/lib/src/resolution/send_structure.dart |
@@ -14,11 +14,18 @@ import '../tree/tree.dart'; |
import '../universe/universe.dart'; |
import '../util/util.dart'; |
+/// Interface for the structure of the semantics of a [Send] or [NewExpression] |
+/// node. |
+abstract class SemanticSendStructure<R, A> { |
+ /// Calls the matching visit method on [visitor] with [node] and [arg]. |
+ R dispatch(SemanticSendVisitor<R, A> visitor, Node node, A arg); |
+} |
+ |
/// Interface for the structure of the semantics of a [Send] node. |
/// |
/// Subclasses handle each of the [Send] variations; `assert(e)`, `a && b`, |
/// `a.b`, `a.b(c)`, etc. |
-abstract class SendStructure<R, A> { |
+abstract class SendStructure<R, A> extends SemanticSendStructure<R, A> { |
/// Calls the matching visit method on [visitor] with [send] and [arg]. |
R dispatch(SemanticSendVisitor<R, A> visitor, Send send, A arg); |
} |
@@ -1811,7 +1818,7 @@ class PostfixStructure<R, A> implements SendStructure<R, A> { |
} |
/// The structure for a [NewExpression] of a new invocation. |
-abstract class NewStructure<R, A> { |
+abstract class NewStructure<R, A> implements SemanticSendStructure<R, A> { |
/// Calls the matching visit method on [visitor] with [node] and [arg]. |
R dispatch(SemanticSendVisitor<R, A> visitor, NewExpression node, A arg); |
} |