KT-12015 (Kotlin Lint False Positive for Bundle.getInt())
Java approach is not sufficient here, in Kotlin receivers can be implicit. Use Kotlin extension/dispatch receivers to figure out the receiver type for our method call. (cherry picked from commit cdedf1d)
This commit is contained in:
@@ -27,6 +27,9 @@ class JavaUAssertExpression(
|
||||
val condition: UExpression by lz { JavaConverter.convertOrEmpty(psi.assertCondition, this) }
|
||||
val message: UExpression? by lz { JavaConverter.convertOrNull(psi.assertDescription, this) }
|
||||
|
||||
override val receiverType: UType?
|
||||
get() = null
|
||||
|
||||
override val functionReference: USimpleReferenceExpression?
|
||||
get() = null
|
||||
|
||||
|
||||
@@ -26,6 +26,13 @@ class JavaUCallExpression(
|
||||
override val psi: PsiMethodCallExpression,
|
||||
override val parent: UElement
|
||||
) : JavaAbstractUElement(), UCallExpression, PsiElementBacked, JavaUElementWithType {
|
||||
override val receiverType: UType?
|
||||
get() {
|
||||
val qualifiedExpression = parent as? UQualifiedExpression ?: return null
|
||||
if (qualifiedExpression.selector != this) return null
|
||||
return qualifiedExpression.receiver.getExpressionType()
|
||||
}
|
||||
|
||||
override val kind: UastCallKind
|
||||
get() = UastCallKind.FUNCTION_CALL
|
||||
|
||||
@@ -63,6 +70,9 @@ class JavaConstructorUCallExpression(
|
||||
}
|
||||
}
|
||||
|
||||
override val receiverType: UType?
|
||||
get() = null
|
||||
|
||||
override val functionReference: USimpleReferenceExpression?
|
||||
get() = null
|
||||
|
||||
@@ -119,6 +129,9 @@ class JavaArrayInitializerUCallExpression(
|
||||
override val psi: PsiArrayInitializerExpression,
|
||||
override val parent: UElement
|
||||
) : JavaAbstractUElement(), UCallExpression, PsiElementBacked, JavaUElementWithType, JavaEvaluatableUElement {
|
||||
override val receiverType: UType?
|
||||
get() = null
|
||||
|
||||
override val functionReference: USimpleReferenceExpression?
|
||||
get() = null
|
||||
|
||||
@@ -150,6 +163,9 @@ class JavaAnnotationArrayInitializerUCallExpression(
|
||||
override val psi: PsiArrayInitializerMemberValue,
|
||||
override val parent: UElement
|
||||
) : JavaAbstractUElement(), UCallExpression, PsiElementBacked, JavaUElementWithType, JavaEvaluatableUElement {
|
||||
override val receiverType: UType?
|
||||
get() = null
|
||||
|
||||
override val kind: UastCallKind
|
||||
get() = UastCallKind.ARRAY_INITIALIZER
|
||||
|
||||
|
||||
Reference in New Issue
Block a user