Skip to content

Commit

Permalink
Removing extraneous blocks during .i.js generation
Browse files Browse the repository at this point in the history
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=159714079
  • Loading branch information
blickly committed Jun 21, 2017
1 parent e8bf541 commit 37ac2e9
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 17 deletions.
7 changes: 7 additions & 0 deletions src/com/google/javascript/jscomp/ConvertToTypedInterface.java
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,13 @@ public void visit(NodeTraversal t, Node n, Node parent) {
t.reportCodeChange();
}
break;
case BLOCK:
if (!parent.isFunction()) {
parent.addChildrenAfter(n.removeChildren(), n);
n.detach();
t.reportCodeChange(parent);
}
break;
default:
break;
}
Expand Down
34 changes: 17 additions & 17 deletions test/com/google/javascript/jscomp/ConvertToTypedInterfaceTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -666,7 +666,7 @@ public void testEnums() {
public void testTryCatch() {
test(
"try { /** @type {number} */ var n = foo(); } catch (e) { console.log(e); }",
"{ /** @type {number} */ var n; }");
"/** @type {number} */ var n;");

test(
LINE_JOINER.join(
Expand All @@ -676,7 +676,7 @@ public void testTryCatch() {
"} finally {",
" /** @type {number} */ var end = Date.now();",
"}"),
"{ /** @type {number} */ var start; } {/** @type {number} */ var end; }");
"/** @type {number} */ var start; /** @type {number} */ var end;");
}

public void testTemplatedClass() {
Expand Down Expand Up @@ -798,11 +798,11 @@ public void testDefines() {
}

public void testNestedBlocks() {
test("{ const x = foobar(); }", "{}");
test("{ const x = foobar(); }", "");

test("{ /** @const */ let x = foobar(); }", "{}");
test("{ /** @const */ let x = foobar(); }", "");

test("{ /** @const */ let x = foobar(); x = foobaz(); }", "{}");
test("{ /** @const */ let x = foobar(); x = foobaz(); }", "");

testWarning("{ /** @const */ var x = foobar(); }",
ConvertToTypedInterface.CONSTANT_WITHOUT_EXPLICIT_TYPE);
Expand All @@ -815,49 +815,49 @@ public void testGoogProvidedTopLevelSymbol() {
public void testIfs() {
test(
"if (true) { var /** number */ x = 5; }",
"{/** @type {number} */ var x;}");
"/** @type {number} */ var x;");

test(
"if (true) { var /** number */ x = 5; } else { var /** string */ y = 'str'; }",
"{/** @type {number} */ var x;} {/** @type {string} */ var y; }");
"/** @type {number} */ var x; /** @type {string} */ var y;");

test(
"if (true) { if (false) { var /** number */ x = 5; } }",
"{{/** @type {number} */ var x;}}");
"/** @type {number} */ var x;");

test(
"if (true) {} else { if (false) {} else { var /** number */ x = 5; } }",
"{}{{}{/** @type {number} */ var x;}}");
"/** @type {number} */ var x;");
}

public void testLoops() {
test("while (true) { foo(); break; }", "{}");
test("while (true) { foo(); break; }", "");

test("for (var i = 0; i < 10; i++) { var field = 88; }",
"{ /** @const {*} */ var i; /** @const {*} */ var field;}");
"/** @const {*} */ var i; /** @const {*} */ var field;");

test("for (var i = 0, arraySize = getSize(); i < arraySize; i++) { foo(arr[i]); }",
"{/** @const {*} */ var i; /** @const {*} */ var arraySize; }");
"/** @const {*} */ var i; /** @const {*} */ var arraySize;");

test(
"while (i++ < 10) { var /** number */ field = i; }",
"{ /** @type {number } */ var field; }");
"/** @type {number } */ var field;");

test(
"do { var /** number */ field = i; } while (i++ < 10);",
"{ /** @type {number } */ var field; }");
"/** @type {number } */ var field;");

test(
"for (var /** number */ i = 0; i < 10; i++) { var /** number */ field = i; }",
"{ /** @type {number} */ var i; /** @type {number } */ var field; }");
"/** @type {number} */ var i; /** @type {number } */ var field;");

test(
"for (i = 0; i < 10; i++) { var /** number */ field = i; }",
"{ /** @type {number } */ var field; }");
"/** @type {number } */ var field;");

test(
"for (var i = 0; i < 10; i++) { var /** number */ field = i; }",
"{ /** @const {*} */ var i; /** @type {number } */ var field; }");
"/** @const {*} */ var i; /** @type {number } */ var field;");
}

public void testNamespaces() {
Expand Down

0 comments on commit 37ac2e9

Please sign in to comment.