Don't suggest cast when !! is possible #KT-18033 Fixed
This commit is contained in:
committed by
Mikhail Glukhikh
parent
af3a123c15
commit
0fd42bc747
@@ -32,6 +32,7 @@ import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
||||
import org.jetbrains.kotlin.types.KotlinType
|
||||
import org.jetbrains.kotlin.types.asFlexibleType
|
||||
import org.jetbrains.kotlin.types.typeUtil.isSubtypeOf
|
||||
import org.jetbrains.kotlin.types.typeUtil.makeNullable
|
||||
|
||||
class CastExpressionFix(element: KtExpression, type: KotlinType) : KotlinQuickFixAction<KtExpression>(element) {
|
||||
private val typeSourceCode = IdeDescriptorRenderers.SOURCE_CODE.renderType(type)
|
||||
@@ -39,6 +40,7 @@ class CastExpressionFix(element: KtExpression, type: KotlinType) : KotlinQuickFi
|
||||
private val upOrDownCast: Boolean = run {
|
||||
val expressionType = element.analyze(BodyResolveMode.PARTIAL).getType(element)
|
||||
expressionType != null && (type.isSubtypeOf(expressionType) || expressionType.isSubtypeOf(type))
|
||||
&& expressionType != type.makeNullable() //covered by AddExclExclCallFix
|
||||
}
|
||||
|
||||
override fun getFamilyName() = "Cast expression"
|
||||
|
||||
Reference in New Issue
Block a user