Chromium Code Reviews

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

Issue 1568643002: clean up generic methods in resolution (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
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/element/element.dart'; 10 import 'package:analyzer/dart/element/element.dart';
(...skipping 1342 matching lines...)
1353 _inheritanceManager.substituteTypeArgumentsInMemberFromInheritance( 1353 _inheritanceManager.substituteTypeArgumentsInMemberFromInheritance(
1354 overriddenFT, executableElementName, enclosingType); 1354 overriddenFT, executableElementName, enclosingType);
1355 if (overridingFT == null || overriddenFT == null) { 1355 if (overridingFT == null || overriddenFT == null) {
1356 return false; 1356 return false;
1357 } 1357 }
1358 1358
1359 // Handle generic function type parameters. 1359 // Handle generic function type parameters.
1360 // TODO(jmesserly): this duplicates some code in isSubtypeOf and most of 1360 // TODO(jmesserly): this duplicates some code in isSubtypeOf and most of
1361 // _isGenericFunctionSubtypeOf. Ideally, we'd let TypeSystem produce 1361 // _isGenericFunctionSubtypeOf. Ideally, we'd let TypeSystem produce
1362 // an error message once it's ready to "return false". 1362 // an error message once it's ready to "return false".
1363 if (!overridingFT.boundTypeParameters.isEmpty) { 1363 if (!overridingFT.typeFormals.isEmpty) {
1364 if (overriddenFT.boundTypeParameters.isEmpty) { 1364 if (overriddenFT.typeFormals.isEmpty) {
1365 overriddenFT = _typeSystem.instantiateToBounds(overriddenFT); 1365 overriddenFT = _typeSystem.instantiateToBounds(overriddenFT);
1366 } else { 1366 } else {
1367 List<TypeParameterElement> params1 = overridingFT.boundTypeParameters; 1367 List<TypeParameterElement> params1 = overridingFT.typeFormals;
1368 List<TypeParameterElement> params2 = overriddenFT.boundTypeParameters; 1368 List<TypeParameterElement> params2 = overriddenFT.typeFormals;
1369 int count = params1.length; 1369 int count = params1.length;
1370 if (params2.length != count) { 1370 if (params2.length != count) {
1371 _errorReporter.reportErrorForNode( 1371 _errorReporter.reportErrorForNode(
1372 StaticWarningCode.INVALID_METHOD_OVERRIDE_TYPE_PARAMETERS, 1372 StaticWarningCode.INVALID_METHOD_OVERRIDE_TYPE_PARAMETERS,
1373 errorNameTarget, [ 1373 errorNameTarget, [
1374 count, 1374 count,
1375 params2.length, 1375 params2.length,
1376 overriddenExecutable.enclosingElement.displayName 1376 overriddenExecutable.enclosingElement.displayName
1377 ]); 1377 ]);
1378 return true; 1378 return true;
(...skipping 4825 matching lines...)
6204 toCheck.add(type.element); 6204 toCheck.add(type.element);
6205 // type arguments 6205 // type arguments
6206 if (type is InterfaceType) { 6206 if (type is InterfaceType) {
6207 InterfaceType interfaceType = type; 6207 InterfaceType interfaceType = type;
6208 for (DartType typeArgument in interfaceType.typeArguments) { 6208 for (DartType typeArgument in interfaceType.typeArguments) {
6209 _addTypeToCheck(typeArgument); 6209 _addTypeToCheck(typeArgument);
6210 } 6210 }
6211 } 6211 }
6212 } 6212 }
6213 } 6213 }
OLDNEW

Powered by Google App Engine