@Override public boolean shouldTraverse(NodeTraversal t, Node n, Node parent) { if (n.isScript()) { this.fileid = "$" + this.id++; } return true; }
@Override public boolean shouldTraverse(NodeTraversal t, Node n, Node parent) { if (n.isScript()) { this.fileid = "$" + this.id++; } return true; }
@Override public boolean shouldTraverse(NodeTraversal t, Node n, Node parent) { if (n.isScript()) { used.clear(); // Even if a constructor is unused , we still want to prevent the construction of the class // outside the file. i.e. a container of static methods. used.add("constructor"); candidates.clear(); } return true; }
/** * Returns a script node's FeatureSet, which is set at parse-time. This may not be up-to-date * as passes can add/remove features from a script node's descendants. * * <p>The feature set will be null if the script node was created artificially or if the parser * didn't detect any interesting features. */ @Nullable static FeatureSet getFeatureSetOfScript(Node scriptNode) { checkState(scriptNode.isScript(), scriptNode); return (FeatureSet) scriptNode.getProp(Node.FEATURE_SET); }
@Override public boolean shouldTraverse(NodeTraversal t, Node n, Node parent) { Node grandparent = n.getAncestor(2); return grandparent == null || !grandparent.isScript(); }
@Override public boolean shouldTraverse(NodeTraversal nodeTraversal, Node n, Node parent) { return n.isBlock() || n.isScript(); }
@Override protected ConformanceResult checkConformance(NodeTraversal t, Node n) { if (n.isScript()) { Set<String> directives = n.getDirectives(); if (directives == null || !directives.contains("use strict")) { return ConformanceResult.VIOLATION; } } return ConformanceResult.CONFORMANCE; } }
@Override public Node getAstRoot(AbstractCompiler compiler) { Node root = ast.getAstRoot(compiler); // The root maybe null if the AST can not be created. if (root != null) { Preconditions.checkState(root.isScript()); Preconditions.checkNotNull(root.getInputId()); } return root; }
/** Performs simple validity checks on when constructing a root scope. */ final void checkRootScope() { // TODO(tbreisacher): Can we tighten this to just NodeUtil.createsScope? checkArgument( NodeUtil.createsScope(rootNode) || rootNode.isScript() || rootNode.isRoot(), rootNode); }
/** Determine if the given SCRIPT is a @typeSummary file, like an i.js file */ public static boolean isFromTypeSummary(Node n) { checkArgument(n.isScript(), n); JSDocInfo info = n.getJSDocInfo(); return info != null && info.isTypeSummary(); }
@Override public boolean shouldTraverse(NodeTraversal nodeTraversal, Node n, Node parent) { return n.isRoot() || n.isNormalBlock() || n.isScript(); }
@Override public boolean shouldTraverse(NodeTraversal t, Node n, Node parent) { if (n.isScript()) { if (NodeUtil.isGoogModuleFile(n)) { n.putBooleanProp(Node.GOOG_MODULE, true); return true; } return false; } return true; }
@Override public void process(Node externs, Node root) { for (Node c = root.getFirstChild(); c != null; c = c.getNext()) { checkState(c.isScript()); hotSwapScript(c, null); } }
@Override public boolean shouldTraverse(NodeTraversal nodeTraversal, Node n, Node parent) { if (parent != null && !NodeUtil.isControlStructure(parent) && !NodeUtil.isStatementBlock(parent)) { return false; } if (n.isScript() && NodeUtil.isFromTypeSummary(n)) { return false; } return true; }
@Override public void visit(NodeTraversal t, Node n, Node parent) { if (n.isScript()) { JSDocInfo info = n.getJSDocInfo(); if (info == null || !info.isExterns()) { t.report(n, EXTERNS_FILES_SHOULD_BE_ANNOTATED); } } } }
@Override public final boolean shouldTraverse(NodeTraversal t, Node n, Node parent) { // Don't inspect extern files return !n.isScript() || !t.getInput().getSourceFile().isExtern(); }
@Override void updateGlobalVarReferences(Map<Var, ReferenceCollection> refMapPatch, Node collectionRoot) { checkState(collectionRoot.isScript() || collectionRoot.isRoot()); if (globalRefMap == null) { globalRefMap = new GlobalVarReferenceMap(getInputsInOrder(), getExternsInOrder()); } globalRefMap.updateGlobalVarReferences(refMapPatch, collectionRoot); }
@Override public void process(Node externs, Node root) { checkArgument(externs.isRoot(), externs); checkArgument(root.isRoot(), root); for (Node file : Iterables.concat(externs.children(), root.children())) { checkState(file.isScript(), file); hotSwapScript(file, null); } compiler.setFeatureSet(compiler.getFeatureSet().without(MODULES)); // This pass may add getters properties on module objects. GatherGettersAndSetterProperties.update(compiler, externs, root); }
@Override public boolean shouldTraverse(NodeTraversal nodeTraversal, Node n, Node parent) { if (n.isScript()) { CompilerInput.ModuleType moduleType = compiler.getInput(n.getInputId()).getJsModuleType(); if (moduleType == CompilerInput.ModuleType.IMPORTED_SCRIPT) { forceToEs6Module(n); compiler.reportChangeToChangeScope(n); } } return false; } }
/** * @return Whether the node is a goog.module file's SCRIPT node. */ static boolean isGoogModuleFile(Node n) { return n.isScript() && n.hasChildren() && n.getFirstChild().isModuleBody() && isGoogModuleCall(n.getFirstFirstChild()); }