| Index: pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart
|
| diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart
|
| index c0097e962d6b3b4e1bcb5363667a3133b15ab6ac..5dbf8c749a8982a9ce603d7a353a808781dd4ed7 100644
|
| --- a/pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart
|
| +++ b/pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart
|
| @@ -193,6 +193,11 @@ class IRTracer extends TracerUtil implements cps_ir.Visitor {
|
| printStmt(dummy, "Rethrow");
|
| }
|
|
|
| + visitUnreachable(cps_ir.Unreachable node) {
|
| + String dummy = names.name(node);
|
| + printStmt(dummy, 'Unreachable');
|
| + }
|
| +
|
| visitLiteralList(cps_ir.LiteralList node) {
|
| String dummy = names.name(node);
|
| String values = node.values.map(formatReference).join(', ');
|
| @@ -210,13 +215,12 @@ class IRTracer extends TracerUtil implements cps_ir.Visitor {
|
| printStmt(dummy, "LiteralMap (${entries.join(', ')})");
|
| }
|
|
|
| - visitTypeOperator(cps_ir.TypeOperator node) {
|
| + visitTypeCast(cps_ir.TypeCast node) {
|
| String dummy = names.name(node);
|
| - String operator = node.isTypeTest ? 'is' : 'as';
|
| - List<String> entries = new List<String>();
|
| String value = formatReference(node.value);
|
| + String args = node.typeArguments.map(formatReference).join(', ');
|
| String kont = formatReference(node.continuation);
|
| - printStmt(dummy, "TypeOperator ($operator $value ${node.type}) $kont");
|
| + printStmt(dummy, "TypeCast ($value ${node.type} ($args)) $kont");
|
| }
|
|
|
| visitInvokeContinuation(cps_ir.InvokeContinuation node) {
|
| @@ -361,6 +365,12 @@ class IRTracer extends TracerUtil implements cps_ir.Visitor {
|
| String args = node.arguments.map(formatReference).join(', ');
|
| return "CreateInvocationMirror(${node.selector.name}, $args)";
|
| }
|
| +
|
| + visitTypeTest(cps_ir.TypeTest node) {
|
| + String value = formatReference(node.value);
|
| + String args = node.typeArguments.map(formatReference).join(', ');
|
| + return "TypeTest ($value ${node.type} ($args))";
|
| + }
|
| }
|
|
|
| /**
|
| @@ -497,6 +507,9 @@ class BlockCollector implements cps_ir.Visitor {
|
| visitRethrow(cps_ir.Rethrow exp) {
|
| }
|
|
|
| + visitUnreachable(cps_ir.Unreachable node) {
|
| + }
|
| +
|
| visitSetMutableVariable(cps_ir.SetMutableVariable exp) {
|
| visit(exp.body);
|
| }
|
| @@ -524,7 +537,7 @@ class BlockCollector implements cps_ir.Visitor {
|
| }
|
| }
|
|
|
| - visitTypeOperator(cps_ir.TypeOperator exp) {
|
| + visitTypeCast(cps_ir.TypeCast exp) {
|
| addEdgeToContinuation(exp.continuation);
|
| }
|
|
|
| @@ -603,4 +616,8 @@ class BlockCollector implements cps_ir.Visitor {
|
| visitCreateInvocationMirror(cps_ir.CreateInvocationMirror node) {
|
| unexpectedNode(node);
|
| }
|
| +
|
| + visitTypeTest(cps_ir.TypeTest node) {
|
| + unexpectedNode(node);
|
| + }
|
| }
|
|
|