diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/coding/EqualsHashCodeCheck.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/coding/EqualsHashCodeCheck.java index 18b13e4e9..bccb115fc 100644 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/coding/EqualsHashCodeCheck.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/coding/EqualsHashCodeCheck.java @@ -78,8 +78,8 @@ public class EqualsHashCodeCheck public void visitToken(DetailAST aAST) { final DetailAST modifiers = (DetailAST) aAST.getFirstChild(); - final AST type = modifiers.getNextSibling(); - final AST methodName = type.getNextSibling(); + final AST type = aAST.findFirstToken(TokenTypes.TYPE); + final AST methodName = aAST.findFirstToken(TokenTypes.IDENT); final DetailAST parameters = aAST.findFirstToken(TokenTypes.PARAMETERS); if (type.getFirstChild().getType() == TokenTypes.LITERAL_BOOLEAN diff --git a/src/testinputs/com/puppycrawl/tools/checkstyle/InputSemantic.java b/src/testinputs/com/puppycrawl/tools/checkstyle/InputSemantic.java index 1407a9264..188f82577 100644 --- a/src/testinputs/com/puppycrawl/tools/checkstyle/InputSemantic.java +++ b/src/testinputs/com/puppycrawl/tools/checkstyle/InputSemantic.java @@ -177,4 +177,21 @@ class InputSemantic // empty instance initializer { } + + public class EqualsVsHashCode5 + { + public boolean equals(int a) // wrong arg type, don't flag even with generics + { + return a == 1; + } + } + + public class EqualsVsHashCode6 + { + public boolean equals(Comparable a) // flag, weven with generics + { + return true; + } + } + } diff --git a/src/tests/com/puppycrawl/tools/checkstyle/checks/coding/EqualsHashCodeCheckTest.java b/src/tests/com/puppycrawl/tools/checkstyle/checks/coding/EqualsHashCodeCheckTest.java index 4d7428fdb..1b3f76dc6 100644 --- a/src/tests/com/puppycrawl/tools/checkstyle/checks/coding/EqualsHashCodeCheckTest.java +++ b/src/tests/com/puppycrawl/tools/checkstyle/checks/coding/EqualsHashCodeCheckTest.java @@ -13,6 +13,7 @@ public class EqualsHashCodeCheckTest final String[] expected = { "126:9: Definition of 'equals()' without corresponding definition of 'hashCode()'.", "163:13: Definition of 'equals()' without corresponding definition of 'hashCode()'.", + "191:9: Definition of 'equals()' without corresponding definition of 'hashCode()'.", }; verify(checkConfig, getPath("InputSemantic.java"), expected); }