Ref<ResolveResultList> (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; }