@Nullable
  private static Boolean matchReferenceExpression(@NotNull PsiReferenceExpression pattern,
                                                  @NotNull PsiReferenceExpression candidate,
                                                  @NotNull Match match) {
    final PsiExpression patternQualifier = pattern.getQualifierExpression();
    final PsiExpression candidateQualifier = candidate.getQualifierExpression();
    if (patternQualifier == null) {
      return matchUnqualifiedPatternReference(pattern, candidateQualifier, match);
    }
    if (candidateQualifier == null) {
      return matchUnqualifiedCandidateReference(patternQualifier, candidate, match);
    }
    if (patternQualifier instanceof PsiThisExpression && candidateQualifier instanceof PsiThisExpression) {
      return matchThisQualifierReference((PsiThisExpression)patternQualifier, (PsiThisExpression)candidateQualifier);
    }
    return null;
  }
@Nullable
  private static Boolean matchReferenceExpression(@NotNull PsiReferenceExpression pattern,
                                                  @NotNull PsiReferenceExpression candidate,
                                                  @NotNull Match match)