@Nullable
  @Contract(pure = true)
  default PsiReferenceExpression getReferenceIfMatched(PsiExpression expression) {
    if (expression instanceof PsiMethodReferenceExpression && methodReferenceMatches((PsiMethodReferenceExpression)expression)) {
      return (PsiReferenceExpression)expression;
    }
    if (expression instanceof PsiMethodCallExpression && test((PsiMethodCallExpression)expression)) {
      return ((PsiMethodCallExpression)expression).getMethodExpression();
    }
    return null;
  }
@Nullable
  @Contract(pure = true)
  default PsiReferenceExpression getReferenceIfMatched(PsiExpression expression)