aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiaxiang Chen <jiaxiang@google.com>2024-01-18 01:12:12 -0800
committerJiaxiang Chen <roaringacw@gmail.com>2024-01-18 10:57:53 -0800
commit024b17a2fc4fa8a197b1db388a2791db86555ac1 (patch)
treec7d1a49623c954cbe72084e98eba6179cceaa485
parente5e9e5dd874fc83d07095e1ff74144c06e09e702 (diff)
downloadksp-024b17a2fc4fa8a197b1db388a2791db86555ac1.tar.gz
restore annotations on type alias
-rw-r--r--compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/kotlin/KSTypeImpl.kt4
-rw-r--r--test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeAnnotationProcessor.kt8
-rw-r--r--test-utils/testData/api/typeAnnotation.kt5
3 files changed, 12 insertions, 5 deletions
diff --git a/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/kotlin/KSTypeImpl.kt b/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/kotlin/KSTypeImpl.kt
index 20ed2c7f..396a112d 100644
--- a/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/kotlin/KSTypeImpl.kt
+++ b/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/kotlin/KSTypeImpl.kt
@@ -35,7 +35,6 @@ import org.jetbrains.kotlin.builtins.isKFunctionType
import org.jetbrains.kotlin.builtins.isKSuspendFunctionType
import org.jetbrains.kotlin.builtins.isSuspendFunctionType
import org.jetbrains.kotlin.descriptors.NotFoundClasses
-import org.jetbrains.kotlin.descriptors.SourceElement
import org.jetbrains.kotlin.types.*
import org.jetbrains.kotlin.types.typeUtil.TypeNullability
import org.jetbrains.kotlin.types.typeUtil.isSubtypeOf
@@ -145,8 +144,7 @@ fun getKSTypeCached(
KSTypeImpl.getCached(
kotlinType,
ksTypeArguments,
- annotations + kotlinType.annotations
- .filter { it.source == SourceElement.NO_SOURCE }
+ kotlinType.annotations
.map { KSAnnotationDescriptorImpl.getCached(it, null) }
.asSequence()
)
diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeAnnotationProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeAnnotationProcessor.kt
index fa974f7d..7b1d1805 100644
--- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeAnnotationProcessor.kt
+++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/TypeAnnotationProcessor.kt
@@ -13,9 +13,15 @@ class TypeAnnotationProcessor : AbstractTestProcessor() {
}
override fun process(resolver: Resolver): List<KSAnnotated> {
- val myList = resolver.getClassDeclarationByName("MyClass")!!.getDeclaredProperties().single()
+ val myList = resolver.getClassDeclarationByName("MyClass")!!.getDeclaredProperties().single {
+ it.simpleName.asString() == "myList"
+ }
+ val myAlias = resolver.getClassDeclarationByName("MyClass")!!.getDeclaredProperties().single {
+ it.simpleName.asString() == "myAlias"
+ }
val myStringClass = resolver.getClassDeclarationByName("MyStringClass")!!.asStarProjectedType()
result.add(myList.type.resolve().annotations.joinToString())
+ result.add(myAlias.type.resolve().annotations.joinToString())
result.add(myList.asMemberOf(myStringClass).annotations.joinToString())
result.add(myList.type.resolve().let { it.replace(it.arguments) }.annotations.joinToString())
result.add(myList.type.resolve().starProjection().annotations.joinToString())
diff --git a/test-utils/testData/api/typeAnnotation.kt b/test-utils/testData/api/typeAnnotation.kt
index 1bd76e40..1b61f228 100644
--- a/test-utils/testData/api/typeAnnotation.kt
+++ b/test-utils/testData/api/typeAnnotation.kt
@@ -20,13 +20,16 @@
// TEST PROCESSOR: TypeAnnotationProcessor
// EXPECTED:
// @JvmSuppressWildcards
+// @JvmWildcard
// @JvmSuppressWildcards
// @JvmSuppressWildcards
// @JvmSuppressWildcards
// END
-
+interface MyType
+typealias MyAlias = @JvmWildcard MyType
class MyClass<T> {
var myList: @JvmSuppressWildcards List<Foo> = TODO()
+ var myAlias: MyAlias = TODO()
}
class MyStringClass: MyClass<String> {}