mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
ensure class added to the throws list is visible outside of method
IDEA-187595
This commit is contained in:
@@ -192,7 +192,11 @@ public final class PsiUtil extends PsiUtilCore {
|
||||
ref = factory.createReferenceElementByFQClassName(exceptionName, method.getResolveScope());
|
||||
}
|
||||
else {
|
||||
PsiClassType type = factory.createType(exceptionClass);
|
||||
PsiClass superClass = exceptionClass.getSuperClass();
|
||||
while (superClass != null && isLocalOrAnonymousClass(superClass)) {
|
||||
superClass = superClass.getSuperClass();
|
||||
}
|
||||
PsiClassType type = factory.createType(superClass != null ? superClass : exceptionClass);
|
||||
ref = factory.createReferenceElementByType(type);
|
||||
}
|
||||
throwsList.add(ref);
|
||||
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
// "Add exception to method signature" "true"
|
||||
|
||||
class C {
|
||||
interface I { }
|
||||
|
||||
public void localException() throws Exception {
|
||||
|
||||
class Ex extends Exception { }
|
||||
class LocalException extends Ex implements I { }
|
||||
|
||||
throw new LocalException();
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
// "Add exception to method signature" "true"
|
||||
|
||||
class C {
|
||||
interface I { }
|
||||
|
||||
public void localException() {
|
||||
|
||||
class Ex extends Exception { }
|
||||
class LocalException extends Ex implements I { }
|
||||
|
||||
throw new LocalE<caret>xception();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user