private static PsiExpression getContainingExpression(PsiExpression expression) {
      final PsiElement parent = expression.getParent();
      if (parent instanceof PsiPolyadicExpression polyParent && TypeConversionUtil.isNumericType(polyParent.getType())) {
        final IElementType tokenType = polyParent.getOperationTokenType();
        if (!isShiftToken(tokenType) || expression == polyParent.getOperands()[0]) {
          return getContainingExpression(polyParent);
        }
      }
      if (parent instanceof PsiParenthesizedExpression ||
          parent instanceof PsiPrefixExpression ||
          parent instanceof PsiConditionalExpression) {
        return getContainingExpression((PsiExpression)parent);
      }
      return expression;
    }
private static PsiExpression getContainingExpression(PsiExpression expression)