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

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

Issue 1390903004: more housecleaning: remove DartRules and reportMissingType (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 2 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 | « no previous file | lib/src/checker/rules.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 195478bceeb873aae517db74f6b58f39fc8cf89e..ea070f96aa910d79dbb7ecc948d5fb2d2ed35422 100644
--- a/lib/src/checker/checker.dart
+++ b/lib/src/checker/checker.dart
@@ -340,17 +340,6 @@ class CodeChecker extends RecursiveAstVisitor {
_overrideChecker = new _OverrideChecker(rules, reporter);
@override
- void visitCompilationUnit(CompilationUnit unit) {
- void report(Expression expr) {
- reporter.onError(new MissingTypeError(expr).toAnalysisError());
- }
- var callback = rules.reportMissingType;
- rules.reportMissingType = report;
- unit.visitChildren(this);
- rules.reportMissingType = callback;
- }
-
- @override
void visitComment(Comment node) {
// skip, no need to do typechecking inside comments (they may contain
// comment references which would require resolution).
@@ -368,7 +357,7 @@ class CodeChecker extends RecursiveAstVisitor {
if (token.type != TokenType.EQ) {
_checkCompoundAssignment(node);
} else {
- DartType staticType = rules.getStaticType(node.leftHandSide);
+ DartType staticType = _getStaticType(node.leftHandSide);
checkAssignment(node.rightHandSide, staticType);
}
node.visitChildren(this);
@@ -894,8 +883,8 @@ class CodeChecker extends RecursiveAstVisitor {
// Check the lhs type
var staticInfo;
- var rhsType = rules.getStaticType(expr.rightHandSide);
- var lhsType = rules.getStaticType(expr.leftHandSide);
+ var rhsType = _getStaticType(expr.rightHandSide);
+ var lhsType = _getStaticType(expr.leftHandSide);
var returnType = _specializedBinaryReturnType(
op, lhsType, rhsType, functionType.returnType);
@@ -941,6 +930,14 @@ class CodeChecker extends RecursiveAstVisitor {
return _isObjectGetter(target, id) || _isObjectMethod(target, id);
}
+ DartType _getStaticType(Expression expr) {
+ var type = expr.staticType;
+ if (type == null) {
+ reporter.onError(new MissingTypeError(expr).toAnalysisError());
+ }
+ return type ?? rules.provider.dynamicType;
+ }
+
void _recordDynamicInvoke(AstNode node, AstNode target) {
reporter.onError(new DynamicInvoke(rules, node).toAnalysisError());
// TODO(jmesserly): we may eventually want to record if the whole operation
« no previous file with comments | « no previous file | lib/src/checker/rules.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698