List<PsiExpression> (PsiExpression expression) { if (!(expression instanceof PsiPolyadicExpression polyadicExpression)) { return Collections.emptyList(); } IElementType sign = polyadicExpression.getOperationTokenType(); Boolean stopper = (sign == JavaTokenType.ANDAND) ? Boolean.FALSE : sign == JavaTokenType.OROR ? Boolean.TRUE : null; PsiExpression[] operands = polyadicExpression.getOperands(); List<PsiExpression> sideEffects = new ArrayList<>(); for (PsiExpression operand : operands) { if (stopper != null && stopper.equals(evaluate(operand))) { break; } sideEffects.addAll(SideEffectChecker.extractSideEffectExpressions(operand)); } return sideEffects; }