Invoke 'Add name to argument fix' not only on simple name callee expressions

This commit is contained in:
Svetlana Isakova
2014-07-05 12:51:41 +04:00
parent cec01237d0
commit e62b4cfb5f
4 changed files with 17 additions and 3 deletions
@@ -63,9 +63,6 @@ public class AddNameToArgumentFix extends JetIntentionAction<JetValueArgument> {
JetCallElement callElement = PsiTreeUtil.getParentOfType(argument, JetCallElement.class);
assert callElement != null : "The argument has to be inside a function or constructor call";
JetExpression callee = callElement.getCalleeExpression();
if (!(callee instanceof JetReferenceExpression)) return Collections.emptyList();
BindingContext context = ResolvePackage.getBindingContext(argument.getContainingJetFile());
ResolvedCall<?> resolvedCall = BindingContextUtilPackage.getResolvedCall(callElement, context);
if (resolvedCall == null) return Collections.emptyList();
@@ -0,0 +1,6 @@
// "Add name to argument: 'b = 42'" "true"
fun String.invoke(a: Int, b: Int) {}
fun g() {
""(a = 1, b = 42)
}
@@ -0,0 +1,6 @@
// "Add name to argument: 'b = 42'" "true"
fun String.invoke(a: Int, b: Int) {}
fun g() {
""(a = 1, <caret>42)
}
@@ -477,6 +477,11 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/quickfix/checkArguments"), Pattern.compile("^before(\\w+)\\.kt$"), true);
}
@TestMetadata("beforeInvokeOnString.kt")
public void testInvokeOnString() throws Exception {
doTest("idea/testData/quickfix/checkArguments/beforeInvokeOnString.kt");
}
@TestMetadata("beforeMixedNamedAndPositionalArguments.kt")
public void testMixedNamedAndPositionalArguments() throws Exception {
doTest("idea/testData/quickfix/checkArguments/beforeMixedNamedAndPositionalArguments.kt");