Chromium Code Reviews| 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 cc4a9ab079d5fcc48c7e5d581a9d91fd22c072d1..9cac8fcba7d6ec7f298c50b79388c8f614e47649 100644 |
| --- a/pkg/compiler/lib/src/resolution/send_structure.dart |
| +++ b/pkg/compiler/lib/src/resolution/send_structure.dart |
| @@ -2304,6 +2304,30 @@ class PostfixStructure<R, A> implements SendStructure<R, A> { |
| String toString() => 'postfix($operator,$semantics)'; |
| } |
| + |
| +/// The structure for a [Send] whose prefix is a prefix for a deferred library. |
| +/// For instance `deferred.a` where `deferred` is a deferred prefix. |
| +class DeferredPrefixStructure<R, A> implements SendStructure<R, A> { |
| + /// The deferred prefix element. |
| + final PrefixElement prefix; |
| + |
| + /// The send structure of for the whole [Send] node. For instance a |
|
floitsch
2015/07/16 15:24:44
-of-
Johnni Winther
2015/07/20 08:53:53
Done.
|
| + /// [GetStructure] for `deferred.a` where `a` is a top level member of the |
| + /// deferred library. |
| + final SendStructure sendStructure; |
| + |
| + DeferredPrefixStructure(this.prefix, this.sendStructure) { |
| + assert(sendStructure != null); |
| + } |
| + |
| + @override |
| + R dispatch(SemanticSendVisitor<R, A> visitor, Send send, A arg) { |
| + visitor.visitDeferredAccess(send, prefix, arg); |
| + return sendStructure.dispatch(visitor, send, arg); |
| + } |
| +} |
| + |
| + |
| /// The structure for a [NewExpression] of a new invocation. |
| abstract class NewStructure<R, A> implements SemanticSendStructure<R, A> { |
| /// Calls the matching visit method on [visitor] with [node] and [arg]. |