error if inner class of generic outer extends throwable (IDEA-178490)

This commit is contained in:
Anna Kozlova
2017-09-05 15:54:41 +03:00
parent 738850d65f
commit 79b43cdbcd
2 changed files with 6 additions and 2 deletions
@@ -1234,7 +1234,7 @@ public class GenericsHighlightUtil {
PsiElement parent = list.getParent();
if (parent instanceof PsiClass) {
PsiClass klass = (PsiClass)parent;
if (klass.hasTypeParameters() && klass.getExtendsList() == list) {
if (PsiUtil.typeParametersIterator(klass).hasNext() && klass.getExtendsList() == list) {
PsiClass throwableClass = null;
for (PsiJavaCodeReferenceElement refElement : list.getReferenceElements()) {
PsiElement resolved = refElement.resolve();
@@ -1,4 +1,8 @@
class T extends Exception {}
class E<T> extends <error descr="Generic class may not extend 'java.lang.Throwable'">Error</error> {}
class M<T2 extends Exception> extends <error descr="Generic class may not extend 'java.lang.Throwable'">T</error> {}
class Ex<X,Y> extends <error descr="Generic class may not extend 'java.lang.Throwable'">Throwable</error> {}
class Ex<X,Y> extends <error descr="Generic class may not extend 'java.lang.Throwable'">Throwable</error> {}
class Outer<T> {
public class Inner extends <error descr="Generic class may not extend 'java.lang.Throwable'">Throwable</error> {}
}