Skip to content

Commit 1f4c301

Browse files
lauraharkercopybara-github
authored andcommitted
Fix DepsFinder support for goog.declareModuleId and @provideGoog
The behavior should now match JsFileRegexParser, in preparation for avoiding using JsFileRegexParser if already doing normal parsing. PiperOrigin-RevId: 503194873
1 parent 3649b9e commit 1f4c301

File tree

1 file changed

+16
-22
lines changed

1 file changed

+16
-22
lines changed

src/com/google/javascript/jscomp/CompilerInput.java

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
import com.google.javascript.rhino.InputId;
3535
import com.google.javascript.rhino.JSDocInfo;
3636
import com.google.javascript.rhino.Node;
37-
import com.google.javascript.rhino.QualifiedName;
3837
import com.google.javascript.rhino.StaticSourceFile.SourceKind;
3938
import java.io.IOException;
4039
import java.util.ArrayList;
@@ -421,9 +420,6 @@ void visitTree(Node n) {
421420
}
422421
}
423422

424-
private static final QualifiedName GOOG_DECLAREMODULEID =
425-
QualifiedName.of("goog.declareModuleId");
426-
427423
void visitSubtree(Node n, @Nullable Node parent) {
428424
switch (n.getToken()) {
429425
case CALL:
@@ -467,18 +463,16 @@ void visitSubtree(Node n, @Nullable Node parent) {
467463
n = argument.getLastChild();
468464
break;
469465

466+
case "declareModuleId":
467+
if (!argument.isStringLit()) {
468+
return;
469+
}
470+
provides.add(argument.getString());
471+
break;
472+
470473
default:
471474
return;
472475
}
473-
} else if (parent.isGetProp()
474-
// TODO(johnplaisted): Consolidate on declareModuleId
475-
&& GOOG_DECLAREMODULEID.matches(parent)
476-
&& parent.getParent().isCall()) {
477-
Node argument = parent.getParent().getSecondChild();
478-
if (!argument.isStringLit()) {
479-
return;
480-
}
481-
provides.add(argument.getString());
482476
}
483477
break;
484478

@@ -499,20 +493,20 @@ void visitSubtree(Node n, @Nullable Node parent) {
499493
}
500494
return;
501495

502-
case VAR:
503-
if (n.getFirstChild().matchesName("goog")
504-
&& NodeUtil.isNamespaceDecl(n.getFirstChild())) {
505-
provides.add("goog");
506-
}
507-
break;
508-
509496
case EXPR_RESULT:
510497
case CONST:
498+
case LET:
499+
case VAR:
511500
case BLOCK:
512-
case SCRIPT:
513501
case NAME:
514502
case DESTRUCTURING_LHS:
515-
case LET:
503+
break;
504+
505+
case SCRIPT:
506+
JSDocInfo jsdoc = n.getJSDocInfo();
507+
if (jsdoc != null && jsdoc.isProvideGoog()) {
508+
provides.add("goog");
509+
}
516510
break;
517511

518512
default:

0 commit comments

Comments
 (0)