mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-05-06 05:10:22 +07:00
Sealed classes: show create class fix instead of create type parameter in permits list (IDEA-251830)
GitOrigin-RevId: 4de0ea71c210e7da57f99b8295b7e511d9674120
This commit is contained in:
committed by
intellij-monorepo-bot
parent
388fa99871
commit
b0c9f63799
@@ -74,6 +74,10 @@ public abstract class CreateClassFromUsageBaseFix extends BaseIntentionAction {
|
||||
if (myKind == CreateClassKind.ENUM || myKind == CreateClassKind.RECORD) return false;
|
||||
if (parent.getParent() instanceof PsiClass) {
|
||||
PsiClass psiClass = (PsiClass)parent.getParent();
|
||||
if (psiClass.getPermitsList() == parent) {
|
||||
if (myKind == CreateClassKind.INTERFACE && !psiClass.isInterface()) return false;
|
||||
return true;
|
||||
}
|
||||
if (psiClass.getExtendsList() == parent) {
|
||||
if (myKind == CreateClassKind.CLASS && !psiClass.isInterface()) return true;
|
||||
if (myKind == CreateClassKind.INTERFACE && psiClass.isInterface()) return true;
|
||||
|
||||
@@ -168,6 +168,7 @@ public class CreateTypeParameterFromUsageFix extends BaseIntentionAction {
|
||||
PsiElement parent = element.getParent();
|
||||
if (parent instanceof PsiMethodCallExpression ||
|
||||
parent instanceof PsiJavaCodeReferenceElement ||
|
||||
parent instanceof PsiReferenceList ||
|
||||
parent instanceof PsiNewExpression ||
|
||||
parent instanceof PsiAnnotation ||
|
||||
(parent instanceof PsiTypeElement && parent.getParent() instanceof PsiClassObjectAccessExpression) ||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
// "Create class 'abc'" "true"
|
||||
public class Test permits abc {
|
||||
}
|
||||
|
||||
public class abc {
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
// "Create class 'abc'" "true"
|
||||
public class Test permits <caret>abc {
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
// "Create type parameter 'Foo'" "false"
|
||||
|
||||
class A permits F<caret>oo {}
|
||||
Reference in New Issue
Block a user