1 package net.sourceforge.pmd.lang.java.rule.unnecessary;
2
3 import net.sourceforge.pmd.lang.java.ast.ASTBlock;
4 import net.sourceforge.pmd.lang.java.ast.ASTBlockStatement;
5 import net.sourceforge.pmd.lang.java.ast.ASTMethodDeclaration;
6 import net.sourceforge.pmd.lang.java.ast.ASTReturnStatement;
7 import net.sourceforge.pmd.lang.java.ast.ASTStatement;
8 import net.sourceforge.pmd.lang.java.rule.AbstractJavaRule;
9
10 public class UnnecessaryReturnRule extends AbstractJavaRule {
11
12 public Object visit(ASTMethodDeclaration node, Object data) {
13
14 if (node.getResultType().isVoid()) {
15 super.visit(node, data);
16 }
17 return data;
18 }
19
20 public Object visit(ASTReturnStatement node, Object data) {
21 if (node.jjtGetParent() instanceof ASTStatement && node.getNthParent(2) instanceof ASTBlockStatement && node.getNthParent(3) instanceof ASTBlock
22 && node.getNthParent(4) instanceof ASTMethodDeclaration) {
23 addViolation(data, node);
24 }
25 return data;
26 }
27
28 }