Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(28)

Unified Diff: pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart

Issue 1011383003: Use an explicit 'this' parameter instead of 'This' nodes. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 1510315ede7eaabeb732eeebadcf722b4dd8ab3a..5d09dff93f613b269f0443138bf36576f892510c 100644
--- a/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart
+++ b/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart
@@ -706,6 +706,8 @@ class Parameter extends Primitive {
int parentIndex;
accept(Visitor visitor) => visitor.visitParameter(this);
+
+ String toString() => 'Parameter(${hint == null ? null : hint.name})';
}
/// Continuations are normally bound by 'let cont'. A continuation with one
@@ -797,6 +799,7 @@ class RunnableBody extends InteriorNode {
class FunctionDefinition extends Node
implements ExecutableDefinition {
final FunctionElement element;
+ final Parameter thisParameter;
/// Mixed list of [Parameter]s and [MutableVariable]s.
final List<Definition> parameters;
final RunnableBody body;
@@ -806,12 +809,14 @@ class FunctionDefinition extends Node
final List<ConstantExpression> defaultParameterValues;
FunctionDefinition(this.element,
+ this.thisParameter,
this.parameters,
this.body,
this.localConstants,
this.defaultParameterValues);
FunctionDefinition.abstract(this.element,
+ this.thisParameter,
this.parameters,
this.defaultParameterValues)
: body = null,
@@ -848,13 +853,14 @@ class ConstructorDefinition extends FunctionDefinition {
final List<Initializer> initializers;
ConstructorDefinition(ConstructorElement element,
+ Definition thisParameter, // only Dart
List<Definition> parameters,
RunnableBody body,
this.initializers,
List<ConstDeclaration> localConstants,
List<ConstantExpression> defaultParameterValues)
- : super(element, parameters, body, localConstants,
- defaultParameterValues);
+ : super(element, thisParameter, parameters, body, localConstants,
+ defaultParameterValues);
// 'Abstract' here means "has no body" and is used to represent external
// constructors.
@@ -863,7 +869,7 @@ class ConstructorDefinition extends FunctionDefinition {
List<Definition> parameters,
List<ConstantExpression> defaultParameterValues)
: initializers = null,
- super.abstract(element, parameters, defaultParameterValues);
+ super.abstract(element, null, parameters, defaultParameterValues);
accept(Visitor visitor) => visitor.visitConstructorDefinition(this);
applyPass(Pass pass) => pass.rewriteConstructorDefinition(this);

Powered by Google App Engine
This is Rietveld 408576698