@Nullable("when failed to extract")
    private static List<PsiExpression> extractJoinParts(@Nullable PsiExpression expression) {
      List<PsiExpression> joinParts = new SmartList<>();
      if (expression == null) return joinParts;
      return tryExtractJoinPart(expression, joinParts) ? joinParts : null;
    }
@Nullable("when failed to extract")
    private static List<PsiExpression> extractJoinParts(@Nullable PsiExpression expression)