From ead319f832c0058084d4717793bd1e1b55b1296d Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Mon, 16 Jan 2023 16:19:59 +0100 Subject: [PATCH] K2: add test for KT-55408 --- ...CompilerTestFE10TestdataTestGenerated.java | 6 ++++ ...irOldFrontendDiagnosticsTestGenerated.java | 6 ++++ ...DiagnosticsWithLightTreeTestGenerated.java | 6 ++++ .../packagePrivateStaticViaTypeAlias.fir.kt | 30 ++++++++++++++++ .../packagePrivateStaticViaTypeAlias.kt | 30 ++++++++++++++++ .../packagePrivateStaticViaTypeAlias.txt | 35 +++++++++++++++++++ .../test/runners/DiagnosticTestGenerated.java | 6 ++++ 7 files changed, 119 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/visibility/packagePrivateStaticViaTypeAlias.fir.kt create mode 100644 compiler/testData/diagnostics/tests/visibility/packagePrivateStaticViaTypeAlias.kt create mode 100644 compiler/testData/diagnostics/tests/visibility/packagePrivateStaticViaTypeAlias.txt diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java index 902fff9b7fd..83ca1a5692f 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java @@ -34518,6 +34518,12 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag runTest("compiler/testData/diagnostics/tests/visibility/packagePrivateStatic.kt"); } + @Test + @TestMetadata("packagePrivateStaticViaTypeAlias.kt") + public void testPackagePrivateStaticViaTypeAlias() throws Exception { + runTest("compiler/testData/diagnostics/tests/visibility/packagePrivateStaticViaTypeAlias.kt"); + } + @Test @TestMetadata("privateCompanionInSuperClass.kt") public void testPrivateCompanionInSuperClass() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java index 14395b09368..155731100fa 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java @@ -34614,6 +34614,12 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirDiagnosti runTest("compiler/testData/diagnostics/tests/visibility/packagePrivateStatic.kt"); } + @Test + @TestMetadata("packagePrivateStaticViaTypeAlias.kt") + public void testPackagePrivateStaticViaTypeAlias() throws Exception { + runTest("compiler/testData/diagnostics/tests/visibility/packagePrivateStaticViaTypeAlias.kt"); + } + @Test @TestMetadata("privateCompanionInSuperClass.kt") public void testPrivateCompanionInSuperClass() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java index 730c5e1f0f2..b897e661635 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java @@ -34518,6 +34518,12 @@ public class FirOldFrontendDiagnosticsWithLightTreeTestGenerated extends Abstrac runTest("compiler/testData/diagnostics/tests/visibility/packagePrivateStatic.kt"); } + @Test + @TestMetadata("packagePrivateStaticViaTypeAlias.kt") + public void testPackagePrivateStaticViaTypeAlias() throws Exception { + runTest("compiler/testData/diagnostics/tests/visibility/packagePrivateStaticViaTypeAlias.kt"); + } + @Test @TestMetadata("privateCompanionInSuperClass.kt") public void testPrivateCompanionInSuperClass() throws Exception { diff --git a/compiler/testData/diagnostics/tests/visibility/packagePrivateStaticViaTypeAlias.fir.kt b/compiler/testData/diagnostics/tests/visibility/packagePrivateStaticViaTypeAlias.fir.kt new file mode 100644 index 00000000000..ad300ced013 --- /dev/null +++ b/compiler/testData/diagnostics/tests/visibility/packagePrivateStaticViaTypeAlias.fir.kt @@ -0,0 +1,30 @@ +// FILE: javapackage/PackagePrivateGrandparentAbstractClass.java + +package javapackage; + +/*package-private*/ abstract class PackagePrivateGrandparentAbstractClass { + public static void publicStaticMethod() {} +} + +// FILE: javapackage/PublicParentClass.java + +package javapackage; + +public class PublicParentClass extends PackagePrivateGrandparentAbstractClass {} + +// FILE: foo.kt + +import javapackage.PublicParentClass + +typealias TypeAliasedParent = PublicParentClass + +fun foo() { + TypeAliasedParent.publicStaticMethod() +} + +class Child : TypeAliasedParent() { + fun foo() { + TypeAliasedParent.publicStaticMethod() + publicStaticMethod() + } +} diff --git a/compiler/testData/diagnostics/tests/visibility/packagePrivateStaticViaTypeAlias.kt b/compiler/testData/diagnostics/tests/visibility/packagePrivateStaticViaTypeAlias.kt new file mode 100644 index 00000000000..c6e0e9fae43 --- /dev/null +++ b/compiler/testData/diagnostics/tests/visibility/packagePrivateStaticViaTypeAlias.kt @@ -0,0 +1,30 @@ +// FILE: javapackage/PackagePrivateGrandparentAbstractClass.java + +package javapackage; + +/*package-private*/ abstract class PackagePrivateGrandparentAbstractClass { + public static void publicStaticMethod() {} +} + +// FILE: javapackage/PublicParentClass.java + +package javapackage; + +public class PublicParentClass extends PackagePrivateGrandparentAbstractClass {} + +// FILE: foo.kt + +import javapackage.PublicParentClass + +typealias TypeAliasedParent = PublicParentClass + +fun foo() { + TypeAliasedParent.publicStaticMethod() +} + +class Child : TypeAliasedParent() { + fun foo() { + TypeAliasedParent.publicStaticMethod() + publicStaticMethod() + } +} diff --git a/compiler/testData/diagnostics/tests/visibility/packagePrivateStaticViaTypeAlias.txt b/compiler/testData/diagnostics/tests/visibility/packagePrivateStaticViaTypeAlias.txt new file mode 100644 index 00000000000..e4eefe710e8 --- /dev/null +++ b/compiler/testData/diagnostics/tests/visibility/packagePrivateStaticViaTypeAlias.txt @@ -0,0 +1,35 @@ +package + +public fun foo(): kotlin.Unit + +public final class Child : TypeAliasedParent /* = javapackage.PublicParentClass */ { + public constructor Child() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public final fun foo(): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} +public typealias TypeAliasedParent = javapackage.PublicParentClass + +package javapackage { + + public/*package*/ abstract class PackagePrivateGrandparentAbstractClass { + public/*package*/ constructor PackagePrivateGrandparentAbstractClass() + 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 + + // Static members + public open fun publicStaticMethod(): kotlin.Unit + } + + public open class PublicParentClass : javapackage.PackagePrivateGrandparentAbstractClass { + public constructor PublicParentClass() + 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 + + // Static members + public open override /*1*/ /*fake_override*/ fun publicStaticMethod(): kotlin.Unit + } +} diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java index a0948416c48..1182a012a06 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java @@ -34614,6 +34614,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/visibility/packagePrivateStatic.kt"); } + @Test + @TestMetadata("packagePrivateStaticViaTypeAlias.kt") + public void testPackagePrivateStaticViaTypeAlias() throws Exception { + runTest("compiler/testData/diagnostics/tests/visibility/packagePrivateStaticViaTypeAlias.kt"); + } + @Test @TestMetadata("privateCompanionInSuperClass.kt") public void testPrivateCompanionInSuperClass() throws Exception {