From 7585cbfe2290789ba57f96e75f6081cc6fc07764 Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Wed, 13 May 2015 17:15:57 +0300 Subject: [PATCH] Remove check in visibilities that allowed access to privates of outer packages It doesn't work for a while now in imports and is planned to be dropped with upcoming changes to private --- .../codegen/boxMultiFile/nestedPackages/1.kt | 3 --- .../codegen/boxMultiFile/nestedPackages/2.kt | 3 --- .../tests/PrivateFromOuterPackage.kt | 25 +++++++++++++++++++ .../tests/PrivateFromOuterPackage.txt | 20 +++++++++++++++ .../checkers/JetDiagnosticsTestGenerated.java | 6 +++++ ...BlackBoxMultiFileCodegenTestGenerated.java | 6 ----- .../kotlin/descriptors/Visibilities.java | 5 ---- 7 files changed, 51 insertions(+), 17 deletions(-) delete mode 100644 compiler/testData/codegen/boxMultiFile/nestedPackages/1.kt delete mode 100644 compiler/testData/codegen/boxMultiFile/nestedPackages/2.kt create mode 100644 compiler/testData/diagnostics/tests/PrivateFromOuterPackage.kt create mode 100644 compiler/testData/diagnostics/tests/PrivateFromOuterPackage.txt diff --git a/compiler/testData/codegen/boxMultiFile/nestedPackages/1.kt b/compiler/testData/codegen/boxMultiFile/nestedPackages/1.kt deleted file mode 100644 index 6a63dd0b7fd..00000000000 --- a/compiler/testData/codegen/boxMultiFile/nestedPackages/1.kt +++ /dev/null @@ -1,3 +0,0 @@ -package a.b - -fun box() = a.x \ No newline at end of file diff --git a/compiler/testData/codegen/boxMultiFile/nestedPackages/2.kt b/compiler/testData/codegen/boxMultiFile/nestedPackages/2.kt deleted file mode 100644 index c7baf5e4feb..00000000000 --- a/compiler/testData/codegen/boxMultiFile/nestedPackages/2.kt +++ /dev/null @@ -1,3 +0,0 @@ -package a - -private val x: String = "OK" \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/PrivateFromOuterPackage.kt b/compiler/testData/diagnostics/tests/PrivateFromOuterPackage.kt new file mode 100644 index 00000000000..ca1bf81fe49 --- /dev/null +++ b/compiler/testData/diagnostics/tests/PrivateFromOuterPackage.kt @@ -0,0 +1,25 @@ +// FILE: a.kt +package outer + +private fun a() {} +private class B + +// FILE: b.kt +package outer.p1 + +import outer.a + +fun use() { + a() + outer.B() +} + +// FILE: c.kt +package outer.p1.p2 + +import outer.a + +fun use() { + a() + outer.B() +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/PrivateFromOuterPackage.txt b/compiler/testData/diagnostics/tests/PrivateFromOuterPackage.txt new file mode 100644 index 00000000000..bae081c3e6a --- /dev/null +++ b/compiler/testData/diagnostics/tests/PrivateFromOuterPackage.txt @@ -0,0 +1,20 @@ +package + +package outer { + private fun a(): kotlin.Unit + + private final class B { + public constructor B() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } + + package outer.p1 { + internal fun use(): kotlin.Unit + + package outer.p1.p2 { + internal fun use(): kotlin.Unit + } + } +} diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java index 336340f212c..9e929a3b12e 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java @@ -379,6 +379,12 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest { doTest(fileName); } + @TestMetadata("PrivateFromOuterPackage.kt") + public void testPrivateFromOuterPackage() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/PrivateFromOuterPackage.kt"); + doTest(fileName); + } + @TestMetadata("ProcessingEmptyImport.kt") public void testProcessingEmptyImport() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/ProcessingEmptyImport.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxMultiFileCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxMultiFileCodegenTestGenerated.java index a6678c6e4e0..0d712b66e03 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxMultiFileCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/generated/BlackBoxMultiFileCodegenTestGenerated.java @@ -77,12 +77,6 @@ public class BlackBoxMultiFileCodegenTestGenerated extends AbstractBlackBoxCodeg doTestMultiFile(fileName); } - @TestMetadata("nestedPackages") - public void testNestedPackages() throws Exception { - String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxMultiFile/nestedPackages/"); - doTestMultiFile(fileName); - } - @TestMetadata("packageLocalClassNotImportedWithDefaultImport") public void testPackageLocalClassNotImportedWithDefaultImport() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxMultiFile/packageLocalClassNotImportedWithDefaultImport/"); diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/Visibilities.java b/core/descriptors/src/org/jetbrains/kotlin/descriptors/Visibilities.java index 6a5c86ba58b..1c05073c105 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/Visibilities.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/Visibilities.java @@ -53,11 +53,6 @@ public class Visibilities { if (parent == fromParent) { return true; } - if (fromParent instanceof PackageFragmentDescriptor) { - return parent instanceof PackageFragmentDescriptor - && ((PackageFragmentDescriptor) parent).getFqName().isAncestorOf(((PackageFragmentDescriptor) fromParent).getFqName()) - && DescriptorUtils.areInSameModule(fromParent, parent); - } fromParent = fromParent.getContainingDeclaration(); } return false;