disable concatenation intentions in annotation methods (IDEA-173817)

This commit is contained in:
Anna Kozlova
2017-06-05 17:45:46 +03:00
parent dc610f3287
commit 0d1b2368ed
3 changed files with 10 additions and 1 deletions
@@ -16,7 +16,9 @@
package com.siyeh.ipp.concatenation;
import com.intellij.codeInsight.AnnotationUtil;
import com.intellij.psi.PsiAnnotationMethod;
import com.intellij.psi.PsiElement;
import com.intellij.psi.util.PsiTreeUtil;
import com.siyeh.ig.psiutils.ExpressionUtils;
import com.siyeh.ipp.base.PsiElementPredicate;
@@ -33,6 +35,7 @@ class SimpleStringConcatenationPredicate implements PsiElementPredicate {
if (!ExpressionUtils.isConcatenation(element)) {
return false;
}
return !(excludeConcatenationsInsideAnnotations && AnnotationUtil.isInsideAnnotation(element));
return !(excludeConcatenationsInsideAnnotations && (AnnotationUtil.isInsideAnnotation(element) ||
PsiTreeUtil.getParentOfType(element, PsiAnnotationMethod.class) != null));
}
}
@@ -0,0 +1,5 @@
package com.siyeh.ipp.concatenation.string_builder;
public @interface ConstantRequiredInsideAnnotationMethod {
String val() default "hey," <caret>+ "";
}
@@ -10,6 +10,7 @@ public class ReplaceConcatenationWithStringBufferIntentionTest extends IPPTestCa
public void testNonStringConcatenationStart() { doTest(); }
public void testConcatenationInsideAppend() { doTest(); }
public void testConstantRequiredInsideAnnotationMethod() { assertIntentionNotAvailable(); }
@Override
protected String getIntentionName() {