Index: lib/src/checker/resolver.dart |
diff --git a/lib/src/checker/resolver.dart b/lib/src/checker/resolver.dart |
index d116df1bc939b468d718330e6725fcb2f341518f..c31a1d72abf741d2bae2f38824996938a2de116d 100644 |
--- a/lib/src/checker/resolver.dart |
+++ b/lib/src/checker/resolver.dart |
@@ -10,7 +10,7 @@ import 'package:analyzer/analyzer.dart'; |
import 'package:analyzer/src/generated/ast.dart'; |
import 'package:analyzer/src/generated/element.dart'; |
import 'package:analyzer/src/generated/engine.dart'; |
-import 'package:analyzer/src/generated/error.dart'; |
+import 'package:analyzer/src/generated/error.dart' as analyzer; |
import 'package:analyzer/src/generated/java_io.dart' show JavaFile; |
import 'package:analyzer/src/generated/resolver.dart'; |
import 'package:analyzer/src/generated/static_type_analyzer.dart'; |
@@ -74,22 +74,33 @@ class TypeResolver { |
/// Log any errors encountered when resolving [source] and return whether any |
/// errors were found. |
bool logErrors(Source source, CheckerReporter reporter) { |
- List<AnalysisError> errors = context.getErrors(source).errors; |
+ List<analyzer.AnalysisError> errors = context.getErrors(source).errors; |
bool failure = false; |
if (errors.isNotEmpty) { |
for (var error in errors) { |
- var severity = error.errorCode.errorSeverity; |
- var isError = severity == ErrorSeverity.ERROR; |
- if (isError) failure = true; |
- var level = isError ? logger.Level.SEVERE : logger.Level.WARNING; |
- reporter.logAnalyzerError( |
- error.message, level, error.offset, error.offset + error.length); |
+ var message = new AnalyzerError.from(error); |
+ if (message.level == logger.Level.SEVERE) failure = true; |
+ reporter.log(message); |
Siggi Cherem (dart-lang)
2015/03/07 02:43:01
I am unifying the error reporting using the new [M
vsm
2015/03/09 15:14:36
Nice!
|
} |
} |
return failure; |
} |
} |
+class AnalyzerError extends Message { |
+ factory AnalyzerError.from(analyzer.AnalysisError error) { |
+ var severity = error.errorCode.errorSeverity; |
+ var isError = severity == analyzer.ErrorSeverity.ERROR; |
+ var level = isError ? logger.Level.SEVERE : logger.Level.WARNING; |
+ int begin = error.offset; |
+ int end = begin + error.length; |
+ return new AnalyzerError(error.message, level, begin, end); |
+ } |
+ |
+ const AnalyzerError(String message, logger.Level level, int begin, int end) |
+ : super('[from analyzer]: $message', level, begin, end); |
+} |
+ |
/// Creates an analysis context that contains our restricted typing rules. |
InternalAnalysisContext _initContext(ResolverOptions options) { |
var analysisOptions = new AnalysisOptionsImpl()..cacheSize = 512; |