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

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: Merge remote-tracking branch 'origin/master' into 25232_strong_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
« no previous file with comments | « no previous file | pkg/analyzer/test/src/task/strong/checker_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 5025 matching lines...) Expand 10 before | Expand all | Expand 10 after
5036 FunctionType foundConcreteFT = _inheritanceManager 5036 FunctionType foundConcreteFT = _inheritanceManager
5037 .substituteTypeArgumentsInMemberFromInheritance( 5037 .substituteTypeArgumentsInMemberFromInheritance(
5038 concreteType, memberName, enclosingType); 5038 concreteType, memberName, enclosingType);
5039 FunctionType requiredMemberFT = _inheritanceManager 5039 FunctionType requiredMemberFT = _inheritanceManager
5040 .substituteTypeArgumentsInMemberFromInheritance( 5040 .substituteTypeArgumentsInMemberFromInheritance(
5041 requiredMemberType, memberName, enclosingType); 5041 requiredMemberType, memberName, enclosingType);
5042 foundConcreteFT = _typeSystem.functionTypeToConcreteType( 5042 foundConcreteFT = _typeSystem.functionTypeToConcreteType(
5043 _typeProvider, foundConcreteFT); 5043 _typeProvider, foundConcreteFT);
5044 requiredMemberFT = _typeSystem.functionTypeToConcreteType( 5044 requiredMemberFT = _typeSystem.functionTypeToConcreteType(
5045 _typeProvider, requiredMemberFT); 5045 _typeProvider, requiredMemberFT);
5046 if (_typeSystem.isSubtypeOf(foundConcreteFT, requiredMemberFT)) { 5046
5047 // Strong mode does override checking for types in CodeChecker, so
5048 // we can skip it here. Doing it here leads to unnecessary duplicate
5049 // error messages in subclasses that inherit from one that has an
5050 // override error.
5051 //
5052 // See: https://github.com/dart-lang/sdk/issues/25232
5053 if (_options.strongMode ||
5054 _typeSystem.isSubtypeOf(foundConcreteFT, requiredMemberFT)) {
5047 continue; 5055 continue;
5048 } 5056 }
5049 } 5057 }
5050 } 5058 }
5051 // The not qualifying concrete executable element was found, add it to the 5059 // The not qualifying concrete executable element was found, add it to the
5052 // list. 5060 // list.
5053 missingOverrides.add(executableElt); 5061 missingOverrides.add(executableElt);
5054 } 5062 }
5055 // Now that we have the set of missing overrides, generate a warning on this 5063 // Now that we have the set of missing overrides, generate a warning on this
5056 // class. 5064 // class.
(...skipping 1838 matching lines...) Expand 10 before | Expand all | Expand 10 after
6895 class _InvocationCollector extends RecursiveAstVisitor { 6903 class _InvocationCollector extends RecursiveAstVisitor {
6896 final List<String> superCalls = <String>[]; 6904 final List<String> superCalls = <String>[];
6897 6905
6898 @override 6906 @override
6899 visitMethodInvocation(MethodInvocation node) { 6907 visitMethodInvocation(MethodInvocation node) {
6900 if (node.target is SuperExpression) { 6908 if (node.target is SuperExpression) {
6901 superCalls.add(node.methodName.name); 6909 superCalls.add(node.methodName.name);
6902 } 6910 }
6903 } 6911 }
6904 } 6912 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer/test/src/task/strong/checker_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698