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

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

Issue 2976963002: Add --no-declaration-casts option to analyzer. (Closed)
Patch Set: Fix comment Created 3 years, 5 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/standard_resolution_map.dart'; 10 import 'package:analyzer/dart/ast/standard_resolution_map.dart';
(...skipping 829 matching lines...) Expand 10 before | Expand all | Expand 10 after
840 */ 840 */
841 bool _checkForInvalidAssignment(Expression lhs, Expression rhs) { 841 bool _checkForInvalidAssignment(Expression lhs, Expression rhs) {
842 if (lhs == null || rhs == null) { 842 if (lhs == null || rhs == null) {
843 return false; 843 return false;
844 } 844 }
845 VariableElement leftVariableElement = ErrorVerifier.getVariableElement(lhs); 845 VariableElement leftVariableElement = ErrorVerifier.getVariableElement(lhs);
846 DartType leftType = (leftVariableElement == null) 846 DartType leftType = (leftVariableElement == null)
847 ? ErrorVerifier.getStaticType(lhs) 847 ? ErrorVerifier.getStaticType(lhs)
848 : leftVariableElement.type; 848 : leftVariableElement.type;
849 DartType staticRightType = ErrorVerifier.getStaticType(rhs); 849 DartType staticRightType = ErrorVerifier.getStaticType(rhs);
850 if (!_typeSystem.isAssignableTo(staticRightType, leftType)) { 850 if (!_typeSystem.isAssignableTo(staticRightType, leftType,
851 isDeclarationCast: true)) {
851 // The warning was generated on this rhs 852 // The warning was generated on this rhs
852 return false; 853 return false;
853 } 854 }
854 // Test for, and then generate the hint 855 // Test for, and then generate the hint
855 DartType bestRightType = rhs.bestType; 856 DartType bestRightType = rhs.bestType;
856 if (leftType != null && bestRightType != null) { 857 if (leftType != null && bestRightType != null) {
857 if (!_typeSystem.isAssignableTo(bestRightType, leftType)) { 858 if (!_typeSystem.isAssignableTo(bestRightType, leftType,
859 isDeclarationCast: true)) {
858 _errorReporter.reportTypeErrorForNode( 860 _errorReporter.reportTypeErrorForNode(
859 HintCode.INVALID_ASSIGNMENT, rhs, [bestRightType, leftType]); 861 HintCode.INVALID_ASSIGNMENT, rhs, [bestRightType, leftType]);
860 return true; 862 return true;
861 } 863 }
862 } 864 }
863 return false; 865 return false;
864 } 866 }
865 867
866 void _checkForInvalidFactory(MethodDeclaration decl) { 868 void _checkForInvalidFactory(MethodDeclaration decl) {
867 // Check declaration. 869 // Check declaration.
(...skipping 9790 matching lines...) Expand 10 before | Expand all | Expand 10 after
10658 return null; 10660 return null;
10659 } 10661 }
10660 if (identical(node.staticElement, variable)) { 10662 if (identical(node.staticElement, variable)) {
10661 if (node.inSetterContext()) { 10663 if (node.inSetterContext()) {
10662 result = true; 10664 result = true;
10663 } 10665 }
10664 } 10666 }
10665 return null; 10667 return null;
10666 } 10668 }
10667 } 10669 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/generated/error_verifier.dart ('k') | pkg/analyzer/lib/src/generated/type_system.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698