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);
}