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

Unified Diff: lib/src/checker/checker.dart

Issue 1230903002: fixes #6, refactor to use AnalysisError/Listener throughout dev_compiler (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/devc.dart ('k') | lib/src/codegen/js_printer.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/src/checker/checker.dart
diff --git a/lib/src/checker/checker.dart b/lib/src/checker/checker.dart
index b8683295434d142d3e2d788c9ae26930d3b3dafc..296e646e45693e82e81194d04c4c75ad70b73167 100644
--- a/lib/src/checker/checker.dart
+++ b/lib/src/checker/checker.dart
@@ -8,10 +8,8 @@ import 'package:analyzer/analyzer.dart';
import 'package:analyzer/src/generated/ast.dart';
import 'package:analyzer/src/generated/element.dart';
import 'package:analyzer/src/generated/scanner.dart' show Token, TokenType;
-import 'package:logging/logging.dart' as logger;
import 'package:dev_compiler/src/info.dart';
-import 'package:dev_compiler/src/report.dart' show CheckerReporter;
import 'package:dev_compiler/src/utils.dart' show getMemberType;
import 'package:dev_compiler/strong_mode.dart' show StrongModeOptions;
import 'rules.dart';
@@ -22,7 +20,7 @@ import 'rules.dart';
class _OverrideChecker {
bool _failure = false;
final TypeRules _rules;
- final CheckerReporter _reporter;
+ final AnalysisErrorListener _reporter;
final bool _inferFromOverrides;
_OverrideChecker(this._rules, this._reporter, StrongModeOptions options)
: _inferFromOverrides = options.inferFromOverrides;
@@ -327,21 +325,22 @@ class _OverrideChecker {
void _recordMessage(StaticInfo info) {
if (info == null) return;
- if (info.level >= logger.Level.SEVERE) _failure = true;
- _reporter.log(info);
+ var error = info.toAnalysisError();
+ if (error.errorCode.errorSeverity == ErrorSeverity.ERROR) _failure = true;
+ _reporter.onError(error);
}
}
/// Checks the body of functions and properties.
class CodeChecker extends RecursiveAstVisitor {
final TypeRules _rules;
- final CheckerReporter _reporter;
+ final AnalysisErrorListener _reporter;
final _OverrideChecker _overrideChecker;
bool _failure = false;
bool get failure => _failure || _overrideChecker._failure;
- CodeChecker(
- TypeRules rules, CheckerReporter reporter, StrongModeOptions options)
+ CodeChecker(TypeRules rules, AnalysisErrorListener reporter,
+ StrongModeOptions options)
: _rules = rules,
_reporter = reporter,
_overrideChecker = new _OverrideChecker(rules, reporter, options);
@@ -349,7 +348,7 @@ class CodeChecker extends RecursiveAstVisitor {
@override
void visitCompilationUnit(CompilationUnit unit) {
void report(Expression expr) {
- _reporter.log(new MissingTypeError(expr));
+ _reporter.onError(new MissingTypeError(expr).toAnalysisError());
}
var callback = _rules.reportMissingType;
_rules.reportMissingType = report;
@@ -988,8 +987,7 @@ class CodeChecker extends RecursiveAstVisitor {
}
void _recordDynamicInvoke(AstNode node, AstNode target) {
- var dinvoke = new DynamicInvoke(_rules, node);
- _reporter.log(dinvoke);
+ _reporter.onError(new DynamicInvoke(_rules, node).toAnalysisError());
// TODO(jmesserly): we may eventually want to record if the whole operation
// (node) was dynamic, rather than the target, but this is an easier fit
// with what we used to do.
@@ -998,8 +996,10 @@ class CodeChecker extends RecursiveAstVisitor {
void _recordMessage(StaticInfo info) {
if (info == null) return;
- if (info.level >= logger.Level.SEVERE) _failure = true;
- _reporter.log(info);
+ var error = info.toAnalysisError();
+ if (error.errorCode.errorSeverity == ErrorSeverity.ERROR) _failure = true;
+ _reporter.onError(error);
+
if (info is CoercionInfo) {
assert(CoercionInfo.get(info.node) == null);
CoercionInfo.set(info.node, info);
« no previous file with comments | « lib/devc.dart ('k') | lib/src/codegen/js_printer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698