diff --git a/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/kotlin/AbstractKSDeclarationImpl.kt b/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/kotlin/AbstractKSDeclarationImpl.kt index 16d65ac08c..b20a960e5f 100644 --- a/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/kotlin/AbstractKSDeclarationImpl.kt +++ b/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/kotlin/AbstractKSDeclarationImpl.kt @@ -79,16 +79,19 @@ abstract class AbstractKSDeclarationImpl(val ktDeclarationSymbol: KtDeclarationS override val packageName: KSName by lazy { // source - containingFile?.packageName + if (origin == Origin.KOTLIN || origin == Origin.JAVA) { + containingFile!!.packageName + } else { // top level declaration - ?: when (ktDeclarationSymbol) { + when (ktDeclarationSymbol) { is KtClassLikeSymbol -> ktDeclarationSymbol.classIdIfNonLocal?.packageFqName?.asString() is KtCallableSymbol -> ktDeclarationSymbol.callableIdIfNonLocal?.packageName?.asString() else -> null }?.let { KSNameImpl.getCached(it) } - // null -> non top level declaration, find in parent - ?: ktDeclarationSymbol.getContainingKSSymbol()?.packageName - ?: throw IllegalStateException("failed to find package name for $this") + // null -> non top level declaration, find in parent + ?: ktDeclarationSymbol.getContainingKSSymbol()?.packageName + ?: throw IllegalStateException("failed to find package name for $this") + } } override val typeParameters: List by lazy { diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/FunctionTypeProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/FunctionTypeProcessor.kt index 4daa9695e7..f1de05ab74 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/FunctionTypeProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/FunctionTypeProcessor.kt @@ -37,7 +37,11 @@ open class FunctionTypeProcessor : AbstractTestProcessor() { val type = property.type.resolve() val propertyName = property.simpleName.asString() val typeName = type.declaration.simpleName.asString() - results.add("$propertyName: $typeName : ${type.isFunctionType}, ${type.isSuspendFunctionType}, ${type.declaration.qualifiedName!!.asString()}, ${type.declaration.packageName.asString()}") + results.add( + "$propertyName: $typeName : ${type.isFunctionType}, " + + "${type.isSuspendFunctionType}, ${type.declaration.qualifiedName!!.asString()}, " + + "${type.declaration.packageName.asString()}" + ) } }, Unit