Minor: fix Nullness deprecation warnings
This commit is contained in:
+1
@@ -119,6 +119,7 @@
|
||||
<Problem reference="com.intellij.testFramework.PlatformTestCase#createModuleAt" reason="Not static anymore in 181 after 7dacf096c47d2125e17031c71a037b63ab00ec53" />
|
||||
<Problem reference="com.intellij.testFramework.PlatformTestCase#doCreateRealModuleIn" reason="Not static anymore in 181 after 7dacf096c47d2125e17031c71a037b63ab00ec53" />
|
||||
<Problem reference="com.intellij.openapi.progress.ProgressManager#getProgressIndicator" reason="Nullable in 181. Temporary use progressIndicatorNullable instead." />
|
||||
<Problem reference="com.intellij.codeInspection.dataFlow.Nullness" reason="Deprecated since 182. Use org.jetbrains.kotlin.idea.util.compat.Nullability instead." />
|
||||
</list>
|
||||
</option>
|
||||
</inspection_tool>
|
||||
|
||||
@@ -16,13 +16,14 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.j2k
|
||||
|
||||
import com.intellij.codeInspection.dataFlow.DfaUtil
|
||||
import com.intellij.codeInspection.dataFlow.Nullness
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiMethod
|
||||
import com.intellij.psi.PsiVariable
|
||||
import org.jetbrains.kotlin.idea.util.compat.dfaCheckNullability
|
||||
import org.jetbrains.kotlin.idea.util.compat.dfaInferMethodNullability
|
||||
import org.jetbrains.kotlin.j2k.*
|
||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||
import org.jetbrains.kotlin.idea.util.compat.Nullability as IntellijNullability
|
||||
|
||||
object IdeaJavaToKotlinServices : JavaToKotlinConverterServices {
|
||||
override val referenceSearcher: ReferenceSearcher
|
||||
@@ -47,14 +48,14 @@ object IdeaSuperMethodSearcher : SuperMethodsSearcher {
|
||||
|
||||
private object IdeaJavaDataFlowAnalyzerFacade : JavaDataFlowAnalyzerFacade {
|
||||
override fun variableNullability(variable: PsiVariable, context: PsiElement): Nullability =
|
||||
DfaUtil.checkNullness(variable, context).toJ2KNullability()
|
||||
dfaCheckNullability(variable, context).toJ2KNullability()
|
||||
|
||||
override fun methodNullability(method: PsiMethod): Nullability =
|
||||
DfaUtil.inferMethodNullity(method).toJ2KNullability()
|
||||
dfaInferMethodNullability(method).toJ2KNullability()
|
||||
|
||||
private fun Nullness.toJ2KNullability() = when (this) {
|
||||
Nullness.UNKNOWN -> Nullability.Default
|
||||
Nullness.NOT_NULL -> Nullability.NotNull
|
||||
Nullness.NULLABLE -> Nullability.Nullable
|
||||
private fun IntellijNullability.toJ2KNullability() = when (this) {
|
||||
IntellijNullability.UNKNOWN -> Nullability.Default
|
||||
IntellijNullability.NOT_NULL -> Nullability.NotNull
|
||||
IntellijNullability.NULLABLE -> Nullability.Nullable
|
||||
}
|
||||
}
|
||||
@@ -16,7 +16,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.slicer
|
||||
|
||||
import com.intellij.codeInspection.dataFlow.Nullness
|
||||
import com.intellij.ide.util.treeView.AbstractTreeStructure
|
||||
import com.intellij.openapi.actionSystem.DefaultActionGroup
|
||||
import com.intellij.psi.PsiElement
|
||||
@@ -24,12 +23,12 @@ import com.intellij.slicer.*
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.analyzeAndGetResult
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny
|
||||
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.guessTypes
|
||||
import org.jetbrains.kotlin.idea.references.KtReference
|
||||
import org.jetbrains.kotlin.idea.references.mainReference
|
||||
import org.jetbrains.kotlin.idea.slicer.compat.PsiElement_N183_NN191
|
||||
import org.jetbrains.kotlin.idea.util.compat.Nullability
|
||||
import org.jetbrains.kotlin.idea.util.compat.SliceNullnessAnalyzerBaseEx
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.isPlainWithEscapes
|
||||
import org.jetbrains.kotlin.psi.psiUtil.parentsWithSelf
|
||||
@@ -51,8 +50,8 @@ class KotlinSliceProvider : SliceLanguageSupportProvider, SliceUsageTransformer
|
||||
|
||||
val leafAnalyzer by lazy { SliceLeafAnalyzer(LEAF_ELEMENT_EQUALITY, this) }
|
||||
val nullnessAnalyzer: SliceNullnessAnalyzerBase by lazy {
|
||||
object : SliceNullnessAnalyzerBase(LEAF_ELEMENT_EQUALITY, this) {
|
||||
override fun checkNullness(element: PsiElement?): Nullness {
|
||||
object : SliceNullnessAnalyzerBaseEx(LEAF_ELEMENT_EQUALITY, this) {
|
||||
override fun checkNullabilityEx(element: PsiElement?): Nullability {
|
||||
val types = when (element) {
|
||||
is KtCallableDeclaration -> listOfNotNull((element.resolveToDescriptorIfAny() as? CallableDescriptor)?.returnType)
|
||||
is KtDeclaration -> emptyList()
|
||||
@@ -60,10 +59,10 @@ class KotlinSliceProvider : SliceLanguageSupportProvider, SliceUsageTransformer
|
||||
else -> emptyList()
|
||||
}
|
||||
return when {
|
||||
types.isEmpty() -> return Nullness.UNKNOWN
|
||||
types.all { KotlinBuiltIns.isNullableNothing(it) } -> Nullness.NULLABLE
|
||||
types.any { it.isError || TypeUtils.isNullableType(it) || it.isNullabilityFlexible() } -> Nullness.UNKNOWN
|
||||
else -> Nullness.NOT_NULL
|
||||
types.isEmpty() -> return Nullability.UNKNOWN
|
||||
types.all { KotlinBuiltIns.isNullableNothing(it) } -> Nullability.NULLABLE
|
||||
types.any { it.isError || TypeUtils.isNullableType(it) || it.isNullabilityFlexible() } -> Nullability.UNKNOWN
|
||||
else -> Nullability.NOT_NULL
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
@file:Suppress("MissingRecentApi", "IncompatibleAPI")
|
||||
|
||||
package org.jetbrains.kotlin.idea.util.compat
|
||||
|
||||
import com.intellij.codeInsight.Nullability as IntellijNullability
|
||||
import com.intellij.codeInspection.dataFlow.DfaUtil
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiMethod
|
||||
import com.intellij.psi.PsiVariable
|
||||
import com.intellij.slicer.SliceLanguageSupportProvider
|
||||
import com.intellij.slicer.SliceLeafEquality
|
||||
import com.intellij.slicer.SliceNullnessAnalyzerBase
|
||||
|
||||
// BUNCH: 181
|
||||
typealias Nullability = IntellijNullability
|
||||
|
||||
// BUNCH: 181
|
||||
fun dfaCheckNullability(variable: PsiVariable?, context: PsiElement?): Nullability =
|
||||
DfaUtil.checkNullability(variable, context)
|
||||
|
||||
// BUNCH: 181
|
||||
fun dfaInferMethodNullability(method: PsiMethod): Nullability =
|
||||
DfaUtil.inferMethodNullability(method)
|
||||
|
||||
// BUNCH: 181
|
||||
abstract class SliceNullnessAnalyzerBaseEx(
|
||||
leafEquality: SliceLeafEquality,
|
||||
provider: SliceLanguageSupportProvider
|
||||
) : SliceNullnessAnalyzerBase(leafEquality, provider) {
|
||||
override fun checkNullability(element: PsiElement?): Nullability {
|
||||
return checkNullabilityEx(element)
|
||||
}
|
||||
|
||||
abstract fun checkNullabilityEx(element: PsiElement?): Nullability
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
@file:Suppress("MissingRecentApi", "IncompatibleAPI")
|
||||
|
||||
package org.jetbrains.kotlin.idea.util.compat
|
||||
|
||||
import com.intellij.codeInspection.dataFlow.Nullness
|
||||
import com.intellij.codeInspection.dataFlow.DfaUtil
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiMethod
|
||||
import com.intellij.psi.PsiVariable
|
||||
import com.intellij.slicer.SliceLanguageSupportProvider
|
||||
import com.intellij.slicer.SliceLeafEquality
|
||||
import com.intellij.slicer.SliceNullnessAnalyzerBase
|
||||
|
||||
// BUNCH: 181
|
||||
typealias Nullability = Nullness
|
||||
|
||||
// BUNCH: 181
|
||||
fun dfaCheckNullability(variable: PsiVariable?, context: PsiElement?): Nullability =
|
||||
DfaUtil.checkNullness(variable, context)
|
||||
|
||||
// BUNCH: 181
|
||||
fun dfaInferMethodNullability(method: PsiMethod): Nullability =
|
||||
DfaUtil.inferMethodNullity(method)
|
||||
|
||||
// BUNCH: 181
|
||||
abstract class SliceNullnessAnalyzerBaseEx(
|
||||
leafEquality: SliceLeafEquality,
|
||||
provider: SliceLanguageSupportProvider
|
||||
) : SliceNullnessAnalyzerBase(leafEquality, provider) {
|
||||
override fun checkNullness(element: PsiElement?): Nullability {
|
||||
return checkNullabilityEx(element)
|
||||
}
|
||||
|
||||
abstract fun checkNullabilityEx(element: PsiElement?): Nullability
|
||||
}
|
||||
Reference in New Issue
Block a user