From a482031d55ec1eadbb4987c828e57f8f45c8c3cc Mon Sep 17 00:00:00 2001 From: Jiaxiang Chen Date: Thu, 2 Mar 2023 14:32:27 -0800 Subject: [PATCH] AA: implement comprehensive nullability check for flexible types --- .../google/devtools/ksp/impl/symbol/kotlin/KSTypeImpl.kt | 8 ++++---- .../kotlin/com/google/devtools/ksp/impl/test/KSPAATest.kt | 1 - 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/kotlin/KSTypeImpl.kt b/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/kotlin/KSTypeImpl.kt index 9cf5521b48..f45c3b6bd0 100644 --- a/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/kotlin/KSTypeImpl.kt +++ b/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/kotlin/KSTypeImpl.kt @@ -62,10 +62,10 @@ class KSTypeImpl private constructor(internal val type: KtType) : KSType { } override val nullability: Nullability by lazy { - if (type.nullability == KtTypeNullability.NON_NULLABLE) { - Nullability.NOT_NULL - } else { - Nullability.NULLABLE + when { + type is KtFlexibleType && type.lowerBound.nullability != type.upperBound.nullability -> Nullability.PLATFORM + analyze { type.canBeNull } -> Nullability.NULLABLE + else -> Nullability.NOT_NULL } } diff --git a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/impl/test/KSPAATest.kt b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/impl/test/KSPAATest.kt index 8b2268d83a..6749269e8d 100644 --- a/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/impl/test/KSPAATest.kt +++ b/kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/impl/test/KSPAATest.kt @@ -329,7 +329,6 @@ class KSPAATest : AbstractKSPAATest() { runTest("../test-utils/testData/api/javaModifiers.kt") } - @Disabled @TestMetadata("javaNonNullTypes.kt") @Test fun testJavaNonNullTypes() {