@Override
  public boolean equals(final Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;

    final CandidateInfo that = (CandidateInfo)o;

    if (myPackagePrefixPackageReference != that.myPackagePrefixPackageReference) return false;
    if (myStaticsProblem != that.myStaticsProblem) return false;
    if (!Objects.equals(myAccessClass, that.myAccessClass)) return false;
    if (isAccessible() != that.isAccessible()) return false;
    if (!myCandidate.equals(that.myCandidate)) return false;
    if (!Objects.equals(myCurrentFileResolveContext, that.myCurrentFileResolveContext)) return false;
    if (!Objects.equals(myPlace, that.myPlace)) return false;
    return mySubstitutor.equals(that.mySubstitutor);
  }
@Override
  public boolean equals(final Object o)