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

Unified Diff: pkg/compiler/lib/src/js/nodes.dart

Issue 671513013: dart2js: Accept named holes in js-templates. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Rebase, and move finishedClasses to buildFinishClass. Created 6 years, 1 month 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
« no previous file with comments | « pkg/compiler/lib/src/js/builder.dart ('k') | pkg/compiler/lib/src/js/printer.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/js/nodes.dart
diff --git a/pkg/compiler/lib/src/js/nodes.dart b/pkg/compiler/lib/src/js/nodes.dart
index 23ca6d09d315aceaf12c9e936c3557f37a2ad6b6..8d4f35cb640f96d2fb690850f5ee038cecdf9e5b 100644
--- a/pkg/compiler/lib/src/js/nodes.dart
+++ b/pkg/compiler/lib/src/js/nodes.dart
@@ -1026,65 +1026,71 @@ class Property extends Node {
/// Tag class for all interpolated positions.
abstract class InterpolatedNode implements Node {
- get name; // 'int' for positional interpolated nodes, 'String' for named.
+ get nameOrPosition;
+
+ bool get isNamed => nameOrPosition is String;
+ bool get isPositional => nameOrPosition is int;
}
-class InterpolatedExpression extends Expression implements InterpolatedNode {
- final name;
+class InterpolatedExpression extends Expression with InterpolatedNode {
+ final nameOrPosition;
- InterpolatedExpression(this.name);
+ InterpolatedExpression(this.nameOrPosition);
accept(NodeVisitor visitor) => visitor.visitInterpolatedExpression(this);
void visitChildren(NodeVisitor visitor) {}
- InterpolatedExpression _clone() => new InterpolatedExpression(name);
+ InterpolatedExpression _clone() =>
+ new InterpolatedExpression(nameOrPosition);
int get precedenceLevel => PRIMARY;
}
-class InterpolatedLiteral extends Literal implements InterpolatedNode {
- final name;
+class InterpolatedLiteral extends Literal with InterpolatedNode {
+ final nameOrPosition;
- InterpolatedLiteral(this.name);
+ InterpolatedLiteral(this.nameOrPosition);
accept(NodeVisitor visitor) => visitor.visitInterpolatedLiteral(this);
void visitChildren(NodeVisitor visitor) {}
- InterpolatedLiteral _clone() => new InterpolatedLiteral(name);
+ InterpolatedLiteral _clone() => new InterpolatedLiteral(nameOrPosition);
}
-class InterpolatedParameter extends Expression
- implements Parameter, InterpolatedNode {
- final name;
+class InterpolatedParameter extends Expression with InterpolatedNode
+ implements Parameter {
+ final nameOrPosition;
+
+ String get name { throw "InterpolatedParameter.name must not be invoked"; }
bool get allowRename => false;
- InterpolatedParameter(this.name);
+ InterpolatedParameter(this.nameOrPosition);
accept(NodeVisitor visitor) => visitor.visitInterpolatedParameter(this);
void visitChildren(NodeVisitor visitor) {}
- InterpolatedParameter _clone() => new InterpolatedParameter(name);
+ InterpolatedParameter _clone() => new InterpolatedParameter(nameOrPosition);
int get precedenceLevel => PRIMARY;
}
-class InterpolatedSelector extends Expression implements InterpolatedNode {
- final name;
+class InterpolatedSelector extends Expression with InterpolatedNode {
+ final nameOrPosition;
- InterpolatedSelector(this.name);
+ InterpolatedSelector(this.nameOrPosition);
accept(NodeVisitor visitor) => visitor.visitInterpolatedSelector(this);
void visitChildren(NodeVisitor visitor) {}
- InterpolatedSelector _clone() => new InterpolatedSelector(name);
+ InterpolatedSelector _clone() => new InterpolatedSelector(nameOrPosition);
int get precedenceLevel => PRIMARY;
}
-class InterpolatedStatement extends Statement implements InterpolatedNode {
- final name;
+class InterpolatedStatement extends Statement with InterpolatedNode {
+ final nameOrPosition;
- InterpolatedStatement(this.name);
+ InterpolatedStatement(this.nameOrPosition);
accept(NodeVisitor visitor) => visitor.visitInterpolatedStatement(this);
void visitChildren(NodeVisitor visitor) {}
- InterpolatedStatement _clone() => new InterpolatedStatement(name);
+ InterpolatedStatement _clone() => new InterpolatedStatement(nameOrPosition);
}
/**
« no previous file with comments | « pkg/compiler/lib/src/js/builder.dart ('k') | pkg/compiler/lib/src/js/printer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698