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

Side by Side Diff: pkg/analyzer/lib/src/task/dart.dart

Issue 1170863002: Remove extra CompileTimeErrorCode.DUPLICATE_DEFINITION. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 6 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) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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.task.dart; 5 library analyzer.src.task.dart;
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/src/context/cache.dart'; 10 import 'package:analyzer/src/context/cache.dart';
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 * 408 *
409 * The list will be empty if there were no errors, but will not be `null`. 409 * The list will be empty if there were no errors, but will not be `null`.
410 * 410 *
411 * The result is only available for [LibrarySpecificUnit]s. 411 * The result is only available for [LibrarySpecificUnit]s.
412 */ 412 */
413 final ListResultDescriptor<AnalysisError> VERIFY_ERRORS = 413 final ListResultDescriptor<AnalysisError> VERIFY_ERRORS =
414 new ListResultDescriptor<AnalysisError>( 414 new ListResultDescriptor<AnalysisError>(
415 'VERIFY_ERRORS', AnalysisError.NO_ERRORS); 415 'VERIFY_ERRORS', AnalysisError.NO_ERRORS);
416 416
417 /** 417 /**
418 * Remove [CompileTimeErrorCode.DUPLICATE_DEFINITION] errors from the given
419 * [errors] list.
420 */
421 void removeDuplicateDefinitionErrors(List<AnalysisError> errors) {
422 if (errors.isNotEmpty) {
423 errors.removeWhere((error) {
424 ErrorCode errorCode = error.errorCode;
425 return errorCode == CompileTimeErrorCode.DUPLICATE_DEFINITION;
426 });
427 }
428 }
429
430 /**
418 * A task that builds implicit constructors for a [ClassElement], or keeps 431 * A task that builds implicit constructors for a [ClassElement], or keeps
419 * the existing explicit constructors if the class has them. 432 * the existing explicit constructors if the class has them.
420 */ 433 */
421 class BuildClassConstructorsTask extends SourceBasedAnalysisTask { 434 class BuildClassConstructorsTask extends SourceBasedAnalysisTask {
422 /** 435 /**
423 * The name of the [CONSTRUCTORS] input for the superclass. 436 * The name of the [CONSTRUCTORS] input for the superclass.
424 */ 437 */
425 static const String SUPER_CONSTRUCTORS = 'SUPER_CONSTRUCTORS'; 438 static const String SUPER_CONSTRUCTORS = 'SUPER_CONSTRUCTORS';
426 439
427 /** 440 /**
(...skipping 726 matching lines...) Expand 10 before | Expand all | Expand 10 after
1154 // Resolve FunctionTypeAlias declarations. 1167 // Resolve FunctionTypeAlias declarations.
1155 // 1168 //
1156 TypeResolverVisitor visitor = new TypeResolverVisitor.con2( 1169 TypeResolverVisitor visitor = new TypeResolverVisitor.con2(
1157 libraryElement, source, typeProvider, errorListener); 1170 libraryElement, source, typeProvider, errorListener);
1158 for (CompilationUnitMember member in unit.declarations) { 1171 for (CompilationUnitMember member in unit.declarations) {
1159 if (member is FunctionTypeAlias) { 1172 if (member is FunctionTypeAlias) {
1160 member.accept(visitor); 1173 member.accept(visitor);
1161 } 1174 }
1162 } 1175 }
1163 // 1176 //
1177 // Prepare errors.
1178 //
1179 List<AnalysisError> errors = errorListener.errors;
1180 removeDuplicateDefinitionErrors(errors);
1181 //
1164 // Record outputs. 1182 // Record outputs.
1165 // 1183 //
1166 outputs[BUILD_FUNCTION_TYPE_ALIASES_ERRORS] = errorListener.errors; 1184 outputs[BUILD_FUNCTION_TYPE_ALIASES_ERRORS] = errors;
1167 outputs[RESOLVED_UNIT3] = unit; 1185 outputs[RESOLVED_UNIT3] = unit;
1168 } 1186 }
1169 1187
1170 /** 1188 /**
1171 * Return a map from the names of the inputs of this kind of task to the task 1189 * Return a map from the names of the inputs of this kind of task to the task
1172 * input descriptors describing those inputs for a task with the 1190 * input descriptors describing those inputs for a task with the
1173 * given [target]. 1191 * given [target].
1174 */ 1192 */
1175 static Map<String, TaskInput> buildInputs(LibrarySpecificUnit target) { 1193 static Map<String, TaskInput> buildInputs(LibrarySpecificUnit target) {
1176 return <String, TaskInput>{ 1194 return <String, TaskInput>{
(...skipping 1813 matching lines...) Expand 10 before | Expand all | Expand 10 after
2990 CompilationUnit unit = getRequiredInput(UNIT_INPUT); 3008 CompilationUnit unit = getRequiredInput(UNIT_INPUT);
2991 CompilationUnitElement unitElement = unit.element; 3009 CompilationUnitElement unitElement = unit.element;
2992 TypeProvider typeProvider = getRequiredInput(TYPE_PROVIDER_INPUT); 3010 TypeProvider typeProvider = getRequiredInput(TYPE_PROVIDER_INPUT);
2993 // 3011 //
2994 // Resolve TypeName nodes. 3012 // Resolve TypeName nodes.
2995 // 3013 //
2996 TypeResolverVisitor visitor = new TypeResolverVisitor.con2( 3014 TypeResolverVisitor visitor = new TypeResolverVisitor.con2(
2997 library, unitElement.source, typeProvider, errorListener); 3015 library, unitElement.source, typeProvider, errorListener);
2998 unit.accept(visitor); 3016 unit.accept(visitor);
2999 // 3017 //
3018 // Prepare errors.
3019 //
3020 List<AnalysisError> errors = errorListener.errors;
3021 removeDuplicateDefinitionErrors(errors);
3022 //
3000 // Record outputs. 3023 // Record outputs.
3001 // 3024 //
3002 outputs[RESOLVE_TYPE_NAMES_ERRORS] = errorListener.errors; 3025 outputs[RESOLVE_TYPE_NAMES_ERRORS] = errors;
3003 outputs[RESOLVED_UNIT4] = unit; 3026 outputs[RESOLVED_UNIT4] = unit;
3004 } 3027 }
3005 3028
3006 /** 3029 /**
3007 * Return a map from the names of the inputs of this kind of task to the task 3030 * Return a map from the names of the inputs of this kind of task to the task
3008 * input descriptors describing those inputs for a task with the 3031 * input descriptors describing those inputs for a task with the
3009 * given [target]. 3032 * given [target].
3010 */ 3033 */
3011 static Map<String, TaskInput> buildInputs(LibrarySpecificUnit target) { 3034 static Map<String, TaskInput> buildInputs(LibrarySpecificUnit target) {
3012 return <String, TaskInput>{ 3035 return <String, TaskInput>{
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
3386 @override 3409 @override
3387 bool moveNext() { 3410 bool moveNext() {
3388 if (_newSources.isEmpty) { 3411 if (_newSources.isEmpty) {
3389 return false; 3412 return false;
3390 } 3413 }
3391 currentTarget = _newSources.first; 3414 currentTarget = _newSources.first;
3392 _newSources.remove(currentTarget); 3415 _newSources.remove(currentTarget);
3393 return true; 3416 return true;
3394 } 3417 }
3395 } 3418 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698