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

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

Issue 2340173002: address #25232 in strong mode (dart1 behavior unchanged) (Closed)
Patch Set: fix Created 4 years, 3 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.error_verifier; 5 library analyzer.src.generated.error_verifier;
6 6
7 import 'dart:collection'; 7 import 'dart:collection';
8 import "dart:math" as math; 8 import "dart:math" as math;
9 9
10 import 'package:analyzer/dart/ast/ast.dart'; 10 import 'package:analyzer/dart/ast/ast.dart';
(...skipping 5023 matching lines...) Expand 10 before | Expand all | Expand 10 after
5034 FunctionType foundConcreteFT = _inheritanceManager 5034 FunctionType foundConcreteFT = _inheritanceManager
5035 .substituteTypeArgumentsInMemberFromInheritance( 5035 .substituteTypeArgumentsInMemberFromInheritance(
5036 concreteType, memberName, enclosingType); 5036 concreteType, memberName, enclosingType);
5037 FunctionType requiredMemberFT = _inheritanceManager 5037 FunctionType requiredMemberFT = _inheritanceManager
5038 .substituteTypeArgumentsInMemberFromInheritance( 5038 .substituteTypeArgumentsInMemberFromInheritance(
5039 requiredMemberType, memberName, enclosingType); 5039 requiredMemberType, memberName, enclosingType);
5040 foundConcreteFT = _typeSystem.functionTypeToConcreteType( 5040 foundConcreteFT = _typeSystem.functionTypeToConcreteType(
5041 _typeProvider, foundConcreteFT); 5041 _typeProvider, foundConcreteFT);
5042 requiredMemberFT = _typeSystem.functionTypeToConcreteType( 5042 requiredMemberFT = _typeSystem.functionTypeToConcreteType(
5043 _typeProvider, requiredMemberFT); 5043 _typeProvider, requiredMemberFT);
5044 if (_typeSystem.isSubtypeOf(foundConcreteFT, requiredMemberFT)) { 5044
5045 // Strong mode does override checking for types in CodeChecker, so
5046 // we can skip it here. Doing it here leads to unnecessary duplicate
5047 // error messages in subclasses that inherit from one that has an
5048 // override error.
5049 //
5050 // See: https://github.com/dart-lang/sdk/issues/25232
5051 if (_options.strongMode ||
5052 _typeSystem.isSubtypeOf(foundConcreteFT, requiredMemberFT)) {
5045 continue; 5053 continue;
5046 } 5054 }
5047 } 5055 }
5048 } 5056 }
5049 // The not qualifying concrete executable element was found, add it to the 5057 // The not qualifying concrete executable element was found, add it to the
5050 // list. 5058 // list.
5051 missingOverrides.add(executableElt); 5059 missingOverrides.add(executableElt);
5052 } 5060 }
5053 // Now that we have the set of missing overrides, generate a warning on this 5061 // Now that we have the set of missing overrides, generate a warning on this
5054 // class. 5062 // class.
(...skipping 1838 matching lines...) Expand 10 before | Expand all | Expand 10 after
6893 class _InvocationCollector extends RecursiveAstVisitor { 6901 class _InvocationCollector extends RecursiveAstVisitor {
6894 final List<String> superCalls = <String>[]; 6902 final List<String> superCalls = <String>[];
6895 6903
6896 @override 6904 @override
6897 visitMethodInvocation(MethodInvocation node) { 6905 visitMethodInvocation(MethodInvocation node) {
6898 if (node.target is SuperExpression) { 6906 if (node.target is SuperExpression) {
6899 superCalls.add(node.methodName.name); 6907 superCalls.add(node.methodName.name);
6900 } 6908 }
6901 } 6909 }
6902 } 6910 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698