| Index: lib/compiler/implementation/scanner/listener.dart
|
| diff --git a/lib/compiler/implementation/scanner/listener.dart b/lib/compiler/implementation/scanner/listener.dart
|
| index 343bc5156a52e39edaf6b7f0e9caf4d6d76fb668..e7ddd63e6641d159d7b2100349f62fad7837aff5 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,8 @@ class NodeListener extends ElementListener {
|
| void handleBinaryExpression(Token token) {
|
| Node argument = popNode();
|
| Node receiver = popNode();
|
| - if (token.stringValue === '.') {
|
| + String tokenString = token.stringValue;
|
| + if (tokenString === '.' || tokenString === '..') {
|
| if (argument is !Send) internalError(node: argument);
|
| if (argument.asSend().receiver !== null) internalError(node: argument);
|
| if (argument is SendSet) internalError(node: argument);
|
| @@ -1021,6 +1028,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();
|
|
|