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

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

Issue 2048713002: Compute IGNORE_INFO and filter DART_ERRORS. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 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
« no previous file with comments | « no previous file | pkg/analyzer_cli/lib/src/incremental_analyzer.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) 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 8
9 import 'package:analyzer/dart/ast/ast.dart'; 9 import 'package:analyzer/dart/ast/ast.dart';
10 import 'package:analyzer/dart/ast/token.dart'; 10 import 'package:analyzer/dart/ast/token.dart';
(...skipping 2579 matching lines...) Expand 10 before | Expand all | Expand 10 after
2590 return errors; 2590 return errors;
2591 } 2591 }
2592 2592
2593 IgnoreInfo ignoreInfo = getRequiredInput(IGNORE_INFO_INPUT); 2593 IgnoreInfo ignoreInfo = getRequiredInput(IGNORE_INFO_INPUT);
2594 if (!ignoreInfo.hasIgnores) { 2594 if (!ignoreInfo.hasIgnores) {
2595 return errors; 2595 return errors;
2596 } 2596 }
2597 2597
2598 LineInfo lineInfo = getRequiredInput(LINE_INFO_INPUT); 2598 LineInfo lineInfo = getRequiredInput(LINE_INFO_INPUT);
2599 2599
2600 bool isIgnored(AnalysisError error) { 2600 return filterIgnored(errors, ignoreInfo, lineInfo);
2601 int errorLine = lineInfo.getLocation(error.offset).lineNumber;
2602 String errorCode = error.errorCode.name.toLowerCase();
2603 // Ignores can be on the line or just preceding the error.
2604 return ignoreInfo.ignoredAt(errorCode, errorLine) ||
2605 ignoreInfo.ignoredAt(errorCode, errorLine - 1);
2606 }
2607
2608 return errors.where((AnalysisError e) => !isIgnored(e)).toList();
2609 } 2601 }
2610 2602
2611 /** 2603 /**
2612 * Return a map from the names of the inputs of this kind of task to the task 2604 * Return a map from the names of the inputs of this kind of task to the task
2613 * input descriptors describing those inputs for a task with the 2605 * input descriptors describing those inputs for a task with the
2614 * given [target]. 2606 * given [target].
2615 */ 2607 */
2616 static Map<String, TaskInput> buildInputs(AnalysisTarget target) { 2608 static Map<String, TaskInput> buildInputs(AnalysisTarget target) {
2617 Source source = target; 2609 Source source = target;
2618 Map<String, TaskInput> inputs = <String, TaskInput>{}; 2610 Map<String, TaskInput> inputs = <String, TaskInput>{};
(...skipping 24 matching lines...) Expand all
2643 } 2635 }
2644 2636
2645 /** 2637 /**
2646 * Create a [DartErrorsTask] based on the given [target] in the given 2638 * Create a [DartErrorsTask] based on the given [target] in the given
2647 * [context]. 2639 * [context].
2648 */ 2640 */
2649 static DartErrorsTask createTask( 2641 static DartErrorsTask createTask(
2650 AnalysisContext context, AnalysisTarget target) { 2642 AnalysisContext context, AnalysisTarget target) {
2651 return new DartErrorsTask(context, target); 2643 return new DartErrorsTask(context, target);
2652 } 2644 }
2645
2646 /**
2647 * Return a new list with items from [errors] which are not filtered out by
2648 * the [ignoreInfo].
2649 */
2650 static List<AnalysisError> filterIgnored(
2651 List<AnalysisError> errors, IgnoreInfo ignoreInfo, LineInfo lineInfo) {
2652 if (errors.isEmpty || !ignoreInfo.hasIgnores) {
2653 return errors;
2654 }
2655
2656 bool isIgnored(AnalysisError error) {
2657 int errorLine = lineInfo.getLocation(error.offset).lineNumber;
2658 String errorCode = error.errorCode.name.toLowerCase();
2659 // Ignores can be on the line or just preceding the error.
2660 return ignoreInfo.ignoredAt(errorCode, errorLine) ||
2661 ignoreInfo.ignoredAt(errorCode, errorLine - 1);
2662 }
2663
2664 return errors.where((AnalysisError e) => !isIgnored(e)).toList();
2665 }
2653 } 2666 }
2654 2667
2655 /** 2668 /**
2656 * A task that builds [RESOLVED_UNIT13] for a unit. 2669 * A task that builds [RESOLVED_UNIT13] for a unit.
2657 */ 2670 */
2658 class EvaluateUnitConstantsTask extends SourceBasedAnalysisTask { 2671 class EvaluateUnitConstantsTask extends SourceBasedAnalysisTask {
2659 /** 2672 /**
2660 * The name of the [RESOLVED_UNIT12] input. 2673 * The name of the [RESOLVED_UNIT12] input.
2661 */ 2674 */
2662 static const String UNIT_INPUT = 'UNIT_INPUT'; 2675 static const String UNIT_INPUT = 'UNIT_INPUT';
(...skipping 3274 matching lines...) Expand 10 before | Expand all | Expand 10 after
5937 5950
5938 @override 5951 @override
5939 bool moveNext() { 5952 bool moveNext() {
5940 if (_newSources.isEmpty) { 5953 if (_newSources.isEmpty) {
5941 return false; 5954 return false;
5942 } 5955 }
5943 currentTarget = _newSources.removeLast(); 5956 currentTarget = _newSources.removeLast();
5944 return true; 5957 return true;
5945 } 5958 }
5946 } 5959 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer_cli/lib/src/incremental_analyzer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698