private ReferringObject asReferringObject(@NotNull ObjectReference referrer, @NotNull ObjectReference referee) {
      Field field = findField(referee, referrer);
      if (field != null) {
        return new FieldReferringObject(referrer, field);
      }

      return new SimpleReferringObject(referrer);
    }
private ReferringObject asReferringObject(@NotNull ObjectReference referrer, @NotNull ObjectReference referee)