diff options
author | Jiaxiang Chen <jiaxiang@google.com> | 2024-01-29 13:18:59 -0800 |
---|---|---|
committer | Jiaxiang Chen <roaringacw@gmail.com> | 2024-01-29 16:05:30 -0800 |
commit | cd59900bd816a875a73c144d2012f6477b5c0e8c (patch) | |
tree | efca4444d467470c024e44c164ef63f54e6a58b6 | |
parent | 192212b5f4450c0bd802de11fe890c8e87ba74f2 (diff) | |
download | ksp-cd59900bd816a875a73c144d2012f6477b5c0e8c.tar.gz |
handle no jvm class file use case for declarationOrdering
3 files changed, 11 insertions, 2 deletions
diff --git a/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/ResolverAAImpl.kt b/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/ResolverAAImpl.kt index b845b230..c111a1c4 100644 --- a/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/ResolverAAImpl.kt +++ b/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/ResolverAAImpl.kt @@ -318,8 +318,8 @@ class ResolverAAImpl( val classId = (parentClass as KSClassDeclarationImpl).ktClassOrObjectSymbol.classIdIfNonLocal ?: return container.declarations val virtualFile = analyze { - (fileManager.findClass(classId, analysisScope) as JavaClassImpl).virtualFile - }!! + (fileManager.findClass(classId, analysisScope) as? JavaClassImpl)?.virtualFile + } ?: return container.declarations val kotlinClass = classBinaryCache.getKotlinBinaryClass(virtualFile) ?: return container.declarations val declarationOrdering = DeclarationOrdering(kotlinClass) diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationOrderProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationOrderProcessor.kt index d6a279ce..db610510 100644 --- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationOrderProcessor.kt +++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationOrderProcessor.kt @@ -37,6 +37,11 @@ class DeclarationOrderProcessor : AbstractTestProcessor() { } ) } + result.addAll( + resolver.getDeclarationsInSourceOrder(resolver.getClassDeclarationByName("kotlin.Any")!!).map { + it.toSignature(resolver) + } + ) return emptyList() } diff --git a/test-utils/testData/api/declarationOrder.kt b/test-utils/testData/api/declarationOrder.kt index 2419bae5..ec2ab644 100644 --- a/test-utils/testData/api/declarationOrder.kt +++ b/test-utils/testData/api/declarationOrder.kt @@ -68,6 +68,10 @@ // overloaded:(I)V // overloaded:()V // overloaded:(Ljava/lang/String;Ljava/lang/String;)V +// equals:(Ljava/lang/Object;)Z +// hashCode:()I +// toString:()Ljava/lang/String; +// <init>:()V // END // MODULE: module1 // FILE: lib/KotlinClass.kt |