mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-19 21:11:28 +07:00
disable create instance field inside interface (IDEA-127211)
This commit is contained in:
@@ -28,6 +28,9 @@ import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Mike
|
||||
*/
|
||||
@@ -45,6 +48,19 @@ public class CreateFieldFromUsageFix extends CreateVarFromUsageFix {
|
||||
return false;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
protected List<PsiClass> getTargetClasses(PsiElement element) {
|
||||
final List<PsiClass> targetClasses = new ArrayList<PsiClass>();
|
||||
for (PsiClass psiClass : super.getTargetClasses(element)) {
|
||||
if (psiClass.getManager().isInProject(psiClass) &&
|
||||
(!psiClass.isInterface() && !psiClass.isAnnotationType() || shouldCreateStaticMember(myReferenceExpression, psiClass))) {
|
||||
targetClasses.add(psiClass);
|
||||
}
|
||||
}
|
||||
return targetClasses;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean canBeTargetClass(PsiClass psiClass) {
|
||||
return psiClass.getManager().isInProject(psiClass) && !psiClass.isInterface() && !psiClass.isAnnotationType();
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
// "Create Field 'myFoo'" "false"
|
||||
|
||||
interface Test {
|
||||
default String get() {
|
||||
return my<caret>Foo;
|
||||
}
|
||||
}
|
||||
@@ -24,6 +24,7 @@ public class CreateFieldFromUsageTest extends LightQuickFixTestCase {
|
||||
public void testInsideStaticInnerClass() throws Exception { doSingleTest(); }
|
||||
public void testCreateFromEquals() throws Exception { doSingleTest(); }
|
||||
public void testCreateFromEqualsToPrimitiveType() throws Exception { doSingleTest(); }
|
||||
public void testInsideInterface() throws Exception { doSingleTest(); }
|
||||
public void testWithAlignment() throws Exception {
|
||||
final CommonCodeStyleSettings settings = CodeStyleSettingsManager.getSettings(getProject()).getCommonSettings(JavaLanguage.INSTANCE);
|
||||
boolean old = settings.ALIGN_GROUP_FIELD_DECLARATIONS;
|
||||
|
||||
Reference in New Issue
Block a user