diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromNewFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromNewFix.java index 2ccaa4b80f19..dfcb0eec2b3d 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromNewFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromNewFix.java @@ -54,7 +54,11 @@ public class CreateInnerClassFromNewFix extends CreateClassFromNewFix { PsiClass created = elementFactory.createClass(refName); final PsiModifierList modifierList = created.getModifierList(); LOG.assertTrue(modifierList != null); - modifierList.setModifierProperty(PsiModifier.PRIVATE, true); + if (targetClass.isInterface()) { + modifierList.setModifierProperty(PsiModifier.PACKAGE_LOCAL, true); + } else { + modifierList.setModifierProperty(PsiModifier.PRIVATE, true); + } if (PsiUtil.getEnclosingStaticElement(newExpression, targetClass) != null || isInThisOrSuperCall(newExpression)) { modifierList.setModifierProperty(PsiModifier.STATIC, true); } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createInnerClassFromNew/afterInInterface.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createInnerClassFromNew/afterInInterface.java new file mode 100644 index 000000000000..aec11148923f --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createInnerClassFromNew/afterInInterface.java @@ -0,0 +1,13 @@ +// "Create Inner Class 'MyCollection'" "true" +import java.util.*; + +public interface I { + public static void main() { + Collection c = new MyCollection(1, "test"); + } + + static class MyCollection implements Collection { + public MyCollection(int i, String test) { + } + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createInnerClassFromNew/beforeInInterface.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createInnerClassFromNew/beforeInInterface.java new file mode 100644 index 000000000000..6ac2a5c28be3 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createInnerClassFromNew/beforeInInterface.java @@ -0,0 +1,8 @@ +// "Create Inner Class 'MyCollection'" "true" +import java.util.*; + +public interface I { + public static void main() { + Collection c = new MyCollection(1, "test"); + } +} \ No newline at end of file