diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/AbstractNode.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/AbstractNode.java index a03c22221d..6cd196da1f 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/AbstractNode.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/AbstractNode.java @@ -231,6 +231,8 @@ public abstract class AbstractNode implements Node { public void jjtSetFirstToken(final GenericToken token) { this.firstToken = token; + this.beginLine = token.getBeginLine(); + this.beginColumn = token.getBeginColumn(); } public GenericToken jjtGetLastToken() { diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledBlock.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledBlock.java index 8ff927bef2..0e04b6de68 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledBlock.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledBlock.java @@ -4,6 +4,8 @@ package net.sourceforge.pmd.lang.java.ast; +import net.sourceforge.pmd.lang.ast.AbstractNode; + public class ASTSwitchLabeledBlock extends AbstractJavaNode implements ASTSwitchLabeledRule { ASTSwitchLabeledBlock(int id) { @@ -18,4 +20,13 @@ public class ASTSwitchLabeledBlock extends AbstractJavaNode implements ASTSwitch public Object jjtAccept(JavaParserVisitor visitor, Object data) { return visitor.visit(this, data); } + + @Override + public void jjtClose() { + super.jjtClose(); + if (jjtGetNumChildren() > 0) { + AbstractNode firstChild = (AbstractNode) jjtGetChild(0); + jjtSetFirstToken(firstChild.jjtGetFirstToken()); + } + } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledExpression.java index b2ba1b17a6..c8aabe3a93 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledExpression.java @@ -4,6 +4,8 @@ package net.sourceforge.pmd.lang.java.ast; +import net.sourceforge.pmd.lang.ast.AbstractNode; + public class ASTSwitchLabeledExpression extends AbstractJavaNode implements ASTSwitchLabeledRule { ASTSwitchLabeledExpression(int id) { @@ -18,4 +20,13 @@ public class ASTSwitchLabeledExpression extends AbstractJavaNode implements ASTS public Object jjtAccept(JavaParserVisitor visitor, Object data) { return visitor.visit(this, data); } + + @Override + public void jjtClose() { + super.jjtClose(); + if (jjtGetNumChildren() > 0) { + AbstractNode firstChild = (AbstractNode) jjtGetChild(0); + jjtSetFirstToken(firstChild.jjtGetFirstToken()); + } + } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledThrowStatement.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledThrowStatement.java index d0a863f967..5454d1fdc7 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledThrowStatement.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledThrowStatement.java @@ -4,6 +4,8 @@ package net.sourceforge.pmd.lang.java.ast; +import net.sourceforge.pmd.lang.ast.AbstractNode; + public class ASTSwitchLabeledThrowStatement extends AbstractJavaNode implements ASTSwitchLabeledRule { ASTSwitchLabeledThrowStatement(int id) { @@ -18,4 +20,13 @@ public class ASTSwitchLabeledThrowStatement extends AbstractJavaNode implements public Object jjtAccept(JavaParserVisitor visitor, Object data) { return visitor.visit(this, data); } + + @Override + public void jjtClose() { + super.jjtClose(); + if (jjtGetNumChildren() > 0) { + AbstractNode firstChild = (AbstractNode) jjtGetChild(0); + jjtSetFirstToken(firstChild.jjtGetFirstToken()); + } + } }