From 7f28540e625f34e069adc336eeff8fb0b8e07fcd Mon Sep 17 00:00:00 2001 From: "Natalia.Ukhorskaya" Date: Tue, 5 Feb 2013 19:53:51 +0400 Subject: [PATCH] Add internal keyword overriding package(java) visibility --- .../codeInsight/OverrideImplementMethodsHandler.java | 9 ++++++++- .../javaMethodWithPackageVisibility/foo/Impl.kt | 7 +++++++ .../javaMethodWithPackageVisibility/foo/Impl.kt.after | 10 ++++++++++ .../javaMethodWithPackageVisibility/foo/Intf.java | 7 +++++++ .../jet/plugin/codeInsight/OverrideImplementTest.java | 4 ++++ 5 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 idea/testData/codeInsight/overrideImplement/javaMethodWithPackageVisibility/foo/Impl.kt create mode 100644 idea/testData/codeInsight/overrideImplement/javaMethodWithPackageVisibility/foo/Impl.kt.after create mode 100644 idea/testData/codeInsight/overrideImplement/javaMethodWithPackageVisibility/foo/Intf.java 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(); }