java: create class from usage: fix for patterns expression (IDEA-253733)

GitOrigin-RevId: e135c45026fc852ace913a57689380c5175f766e
This commit is contained in:
Anna Kozlova
2020-10-26 14:53:29 +00:00
committed by intellij-monorepo-bot
parent 0e32179fc8
commit dc51016e34
3 changed files with 18 additions and 2 deletions
@@ -65,10 +65,11 @@ public abstract class CreateClassFromUsageBaseFix extends BaseIntentionAction {
parent.getParent() instanceof PsiVariable ||
parent.getParent() instanceof PsiMethod ||
parent.getParent() instanceof PsiClassObjectAccessExpression ||
parent.getParent() instanceof PsiTypeCastExpression ||
(parent.getParent() instanceof PsiInstanceOfExpression && ((PsiInstanceOfExpression)parent.getParent()).getCheckType() == parent)) {
parent.getParent() instanceof PsiTypeCastExpression) {
return true;
}
PsiInstanceOfExpression instanceOfExpression = PsiTreeUtil.getParentOfType(parent, PsiInstanceOfExpression.class);
if (instanceOfExpression != null && instanceOfExpression.getCheckType() == parent) return true;
}
else if (parent instanceof PsiReferenceList) {
if (myKind == CreateClassKind.ENUM || myKind == CreateClassKind.RECORD) return false;
@@ -0,0 +1,9 @@
// "Create inner class 'Foo'" "true"
public class Test {
boolean foo(Object o) {
return o instanceof Foo;
}
private class Foo {
}
}
@@ -0,0 +1,6 @@
// "Create inner class 'Foo'" "true"
public class Test {
boolean foo(Object o) {
return o instanceof F<caret>oo;
}
}