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#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.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.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>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</inspection_tool>
|
</inspection_tool>
|
||||||
|
|||||||
@@ -16,13 +16,14 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.j2k
|
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.PsiElement
|
||||||
import com.intellij.psi.PsiMethod
|
import com.intellij.psi.PsiMethod
|
||||||
import com.intellij.psi.PsiVariable
|
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.*
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
|
import org.jetbrains.kotlin.idea.util.compat.Nullability as IntellijNullability
|
||||||
|
|
||||||
object IdeaJavaToKotlinServices : JavaToKotlinConverterServices {
|
object IdeaJavaToKotlinServices : JavaToKotlinConverterServices {
|
||||||
override val referenceSearcher: ReferenceSearcher
|
override val referenceSearcher: ReferenceSearcher
|
||||||
@@ -47,14 +48,14 @@ object IdeaSuperMethodSearcher : SuperMethodsSearcher {
|
|||||||
|
|
||||||
private object IdeaJavaDataFlowAnalyzerFacade : JavaDataFlowAnalyzerFacade {
|
private object IdeaJavaDataFlowAnalyzerFacade : JavaDataFlowAnalyzerFacade {
|
||||||
override fun variableNullability(variable: PsiVariable, context: PsiElement): Nullability =
|
override fun variableNullability(variable: PsiVariable, context: PsiElement): Nullability =
|
||||||
DfaUtil.checkNullness(variable, context).toJ2KNullability()
|
dfaCheckNullability(variable, context).toJ2KNullability()
|
||||||
|
|
||||||
override fun methodNullability(method: PsiMethod): Nullability =
|
override fun methodNullability(method: PsiMethod): Nullability =
|
||||||
DfaUtil.inferMethodNullity(method).toJ2KNullability()
|
dfaInferMethodNullability(method).toJ2KNullability()
|
||||||
|
|
||||||
private fun Nullness.toJ2KNullability() = when (this) {
|
private fun IntellijNullability.toJ2KNullability() = when (this) {
|
||||||
Nullness.UNKNOWN -> Nullability.Default
|
IntellijNullability.UNKNOWN -> Nullability.Default
|
||||||
Nullness.NOT_NULL -> Nullability.NotNull
|
IntellijNullability.NOT_NULL -> Nullability.NotNull
|
||||||
Nullness.NULLABLE -> Nullability.Nullable
|
IntellijNullability.NULLABLE -> Nullability.Nullable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.slicer
|
package org.jetbrains.kotlin.idea.slicer
|
||||||
|
|
||||||
import com.intellij.codeInspection.dataFlow.Nullness
|
|
||||||
import com.intellij.ide.util.treeView.AbstractTreeStructure
|
import com.intellij.ide.util.treeView.AbstractTreeStructure
|
||||||
import com.intellij.openapi.actionSystem.DefaultActionGroup
|
import com.intellij.openapi.actionSystem.DefaultActionGroup
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
@@ -24,12 +23,12 @@ import com.intellij.slicer.*
|
|||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
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.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.KtReference
|
||||||
import org.jetbrains.kotlin.idea.references.mainReference
|
import org.jetbrains.kotlin.idea.references.mainReference
|
||||||
import org.jetbrains.kotlin.idea.slicer.compat.PsiElement_N183_NN191
|
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.*
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.isPlainWithEscapes
|
import org.jetbrains.kotlin.psi.psiUtil.isPlainWithEscapes
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.parentsWithSelf
|
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 leafAnalyzer by lazy { SliceLeafAnalyzer(LEAF_ELEMENT_EQUALITY, this) }
|
||||||
val nullnessAnalyzer: SliceNullnessAnalyzerBase by lazy {
|
val nullnessAnalyzer: SliceNullnessAnalyzerBase by lazy {
|
||||||
object : SliceNullnessAnalyzerBase(LEAF_ELEMENT_EQUALITY, this) {
|
object : SliceNullnessAnalyzerBaseEx(LEAF_ELEMENT_EQUALITY, this) {
|
||||||
override fun checkNullness(element: PsiElement?): Nullness {
|
override fun checkNullabilityEx(element: PsiElement?): Nullability {
|
||||||
val types = when (element) {
|
val types = when (element) {
|
||||||
is KtCallableDeclaration -> listOfNotNull((element.resolveToDescriptorIfAny() as? CallableDescriptor)?.returnType)
|
is KtCallableDeclaration -> listOfNotNull((element.resolveToDescriptorIfAny() as? CallableDescriptor)?.returnType)
|
||||||
is KtDeclaration -> emptyList()
|
is KtDeclaration -> emptyList()
|
||||||
@@ -60,10 +59,10 @@ class KotlinSliceProvider : SliceLanguageSupportProvider, SliceUsageTransformer
|
|||||||
else -> emptyList()
|
else -> emptyList()
|
||||||
}
|
}
|
||||||
return when {
|
return when {
|
||||||
types.isEmpty() -> return Nullness.UNKNOWN
|
types.isEmpty() -> return Nullability.UNKNOWN
|
||||||
types.all { KotlinBuiltIns.isNullableNothing(it) } -> Nullness.NULLABLE
|
types.all { KotlinBuiltIns.isNullableNothing(it) } -> Nullability.NULLABLE
|
||||||
types.any { it.isError || TypeUtils.isNullableType(it) || it.isNullabilityFlexible() } -> Nullness.UNKNOWN
|
types.any { it.isError || TypeUtils.isNullableType(it) || it.isNullabilityFlexible() } -> Nullability.UNKNOWN
|
||||||
else -> Nullness.NOT_NULL
|
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