diff --git a/java/java-impl-inspections/src/com/intellij/codeInspection/classCanBeRecord/ConstructorBodyProcessor.java b/java/java-impl-inspections/src/com/intellij/codeInspection/classCanBeRecord/ConstructorBodyProcessor.java index 9b8baed1b08a..170413c01234 100644 --- a/java/java-impl-inspections/src/com/intellij/codeInspection/classCanBeRecord/ConstructorBodyProcessor.java +++ b/java/java-impl-inspections/src/com/intellij/codeInspection/classCanBeRecord/ConstructorBodyProcessor.java @@ -19,7 +19,6 @@ import static com.intellij.psi.PsiModifier.STATIC; @NotNullByDefault final class ConstructorBodyProcessor { - private final PsiClass containingClass; private final PsiMethod constructor; private final Map paramsToFields = new HashMap<>(); // TODO(bartekpacia): change type to SequencedMap once we move to Java 21 @@ -42,7 +41,6 @@ final class ConstructorBodyProcessor { ConstructorBodyProcessor(PsiMethod constructor, List instanceFields) { - this.containingClass = Objects.requireNonNull(constructor.getContainingClass(), "constructor must have containing class"); this.constructor = constructor; this.instanceFields = instanceFields; final PsiCodeBlock body = Objects.requireNonNull(constructor.getBody(), "constructor must have body"); @@ -60,6 +58,9 @@ final class ConstructorBodyProcessor { } final PsiExpression expression = expressionStatement.getExpression(); + final PsiClass containingClass = constructor.getContainingClass(); + if (containingClass == null) return; + if (expression instanceof PsiMethodCallExpression methodCallExpr && JavaPsiConstructorUtil.isChainedConstructorCall(methodCallExpr)) { delegating = true; for (PsiExpression arg : methodCallExpr.getArgumentList().getExpressions()) {