diff --git a/src/com/google/javascript/jscomp/ijs/PotentialDeclaration.java b/src/com/google/javascript/jscomp/ijs/PotentialDeclaration.java index 47c37ff52d1..b4a13d7fa9f 100644 --- a/src/com/google/javascript/jscomp/ijs/PotentialDeclaration.java +++ b/src/com/google/javascript/jscomp/ijs/PotentialDeclaration.java @@ -84,10 +84,7 @@ Node getRhs() { return rhs; } - Node getStatement() { - return NodeUtil.getEnclosingStatement(lhs); - } - + @Nullable JSDocInfo getJsDoc() { return NodeUtil.getBestJSDocInfo(lhs); } @@ -101,6 +98,10 @@ private boolean isDetached() { return true; } + Node getRemovableNode() { + return NodeUtil.getEnclosingStatement(lhs); + } + /** * Remove this "potential declaration" completely. * Usually, this is because the same symbol has already been declared in this file. @@ -109,11 +110,7 @@ final void remove(AbstractCompiler compiler) { if (isDetached()) { return; } - doRemove(compiler); - } - - void doRemove(AbstractCompiler compiler) { - Node statement = getStatement(); + Node statement = getRemovableNode(); NodeUtil.deleteNode(statement, compiler); statement.removeChildren(); } @@ -183,7 +180,7 @@ void simplify(AbstractCompiler compiler) { Node newStatement = NodeUtil.newQNameDeclaration(compiler, nameNode.getQualifiedName(), null, jsdoc); newStatement.useSourceInfoIfMissingFromForTree(nameNode); - Node oldStatement = getStatement(); + Node oldStatement = getRemovableNode(); NodeUtil.deleteChildren(oldStatement, compiler); oldStatement.replaceWith(newStatement); compiler.reportChangeToEnclosingScope(newStatement); @@ -219,7 +216,7 @@ void simplify(AbstractCompiler compiler) { Node newStatement = NodeUtil.newQNameDeclaration(compiler, getFullyQualifiedName(), null, getJsDoc()); newStatement.useSourceInfoIfMissingFromForTree(getLhs()); - NodeUtil.deleteNode(getStatement(), compiler); + NodeUtil.deleteNode(getRemovableNode(), compiler); insertionPoint.getParent().addChildAfter(newStatement, insertionPoint); compiler.reportChangeToEnclosingScope(newStatement); } @@ -254,8 +251,8 @@ private static class MethodDeclaration extends PotentialDeclaration { void simplify(AbstractCompiler compiler) {} @Override - void doRemove(AbstractCompiler compiler) { - NodeUtil.deleteNode(getLhs(), compiler); + Node getRemovableNode() { + return getLhs(); } }