From bfcf7d989033a43a672fbba4aebc6fbd0fa03641 Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Tue, 20 Sep 2016 12:06:46 +0300 Subject: [PATCH] DM 19.09.2016: typealiases private in file are resolved as classes. Add test for typealias private in file. --- .../kotlin/resolve/OverloadResolver.kt | 1 - .../tests/typealias/privateInFile.kt | 22 +++++++++++++ .../tests/typealias/privateInFile.txt | 33 +++++++++++++++++++ .../checkers/DiagnosticsTestGenerated.java | 30 ++++++++++------- 4 files changed, 73 insertions(+), 13 deletions(-) create mode 100644 compiler/testData/diagnostics/tests/typealias/privateInFile.kt create mode 100644 compiler/testData/diagnostics/tests/typealias/privateInFile.txt diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/OverloadResolver.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/OverloadResolver.kt index 543f92c48aa..d82840546b4 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/OverloadResolver.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/OverloadResolver.kt @@ -18,7 +18,6 @@ package org.jetbrains.kotlin.resolve import com.intellij.util.containers.MultiMap import org.jetbrains.kotlin.descriptors.* -import org.jetbrains.kotlin.descriptors.impl.TypeAliasConstructorDescriptor import org.jetbrains.kotlin.diagnostics.Errors import org.jetbrains.kotlin.idea.MainFunctionDetector import org.jetbrains.kotlin.name.Name diff --git a/compiler/testData/diagnostics/tests/typealias/privateInFile.kt b/compiler/testData/diagnostics/tests/typealias/privateInFile.kt new file mode 100644 index 00000000000..78502b782f8 --- /dev/null +++ b/compiler/testData/diagnostics/tests/typealias/privateInFile.kt @@ -0,0 +1,22 @@ +// FILE: file1.kt +private class C { + companion object +} + +private typealias TA = C + +private val test1: C = C() +private val test1co: C.Companion = C + +private val test2: TA = TA() +private val test2co = TA + +// FILE: file2.kt +private val test1: C = C() +private val test1co: C.Companion = C + +private val test2: TA = TA() +private val test2co = TA + +private class C +private typealias TA = Int \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/typealias/privateInFile.txt b/compiler/testData/diagnostics/tests/typealias/privateInFile.txt new file mode 100644 index 00000000000..1521df1b56e --- /dev/null +++ b/compiler/testData/diagnostics/tests/typealias/privateInFile.txt @@ -0,0 +1,33 @@ +package + +private val test1: C +private val test1: C +private val test1co: C.Companion +private val test1co: C.Companion +private val test2: TA /* = C */ +private val test2: TA /* = C */ +private val test2co: C.Companion +private val test2co: C.Companion + +private final class C { + public constructor C() + 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 + + public companion object Companion { + private constructor Companion() + 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 + } +} + +private final class C { + public constructor C() + 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 +} +private typealias TA = C +private typealias TA = kotlin.Int diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java index dd6a6dcc256..1ca930f1e4b 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java @@ -20382,6 +20382,12 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest { doTest(fileName); } + @TestMetadata("privateInFile.kt") + public void testPrivateInFile() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/typealias/privateInFile.kt"); + doTest(fileName); + } + @TestMetadata("projectionsInTypeAliasConstructor.kt") public void testProjectionsInTypeAliasConstructor() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/typealias/projectionsInTypeAliasConstructor.kt"); @@ -20454,18 +20460,6 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest { doTest(fileName); } - @TestMetadata("typeAliasInvisibleObject.kt") - public void testTypeAliasInvisibleObject() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/typealias/typeAliasInvisibleObject.kt"); - doTest(fileName); - } - - @TestMetadata("typeAliasNotNull.kt") - public void testTypeAliasNotNull() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/typealias/typeAliasNotNull.kt"); - doTest(fileName); - } - @TestMetadata("typeAliasConstructorInSuperCall.kt") public void testTypeAliasConstructorInSuperCall() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/typealias/typeAliasConstructorInSuperCall.kt"); @@ -20484,6 +20478,18 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest { doTest(fileName); } + @TestMetadata("typeAliasInvisibleObject.kt") + public void testTypeAliasInvisibleObject() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/typealias/typeAliasInvisibleObject.kt"); + doTest(fileName); + } + + @TestMetadata("typeAliasNotNull.kt") + public void testTypeAliasNotNull() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/typealias/typeAliasNotNull.kt"); + doTest(fileName); + } + @TestMetadata("typeAliasObject.kt") public void testTypeAliasObject() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/typealias/typeAliasObject.kt");