aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiaxiang Chen <jiaxiang@google.com>2024-01-29 13:18:59 -0800
committerJiaxiang Chen <roaringacw@gmail.com>2024-01-29 16:05:30 -0800
commitcd59900bd816a875a73c144d2012f6477b5c0e8c (patch)
treeefca4444d467470c024e44c164ef63f54e6a58b6
parent192212b5f4450c0bd802de11fe890c8e87ba74f2 (diff)
downloadksp-cd59900bd816a875a73c144d2012f6477b5c0e8c.tar.gz
handle no jvm class file use case for declarationOrdering
-rw-r--r--kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/ResolverAAImpl.kt4
-rw-r--r--test-utils/src/main/kotlin/com/google/devtools/ksp/processor/DeclarationOrderProcessor.kt5
-rw-r--r--test-utils/testData/api/declarationOrder.kt4
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