[java-actions] IDEA-343025 "Move initializer to constructor" shouldn't be available for implicitly declared class

- disable for ImplicitClass

GitOrigin-RevId: 1cd67fd89726eb19ccedb5227715a7d95c2c7c50
This commit is contained in:
Mikhail Pyltsin
2024-01-15 22:12:12 +00:00
committed by intellij-monorepo-bot
parent caeb4b6152
commit 8b76574052
2 changed files with 11 additions and 0 deletions
@@ -24,6 +24,7 @@ public final class MoveInitializerToConstructorAction extends BaseMoveInitialize
protected boolean isAvailable(@NotNull PsiField field) {
if (!super.isAvailable(field)) return false;
PsiClass containingClass = field.getContainingClass();
if (containingClass instanceof PsiImplicitClass) return false;
assert containingClass != null;
PsiMethod[] constructors = containingClass.getConstructors();
if (constructors.length > 0 && ContainerUtil.all(constructors, c -> c instanceof SyntheticElement)) return false;
@@ -0,0 +1,10 @@
// "Move initializer to constructor" "false"
private final Integer i<caret> = 2;
void main() {
foo(i);
}
void foo(Integer i) {
System.out.println(i);
}