code: private void processProvideFromPreviousPass(NodeTraversal t, String name, Node parent) {
      JSModule module = t.getModule();
      if (providedNames.containsKey(name)) {
        ProvidedName provided = providedNames.get(name);
        provided.addDefinition(parent, module);
        if (isNamespacePlaceholder(parent)) {
          // Remove this later if it is a simple object literal. Replacing the corresponding
          // ProvidedName will create a new definition.
          // Don't add this as a 'definition' of the provided name to support pushing provides
          // into earlier modules.
          previouslyProvidedDefinitions.add(parent);
        }
      } else {
        // Record this provide created on a previous pass. This can happen if the previous pass had
        // goog.provide('foo.bar');, but all we have now is the rewritten `foo.bar = {};`.
        registerAnyProvidedPrefixes(name, parent, module);
  
        ProvidedName provided = new ProvidedName(name, parent, module, true, true);
        providedNames.put(name, provided);
        provided.addDefinition(parent, module);
      }
    }
docs: Processes the output of processed-provide from a previous pass. This will update our data
  structures in the same manner as if the provide had been processed in this pass.
  
  <p>TODO(b/128120127): delete this method