AddMissingRequiredAnnotationParametersFix: handle nameless parameter as value (EA-105427)

This commit is contained in:
Dmitry Batkovich
2017-08-09 12:47:51 +03:00
parent 01b36513dc
commit c4f2ca674c
4 changed files with 43 additions and 2 deletions

View File

@@ -90,9 +90,12 @@ public class AddMissingRequiredAnnotationParametersFix implements IntentionActio
final PsiAnnotationParameterList parameterList = myAnnotation.getParameterList();
parameterList.deleteChildRange(addedParameters[0], addedParameters[addedParameters.length - 1]);
for (final PsiNameValuePair addedParameter : addedParameters) {
final String name = addedParameter.getName();
String name = addedParameter.getName();
final PsiAnnotationMemberValue value = addedParameter.getValue();
if (name == null || value == null) {
if (name == null) {
name = "value";
}
if (value == null) {
LOG.error(String.format("Invalid annotation parameter name = %s, value = %s", name, value));
continue;
}

View File

@@ -0,0 +1,17 @@
// "Add missing annotation parameters - value4, value3, value2, value1" "true"
class Test {
@MyAnnotation(value = "xxx", value4 = , value3 = , value2 = , value1 = )
void m() {
}
@interface MyAnnotation {
String value();
String value4();
String value3();
String value2();
String value1();
}
}

View File

@@ -0,0 +1,17 @@
// "Add missing annotation parameters - value4, value3, value2, value1" "true"
class Test {
@MyAnnotati<caret>on("xxx")
void m() {
}
@interface MyAnnotation {
String value();
String value4();
String value3();
String value2();
String value1();
}
}

View File

@@ -36,6 +36,10 @@ public class AddMissingRequiredAnnotationParametersTest extends LightQuickFixTes
doTest();
}
public void testFewParameters3() {
doTest();
}
public void testFewParametersWithoutOrder() {
doTest();
}