Chromium Code Reviews| Index: pkg/polymer_expressions/lib/visitor.dart |
| diff --git a/pkg/polymer_expressions/lib/visitor.dart b/pkg/polymer_expressions/lib/visitor.dart |
| index 08a6a022aac7498305e659c6daf013dedf6ceadd..8c4118df150aa432128a079f8e874285fb7829c8 100644 |
| --- a/pkg/polymer_expressions/lib/visitor.dart |
| +++ b/pkg/polymer_expressions/lib/visitor.dart |
| @@ -24,28 +24,36 @@ abstract class Visitor { |
| visitInExpression(InExpression c); |
| } |
| -abstract class RecursiveVisitor extends Visitor { |
| - visitExpression(Expression e); |
| +class RecursiveVisitor extends Visitor { |
| + preVisitExpression(Expression e) {} |
|
Siggi Cherem (dart-lang)
2014/03/21 01:43:46
I'll use this in my codegen change.
|
| + visitExpression(Expression e) {} |
|
Siggi Cherem (dart-lang)
2014/03/21 01:43:46
I felt I ended up overriding this for no purpose,
Jennifer Messerly
2014/03/21 20:08:54
agree.
|
| - visitEmptyExpression(EmptyExpression e) => visitExpression(e); |
| + visitEmptyExpression(EmptyExpression e) { |
| + preVisitExpression(e); |
| + visitExpression(e); |
| + } |
| visitParenthesizedExpression(ParenthesizedExpression e) { |
| + preVisitExpression(e); |
| visit(e.child); |
| visitExpression(e); |
| } |
| visitGetter(Getter i) { |
| + preVisitExpression(i); |
| visit(i.receiver); |
| visitExpression(i); |
| } |
| visitIndex(Index i) { |
| + preVisitExpression(i); |
| visit(i.receiver); |
| visit(i.argument); |
| visitExpression(i); |
| } |
| visitInvoke(Invoke i) { |
| + preVisitExpression(i); |
| visit(i.receiver); |
| if (i.arguments != null) { |
| for (var a in i.arguments) { |
| @@ -55,9 +63,13 @@ abstract class RecursiveVisitor extends Visitor { |
| visitExpression(i); |
| } |
| - visitLiteral(Literal l) => visitExpression(l); |
| + visitLiteral(Literal l) { |
| + preVisitExpression(l); |
| + visitExpression(l); |
| + } |
| visitListLiteral(ListLiteral l) { |
| + preVisitExpression(l); |
| for (var i in l.items) { |
| visit(i); |
| } |
| @@ -65,6 +77,7 @@ abstract class RecursiveVisitor extends Visitor { |
| } |
| visitMapLiteral(MapLiteral l) { |
| + preVisitExpression(l); |
| for (var e in l.entries) { |
| visit(e); |
| } |
| @@ -72,25 +85,32 @@ abstract class RecursiveVisitor extends Visitor { |
| } |
| visitMapLiteralEntry(MapLiteralEntry e) { |
| + preVisitExpression(e); |
| visit(e.key); |
| visit(e.entryValue); |
| visitExpression(e); |
| } |
| - visitIdentifier(Identifier i) => visitExpression(i); |
| + visitIdentifier(Identifier i) { |
| + preVisitExpression(i); |
| + visitExpression(i); |
| + } |
| visitBinaryOperator(BinaryOperator o) { |
| + preVisitExpression(o); |
| visit(o.left); |
| visit(o.right); |
| visitExpression(o); |
| } |
| visitUnaryOperator(UnaryOperator o) { |
| + preVisitExpression(o); |
| visit(o.child); |
| visitExpression(o); |
| } |
| visitTernaryOperator(TernaryOperator o) { |
| + preVisitExpression(o); |
| visit(o.condition); |
| visit(o.trueExpr); |
| visit(o.falseExpr); |
| @@ -98,8 +118,9 @@ abstract class RecursiveVisitor extends Visitor { |
| } |
| visitInExpression(InExpression c) { |
| + preVisitExpression(c); |
| visit(c.left); |
| visit(c.right); |
| visitExpression(c); |
| } |
| -} |
| +} |