diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ClassKindsProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ClassKindsProcessor.kt index f2d464673f..0b4651c655 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ClassKindsProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ClassKindsProcessor.kt @@ -17,7 +17,9 @@ package com.google.devtools.ksp.processor +import com.google.devtools.ksp.KspExperimental import com.google.devtools.ksp.getClassDeclarationByName +import com.google.devtools.ksp.getDeclaredFunctions import com.google.devtools.ksp.processing.Resolver import com.google.devtools.ksp.symbol.* import com.google.devtools.ksp.visitor.KSTopDownVisitor @@ -25,7 +27,13 @@ import com.google.devtools.ksp.visitor.KSTopDownVisitor open class ClassKindsProcessor : AbstractTestProcessor() { val results = mutableListOf() + @OptIn(KspExperimental::class) override fun process(resolver: Resolver): List { + resolver.getClassDeclarationByName("MyTest")!!.let { cls -> + cls.getDeclaredFunctions().single { it.simpleName.asString() == "f" }.let { f -> + println(resolver.mapToJvmSignature(f.returnType!!.resolve().declaration)) + } + } fun KSClassDeclaration.pretty(): String = "${qualifiedName!!.asString()}: $classKind" val files = resolver.getNewFiles() files.forEach { diff --git a/test-utils/testData/api/classKinds.kt b/test-utils/testData/api/classKinds.kt index 867cc8d935..bfde072ae6 100644 --- a/test-utils/testData/api/classKinds.kt +++ b/test-utils/testData/api/classKinds.kt @@ -38,6 +38,10 @@ // END // FILE: K.kt +@JvmInline value class MyInlineClass(val value: Int) +class MyTest { + fun f(): MyInlineClass +} class KC interface KI annotation class KA