Index: pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart |
diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart |
index ebb8574fa66247fe85ac0eee98cb26ca0e74fa14..bba051023e9d1e3e21f52be14cdb70eac4396a25 100644 |
--- a/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart |
+++ b/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart |
@@ -344,12 +344,14 @@ class InvokeMethodDirectly extends Expression implements Invoke { |
final Selector selector; |
final List<Reference<Primitive>> arguments; |
final Reference<Continuation> continuation; |
+ final SourceInformation sourceInformation; |
InvokeMethodDirectly(Primitive receiver, |
this.target, |
this.selector, |
List<Primitive> arguments, |
- Continuation continuation) |
+ Continuation continuation, |
+ this.sourceInformation) |
: this.receiver = new Reference<Primitive>(receiver), |
this.arguments = _referenceList(arguments), |
this.continuation = new Reference<Continuation>(continuation); |
@@ -378,12 +380,14 @@ class InvokeConstructor extends Expression implements Invoke { |
final List<Reference<Primitive>> arguments; |
final Reference<Continuation> continuation; |
final Selector selector; |
+ final SourceInformation sourceInformation; |
InvokeConstructor(this.type, |
this.target, |
this.selector, |
List<Primitive> args, |
- Continuation cont) |
+ Continuation cont, |
+ this.sourceInformation) |
: arguments = _referenceList(args), |
continuation = new Reference<Continuation>(cont); |
@@ -563,6 +567,7 @@ class SetMutableVariable extends Expression implements InteriorNode { |
class InvokeContinuation extends Expression { |
Reference<Continuation> continuation; |
List<Reference<Primitive>> arguments; |
+ SourceInformation sourceInformation; |
// An invocation of a continuation is recursive if it occurs in the body of |
// the continuation itself. |
@@ -574,7 +579,8 @@ class InvokeContinuation extends Expression { |
InvokeContinuation(Continuation cont, List<Primitive> args, |
{this.isRecursive: false, |
- this.isEscapingTry: false}) |
+ this.isEscapingTry: false, |
+ this.sourceInformation}) |
: continuation = new Reference<Continuation>(cont), |
arguments = _referenceList(args) { |
assert(cont.parameters == null || cont.parameters.length == args.length); |
@@ -586,10 +592,11 @@ class InvokeContinuation extends Expression { |
/// |
/// Used as a placeholder for a jump whose target is not yet created |
/// (e.g., in the translation of break and continue). |
- InvokeContinuation.uninitialized({this.isRecursive: false, |
+ InvokeContinuation.uninitialized({this.isRecursive: false, |
this.isEscapingTry: false}) |
: continuation = null, |
- arguments = null; |
+ arguments = null, |
+ sourceInformation = null; |
accept(Visitor visitor) => visitor.visitInvokeContinuation(this); |
} |
@@ -798,8 +805,11 @@ class CreateInstance extends Primitive { |
/// is not needed at runtime. |
final List<Reference<Primitive>> typeInformation; |
+ final SourceInformation sourceInformation; |
+ |
CreateInstance(this.classElement, List<Primitive> arguments, |
- List<Primitive> typeInformation) |
+ List<Primitive> typeInformation, |
+ this.sourceInformation) |
: this.arguments = _referenceList(arguments), |
this.typeInformation = _referenceList(typeInformation); |
@@ -856,8 +866,9 @@ class ForeignCode extends Expression { |
class Constant extends Primitive { |
final values.ConstantValue value; |
+ final SourceInformation sourceInformation; |
- Constant(this.value); |
+ Constant(this.value, {this.sourceInformation}); |
accept(Visitor visitor) => visitor.visitConstant(this); |
@@ -959,7 +970,7 @@ class Continuation extends Definition<Continuation> implements InteriorNode { |
Continuation(this.parameters, {this.isRecursive: false}); |
- Continuation.retrn() |
+ Continuation.retrn() |
: parameters = <Parameter>[new Parameter(null)], |
isRecursive = false; |
@@ -1001,7 +1012,10 @@ class ReifyRuntimeType extends Primitive { |
/// Reference to the internal representation of a type (as produced, for |
/// example, by [ReadTypeVariable]). |
final Reference<Primitive> value; |
- ReifyRuntimeType(Primitive value) |
+ |
+ final SourceInformation sourceInformation; |
+ |
+ ReifyRuntimeType(Primitive value, this.sourceInformation) |
: this.value = new Reference<Primitive>(value); |
@override |
@@ -1019,8 +1033,9 @@ class ReifyRuntimeType extends Primitive { |
class ReadTypeVariable extends Primitive { |
final TypeVariableType variable; |
final Reference<Primitive> target; |
+ final SourceInformation sourceInformation; |
- ReadTypeVariable(this.variable, Primitive target) |
+ ReadTypeVariable(this.variable, Primitive target, this.sourceInformation) |
: this.target = new Reference<Primitive>(target); |
@override |