For each parameter unused: support correctly it() case
Related to KT-22068
This commit is contained in:
@@ -11,12 +11,13 @@ import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.descriptors.VariableDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.impl.ValueParameterDescriptorImpl.WithDestructuringDeclaration
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToCall
|
||||
import org.jetbrains.kotlin.idea.intentions.getCallableDescriptor
|
||||
import org.jetbrains.kotlin.idea.refactoring.getThisLabelName
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall
|
||||
import org.jetbrains.kotlin.resolve.calls.model.VariableAsFunctionResolvedCall
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameOrNull
|
||||
|
||||
class ForEachParameterNotUsedInspection : AbstractKotlinInspection() {
|
||||
@@ -59,10 +60,12 @@ class ForEachParameterNotUsedInspection : AbstractKotlinInspection() {
|
||||
if (element.children.isNotEmpty()) {
|
||||
element.acceptChildren(this)
|
||||
} else {
|
||||
val bindingContext = element.analyze()
|
||||
val resolvedCall = element.getResolvedCall(bindingContext) ?: return
|
||||
val resolvedCall = element.resolveToCall() ?: return
|
||||
|
||||
used = resolvedCall.candidateDescriptor == descriptor
|
||||
used = descriptor == when (resolvedCall) {
|
||||
is VariableAsFunctionResolvedCall -> resolvedCall.variableCall.candidateDescriptor
|
||||
else -> resolvedCall.candidateDescriptor
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user