aboutsummaryrefslogtreecommitdiff
path: root/test-utils
diff options
context:
space:
mode:
authorJiaxiang Chen <jiaxiang@google.com>2023-01-19 11:12:13 -0800
committerKSP Auto Pick <kotlin-symbol-processing@google.com>2023-01-19 22:47:08 +0000
commit4b299afe9b7c323c3a72030a977c50658cad9f8a (patch)
treefdc104a29fd350f9de5fb9f2df55efcaca6bbbd2 /test-utils
parent03b0374ee3ccfde8891a42c1fafc919020c376b3 (diff)
downloadksp-4b299afe9b7c323c3a72030a977c50658cad9f8a.tar.gz
Support Definitely non null type language feature.
* Add api for definitely non null type element. * Implement definitely non null type element for FE1.0. fixes #1127 (cherry picked from commit c048c6b03374e86379fed40d47be6af5303cb668)
Diffstat (limited to 'test-utils')
-rw-r--r--test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ReferenceElementProcessor.kt10
-rw-r--r--test-utils/testData/api/referenceElement.kt5
2 files changed, 15 insertions, 0 deletions
diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ReferenceElementProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ReferenceElementProcessor.kt
index 46a4ea47..c0843f36 100644
--- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ReferenceElementProcessor.kt
+++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ReferenceElementProcessor.kt
@@ -60,6 +60,16 @@ open class ReferenceElementProcessor : AbstractTestProcessor() {
)
}
+ val defNonNullReferences =
+ references.filter { it.element is KSDefNonNullReference && it.origin == Origin.KOTLIN }
+ .sortedBy { it.toString() }
+
+ defNonNullReferences.forEach {
+ results.add(
+ "KSDefNonNullReferenceImpl: Enclosed type of ${(it.element as KSDefNonNullReference).enclosedType}"
+ )
+ }
+
val javaReferences = references.filter { it.element is KSClassifierReference && it.origin == Origin.JAVA }
.sortedBy(::refName)
for (i in javaReferences) {
diff --git a/test-utils/testData/api/referenceElement.kt b/test-utils/testData/api/referenceElement.kt
index 4f018fb1..513ad429 100644
--- a/test-utils/testData/api/referenceElement.kt
+++ b/test-utils/testData/api/referenceElement.kt
@@ -26,6 +26,7 @@
// KSClassifierReferenceDescriptorImpl: Qualifier of String is null
// KSClassifierReferenceDescriptorImpl: Qualifier of Y is X
// KSClassifierReferenceDescriptorImpl: Qualifier of Z<Int> is X<String>
+// KSDefNonNullReferenceImpl: Enclosed type of T
// KSClassifierReferenceJavaImpl: Qualifier of H is J<String>
// KSClassifierReferenceJavaImpl: Qualifier of I is J
// KSClassifierReferenceJavaImpl: Qualifier of Object is null
@@ -52,6 +53,10 @@ class A<T1> {
inner class C<T2>
}
+class DefNonNull<T> {
+ val u: T & Any
+}
+
val x: A.B = A.B()
val y: A<String>.C<Int> = A<String>().C<Int>()