Chromium Code Reviews| Index: pkg/analyzer/lib/src/dart/resolver/inheritance_manager.dart |
| diff --git a/pkg/analyzer/lib/src/dart/resolver/inheritance_manager.dart b/pkg/analyzer/lib/src/dart/resolver/inheritance_manager.dart |
| index 57c416912aaca0b7c5c5314d4dd2fa8225bfe1a3..a6300f8aff19610386c1a58e049a367507126888 100644 |
| --- a/pkg/analyzer/lib/src/dart/resolver/inheritance_manager.dart |
| +++ b/pkg/analyzer/lib/src/dart/resolver/inheritance_manager.dart |
| @@ -54,12 +54,17 @@ class InheritanceManager { |
| new HashMap<ClassElement, Set<AnalysisError>>(); |
| /** |
| + * Indicates whether errors should be ignored. |
|
Brian Wilkerson
2016/11/29 19:01:51
Please add an explanation for why we need to not g
Paul Berry
2016/11/29 19:03:45
Done.
|
| + */ |
| + final bool ignoreErrors; |
| + |
| + /** |
| * Initialize a newly created inheritance manager. |
| * |
| * @param library the library element context that the inheritance mappings are being generated |
| */ |
| InheritanceManager(LibraryElement library, |
| - {bool includeAbstractFromSuperclasses: false}) { |
| + {bool includeAbstractFromSuperclasses: false, this.ignoreErrors: false}) { |
| this._library = library; |
| _includeAbstractFromSuperclasses = includeAbstractFromSuperclasses; |
| _classLookup = new HashMap<ClassElement, Map<String, ExecutableElement>>(); |
| @@ -654,15 +659,18 @@ class InheritanceManager { |
| * @param errorCode the error code to be associated with this error |
| * @param arguments the arguments used to build the error message |
| */ |
| - void _reportError(ClassElement classElt, int offset, int length, |
| - ErrorCode errorCode, List<Object> arguments) { |
| + void _reportError( |
| + ClassElement classElt, ErrorCode errorCode, List<Object> arguments) { |
| + if (ignoreErrors) { |
| + return; |
| + } |
| HashSet<AnalysisError> errorSet = _errorsInClassElement[classElt]; |
|
Brian Wilkerson
2016/11/29 19:01:51
We could clean this up to use `putIfAbsent`, if yo
Paul Berry
2016/11/29 19:03:45
Acknowledged.
|
| if (errorSet == null) { |
| errorSet = new HashSet<AnalysisError>(); |
| _errorsInClassElement[classElt] = errorSet; |
| } |
| - errorSet.add(new AnalysisError( |
| - classElt.source, offset, length, errorCode, arguments)); |
| + errorSet.add(new AnalysisError(classElt.source, classElt.nameOffset, |
| + classElt.nameLength, errorCode, arguments)); |
| } |
| /** |
| @@ -793,8 +801,6 @@ class InheritanceManager { |
| "${executableElementTypes[0]}, ${executableElementTypes[1]}"; |
| _reportError( |
| classElt, |
| - classElt.nameOffset, |
| - classElt.nameLength, |
| StaticTypeWarningCode.INCONSISTENT_METHOD_INHERITANCE, |
| [key, firstTwoFuntionTypesStr]); |
| } |
| @@ -823,8 +829,6 @@ class InheritanceManager { |
| } else { |
| _reportError( |
| classElt, |
| - classElt.nameOffset, |
| - classElt.nameLength, |
| StaticWarningCode |
| .INCONSISTENT_METHOD_INHERITANCE_GETTER_AND_METHOD, |
| [key]); |