diff --git a/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java b/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java index 9242e0a4d1d..ff6658c16dd 100644 --- a/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java @@ -33,6 +33,7 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; +import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import org.jetbrains.jet.plugin.project.WholeProjectAnalyzerFacade; @@ -264,7 +265,13 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns private static String displayableVisibility(MemberDescriptor descriptor) { Visibility visibility = descriptor.getVisibility(); - return visibility != Visibilities.INTERNAL ? visibility.toString() + " " : ""; + if (visibility == Visibilities.INTERNAL) { + return ""; + } + if (visibility == JavaDescriptorResolver.PACKAGE_VISIBILITY) { + return "internal "; + } + return visibility.toString() + " "; } @NotNull diff --git a/idea/testData/codeInsight/overrideImplement/javaMethodWithPackageVisibility/foo/Impl.kt b/idea/testData/codeInsight/overrideImplement/javaMethodWithPackageVisibility/foo/Impl.kt new file mode 100644 index 00000000000..bfe41a2f9d3 --- /dev/null +++ b/idea/testData/codeInsight/overrideImplement/javaMethodWithPackageVisibility/foo/Impl.kt @@ -0,0 +1,7 @@ +package foo + +import foo.Intf + +class Impl(): Intf() { + +} diff --git a/idea/testData/codeInsight/overrideImplement/javaMethodWithPackageVisibility/foo/Impl.kt.after b/idea/testData/codeInsight/overrideImplement/javaMethodWithPackageVisibility/foo/Impl.kt.after new file mode 100644 index 00000000000..ce571fdee8a --- /dev/null +++ b/idea/testData/codeInsight/overrideImplement/javaMethodWithPackageVisibility/foo/Impl.kt.after @@ -0,0 +1,10 @@ +package foo + +import foo.Intf + +class Impl(): Intf() { + + internal override fun getFooBar(): String? { + return super.getFooBar() + } +} diff --git a/idea/testData/codeInsight/overrideImplement/javaMethodWithPackageVisibility/foo/Intf.java b/idea/testData/codeInsight/overrideImplement/javaMethodWithPackageVisibility/foo/Intf.java new file mode 100644 index 00000000000..e9e13a8a1b6 --- /dev/null +++ b/idea/testData/codeInsight/overrideImplement/javaMethodWithPackageVisibility/foo/Intf.java @@ -0,0 +1,7 @@ +package foo; + +public class Intf { + String getFooBar() { + return "OK"; + } +} diff --git a/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementTest.java b/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementTest.java index cdd78ec5984..0514f14883e 100644 --- a/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementTest.java @@ -138,6 +138,10 @@ public class OverrideImplementTest extends LightCodeInsightFixtureTestCase { doOverrideDirectoryTest("getAnswer"); } + public void testJavaMethodWithPackageVisibility() { + doOverrideDirectoryTest("getFooBar"); + } + public void testInheritVisibilities() { doMultiOverrideFileTest(); }