diff options
author | Jiaxiang Chen <jiaxiang@google.com> | 2023-01-19 11:12:13 -0800 |
---|---|---|
committer | KSP Auto Pick <kotlin-symbol-processing@google.com> | 2023-01-19 22:47:08 +0000 |
commit | 4b299afe9b7c323c3a72030a977c50658cad9f8a (patch) | |
tree | fdc104a29fd350f9de5fb9f2df55efcaca6bbbd2 /test-utils | |
parent | 03b0374ee3ccfde8891a42c1fafc919020c376b3 (diff) | |
download | ksp-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.kt | 10 | ||||
-rw-r--r-- | test-utils/testData/api/referenceElement.kt | 5 |
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>() |