From 84f7bc13b88faece0da83c9af920adf913e378f8 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Fri, 4 Mar 2016 15:19:28 +0100 Subject: [PATCH] inline super: don't warn for unresolved constructor with new array (IDEA-152583) --- .../usageInfo/ReplaceConstructorUsageInfo.java | 6 ++++-- .../inlineSuperClass/arrayTypeElements/after/Test.java | 3 +++ .../inlineSuperClass/arrayTypeElements/before/Super.java | 3 +++ .../inlineSuperClass/arrayTypeElements/before/Test.java | 6 +++++- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/inlineSuperClass/usageInfo/ReplaceConstructorUsageInfo.java b/java/java-impl/src/com/intellij/refactoring/inlineSuperClass/usageInfo/ReplaceConstructorUsageInfo.java index ada7a7222c79..96e8909051e0 100644 --- a/java/java-impl/src/com/intellij/refactoring/inlineSuperClass/usageInfo/ReplaceConstructorUsageInfo.java +++ b/java/java-impl/src/com/intellij/refactoring/inlineSuperClass/usageInfo/ReplaceConstructorUsageInfo.java @@ -38,8 +38,10 @@ public class ReplaceConstructorUsageInfo extends FixableUsageInfo{ final PsiMethod[] constructors = targetClasses[0].getConstructors(); final PsiMethod constructor = element.resolveConstructor(); if (constructor == null) { - if (constructors.length == 1 && constructors[0].getParameterList().getParametersCount() > 0 || constructors.length > 1) { - myConflict = CONSTRUCTOR_MATCHING_SUPER_NOT_FOUND; + if (element.getArgumentList() != null) { + if (constructors.length == 1 && constructors[0].getParameterList().getParametersCount() > 0 || constructors.length > 1) { + myConflict = CONSTRUCTOR_MATCHING_SUPER_NOT_FOUND; + } } } else { final PsiParameter[] superParameters = constructor.getParameterList().getParameters(); diff --git a/java/java-tests/testData/refactoring/inlineSuperClass/arrayTypeElements/after/Test.java b/java/java-tests/testData/refactoring/inlineSuperClass/arrayTypeElements/after/Test.java index 053d10d307ea..3ca94f564951 100644 --- a/java/java-tests/testData/refactoring/inlineSuperClass/arrayTypeElements/after/Test.java +++ b/java/java-tests/testData/refactoring/inlineSuperClass/arrayTypeElements/after/Test.java @@ -1,4 +1,7 @@ class Test { + public Test() { + } + public static Test[] getArray() { return new Test[0]; } diff --git a/java/java-tests/testData/refactoring/inlineSuperClass/arrayTypeElements/before/Super.java b/java/java-tests/testData/refactoring/inlineSuperClass/arrayTypeElements/before/Super.java index 29e1e5a1aa6c..f7d708ed7536 100644 --- a/java/java-tests/testData/refactoring/inlineSuperClass/arrayTypeElements/before/Super.java +++ b/java/java-tests/testData/refactoring/inlineSuperClass/arrayTypeElements/before/Super.java @@ -1,4 +1,7 @@ class Super { + public Super(String s) { + } + public static Super[] getArray() { return new Super[0]; } diff --git a/java/java-tests/testData/refactoring/inlineSuperClass/arrayTypeElements/before/Test.java b/java/java-tests/testData/refactoring/inlineSuperClass/arrayTypeElements/before/Test.java index e22cc838eaab..8b00c86dba00 100644 --- a/java/java-tests/testData/refactoring/inlineSuperClass/arrayTypeElements/before/Test.java +++ b/java/java-tests/testData/refactoring/inlineSuperClass/arrayTypeElements/before/Test.java @@ -1 +1,5 @@ -class Test extends Super {} \ No newline at end of file +class Test extends Super { + public Test() { + super(""); + } +} \ No newline at end of file