Fix ArrayIndexOutOfBoundsException in named parameters completion

This commit is contained in:
Nikolay Krasko
2014-03-22 20:05:26 +04:00
parent de891ebc6e
commit b05fb38dcd
4 changed files with 25 additions and 4 deletions
@@ -221,11 +221,13 @@ public class QuickFixUtil {
isPositionalArgument = false; isPositionalArgument = false;
} }
else if (isPositionalArgument) { else if (isPositionalArgument) {
ValueParameterDescriptor parameter = callableDescriptor.getValueParameters().get(idx); if (callableDescriptor.getValueParameters().size() > idx) {
if (argument != ignoreArgument) { ValueParameterDescriptor parameter = callableDescriptor.getValueParameters().get(idx);
usedParameters.add(parameter.getName().asString()); if (argument != ignoreArgument) {
usedParameters.add(parameter.getName().asString());
}
idx++;
} }
idx++;
} }
} }
@@ -0,0 +1,9 @@
fun test() {}
fun some() {
val localVal = 1
test(<caret>)
}
// Test no exceptions are thrown
// INVOCATION_COUNT: 1
// EXIST: localVal
@@ -498,6 +498,11 @@ public class JSBasicCompletionTestGenerated extends AbstractJSBasicCompletionTes
doTest("idea/testData/completion/basic/common/namedParameters/CompactTypeNames.kt"); doTest("idea/testData/completion/basic/common/namedParameters/CompactTypeNames.kt");
} }
@TestMetadata("ForEmptyParametersFunction.kt")
public void testForEmptyParametersFunction() throws Exception {
doTest("idea/testData/completion/basic/common/namedParameters/ForEmptyParametersFunction.kt");
}
@TestMetadata("InParameterExpression.kt") @TestMetadata("InParameterExpression.kt")
public void testInParameterExpression() throws Exception { public void testInParameterExpression() throws Exception {
doTest("idea/testData/completion/basic/common/namedParameters/InParameterExpression.kt"); doTest("idea/testData/completion/basic/common/namedParameters/InParameterExpression.kt");
@@ -498,6 +498,11 @@ public class JvmBasicCompletionTestGenerated extends AbstractJvmBasicCompletionT
doTest("idea/testData/completion/basic/common/namedParameters/CompactTypeNames.kt"); doTest("idea/testData/completion/basic/common/namedParameters/CompactTypeNames.kt");
} }
@TestMetadata("ForEmptyParametersFunction.kt")
public void testForEmptyParametersFunction() throws Exception {
doTest("idea/testData/completion/basic/common/namedParameters/ForEmptyParametersFunction.kt");
}
@TestMetadata("InParameterExpression.kt") @TestMetadata("InParameterExpression.kt")
public void testInParameterExpression() throws Exception { public void testInParameterExpression() throws Exception {
doTest("idea/testData/completion/basic/common/namedParameters/InParameterExpression.kt"); doTest("idea/testData/completion/basic/common/namedParameters/InParameterExpression.kt");