diff --git a/java/java-impl-refactorings/src/com/intellij/refactoring/inline/InlineToAnonymousClassHandler.java b/java/java-impl-refactorings/src/com/intellij/refactoring/inline/InlineToAnonymousClassHandler.java index f6b74b76fb8b..455e7fa2ace8 100644 --- a/java/java-impl-refactorings/src/com/intellij/refactoring/inline/InlineToAnonymousClassHandler.java +++ b/java/java-impl-refactorings/src/com/intellij/refactoring/inline/InlineToAnonymousClassHandler.java @@ -322,7 +322,7 @@ public class InlineToAnonymousClassHandler extends JavaInlineActionHandler { if (parentElement instanceof PsiThisExpression) { return JavaBundle.message("class.cannot.be.inlined.because.it.is.used.as.a.this.qualifier"); } - if (parentElement instanceof PsiNewExpression newExpression) { + if (parentElement instanceof PsiNewExpression newExpression && !newExpression.isArrayCreation()) { final PsiMethod[] constructors = aClass.getConstructors(); if (constructors.length == 0) { PsiExpressionList newArgumentList = newExpression.getArgumentList(); diff --git a/java/java-tests/testData/refactoring/inlineToAnonymousClass/ArrayInitializer2.java b/java/java-tests/testData/refactoring/inlineToAnonymousClass/ArrayInitializer2.java new file mode 100644 index 000000000000..b11cb778eb9c --- /dev/null +++ b/java/java-tests/testData/refactoring/inlineToAnonymousClass/ArrayInitializer2.java @@ -0,0 +1,9 @@ +class A { + void test() { + Inner[] data = new Inner[]{new Inner(5)}; + } + + static class Inner { + Inner(int x) {} + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/inlineToAnonymousClass/ArrayInitializer2.java.after b/java/java-tests/testData/refactoring/inlineToAnonymousClass/ArrayInitializer2.java.after new file mode 100644 index 000000000000..e49096cffc94 --- /dev/null +++ b/java/java-tests/testData/refactoring/inlineToAnonymousClass/ArrayInitializer2.java.after @@ -0,0 +1,6 @@ +class A { + void test() { + Object[] data = new Object[]{new Object()}; + } + +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/refactoring/inline/InlineToAnonymousClassTest.java b/java/java-tests/testSrc/com/intellij/java/refactoring/inline/InlineToAnonymousClassTest.java index 8c727655f1db..7c6ed75a4817 100644 --- a/java/java-tests/testSrc/com/intellij/java/refactoring/inline/InlineToAnonymousClassTest.java +++ b/java/java-tests/testSrc/com/intellij/java/refactoring/inline/InlineToAnonymousClassTest.java @@ -1,4 +1,4 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.java.refactoring.inline; import com.intellij.JavaTestUtil; @@ -170,6 +170,10 @@ public class InlineToAnonymousClassTest extends LightRefactoringTestCase { doTest(false, false); } + public void testArrayInitializer2() { + doTest(false, false); + } + public void testVarargs() { doTest(false, false); }