| Index: lib/compiler/implementation/scanner/listener.dart
|
| diff --git a/lib/compiler/implementation/scanner/listener.dart b/lib/compiler/implementation/scanner/listener.dart
|
| index 6b3184ee090686e2230521416db0a7fcacad3ffc..8db9b688c59e5ffdc78fc7deedbd6d9538fdccc1 100644
|
| --- a/lib/compiler/implementation/scanner/listener.dart
|
| +++ b/lib/compiler/implementation/scanner/listener.dart
|
| @@ -17,6 +17,12 @@ class Listener {
|
| void endBlock(int count, Token beginToken, Token endToken) {
|
| }
|
|
|
| + void beginCascade(Token token) {
|
| + }
|
| +
|
| + void endCascade() {
|
| + }
|
| +
|
| void beginClassBody(Token token) {
|
| }
|
|
|
| @@ -1010,7 +1016,7 @@ class NodeListener extends ElementListener {
|
| void handleBinaryExpression(Token token) {
|
| Node argument = popNode();
|
| Node receiver = popNode();
|
| - if (token.stringValue === '.') {
|
| + if (token.stringValue === '.' || token.stringValue == '..') {
|
| if (argument is !Send) internalError(node: argument);
|
| if (argument.asSend().receiver !== null) internalError(node: argument);
|
| if (argument is SendSet) internalError(node: argument);
|
| @@ -1021,6 +1027,14 @@ class NodeListener extends ElementListener {
|
| }
|
| }
|
|
|
| + void beginCascade(Token token) {
|
| + pushNode(new CascadeReceiver(popNode(), token));
|
| + }
|
| +
|
| + void endCascade() {
|
| + pushNode(new Cascade(popNode()));
|
| + }
|
| +
|
| void handleAssignmentExpression(Token token) {
|
| Node arg = popNode();
|
| Node node = popNode();
|
|
|