docs: static private ResultWithPath findInObject(AbstractConfigObject obj, ResolveContext context, Path path)
              throws NotPossibleToResolve {
          // resolve ONLY portions of the object which are along our path
          if (ConfigImpl.traceSubstitutionsEnabled())
              ConfigImpl.trace("*** finding '" + path + "' in " + obj);
          Path restriction = context.restrictToChild();
          ResolveResult<? extends AbstractConfigValue> partiallyResolved = context.restrict(path).resolve(obj,
                  new ResolveSource(obj));
          ResolveContext newContext = partiallyResolved.context.restrict(restriction);
          if (partiallyResolved.value instanceof AbstractConfigObject) {
              ValueWithPath pair = findInObject((AbstractConfigObject) partiallyResolved.value, path);
              return new ResultWithPath(ResolveResult.make(newContext, pair.value), pair.pathFromRoot);
          } else {
              throw new ConfigException.BugOrBroken("resolved object to non-object " + obj + " to " + partiallyResolved);
          }
      }