code: private GinjectorBindings findSource(GinjectorBindings ginjector, Key<?> key) {
      Set<GinjectorBindings> visited = new LinkedHashSet<GinjectorBindings>();
  
      GinjectorBindings lastGinjector = null;
      while (ginjector != null) {
        if (!visited.add(ginjector)) {
          logger.log(Type.ERROR, PrettyPrinter.format(
            "Cycle detected in bindings for %s", key));
          for (GinjectorBindings visitedBindings : visited) {
            PrettyPrinter.log(logger, Type.ERROR, "  %s", visitedBindings);
          }
          return ginjector; // at this point, just return *something*
        }
        
        lastGinjector = ginjector;
        ginjector = linkedGinjector(ginjector.getBinding(key));
      }
      return lastGinjector;
    }
docs: Find the ginjector that we "really" get the binding for key from.  That is,
  if it is inherited from a child/parent, return that injector.