Use candidate descriptor to determine parameter name stability in IDEA
#KT-31349 Fixed
This commit is contained in:
@@ -43,7 +43,7 @@ class BooleanLiteralArgumentInspection(
|
|||||||
if (AddNameToArgumentIntention.detectNameToAdd(argument, shouldBeLastUnnamed = false) == null) return
|
if (AddNameToArgumentIntention.detectNameToAdd(argument, shouldBeLastUnnamed = false) == null) return
|
||||||
|
|
||||||
val resolvedCall = call.resolveToCall() ?: return
|
val resolvedCall = call.resolveToCall() ?: return
|
||||||
if (!resolvedCall.resultingDescriptor.hasStableParameterNames()) return
|
if (!resolvedCall.candidateDescriptor.hasStableParameterNames()) return
|
||||||
val languageVersionSettings = call.languageVersionSettings
|
val languageVersionSettings = call.languageVersionSettings
|
||||||
if (valueArguments.any {
|
if (valueArguments.any {
|
||||||
!AddNameToArgumentIntention.argumentMatchedAndCouldBeNamedInCall(it, resolvedCall, languageVersionSettings)
|
!AddNameToArgumentIntention.argumentMatchedAndCouldBeNamedInCall(it, resolvedCall, languageVersionSettings)
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ class AddNameToArgumentIntention : SelfTargetingIntention<KtValueArgument>(
|
|||||||
|
|
||||||
val callExpr = argumentList.parent as? KtCallElement ?: return null
|
val callExpr = argumentList.parent as? KtCallElement ?: return null
|
||||||
val resolvedCall = givenResolvedCall ?: callExpr.resolveToCall() ?: return null
|
val resolvedCall = givenResolvedCall ?: callExpr.resolveToCall() ?: return null
|
||||||
if (!resolvedCall.resultingDescriptor.hasStableParameterNames()) return null
|
if (!resolvedCall.candidateDescriptor.hasStableParameterNames()) return null
|
||||||
|
|
||||||
if (!argumentMatchedAndCouldBeNamedInCall(argument, resolvedCall, callExpr.languageVersionSettings)) return null
|
if (!argumentMatchedAndCouldBeNamedInCall(argument, resolvedCall, callExpr.languageVersionSettings)) return null
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ class AddNamesToCallArgumentsIntention : SelfTargetingRangeIntention<KtCallEleme
|
|||||||
if (arguments.all { it.isNamed() || it is LambdaArgument }) return null
|
if (arguments.all { it.isNamed() || it is LambdaArgument }) return null
|
||||||
|
|
||||||
val resolvedCall = element.resolveToCall() ?: return null
|
val resolvedCall = element.resolveToCall() ?: return null
|
||||||
if (!resolvedCall.resultingDescriptor.hasStableParameterNames()) return null
|
if (!resolvedCall.candidateDescriptor.hasStableParameterNames()) return null
|
||||||
|
|
||||||
if (arguments.all {
|
if (arguments.all {
|
||||||
AddNameToArgumentIntention.argumentMatchedAndCouldBeNamedInCall(it, resolvedCall, element.languageVersionSettings)
|
AddNameToArgumentIntention.argumentMatchedAndCouldBeNamedInCall(it, resolvedCall, element.languageVersionSettings)
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
// IS_APPLICABLE: false
|
||||||
|
// RUNTIME_WITH_FULL_JDK
|
||||||
|
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
|
fun test() {
|
||||||
|
LinkedList<Int>(<caret>listOf(1, 2))
|
||||||
|
}
|
||||||
@@ -1211,6 +1211,11 @@ public class IntentionTestGenerated extends AbstractIntentionTest {
|
|||||||
runTest("idea/testData/intentions/addNameToArgument/kt11679.kt");
|
runTest("idea/testData/intentions/addNameToArgument/kt11679.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("linkedList.kt")
|
||||||
|
public void testLinkedList() throws Exception {
|
||||||
|
runTest("idea/testData/intentions/addNameToArgument/linkedList.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("notInsideIndices.kt")
|
@TestMetadata("notInsideIndices.kt")
|
||||||
public void testNotInsideIndices() throws Exception {
|
public void testNotInsideIndices() throws Exception {
|
||||||
runTest("idea/testData/intentions/addNameToArgument/notInsideIndices.kt");
|
runTest("idea/testData/intentions/addNameToArgument/notInsideIndices.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user