Skip to content

Commit

Permalink
Add NodeUtil.visitPostOrder that defaults to visiting all children
Browse files Browse the repository at this point in the history
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=188513777
  • Loading branch information
lauraharker committed Mar 9, 2018
1 parent ecb2404 commit 3dd12b3
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 21 deletions.
7 changes: 6 additions & 1 deletion src/com/google/javascript/jscomp/NodeUtil.java
Expand Up @@ -4473,7 +4473,7 @@ public static interface Visitor {

/** A pre-order traversal, calling Visitor.visit for each decendent. */
public static void visitPreOrder(Node node, Visitor visitor) {
visitPreOrder(node, visitor, Predicates.<Node>alwaysTrue());
visitPreOrder(node, visitor, Predicates.alwaysTrue());
}

/** A pre-order traversal, calling Visitor.visit for each child matching the predicate. */
Expand All @@ -4488,6 +4488,11 @@ public static void visitPreOrder(
}
}

/** A post-order traversal, calling Visitor.visit for each decendent. */
public static void visitPostOrder(Node node, Visitor visitor) {
visitPostOrder(node, visitor, Predicates.alwaysTrue());
}

/** A post-order traversal, calling Visitor.visit for each descendant matching the predicate. */
public static void visitPostOrder(
Node node, Visitor visitor, Predicate<Node> traverseChildrenPred) {
Expand Down
4 changes: 1 addition & 3 deletions src/com/google/javascript/jscomp/PolymerPassStaticUtils.java
Expand Up @@ -19,7 +19,6 @@

import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.CaseFormat;
import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableList;
import com.google.javascript.jscomp.PolymerPass.MemberDefinition;
import com.google.javascript.jscomp.parsing.parser.util.format.SimpleFormat;
Expand Down Expand Up @@ -71,8 +70,7 @@ public void visit(Node n) {
compiler.reportChangeToEnclosingScope(dollarChildProp);
}
}
},
Predicates.<Node>alwaysTrue());
});
}
}
}
Expand Down
4 changes: 1 addition & 3 deletions test/com/google/javascript/jscomp/CompilerTestCase.java
Expand Up @@ -23,7 +23,6 @@

import com.google.common.annotations.GwtIncompatible;
import com.google.common.base.Joiner;
import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
Expand Down Expand Up @@ -1990,8 +1989,7 @@ public void visit(Node n) {
matches.add(n);
}
}
},
Predicates.alwaysTrue());
});
return matches;
}

Expand Down
Expand Up @@ -19,7 +19,6 @@
import static com.google.javascript.jscomp.PolymerPassErrors.POLYMER_INVALID_BEHAVIOR;
import static com.google.javascript.jscomp.testing.JSErrorSubject.assertError;

import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableList;
import com.google.javascript.jscomp.PolymerBehaviorExtractor.BehaviorDefinition;
import com.google.javascript.rhino.Node;
Expand Down Expand Up @@ -145,11 +144,13 @@ private void parseAndInitializeExtractor(String code) {
GlobalNamespace globalNamespace = new GlobalNamespace(compiler, root);
extractor = new PolymerBehaviorExtractor(compiler, globalNamespace);

NodeUtil.visitPostOrder(root, (Node node) -> {
if (isBehaviorArrayDeclaration(node)) {
behaviorArray = node;
}
}, Predicates.<Node>alwaysTrue());
NodeUtil.visitPostOrder(
root,
node -> {
if (isBehaviorArrayDeclaration(node)) {
behaviorArray = node;
}
});

assertNotNull(behaviorArray);
}
Expand Down
Expand Up @@ -18,7 +18,6 @@
import static com.google.common.truth.Truth.assertThat;
import static com.google.javascript.jscomp.testing.NodeSubject.assertNode;

import com.google.common.base.Predicates;
import com.google.javascript.rhino.Node;
import com.google.javascript.rhino.Token;

Expand Down Expand Up @@ -164,8 +163,7 @@ public void visit(Node node) {
polymerCall = node;
}
}
},
Predicates.<Node>alwaysTrue());
});

assertNotNull(polymerCall);
return PolymerClassDefinition.extractFromCallNode(polymerCall, compiler, globalNamespace);
Expand All @@ -184,8 +182,7 @@ public void visit(Node node) {
polymerCall = node;
}
}
},
Predicates.<Node>alwaysTrue());
});

assertNotNull(polymerCall);
return PolymerClassDefinition.extractFromClassNode(polymerCall, compiler, globalNamespace);
Expand Down
Expand Up @@ -17,7 +17,6 @@

import static com.google.javascript.jscomp.testing.NodeSubject.assertNode;

import com.google.common.base.Predicates;
import com.google.javascript.jscomp.CompilerOptions.LanguageMode;
import com.google.javascript.rhino.Node;

Expand Down Expand Up @@ -181,8 +180,7 @@ public void visit(Node node) {
polymerCall = node;
}
}
},
Predicates.<Node>alwaysTrue());
});

assertNotNull(polymerCall);
PolymerClassDefinition classDef =
Expand Down

0 comments on commit 3dd12b3

Please sign in to comment.