Create from Usage: Suggest "Create function/secondary constructor" quick fix on argument type mismatch
#KT-11864 Fixed (cherry picked from commit 1912783)
This commit is contained in:
@@ -284,6 +284,8 @@ class QuickFixRegistrar : QuickFixContributor {
|
||||
TOO_MANY_ARGUMENTS.registerFactory(*CreateCallableFromCallActionFactory.INSTANCES)
|
||||
EXPRESSION_EXPECTED_PACKAGE_FOUND.registerFactory(*CreateCallableFromCallActionFactory.INSTANCES)
|
||||
NONE_APPLICABLE.registerFactory(*CreateCallableFromCallActionFactory.INSTANCES)
|
||||
TYPE_MISMATCH.registerFactory(CreateCallableFromCallActionFactory.Function)
|
||||
TYPE_MISMATCH.registerFactory(CreateCallableFromCallActionFactory.Constructor)
|
||||
|
||||
NO_VALUE_FOR_PARAMETER.registerFactory(CreateConstructorFromDelegationCallActionFactory)
|
||||
TOO_MANY_ARGUMENTS.registerFactory(CreateConstructorFromDelegationCallActionFactory)
|
||||
|
||||
+5
-4
@@ -31,10 +31,7 @@ import org.jetbrains.kotlin.idea.refactoring.getExtractionContainers
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.load.java.descriptors.JavaClassDescriptor
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getAssignmentByLHS
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getParentOfTypeAndBranch
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getQualifiedExpressionForSelectorOrThis
|
||||
import org.jetbrains.kotlin.psi.psiUtil.*
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.bindingContextUtil.getReferenceTargets
|
||||
import org.jetbrains.kotlin.resolve.calls.callUtil.getCall
|
||||
@@ -74,6 +71,10 @@ sealed class CreateCallableFromCallActionFactory<E : KtExpression>(
|
||||
Errors.TOO_MANY_ARGUMENTS,
|
||||
Errors.NONE_APPLICABLE -> diagElement.getNonStrictParentOfType<KtCallExpression>()
|
||||
|
||||
Errors.TYPE_MISMATCH -> diagElement
|
||||
.getParentOfTypeAndBranch<KtValueArgument> { getArgumentExpression() }
|
||||
?.getStrictParentOfType<KtCallExpression>()
|
||||
|
||||
else -> throw AssertionError("Unexpected diagnostic: ${diagnostic.factory}")
|
||||
} as? KtExpression
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user