Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(629)

Side by Side Diff: pkg/analyzer/lib/src/generated/resolver.dart

Issue 2199323002: Initial implementation for lazy compound assignment operators (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library analyzer.src.generated.resolver; 5 library analyzer.src.generated.resolver;
6 6
7 import 'dart:collection'; 7 import 'dart:collection';
8 8
9 import 'package:analyzer/dart/ast/ast.dart'; 9 import 'package:analyzer/dart/ast/ast.dart';
10 import 'package:analyzer/dart/ast/token.dart'; 10 import 'package:analyzer/dart/ast/token.dart';
(...skipping 3416 matching lines...) Expand 10 before | Expand all | Expand 10 after
3427 3427
3428 @override 3428 @override
3429 bool visitAssertStatement(AssertStatement node) => false; 3429 bool visitAssertStatement(AssertStatement node) => false;
3430 3430
3431 @override 3431 @override
3432 bool visitAssignmentExpression(AssignmentExpression node) { 3432 bool visitAssignmentExpression(AssignmentExpression node) {
3433 Expression leftHandSide = node.leftHandSide; 3433 Expression leftHandSide = node.leftHandSide;
3434 if (_nodeExits(leftHandSide)) { 3434 if (_nodeExits(leftHandSide)) {
3435 return true; 3435 return true;
3436 } 3436 }
3437 if (node.operator.type == TokenType.QUESTION_QUESTION_EQ) { 3437 TokenType operatorType = node.operator.type;
3438 if (operatorType == TokenType.AMPERSAND_AMPERSAND_EQ ||
3439 operatorType == TokenType.BAR_BAR_EQ ||
3440 operatorType == TokenType.QUESTION_QUESTION_EQ) {
3438 return false; 3441 return false;
3439 } 3442 }
3440 if (leftHandSide is PropertyAccess && 3443 if (leftHandSide is PropertyAccess &&
3441 leftHandSide.operator.type == TokenType.QUESTION_PERIOD) { 3444 leftHandSide.operator.type == TokenType.QUESTION_PERIOD) {
3442 return false; 3445 return false;
3443 } 3446 }
3444 return _nodeExits(node.rightHandSide); 3447 return _nodeExits(node.rightHandSide);
3445 } 3448 }
3446 3449
3447 @override 3450 @override
(...skipping 7543 matching lines...) Expand 10 before | Expand all | Expand 10 after
10991 return null; 10994 return null;
10992 } 10995 }
10993 if (identical(node.staticElement, variable)) { 10996 if (identical(node.staticElement, variable)) {
10994 if (node.inSetterContext()) { 10997 if (node.inSetterContext()) {
10995 result = true; 10998 result = true;
10996 } 10999 }
10997 } 11000 }
10998 return null; 11001 return null;
10999 } 11002 }
11000 } 11003 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698