Introduce resolveToParameterDescriptorIfAny(), drop reified version
This commit is contained in:
@@ -23,6 +23,7 @@ import com.intellij.util.ProcessingContext
|
||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToParameterDescriptorIfAny
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.psi.KtFunction
|
||||
import org.jetbrains.kotlin.psi.KtParameter
|
||||
@@ -119,7 +120,7 @@ class KtParameterPattern : PsiElementPattern<KtParameter, KtParameterPattern>(Kt
|
||||
return withPatternCondition("KtParameterPattern-withAnnotation") { ktParameter, _ ->
|
||||
if (ktParameter.annotationEntries.isEmpty()) return@withPatternCondition false
|
||||
|
||||
val parameterDescriptor = ktParameter.resolveToDescriptorIfAny()
|
||||
val parameterDescriptor = ktParameter.resolveToParameterDescriptorIfAny()
|
||||
parameterDescriptor is ValueParameterDescriptor && parameterDescriptor.annotations.any { annotation ->
|
||||
annotation.fqName?.asString() == fqName
|
||||
}
|
||||
|
||||
@@ -18,10 +18,9 @@ package org.jetbrains.kotlin.idea.quickfix
|
||||
|
||||
import com.intellij.openapi.editor.Editor
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor
|
||||
import org.jetbrains.kotlin.diagnostics.Diagnostic
|
||||
import org.jetbrains.kotlin.diagnostics.Errors
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToParameterDescriptorIfAny
|
||||
import org.jetbrains.kotlin.idea.intentions.RemoveEmptyPrimaryConstructorIntention
|
||||
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
@@ -40,7 +39,7 @@ class RemoveUnusedFunctionParameterFix(parameter: KtParameter) : KotlinQuickFixA
|
||||
val element = element ?: return
|
||||
val primaryConstructor = element.parent?.parent as? KtPrimaryConstructor
|
||||
val parameterList = element.parent as? KtParameterList
|
||||
val parameterDescriptor = element.resolveToDescriptorIfAny(BodyResolveMode.FULL) ?: return
|
||||
val parameterDescriptor = element.resolveToParameterDescriptorIfAny(BodyResolveMode.FULL) ?: return
|
||||
ChangeFunctionSignatureFix.runRemoveParameter(parameterDescriptor, element)
|
||||
val nextParameter = parameterList?.parameters?.getOrNull(parameterDescriptor.index)
|
||||
if (nextParameter != null) {
|
||||
|
||||
+2
-4
@@ -20,9 +20,8 @@ import com.intellij.codeInsight.intention.IntentionAction
|
||||
import com.intellij.openapi.editor.Editor
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.refactoring.rename.RenameProcessor
|
||||
import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor
|
||||
import org.jetbrains.kotlin.diagnostics.Diagnostic
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToParameterDescriptorIfAny
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.psi.KtParameter
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType
|
||||
@@ -45,8 +44,7 @@ class RenameParameterToMatchOverriddenMethodFix(
|
||||
companion object : KotlinSingleIntentionActionFactory() {
|
||||
override fun createAction(diagnostic: Diagnostic): IntentionAction? {
|
||||
val parameter = diagnostic.psiElement.getNonStrictParentOfType<KtParameter>() ?: return null
|
||||
val parameterDescriptor = parameter.resolveToDescriptorIfAny(BodyResolveMode.FULL) as? ValueParameterDescriptor
|
||||
?: return null
|
||||
val parameterDescriptor = parameter.resolveToParameterDescriptorIfAny(BodyResolveMode.FULL) ?: return null
|
||||
val parameterFromSuperclassName = parameterDescriptor
|
||||
.overriddenDescriptors
|
||||
.map { it.name.asString() }
|
||||
|
||||
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.descriptors.VariableDescriptor
|
||||
import org.jetbrains.kotlin.diagnostics.Diagnostic
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToParameterDescriptorIfAny
|
||||
import org.jetbrains.kotlin.idea.core.ShortenReferences
|
||||
import org.jetbrains.kotlin.idea.core.isVisible
|
||||
import org.jetbrains.kotlin.idea.core.moveCaret
|
||||
@@ -167,7 +168,7 @@ object SuperClassNotInitialized : KotlinIntentionActionsFactory() {
|
||||
val nameString = parameter.name.asString()
|
||||
val existingParameter = oldParameters.firstOrNull { it.name == nameString }
|
||||
if (existingParameter != null) {
|
||||
val type = (existingParameter.resolveToDescriptorIfAny() as? VariableDescriptor)?.type
|
||||
val type = (existingParameter.resolveToParameterDescriptorIfAny() as? VariableDescriptor)?.type
|
||||
?: return null
|
||||
if (type.isSubtypeOf(parameter.type)) continue // use existing parameter
|
||||
}
|
||||
|
||||
@@ -256,7 +256,7 @@ class InflowSlicer(
|
||||
.forEach { (it.element?.parent as? KtProperty)?.processPropertyAssignments() }
|
||||
}
|
||||
|
||||
val parameterDescriptor = resolveToDescriptorIfAny(BodyResolveMode.FULL) ?: return
|
||||
val parameterDescriptor = resolveToParameterDescriptorIfAny(BodyResolveMode.FULL) ?: return
|
||||
|
||||
(function as? KtFunction)?.processCalls(parentUsage.scope.toSearchScope()) body@ {
|
||||
val refElement = it.element ?: return@body
|
||||
|
||||
Reference in New Issue
Block a user