code: function mergeResolvedReflectiveProviders(providers, normalizedProvidersMap) {
      for (var /** @type {?} */ i = 0; i < providers.length; i++) {
          var /** @type {?} */ provider = providers[i];
          var /** @type {?} */ existing = normalizedProvidersMap.get(provider.key.id);
          if (existing) {
              if (provider.multiProvider !== existing.multiProvider) {
                  throw new MixingMultiProvidersWithRegularProvidersError(existing, provider);
              }
              if (provider.multiProvider) {
                  for (var /** @type {?} */ j = 0; j < provider.resolvedFactories.length; j++) {
                      existing.resolvedFactories.push(provider.resolvedFactories[j]);
                  }
              }
              else {
                  normalizedProvidersMap.set(provider.key.id, provider);
              }
          }
          else {
              var /** @type {?} */ resolvedProvider = void 0;
              if (provider.multiProvider) {
                  resolvedProvider = new ResolvedReflectiveProvider_(provider.key, provider.resolvedFactories.slice(), provider.multiProvider);
              }
              else {
                  resolvedProvider = provider;
              }
              normalizedProvidersMap.set(provider.key.id, resolvedProvider);
          }
      }
      return normalizedProvidersMap;
  }
docs: Merges a list of ResolvedProviders into a list where
  each key is contained exactly once and multi providers
  have been merged.
  @param {?} providers
  @param {?} normalizedProvidersMap
  @return {?}