@Provides
  @Singleton
  ImmutableMap<String, ? extends SoyFunction> provideSoyFunctionsMap(
      Set<SoyFunction> soyFunctionsSet) {
    Map<String, SoyFunction> mapBuilder = new LinkedHashMap<>();
    for (SoyFunction function : soyFunctionsSet) {
      SoyFunction old = mapBuilder.put(function.getName(), function);
      if (old != null && !old.getClass().getName().equals(function.getClass().getName())) {
        throw new IllegalStateException(
            "Found two functions with the same name: '"
                + function.getName()
                + "' and different implementations: "
                + function
                + " vs "
                + old);
      }
    }
    return ImmutableMap.copyOf(mapBuilder);
  }
@ Provides @ Singleton ImmutableMap < String , ? extends SoyFunction > provideSoyFunctionsMap ( Set < SoyFunction > soyFunctionsSet ) { Map < String , SoyFunction > mapBuilder = new LinkedHashMap < > ( ) ; for ( SoyFunction function : soyFunctionsSet ) { SoyFunction old = mapBuilder . put ( function . getName ( ) , function ) ; if ( old != null && ! old . getClass ( ) . getName ( ) . equals ( function . getClass ( ) . getName ( ) ) ) { throw new IllegalStateException ( "Found two functions with the same name: '" + function . getName ( ) + "' and different implementations: " + function + " vs " + old ) ; } } return ImmutableMap . copyOf ( mapBuilder ) ; }
Builds and provides the map of all installed SoyFunctions (name to function).

@param soyFunctionsSet The installed set of SoyFunctions (from Guice Multibinder).