From 9e7222906d7cc06089024a874a668eaa7fa05b54 Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Mon, 6 Jun 2016 11:36:49 +0300 Subject: [PATCH] Generate (possibly empty) file classes for files with type aliases. --- .../src/org/jetbrains/kotlin/codegen/PackageCodegen.java | 2 +- idea/testData/asJava/fileLightClass/aliasesOnly.kt | 2 ++ .../org/jetbrains/kotlin/asJava/KtFileLightClassTest.kt | 6 ++++++ 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 idea/testData/asJava/fileLightClass/aliasesOnly.kt diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/PackageCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/PackageCodegen.java index 31eda1f4dac..6233b746253 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/PackageCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/PackageCodegen.java @@ -99,7 +99,7 @@ public class PackageCodegen { List classOrObjects = new ArrayList(); for (KtDeclaration declaration : file.getDeclarations()) { - if (declaration instanceof KtProperty || declaration instanceof KtNamedFunction) { + if (declaration instanceof KtProperty || declaration instanceof KtNamedFunction || declaration instanceof KtTypeAlias) { generatePackagePart = true; } else if (declaration instanceof KtClassOrObject) { diff --git a/idea/testData/asJava/fileLightClass/aliasesOnly.kt b/idea/testData/asJava/fileLightClass/aliasesOnly.kt new file mode 100644 index 00000000000..11f6320228e --- /dev/null +++ b/idea/testData/asJava/fileLightClass/aliasesOnly.kt @@ -0,0 +1,2 @@ +typealias S = String +typealias L = List diff --git a/idea/tests/org/jetbrains/kotlin/asJava/KtFileLightClassTest.kt b/idea/tests/org/jetbrains/kotlin/asJava/KtFileLightClassTest.kt index 5170d0fdeb5..87b8f93b557 100644 --- a/idea/tests/org/jetbrains/kotlin/asJava/KtFileLightClassTest.kt +++ b/idea/tests/org/jetbrains/kotlin/asJava/KtFileLightClassTest.kt @@ -47,6 +47,12 @@ class KtFileLightClassTest : KotlinLightCodeInsightFixtureTestCase() { assertEquals(1, aClass.findMethodsByName("bar", false).size) } + fun testAliasesOnly() { + val file = myFixture.configureByFile("aliasesOnly.kt") as KtFile + val aClass = file.classes.single() + assertEquals(0, aClass.getMethods().size) + } + override fun getTestDataPath(): String? { return PluginTestCaseBase.getTestDataPathBase() + "/asJava/fileLightClass/" }