Index: lib/src/codegen/reify_coercions.dart |
diff --git a/lib/src/codegen/reify_coercions.dart b/lib/src/codegen/reify_coercions.dart |
index 0367c695adf0454819c52d81599f7b157116030a..e490b190f3422d741b277e666f69a16cff1d3668 100644 |
--- a/lib/src/codegen/reify_coercions.dart |
+++ b/lib/src/codegen/reify_coercions.dart |
@@ -111,37 +111,31 @@ class CoercionReifier extends analyzer.GeneralizingAstVisitor<Object> { |
// to discharging the collected definitions. |
// Returns the set of new type identifiers added by the reifier |
Map<Identifier, NewTypeIdDesc> reify() { |
- _library.partsThenLibrary.forEach(generateUnit); |
+ _library.partsThenLibrary.forEach(visitCompilationUnit); |
return _tm.addedTypes; |
} |
- void generateUnit(CompilationUnit unit) { |
- visitCompilationUnit(unit); |
- } |
- |
@override |
Object visitExpression(Expression node) { |
var info = CoercionInfo.get(node); |
if (info is InferredTypeBase) { |
- return _visitInferredTypeBase(info); |
+ return _visitInferredTypeBase(info, node); |
} else if (info is DownCast) { |
- return _visitDownCast(info); |
+ return _visitDownCast(info, node); |
} |
return super.visitExpression(node); |
} |
///////////////// Private ////////////////////////////////// |
- Object _visitInferredTypeBase(InferredTypeBase node) { |
- var expr = node.node; |
+ Object _visitInferredTypeBase(InferredTypeBase node, Expression expr) { |
var success = _inferrer.inferExpression(expr, node.type, <String>[]); |
assert(success); |
expr.visitChildren(this); |
return null; |
} |
- Object _visitDownCast(DownCast node) { |
- var expr = node.node; |
+ Object _visitDownCast(DownCast node, Expression expr) { |
var parent = expr.parent; |
expr.visitChildren(this); |
Expression newE = _cm.coerceExpression(expr, node.cast); |