Skip to content

Commit d3f8dbd

Browse files
lauraharkercopybara-github
authored andcommitted
Internal change
PiperOrigin-RevId: 511820571
1 parent 17a20f5 commit d3f8dbd

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -502,6 +502,7 @@ public TypedScope processForTesting(Node externsRoot, Node jsRoot) {
502502
this.process(externsRoot, jsRoot);
503503

504504
compiler.setTypeCheckingHasRun(true);
505+
compiler.setTopScope(this.topScope);
505506

506507
return topScope;
507508
}

test/com/google/javascript/jscomp/CompilerTestCase.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,8 @@ public abstract class CompilerTestCase {
116116
/** Whether to rewrite Closure code before the test is run. */
117117
private boolean rewriteClosureCode;
118118

119+
private boolean rewriteModulesAfterTypechecking;
120+
119121
/** Whether to rewrite Closure code before the test is run. */
120122
private boolean rewriteClosureProvides;
121123

@@ -681,6 +683,7 @@ public void setUp() throws Exception {
681683
this.polymerPass = false;
682684
this.processCommonJsModules = false;
683685
this.rewriteClosureCode = false;
686+
this.rewriteModulesAfterTypechecking = false;
684687
this.runTypeCheckAfterProcessing = false;
685688
this.rewriteEsModulesEnabled = false;
686689
this.transpileEnabled = false;
@@ -952,6 +955,12 @@ protected final void disableRewriteClosureCode() {
952955
rewriteClosureCode = false;
953956
}
954957

958+
protected final void enableRewriteModulesAfterTypechecking() {
959+
checkState(this.setUpRan, "Attempted to configure before running setUp().");
960+
enableRewriteClosureCode();
961+
this.rewriteModulesAfterTypechecking = true;
962+
}
963+
955964
/** Rewrite goog.provides */
956965
protected final void enableRewriteClosureProvides() {
957966
checkState(this.setUpRan, "Attempted to configure before running setUp().");
@@ -1447,11 +1456,15 @@ private void testInternal(
14471456
new CheckClosureImports(compiler, compiler.getModuleMetadataMap())
14481457
.process(externsRoot, mainRoot);
14491458
new ClosureRewriteClass(compiler).process(externsRoot, mainRoot);
1450-
new ClosureRewriteModule(compiler, null, null).process(externsRoot, mainRoot);
14511459
ScopedAliases.builder(compiler).build().process(externsRoot, mainRoot);
14521460
hasCodeChanged = hasCodeChanged || recentChange.hasCodeChanged();
14531461
}
14541462

1463+
if (rewriteClosureCode && !rewriteModulesAfterTypechecking && i == 0) {
1464+
new ClosureRewriteModule(compiler, null, null).process(externsRoot, mainRoot);
1465+
hasCodeChanged = hasCodeChanged || recentChange.hasCodeChanged();
1466+
}
1467+
14551468
// Only run process closure primitives once, if asked.
14561469
if (closurePassEnabled && i == 0) {
14571470
recentChange.reset();
@@ -1495,6 +1508,12 @@ private void testInternal(
14951508
check.processForTesting(externsRoot, mainRoot);
14961509
}
14971510

1511+
if (rewriteClosureCode && rewriteModulesAfterTypechecking && i == 0) {
1512+
new ClosureRewriteModule(compiler, null, compiler.getTopScope())
1513+
.process(externsRoot, mainRoot);
1514+
hasCodeChanged = hasCodeChanged || recentChange.hasCodeChanged();
1515+
}
1516+
14981517
if (inferConsts && i == 0) {
14991518
new InferConsts(compiler).process(externsRoot, mainRoot);
15001519
}

0 commit comments

Comments
 (0)