private Ref<ResolveResultList> findProperty(String name,
                                              AccessDirection direction,
                                              boolean inherited,
                                              @Nullable TypeEvalContext context) {
    Ref<ResolveResultList> resultRef = null;
    Property property = myClass.findProperty(name, inherited, context);
    if (property != null) {
      Maybe<PyCallable> accessor = property.getByDirection(direction);
      if (accessor.isDefined()) {
        PyCallable accessor_code = accessor.value();
        ResolveResultList ret = new ResolveResultList();
        if (accessor_code != null) ret.poke(accessor_code, RatedResolveResult.RATE_NORMAL);
        PyTargetExpression site = property.getDefinitionSite();
        if (site != null) ret.poke(site, RatedResolveResult.RATE_LOW);
        if (ret.size() > 0) {
          resultRef = Ref.create(ret);
        }
        else {
          resultRef = Ref.create();
        } // property is found, but the required accessor is explicitly absent
      }
    }
    return resultRef;
  }
private Ref<ResolveResultList> findProperty(String name,
                                              AccessDirection direction,
                                              boolean inherited,
                                              @Nullable TypeEvalContext context)