Java: make Inline parameter Flexible Constructor Bodies aware (IDEA-377621)

GitOrigin-RevId: ee720fecb1fb4c447188eab28090bc858d22119e
This commit is contained in:
Bas Leijdekkers
2025-08-19 09:09:25 +00:00
committed by intellij-monorepo-bot
parent 40d25dbdc3
commit c44bcf0283
4 changed files with 35 additions and 28 deletions
@@ -7,6 +7,7 @@ import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.Key;
import com.intellij.openapi.util.Ref;
import com.intellij.pom.java.JavaFeature;
import com.intellij.psi.*;
import com.intellij.psi.controlFlow.DefUseUtil;
import com.intellij.psi.search.searches.ReferencesSearch;
@@ -136,11 +137,10 @@ public class InlineParameterExpressionProcessor extends BaseRefactoringProcessor
}
}
final PsiParameter[] parameters = myMethod.getParameterList().getParameters();
final List<ParameterInfoImpl> psiParameters = new ArrayList<>();
int paramIdx = 0;
final String paramName = myParameter.getName();
for (PsiParameter param : parameters) {
for (PsiParameter param : myMethod.getParameterList().getParameters()) {
if (!Comparing.strEqual(paramName, param.getName())) {
psiParameters.add(ParameterInfoImpl.create(paramIdx).withName(param.getName()).withType(param.getType()));
}
@@ -291,9 +291,9 @@ public class InlineParameterExpressionProcessor extends BaseRefactoringProcessor
}
private @Nullable PsiElement findAnchorForLocalVariableDeclaration(PsiCodeBlock body) {
PsiMethodCallExpression call = JavaPsiConstructorUtil.findThisOrSuperCallInConstructor(myMethod);
if (call != null) {
return call.getParent();
if (!JavaFeature.STATEMENTS_BEFORE_SUPER.isSufficient(PsiUtil.getLanguageLevel(body))) {
PsiMethodCallExpression call = JavaPsiConstructorUtil.findThisOrSuperCallInConstructor(myMethod);
if (call != null) return call.getParent();
}
return body.getLBrace();
}