mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-13 21:55:01 +07:00
enable create enum constant from switch label statements (IDEA-84054)
This commit is contained in:
+12
@@ -287,6 +287,18 @@ public abstract class CreateFromUsageBaseFix extends BaseIntentionAction {
|
||||
}
|
||||
else if (element instanceof PsiReferenceExpression) {
|
||||
qualifier = ((PsiReferenceExpression)element).getQualifierExpression();
|
||||
if (qualifier == null) {
|
||||
final PsiElement parent = element.getParent();
|
||||
if (parent instanceof PsiSwitchLabelStatement) {
|
||||
final PsiSwitchStatement switchStatement = PsiTreeUtil.getParentOfType(parent, PsiSwitchStatement.class);
|
||||
if (switchStatement != null) {
|
||||
final PsiExpression expression = switchStatement.getExpression();
|
||||
if (expression != null) {
|
||||
psiClass = PsiUtil.resolveClassInClassTypeOnly(expression.getType());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (element instanceof PsiMethodCallExpression) {
|
||||
final PsiReferenceExpression methodExpression = ((PsiMethodCallExpression)element).getMethodExpression();
|
||||
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
// "Create Enum Constant 'D3'" "true"
|
||||
public enum Demo {
|
||||
D3
|
||||
}
|
||||
|
||||
class Show {
|
||||
|
||||
public void doSomething(Demo d) {
|
||||
switch (d) {
|
||||
case D3:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
// "Create Enum Constant 'D3'" "true"
|
||||
public enum Demo {
|
||||
D3
|
||||
}
|
||||
|
||||
class Show {
|
||||
|
||||
public void doSomething(Demo d) {
|
||||
switch (d) {
|
||||
case Demo.D3:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
// "Create Enum Constant 'D3'" "true"
|
||||
public enum Demo {
|
||||
}
|
||||
|
||||
class Show {
|
||||
|
||||
public void doSomething(Demo d) {
|
||||
switch (d) {
|
||||
case D<caret>3:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
// "Create Enum Constant 'D3'" "true"
|
||||
public enum Demo {
|
||||
}
|
||||
|
||||
class Show {
|
||||
|
||||
public void doSomething(Demo d) {
|
||||
switch (d) {
|
||||
case Demo.D<caret>3:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user