code: private GinjectorBindings locateHighestAccessibleSource(Key<?> key, GinjectorBindings origin) {
      // If we don't already have a binding, and the key is "pinned", it means that this injector
      // is supposed to contain a binding, but it needs to have one created implicitly.  We return
      // null so that we attempt to create the implicit binding.
      if (!origin.isBound(key) && origin.isPinned(key)) {
        return null;
      }
  
      GinjectorBindings source = null;
      for (GinjectorBindings iter = origin; iter != null; iter = iter.getParent()) {
        // If the key is already explicitly bound, or has a pin indicating that it
        // will be explicitly bound once it gets visited (we visit children before
        // parents) then we can access the binding from the given location.
        if (iter.isBound(key) || iter.isPinned(key)) {
          source = iter;
        }
      }
      return source;
    }
docs: Find the highest binding in the Ginjector tree that could be used to supply the given key.
  
  <p>This takes care not to use a higher parent binding if the parent only has the binding
  because its exposed from this Ginjector.  This leads to problems because the resolution
  algorithm won't actually create the binding here if it can just use a parents binding.
  
  @param key The binding to search for
  @return the highest ginjector that contains the key or {@code null} if none contain it