hide iterate intention for non expression statements (IDEA-83625)

This commit is contained in:
anna
2012-03-28 15:57:44 +02:00
parent 525863ef9a
commit b68e03ec53
2 changed files with 9 additions and 1 deletions

View File

@@ -112,7 +112,9 @@ public class IterateOverIterableIntention implements IntentionAction {
element = ((PsiExpressionStatement)element).getExpression().getLastChild();
}
while ((element = PsiTreeUtil.getParentOfType(element, PsiExpression.class, true)) != null) {
if (element.getParent() instanceof PsiMethodCallExpression) continue;
final PsiElement parent = element.getParent();
if (parent instanceof PsiMethodCallExpression) continue;
if (!(parent instanceof PsiExpressionStatement)) return null;
final PsiType type = ((PsiExpression)element).getType();
if (type instanceof PsiArrayType || InheritanceUtil.isInheritor(type, CommonClassNames.JAVA_LANG_ITERABLE)) return (PsiExpression)element;
}

View File

@@ -0,0 +1,6 @@
// "Iterate" "false"
class Test {
void foo() {
final Annotation[] annotations = getClass().getAnnotat<caret>ions();
}
}