Skip to content
This repository was archived by the owner on Feb 22, 2018. It is now read-only.

Commit 69a1561

Browse files
author
John Messerly
committed
fixes #25, most analyzer errors were not computed
It helps to call computeErrors ;) [email protected] Review URL: https://codereview.chromium.org/1183733004.
1 parent caa101b commit 69a1561

File tree

5 files changed

+99
-40
lines changed

5 files changed

+99
-40
lines changed

lib/devc.dart

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ import 'dart:async';
99
import 'dart:convert';
1010
import 'dart:io';
1111

12-
import 'package:analyzer/src/generated/error.dart' as analyzer;
12+
import 'package:analyzer/src/generated/error.dart'
13+
show AnalysisError, ErrorSeverity, ErrorType;
1314
import 'package:analyzer/src/generated/engine.dart'
1415
show AnalysisContext, ChangeSet;
1516
import 'package:analyzer/src/generated/source.dart' show Source;
@@ -27,7 +28,7 @@ import 'src/codegen/html_codegen.dart';
2728
import 'src/codegen/js_codegen.dart';
2829
import 'src/dependency_graph.dart';
2930
import 'src/info.dart'
30-
show AnalyzerError, CheckerResults, LibraryInfo, LibraryUnit;
31+
show AnalyzerMessage, CheckerResults, LibraryInfo, LibraryUnit;
3132
import 'src/options.dart';
3233
import 'src/report.dart';
3334
import 'src/utils.dart';
@@ -201,11 +202,21 @@ class Compiler implements AbstractCompiler {
201202
/// Log any errors encountered when resolving [source] and return whether any
202203
/// errors were found.
203204
bool logErrors(Source source) {
204-
List<analyzer.AnalysisError> errors = context.getErrors(source).errors;
205+
context.computeErrors(source);
206+
List<AnalysisError> errors = context.getErrors(source).errors;
205207
bool failure = false;
206208
if (errors.isNotEmpty) {
207209
for (var error in errors) {
208-
var message = new AnalyzerError.from(error);
210+
// Always skip TODOs.
211+
if (error.errorCode.type == ErrorType.TODO) continue;
212+
213+
// Skip hints for now. In the future these could be turned on via flags.
214+
if (error.errorCode.errorSeverity.ordinal <
215+
ErrorSeverity.WARNING.ordinal) {
216+
continue;
217+
}
218+
219+
var message = new AnalyzerMessage.from(error);
209220
if (message.level == Level.SEVERE) failure = true;
210221
_reporter.log(message);
211222
}

lib/src/info.dart

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ library dev_compiler.src.info;
88

99
import 'package:analyzer/src/generated/ast.dart';
1010
import 'package:analyzer/src/generated/element.dart';
11-
import 'package:analyzer/src/generated/error.dart' as analyzer;
11+
import 'package:analyzer/src/generated/error.dart'
12+
show AnalysisError, ErrorSeverity;
1213
import 'package:logging/logging.dart' show Level;
1314

1415
import 'package:dev_compiler/src/checker/rules.dart';
@@ -528,16 +529,16 @@ class InvalidSuperInvocation extends StaticError {
528529
"(see http://goo.gl/q1T4BB): $node";
529530
}
530531

531-
class AnalyzerError extends Message {
532-
factory AnalyzerError.from(analyzer.AnalysisError error) {
532+
class AnalyzerMessage extends Message {
533+
factory AnalyzerMessage.from(AnalysisError error) {
533534
var severity = error.errorCode.type.severity;
534-
var isError = severity == analyzer.ErrorSeverity.WARNING;
535+
var isError = severity == ErrorSeverity.WARNING;
535536
var level = isError ? Level.SEVERE : Level.WARNING;
536537
int begin = error.offset;
537538
int end = begin + error.length;
538-
return new AnalyzerError(error.message, level, begin, end);
539+
return new AnalyzerMessage(error.message, level, begin, end);
539540
}
540541

541-
const AnalyzerError(String message, Level level, int begin, int end)
542+
const AnalyzerMessage(String message, Level level, int begin, int end)
542543
: super(message, level, begin, end);
543544
}

test/codegen/expect/temps.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
11
// Messages from compiling temps.dart
2+
warning: line 16, column 22 of test/codegen/temps.dart: [AnalyzerMessage] Named optional parameters cannot start with an underscore
3+
OptionalArg.named({this._opt: 456});
4+
^^^^^^^^^

test/report_test.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,11 @@ void main() {
4646

4747
_verifySummary(GlobalSummary summary) {
4848
var mainLib = summary.loose['file:///main.dart'];
49-
expect(mainLib.messages.length, 1);
49+
expect(mainLib.messages.length, 2);
50+
var analyzerMsg = mainLib.messages[0];
51+
expect(analyzerMsg.kind, "AnalyzerMessage");
5052

51-
var mainMessage = mainLib.messages[0];
53+
var mainMessage = mainLib.messages[1];
5254
expect(mainMessage.kind, "StaticTypeError");
5355
expect(mainMessage.level, "severe");
5456
expect(mainMessage.span.text, '"hi"');

0 commit comments

Comments
 (0)