void (PsiPolyadicExpression context, List<PsiExpression> operands, boolean and) { int[] indices = getRedundantOperandIndices(context, operands, and); for (int index : indices) { List<PsiExpression> dependencies = operands.subList(index + 1, operands.size()); PsiExpression operand = operands.get(index); dependencies = minimizeDependencies(context, operand, and, dependencies); if (dependencies.isEmpty()) continue; PsiExpression stripped = PsiUtil.skipParenthesizedExprDown(operand); if (stripped == null) continue; DfaValueFactory factory = new DfaValueFactory(myHolder.getProject()); Set<DfaVariableValue> notNullValues = getNotNullValues(factory, operand); if (notNullValues == null || !notNullValues.equals(getNotNullValues(factory, operands.get(index + 1)))) continue; String operandText = PsiExpressionTrimRenderer.render(stripped); String description = InspectionGadgetsBundle.message("inspection.condition.covered.by.further.condition.descr", operandText, dependencies.size(), PsiExpressionTrimRenderer .render(Objects.requireNonNull(PsiUtil.skipParenthesizedExprDown(dependencies.get(0))))); myHolder.registerProblem(operand, description, new RemoveRedundantPolyadicOperandFix(operandText)); } }