Index: pkg/compiler/lib/src/cps_ir/type_propagation.dart |
diff --git a/pkg/compiler/lib/src/cps_ir/type_propagation.dart b/pkg/compiler/lib/src/cps_ir/type_propagation.dart |
index c0cdcb134e2529cace6538acf902a6a724f1df64..28795ca3e39e49cc0c0370cf5a29379b14f7fa43 100644 |
--- a/pkg/compiler/lib/src/cps_ir/type_propagation.dart |
+++ b/pkg/compiler/lib/src/cps_ir/type_propagation.dart |
@@ -829,6 +829,23 @@ class _TypePropagationVisitor<T> implements Visitor { |
} |
} |
+ void visitGetStatic(GetStatic node) { |
+ setValue(node, nonConstant()); |
+ } |
+ |
+ void visitSetStatic(SetStatic node) { |
+ setReachable(node.body); |
+ } |
+ |
+ void visitGetLazyStatic(GetLazyStatic node) { |
+ Continuation cont = node.continuation.definition; |
+ setReachable(cont); |
+ |
+ assert(cont.parameters.length == 1); |
+ Parameter returnValue = cont.parameters[0]; |
+ setValue(returnValue, nonConstant()); |
+ } |
+ |
// Conditions. |
void visitIsTrue(IsTrue node) { |
@@ -872,14 +889,6 @@ class _TypePropagationVisitor<T> implements Visitor { |
setReachable(node.body); |
} |
- void visitGetStatic(GetStatic node) { |
- setValue(node, nonConstant()); |
- } |
- |
- void visitSetStatic(SetStatic node) { |
- setReachable(node.body); |
- } |
- |
void visitCreateBox(CreateBox node) { |
setValue(node, nonConstant()); |
} |