diff --git a/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/kotlin/KSClassDeclarationImpl.kt b/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/kotlin/KSClassDeclarationImpl.kt index e5161bb546..06fef7653d 100644 --- a/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/kotlin/KSClassDeclarationImpl.kt +++ b/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/kotlin/KSClassDeclarationImpl.kt @@ -211,6 +211,9 @@ internal fun KtClassOrObjectSymbol.toModifiers(): Set { if (visibility != JavaVisibilities.PackageVisibility) { result.add(visibility.toModifier()) } + if (isFun) { + result.add(Modifier.FUN) + } if (isInline) { result.add(Modifier.INLINE) } diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JavaModifierProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JavaModifierProcessor.kt index 8ac070fe5e..97442d7641 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JavaModifierProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/JavaModifierProcessor.kt @@ -34,7 +34,7 @@ class JavaModifierProcessor : AbstractTestProcessor() { override fun process(resolver: Resolver): List { listOf("ALib", "ASrc").forEach { clsName -> resolver.getClassDeclarationByName(clsName)!!.let { cls -> - println(cls.modifiers.contains(Modifier.FUN)) + assert(cls.modifiers.contains(Modifier.FUN)) } } diff --git a/test-utils/testData/api/javaModifiers.kt b/test-utils/testData/api/javaModifiers.kt index 7254b7629f..cd458f23dc 100644 --- a/test-utils/testData/api/javaModifiers.kt +++ b/test-utils/testData/api/javaModifiers.kt @@ -102,6 +102,10 @@ // OuterKotlinClass: OPEN : PUBLIC // END // MODULE: module1 +// FILE: ALib.kt +fun interface ALib { + fun test(): Boolean +} // FILE: DependencyOuterJavaClass.java public class DependencyOuterJavaClass { public class DependencyInnerJavaClass {} @@ -152,6 +156,10 @@ open class DependencyOuterKotlinClass { fun synchronizedFun(): String = "" } // MODULE: main(module1) +// FILE: ASrc.kt +fun interface ASrc { + fun test(): Boolean +} // FILE: a.kt annotation class Test