code: public static <E> Set<E> newSetFromMap(Map<E, Boolean> map) {
      return Platform.newSetFromMap(map);
    }
docs: Returns a set backed by the specified map. The resulting set displays
  the same ordering, concurrency, and performance characteristics as the
  backing map. In essence, this factory method provides a {@link Set}
  implementation corresponding to any {@link Map} implementation. There is no
  need to use this method on a {@link Map} implementation that already has a
  corresponding {@link Set} implementation (such as {@link java.util.HashMap}
  or {@link java.util.TreeMap}).
  
  <p>Each method invocation on the set returned by this method results in
  exactly one method invocation on the backing map or its {@code keySet}
  view, with one exception. The {@code addAll} method is implemented as a
  sequence of {@code put} invocations on the backing map.
  
  <p>The specified map must be empty at the time this method is invoked,
  and should not be accessed directly after this method returns. These
  conditions are ensured if the map is created empty, passed directly
  to this method, and no reference to the map is retained, as illustrated
  in the following code fragment: <pre>  {@code
  
  Set<Object> identityHashSet = Sets.newSetFromMap(
  new IdentityHashMap<Object, Boolean>());}</pre>
  
  <p>This method has the same behavior as the JDK 6 method
  {@code Collections.newSetFromMap()}. The returned set is serializable if
  the backing map is.
  
  @param map the backing map
  @return the set backed by the map
  @throws IllegalArgumentException if {@code map} is not empty