IDEA-204900 Smart Enter fails to add function body if staying at annotation

GitOrigin-RevId: 1216c56cb12209f569f88ce4afea2528166b3437
This commit is contained in:
peter
2019-05-20 17:25:46 +02:00
committed by intellij-monorepo-bot
parent c9f5024a9b
commit a556114614
4 changed files with 13 additions and 1 deletions

View File

@@ -289,7 +289,10 @@ public class JavaSmartEnterProcessor extends SmartEnterProcessor {
}
for (PsiElement each : SyntaxTraverser.psiApi().parents(atCaret).skip(1)) {
if (each instanceof PsiMember || each instanceof PsiAnnotation || each instanceof PsiImportStatementBase || each instanceof PsiPackageStatement) {
if (each instanceof PsiMember ||
each instanceof PsiImportStatementBase ||
each instanceof PsiPackageStatement ||
each instanceof PsiAnnotation && PsiTreeUtil.hasErrorElements(each)) {
return each;
}
if (each instanceof PsiCodeBlock || each instanceof PsiComment) {

View File

@@ -0,0 +1,3 @@
class A {
void foo(@Not<caret>Null String p)
}

View File

@@ -0,0 +1,5 @@
class A {
void foo(@NotNull String p) {
<caret>
}
}

View File

@@ -178,6 +178,7 @@ public class CompleteStatementTest extends EditorActionTestCase {
public void testDefaultMethodBody() { doTest(); }
public void testStaticInterfaceMethodBody() { doTest(); }
public void testPrivateInterfaceMethodBody() { doTest(); }
public void testAddMethodBodyFromInsideAnnotation() { doTest(); }
public void testArrayInitializerRBracket() { doTest(); }
public void testArrayInitializerRBrace() { doTest(); }
public void testArrayInitializerSeveralLines() { doTest(); }