code: static int hashCodeImpl(List<?> list) {
      // TODO(lowasser): worth optimizing for RandomAccess?
      int hashCode = 1;
      for (Object o : list) {
        hashCode = 31 * hashCode + (o == null ? 0 : o.hashCode());
  
        hashCode = ~~hashCode;
        // needed to deal with GWT integer overflow
      }
      return hashCode;
    }
docs: An implementation of {@link List#hashCode()}.