diff --git a/java/structuralsearch-java/src/com/intellij/structuralsearch/impl/matcher/JavaMatchingVisitor.java b/java/structuralsearch-java/src/com/intellij/structuralsearch/impl/matcher/JavaMatchingVisitor.java index 0a781ae9a618..bf21fe8152fd 100644 --- a/java/structuralsearch-java/src/com/intellij/structuralsearch/impl/matcher/JavaMatchingVisitor.java +++ b/java/structuralsearch-java/src/com/intellij/structuralsearch/impl/matcher/JavaMatchingVisitor.java @@ -470,6 +470,7 @@ public class JavaMatchingVisitor extends JavaElementVisitor { if (templateIsInterface != clazz2.isInterface()) return false; if (templateIsInterface && clazz.isAnnotationType() && !clazz2.isAnnotationType()) return false; if (clazz.isEnum() && !clazz2.isEnum()) return false; + if (clazz instanceof PsiTypeParameter != clazz2 instanceof PsiTypeParameter) return false; if (!matchInAnyOrder(clazz.getExtendsList(), clazz2.getExtendsList())) { return false; diff --git a/platform/structuralsearch/testSource/com/intellij/structuralsearch/StructuralSearchTest.java b/platform/structuralsearch/testSource/com/intellij/structuralsearch/StructuralSearchTest.java index d79b12e6bac5..1c9c456a3092 100644 --- a/platform/structuralsearch/testSource/com/intellij/structuralsearch/StructuralSearchTest.java +++ b/platform/structuralsearch/testSource/com/intellij/structuralsearch/StructuralSearchTest.java @@ -714,6 +714,10 @@ public class StructuralSearchTest extends StructuralSearchTestCase { "class B { { a = 10; } }\n" + "class C { { a = 10; } }"; assertEquals("static block search", 1, findMatchesCount(s141, "class '_ { static { a = 10; } } ")); + + final String in = "class D {}\n" + + "class T {}"; + assertEquals("search for class should not find type parameters", 1, findMatchesCount(in, "class T {}")); } public void testParameterlessConstructorSearch() {