[Java. Intention Actions] Do braces error handling in create field action only when there is implicit class

IDEA-361230

GitOrigin-RevId: 7526d43c90f7d3ebc4edad95d8b31f2e6b42c1fc
This commit is contained in:
Georgii Ustinov
2024-11-13 12:16:35 +00:00
committed by intellij-monorepo-bot
parent 92c7989075
commit 05dd389907
5 changed files with 27 additions and 6 deletions
@@ -9,10 +9,7 @@ import com.intellij.lang.jvm.actions.JvmActionGroup
import com.intellij.lang.jvm.actions.JvmGroupIntentionAction
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiClass
import com.intellij.psi.PsiErrorElement
import com.intellij.psi.PsiFile
import com.intellij.psi.PsiMethod
import com.intellij.psi.*
import com.intellij.psi.util.PsiTreeUtil
internal abstract class CreateFieldActionBase(
@@ -30,6 +27,7 @@ internal abstract class CreateFieldActionBase(
}
private fun isClassBodyValid(target: PsiClass): Boolean {
if (target !is PsiImplicitClass) return true
if (target.lastChild is PsiErrorElement) return false
return target.children
.asSequence()
@@ -0,0 +1,16 @@
// "Create field 'x' in 'SampleClass'" "true-preview"
abstract public class SampleClass {
private int x;
void bar(int t) {
this.x = 1;
}
abstract void foo();
void foo() {
}
@@ -0,0 +1,7 @@
// "Create field 'i' in 'A'" "true-preview"
class A {
private int i<caret>;
Object o = new Object() {
public void f(A a) {
a.i = 0;
@@ -1,4 +1,4 @@
// "Create field 'x' in 'SampleClass'" "false"
// "Create field 'x' in 'SampleClass'" "true-preview"
abstract public class SampleClass {
@@ -1,4 +1,4 @@
// "Create field 'i' in 'A'" "false"
// "Create field 'i' in 'A'" "true-preview"
class A {
Object o = new Object() {