IDEA-182794 "class" not suggested inside method

This commit is contained in:
peter
2018-01-03 15:07:35 +01:00
parent 4bc1566ef6
commit a753417bb9
3 changed files with 10 additions and 3 deletions
@@ -479,11 +479,11 @@ public class JavaKeywordCompletion {
addKeyword(new OverridableSpace(createKeyword(s), TailType.HUMBLE_SPACE_BEFORE_WORD));
}
PsiExpression expression = PsiTreeUtil.getParentOfType(myPosition, PsiExpression.class, true, PsiMember.class);
if (expression != null && expression.getParent() instanceof PsiExpressionStatement) {
if (psiElement().insideStarting(psiElement(PsiLocalVariable.class, PsiExpressionStatement.class)).accepts(myPosition)) {
addKeyword(new OverridableSpace(createKeyword(PsiKeyword.CLASS), TailType.HUMBLE_SPACE_BEFORE_WORD));
}
if (expression == null && PsiTreeUtil.getParentOfType(myPosition, PsiCodeBlock.class, true, PsiMember.class) == null) {
if (PsiTreeUtil.getParentOfType(myPosition, PsiExpression.class, true, PsiMember.class) == null &&
PsiTreeUtil.getParentOfType(myPosition, PsiCodeBlock.class, true, PsiMember.class) == null) {
addKeyword(new OverridableSpace(createKeyword(PsiKeyword.CLASS), TailType.HUMBLE_SPACE_BEFORE_WORD));
addKeyword(new OverridableSpace(createKeyword(PsiKeyword.INTERFACE), TailType.HUMBLE_SPACE_BEFORE_WORD));
if (PsiUtil.isLanguageLevel5OrHigher(myPosition)) {
@@ -0,0 +1,6 @@
public class Util {
void foo() {
c<caret>lass InnerTest {
}
}
}
@@ -147,6 +147,7 @@ public class KeywordCompletionTest extends LightCompletionTestCase {
public void testFinalInLambda() { doTest(2, "final", "float"); }
public void testNoFinalAfterTryBody() { doTest(1, "final", "finally"); }
public void testClassInMethod() { doTest(2, "class", "char"); }
public void testClassInMethodOvertype() { doTest(2, "class", "char"); }
public void testIntInClassArray() { doTest(2, "int", "char", "final"); }
public void testIntInClassArray2() { doTest(2, "int", "char", "final"); }
public void testIntInClassArray3() { doTest(2, "int", "char", "final"); }