| 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 027a3d67a972c19c2f67004f01160ababc442565..eacc21a82ec523dc77d4a5c6742307eca5a643cf 100644
|
| --- a/pkg/compiler/lib/src/cps_ir/type_propagation.dart
|
| +++ b/pkg/compiler/lib/src/cps_ir/type_propagation.dart
|
| @@ -1055,7 +1055,7 @@ class TypePropagationVisitor implements Visitor {
|
| }
|
|
|
| void visitCreateInstance(CreateInstance node) {
|
| - setValue(node, nonConstant(typeSystem.exact(node.classElement)));
|
| + setValue(node, nonConstant(typeSystem.exact(node.classElement.declaration)));
|
| }
|
|
|
| void visitReifyRuntimeType(ReifyRuntimeType node) {
|
| @@ -1079,6 +1079,17 @@ class TypePropagationVisitor implements Visitor {
|
| // TODO(asgerf): Expose [Invocation] type.
|
| setValue(node, nonConstant(typeSystem.nonNullType));
|
| }
|
| +
|
| + @override
|
| + visitForeignCode(ForeignCode node) {
|
| + Continuation continuation = node.continuation.definition;
|
| + setReachable(continuation);
|
| +
|
| + assert(continuation.parameters.length == 1);
|
| + Parameter returnValue = continuation.parameters.first;
|
| +
|
| + setValue(returnValue, nonConstant(node.type));
|
| + }
|
| }
|
|
|
| /// Represents the abstract value of a primitive value at some point in the
|
|
|