Index: pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart |
diff --git a/pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart b/pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart |
index c3cf4f0294d37ad67ab51f3fe30bcc27c1ab5cfb..47d7898cb424814daa5392b8210ce23f11e55774 100644 |
--- a/pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart |
+++ b/pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart |
@@ -274,7 +274,8 @@ class Builder implements cps_ir.Visitor<Node> { |
return new CreateInstance( |
node.classElement, |
translateArguments(node.arguments), |
- translateArguments(node.typeInformation)); |
+ translateArguments(node.typeInformation), |
+ node.sourceInformation); |
} |
Expression visitGetField(cps_ir.GetField node) { |
@@ -355,10 +356,12 @@ class Builder implements cps_ir.Visitor<Node> { |
} |
Statement visitInvokeMethod(cps_ir.InvokeMethod node) { |
- InvokeMethod invoke = new InvokeMethod(getVariableUse(node.receiver), |
- node.selector, |
- node.mask, |
- translateArguments(node.arguments)); |
+ InvokeMethod invoke = new InvokeMethod( |
+ getVariableUse(node.receiver), |
+ node.selector, |
+ node.mask, |
+ translateArguments(node.arguments), |
+ node.sourceInformation); |
invoke.receiverIsNotNull = node.receiverIsNotNull; |
return continueWithExpression(node.continuation, invoke); |
} |
@@ -367,7 +370,7 @@ class Builder implements cps_ir.Visitor<Node> { |
Expression receiver = getVariableUse(node.receiver); |
List<Expression> arguments = translateArguments(node.arguments); |
Expression invoke = new InvokeMethodDirectly(receiver, node.target, |
- node.selector, arguments); |
+ node.selector, arguments, node.sourceInformation); |
return continueWithExpression(node.continuation, invoke); |
} |
@@ -439,7 +442,8 @@ class Builder implements cps_ir.Visitor<Node> { |
node.type, |
node.target, |
node.selector, |
- arguments); |
+ arguments, |
+ node.sourceInformation); |
return continueWithExpression(node.continuation, invoke); |
} |
@@ -452,7 +456,8 @@ class Builder implements cps_ir.Visitor<Node> { |
cps_ir.Continuation cont = node.continuation.definition; |
if (cont == returnContinuation) { |
assert(node.arguments.length == 1); |
- return new Return(getVariableUse(node.arguments.single)); |
+ return new Return(getVariableUse(node.arguments.single), |
+ sourceInformation: node.sourceInformation); |
} else { |
List<Expression> arguments = translateArguments(node.arguments); |
return buildPhiAssignments(cont.parameters, arguments, |
@@ -500,7 +505,7 @@ class Builder implements cps_ir.Visitor<Node> { |
} |
Expression visitConstant(cps_ir.Constant node) { |
- return new Constant(node.value); |
+ return new Constant(node.value, sourceInformation: node.sourceInformation); |
} |
Expression visitLiteralList(cps_ir.LiteralList node) { |
@@ -552,11 +557,15 @@ class Builder implements cps_ir.Visitor<Node> { |
} |
Expression visitReifyRuntimeType(cps_ir.ReifyRuntimeType node) { |
- return new ReifyRuntimeType(getVariableUse(node.value)); |
+ return new ReifyRuntimeType( |
+ getVariableUse(node.value), node.sourceInformation); |
} |
Expression visitReadTypeVariable(cps_ir.ReadTypeVariable node) { |
- return new ReadTypeVariable(node.variable, getVariableUse(node.target)); |
+ return new ReadTypeVariable( |
+ node.variable, |
+ getVariableUse(node.target), |
+ node.sourceInformation); |
} |
@override |