From 3c43627cb424e3369a4162950844897d3b2dee50 Mon Sep 17 00:00:00 2001 From: Yigit Boyar Date: Wed, 27 Jan 2021 16:06:56 -0800 Subject: [PATCH] Repro for missing constructor in compiled java classes --- .../ksp/processor/AllFunctionsProcessor.kt | 2 ++ compiler-plugin/testData/api/allFunctions.kt | 30 +++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/processor/AllFunctionsProcessor.kt b/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/processor/AllFunctionsProcessor.kt index 723415744b..a26f3833c7 100644 --- a/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/processor/AllFunctionsProcessor.kt +++ b/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/processor/AllFunctionsProcessor.kt @@ -18,6 +18,7 @@ package com.google.devtools.ksp.processor +import com.google.devtools.ksp.getClassDeclarationByName import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* @@ -33,6 +34,7 @@ class AllFunctionsProcessor : AbstractTestProcessor() { override fun process(resolver: Resolver) { resolver.getAllFiles().map { it.accept(visitor, Unit) } + resolver.getClassDeclarationByName("JavaWithConstructorInLib")!!.accept(visitor, Unit) } inner class AllFunctionsVisitor : KSVisitorVoid() { diff --git a/compiler-plugin/testData/api/allFunctions.kt b/compiler-plugin/testData/api/allFunctions.kt index f0bbf43a3a..744cfad015 100644 --- a/compiler-plugin/testData/api/allFunctions.kt +++ b/compiler-plugin/testData/api/allFunctions.kt @@ -21,6 +21,8 @@ // class: KotlinInterfaceWithProperty // (): C // (): JavaImplOfKotlinInterface +// (kotlin.Int): JavaWithConstructor +// (kotlin.Int): JavaWithConstructorInLib // a // aFromC // aFromC @@ -33,6 +35,8 @@ // class: Data // class: Foo // class: JavaImplOfKotlinInterface +// class: JavaWithConstructor +// class: JavaWithConstructorInLib // component1(): kotlin.String // contains(kotlin.Number): kotlin.Boolean // containsAll(kotlin.collections.Collection): kotlin.Boolean @@ -42,6 +46,8 @@ // equals(kotlin.Any): kotlin.Boolean // equals(kotlin.Any): kotlin.Boolean // equals(kotlin.Any): kotlin.Boolean +// equals(kotlin.Any): kotlin.Boolean +// equals(kotlin.Any): kotlin.Boolean // forEach(java.util.function.Consumer): kotlin.Unit // get(kotlin.Int): kotlin.Number // hashCode(): kotlin.Int @@ -49,6 +55,8 @@ // hashCode(): kotlin.Int // hashCode(): kotlin.Int // hashCode(): kotlin.Int +// hashCode(): kotlin.Int +// hashCode(): kotlin.Int // indexOf(kotlin.Number): kotlin.Int // isEmpty(): kotlin.Boolean // iterator(): kotlin.collections.Iterator @@ -60,6 +68,8 @@ // lastIndexOf(kotlin.Number): kotlin.Int // listIterator(): kotlin.collections.ListIterator // listIterator(kotlin.Int): kotlin.collections.ListIterator +// method1(kotlin.Int): kotlin.Unit +// method1(kotlin.Int): kotlin.Unit // parallelStream(): java.util.stream.Stream // size // spliterator(): java.util.Spliterator @@ -70,9 +80,23 @@ // toString(): kotlin.String // toString(): kotlin.String // toString(): kotlin.String +// toString(): kotlin.String +// toString(): kotlin.String // x // x // END +// MODULE: lib +// FILE: JavaWithConstructorInLib.java +class JavaWithConstructorInLib { + JavaWithConstructorInLib(int constructorArg1) { + } + void method1(int arg1) {} +} +// FILE: KotlinInLib.kt +class KotlinClassInLib(constructorArg1:Int) { + fun method1(arg1: Int) {} +} +// MODULE: mainModule(lib) // FILE: a.kt abstract class Foo : C(), List { override fun javaListFun(): List { @@ -126,4 +150,10 @@ class JavaImplOfKotlinInterface implements KotlinInterfaceWithProperty { } public void setX(int value) { } +} +// FILE: JavaWithConstructor.java +class JavaWithConstructor { + JavaWithConstructor(int constructorArg1) { + } + void method1(int arg1) {} } \ No newline at end of file