re2 1.24.0 → 1.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/LICENSE +15 -20
  2. package/README.md +63 -4
  3. package/binding.gyp +1 -2
  4. package/lib/addon.cc +9 -5
  5. package/lib/exec.cc +4 -4
  6. package/lib/match.cc +4 -4
  7. package/lib/new.cc +6 -6
  8. package/lib/pattern.cc +148 -1
  9. package/lib/replace.cc +5 -4
  10. package/lib/search.cc +1 -1
  11. package/lib/set.cc +85 -10
  12. package/lib/test.cc +1 -1
  13. package/lib/unicode_properties.h +15840 -0
  14. package/lib/wrapped_re2.h +40 -4
  15. package/lib/wrapped_re2_set.h +3 -1
  16. package/llms-full.txt +497 -0
  17. package/llms.txt +135 -0
  18. package/package.json +19 -11
  19. package/re2.d.ts +2 -0
  20. package/re2.js +1 -0
  21. package/vendor/abseil-cpp/CMake/AbseilDll.cmake +87 -74
  22. package/vendor/abseil-cpp/CMakeLists.txt +3 -3
  23. package/vendor/abseil-cpp/FAQ.md +130 -79
  24. package/vendor/abseil-cpp/MODULE.bazel +6 -7
  25. package/vendor/abseil-cpp/absl/BUILD.bazel +6 -0
  26. package/vendor/abseil-cpp/absl/algorithm/BUILD.bazel +4 -0
  27. package/vendor/abseil-cpp/absl/algorithm/CMakeLists.txt +4 -0
  28. package/vendor/abseil-cpp/absl/algorithm/algorithm.h +34 -2
  29. package/vendor/abseil-cpp/absl/algorithm/container.h +164 -17
  30. package/vendor/abseil-cpp/absl/algorithm/container_test.cc +390 -13
  31. package/vendor/abseil-cpp/absl/base/BUILD.bazel +53 -6
  32. package/vendor/abseil-cpp/absl/base/CMakeLists.txt +28 -4
  33. package/vendor/abseil-cpp/absl/base/attributes.h +61 -42
  34. package/vendor/abseil-cpp/absl/base/call_once.h +1 -0
  35. package/vendor/abseil-cpp/absl/base/casts.h +8 -1
  36. package/vendor/abseil-cpp/absl/base/casts_test.cc +3 -6
  37. package/vendor/abseil-cpp/absl/base/config.h +53 -9
  38. package/vendor/abseil-cpp/absl/base/exception_safety_testing_test.cc +9 -9
  39. package/vendor/abseil-cpp/absl/base/fast_type_id.h +30 -2
  40. package/vendor/abseil-cpp/absl/base/fast_type_id_test.cc +3 -0
  41. package/vendor/abseil-cpp/absl/base/internal/exception_safety_testing.h +15 -12
  42. package/vendor/abseil-cpp/absl/base/internal/hardening.h +136 -0
  43. package/vendor/abseil-cpp/absl/base/internal/hardening_test.cc +168 -0
  44. package/vendor/abseil-cpp/absl/base/internal/iterator_traits.h +2 -2
  45. package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.cc +6 -0
  46. package/vendor/abseil-cpp/absl/base/internal/low_level_scheduling.h +77 -15
  47. package/vendor/abseil-cpp/absl/base/internal/sysinfo.cc +1 -2
  48. package/vendor/abseil-cpp/absl/base/internal/thread_identity.h +52 -0
  49. package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.h +5 -0
  50. package/vendor/abseil-cpp/absl/base/macros.h +36 -20
  51. package/vendor/abseil-cpp/absl/base/nullability.h +4 -3
  52. package/vendor/abseil-cpp/absl/base/optimization.h +3 -2
  53. package/vendor/abseil-cpp/absl/base/optimization_test.cc +4 -3
  54. package/vendor/abseil-cpp/absl/base/options.h +55 -1
  55. package/vendor/abseil-cpp/absl/base/policy_checks.h +5 -5
  56. package/vendor/abseil-cpp/absl/base/{internal/throw_delegate.cc → throw_delegate.cc} +9 -7
  57. package/vendor/abseil-cpp/absl/base/{internal/throw_delegate.h → throw_delegate.h} +4 -14
  58. package/vendor/abseil-cpp/absl/base/throw_delegate_test.cc +19 -28
  59. package/vendor/abseil-cpp/absl/cleanup/BUILD.bazel +2 -0
  60. package/vendor/abseil-cpp/absl/cleanup/CMakeLists.txt +2 -0
  61. package/vendor/abseil-cpp/absl/cleanup/cleanup.h +3 -2
  62. package/vendor/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -2
  63. package/vendor/abseil-cpp/absl/container/BUILD.bazel +19 -7
  64. package/vendor/abseil-cpp/absl/container/CMakeLists.txt +6 -5
  65. package/vendor/abseil-cpp/absl/container/btree_benchmark.cc +3 -5
  66. package/vendor/abseil-cpp/absl/container/btree_set.h +5 -5
  67. package/vendor/abseil-cpp/absl/container/btree_test.cc +11 -14
  68. package/vendor/abseil-cpp/absl/container/chunked_queue.h +8 -6
  69. package/vendor/abseil-cpp/absl/container/chunked_queue_test.cc +5 -5
  70. package/vendor/abseil-cpp/absl/container/fixed_array.h +14 -13
  71. package/vendor/abseil-cpp/absl/container/fixed_array_test.cc +3 -3
  72. package/vendor/abseil-cpp/absl/container/flat_hash_map.h +18 -6
  73. package/vendor/abseil-cpp/absl/container/flat_hash_map_test.cc +34 -1
  74. package/vendor/abseil-cpp/absl/container/flat_hash_set.h +21 -7
  75. package/vendor/abseil-cpp/absl/container/flat_hash_set_test.cc +39 -7
  76. package/vendor/abseil-cpp/absl/container/inlined_vector.h +29 -29
  77. package/vendor/abseil-cpp/absl/container/inlined_vector_test.cc +2 -2
  78. package/vendor/abseil-cpp/absl/container/internal/btree.h +32 -24
  79. package/vendor/abseil-cpp/absl/container/internal/btree_container.h +16 -17
  80. package/vendor/abseil-cpp/absl/container/internal/common.h +6 -5
  81. package/vendor/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -1
  82. package/vendor/abseil-cpp/absl/container/internal/compressed_tuple.h +16 -16
  83. package/vendor/abseil-cpp/absl/container/internal/compressed_tuple_test.cc +13 -13
  84. package/vendor/abseil-cpp/absl/container/internal/container_memory.h +41 -31
  85. package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults.h +2 -2
  86. package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.h +4 -4
  87. package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits.h +3 -3
  88. package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +27 -19
  89. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +2 -2
  90. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.h +0 -17
  91. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +12 -30
  92. package/vendor/abseil-cpp/absl/container/internal/inlined_vector.h +28 -28
  93. package/vendor/abseil-cpp/absl/container/internal/layout.h +13 -13
  94. package/vendor/abseil-cpp/absl/container/internal/layout_test.cc +3 -2
  95. package/vendor/abseil-cpp/absl/container/internal/raw_hash_map.h +60 -62
  96. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc +59 -39
  97. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.h +619 -326
  98. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +25 -2
  99. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +4 -4
  100. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +575 -159
  101. package/vendor/abseil-cpp/absl/container/linked_hash_map.h +2 -2
  102. package/vendor/abseil-cpp/absl/container/node_hash_map.h +27 -15
  103. package/vendor/abseil-cpp/absl/container/node_hash_map_test.cc +34 -0
  104. package/vendor/abseil-cpp/absl/container/node_hash_set.h +25 -11
  105. package/vendor/abseil-cpp/absl/container/node_hash_set_test.cc +39 -7
  106. package/vendor/abseil-cpp/absl/container/sample_element_size_test.cc +7 -4
  107. package/vendor/abseil-cpp/absl/crc/BUILD.bazel +0 -1
  108. package/vendor/abseil-cpp/absl/crc/CMakeLists.txt +2 -3
  109. package/vendor/abseil-cpp/absl/crc/crc32c_benchmark.cc +2 -1
  110. package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.cc +6 -6
  111. package/vendor/abseil-cpp/absl/crc/internal/crc.cc +4 -6
  112. package/vendor/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +41 -0
  113. package/vendor/abseil-cpp/absl/crc/internal/crc_internal.h +0 -16
  114. package/vendor/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +143 -81
  115. package/vendor/abseil-cpp/absl/debugging/BUILD.bazel +9 -31
  116. package/vendor/abseil-cpp/absl/debugging/CMakeLists.txt +3 -33
  117. package/vendor/abseil-cpp/absl/debugging/internal/demangle_rust.h +8 -0
  118. package/vendor/abseil-cpp/absl/debugging/internal/demangle_test.cc +2 -1
  119. package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.cc +12 -2
  120. package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.h +2 -3
  121. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +11 -0
  122. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +13 -4
  123. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +14 -7
  124. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +4 -0
  125. package/vendor/abseil-cpp/absl/debugging/internal/symbolize.h +46 -36
  126. package/vendor/abseil-cpp/absl/debugging/stacktrace.cc +18 -58
  127. package/vendor/abseil-cpp/absl/debugging/stacktrace.h +5 -48
  128. package/vendor/abseil-cpp/absl/debugging/stacktrace_test.cc +10 -124
  129. package/vendor/abseil-cpp/absl/debugging/symbolize.cc +20 -2
  130. package/vendor/abseil-cpp/absl/debugging/symbolize_elf.inc +58 -106
  131. package/vendor/abseil-cpp/absl/debugging/symbolize_test.cc +37 -36
  132. package/vendor/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +4 -4
  133. package/vendor/abseil-cpp/absl/flags/BUILD.bazel +6 -3
  134. package/vendor/abseil-cpp/absl/flags/CMakeLists.txt +1 -1
  135. package/vendor/abseil-cpp/absl/flags/commandlineflag.h +8 -6
  136. package/vendor/abseil-cpp/absl/flags/commandlineflag_test.cc +1 -1
  137. package/vendor/abseil-cpp/absl/flags/flag_benchmark.cc +5 -5
  138. package/vendor/abseil-cpp/absl/flags/flag_test.cc +30 -30
  139. package/vendor/abseil-cpp/absl/flags/internal/flag.cc +4 -4
  140. package/vendor/abseil-cpp/absl/flags/internal/flag.h +6 -6
  141. package/vendor/abseil-cpp/absl/flags/marshalling.h +2 -28
  142. package/vendor/abseil-cpp/absl/flags/marshalling_test.cc +12 -11
  143. package/vendor/abseil-cpp/absl/flags/reflection_test.cc +1 -1
  144. package/vendor/abseil-cpp/absl/functional/BUILD.bazel +26 -1
  145. package/vendor/abseil-cpp/absl/functional/CMakeLists.txt +29 -1
  146. package/vendor/abseil-cpp/absl/functional/any_invocable.h +13 -14
  147. package/vendor/abseil-cpp/absl/functional/any_invocable_test.cc +46 -47
  148. package/vendor/abseil-cpp/absl/functional/bind_back.h +79 -0
  149. package/vendor/abseil-cpp/absl/functional/bind_back_test.cc +237 -0
  150. package/vendor/abseil-cpp/absl/functional/bind_front.h +7 -1
  151. package/vendor/abseil-cpp/absl/functional/bind_front_test.cc +4 -4
  152. package/vendor/abseil-cpp/absl/functional/function_ref_test.cc +2 -2
  153. package/vendor/abseil-cpp/absl/functional/internal/any_invocable.h +28 -28
  154. package/vendor/abseil-cpp/absl/functional/internal/back_binder.h +95 -0
  155. package/vendor/abseil-cpp/absl/functional/internal/front_binder.h +4 -4
  156. package/vendor/abseil-cpp/absl/functional/internal/function_ref.h +2 -2
  157. package/vendor/abseil-cpp/absl/functional/overload_test.cc +13 -13
  158. package/vendor/abseil-cpp/absl/hash/BUILD.bazel +1 -2
  159. package/vendor/abseil-cpp/absl/hash/CMakeLists.txt +1 -2
  160. package/vendor/abseil-cpp/absl/hash/hash.h +1 -1
  161. package/vendor/abseil-cpp/absl/hash/hash_test.cc +14 -20
  162. package/vendor/abseil-cpp/absl/hash/hash_testing.h +11 -9
  163. package/vendor/abseil-cpp/absl/hash/internal/city.cc +39 -51
  164. package/vendor/abseil-cpp/absl/hash/internal/hash.cc +165 -47
  165. package/vendor/abseil-cpp/absl/hash/internal/hash.h +86 -27
  166. package/vendor/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +36 -1
  167. package/vendor/abseil-cpp/absl/hash/internal/spy_hash_state.h +8 -5
  168. package/vendor/abseil-cpp/absl/log/BUILD.bazel +5 -2
  169. package/vendor/abseil-cpp/absl/log/CMakeLists.txt +5 -3
  170. package/vendor/abseil-cpp/absl/log/absl_vlog_is_on.h +0 -2
  171. package/vendor/abseil-cpp/absl/log/internal/BUILD.bazel +15 -1
  172. package/vendor/abseil-cpp/absl/log/internal/log_message.cc +5 -4
  173. package/vendor/abseil-cpp/absl/log/internal/log_message.h +14 -0
  174. package/vendor/abseil-cpp/absl/log/internal/nullstream.h +1 -1
  175. package/vendor/abseil-cpp/absl/log/internal/proto.cc +13 -0
  176. package/vendor/abseil-cpp/absl/log/internal/structured_proto.cc +5 -5
  177. package/vendor/abseil-cpp/absl/log/internal/structured_proto.h +6 -5
  178. package/vendor/abseil-cpp/absl/log/internal/structured_proto_test.cc +3 -3
  179. package/vendor/abseil-cpp/absl/log/internal/vlog_config.cc +2 -2
  180. package/vendor/abseil-cpp/absl/log/internal/vlog_config_benchmark.cc +3 -3
  181. package/vendor/abseil-cpp/absl/log/log_format_test.cc +19 -2
  182. package/vendor/abseil-cpp/absl/log/log_modifier_methods_test.cc +18 -0
  183. package/vendor/abseil-cpp/absl/log/log_streamer.h +29 -2
  184. package/vendor/abseil-cpp/absl/log/log_streamer_test.cc +18 -0
  185. package/vendor/abseil-cpp/absl/log/scoped_mock_log_test.cc +1 -1
  186. package/vendor/abseil-cpp/absl/log/vlog_is_on.h +0 -2
  187. package/vendor/abseil-cpp/absl/log/vlog_is_on_test.cc +6 -5
  188. package/vendor/abseil-cpp/absl/memory/memory.h +55 -5
  189. package/vendor/abseil-cpp/absl/memory/memory_test.cc +55 -1
  190. package/vendor/abseil-cpp/absl/meta/BUILD.bazel +2 -0
  191. package/vendor/abseil-cpp/absl/meta/internal/requires.h +1 -1
  192. package/vendor/abseil-cpp/absl/meta/type_traits.h +119 -55
  193. package/vendor/abseil-cpp/absl/meta/type_traits_test.cc +7 -7
  194. package/vendor/abseil-cpp/absl/numeric/int128_test.cc +6 -6
  195. package/vendor/abseil-cpp/absl/profiling/BUILD.bazel +3 -1
  196. package/vendor/abseil-cpp/absl/profiling/hashtable.cc +0 -4
  197. package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.cc +32 -33
  198. package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.h +25 -2
  199. package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder_test.cc +8 -5
  200. package/vendor/abseil-cpp/absl/random/BUILD.bazel +13 -1
  201. package/vendor/abseil-cpp/absl/random/CMakeLists.txt +23 -2
  202. package/vendor/abseil-cpp/absl/random/benchmarks.cc +1 -1
  203. package/vendor/abseil-cpp/absl/random/beta_distribution.h +2 -2
  204. package/vendor/abseil-cpp/absl/random/bit_gen_ref.h +26 -53
  205. package/vendor/abseil-cpp/absl/random/bit_gen_ref_test.cc +43 -0
  206. package/vendor/abseil-cpp/absl/random/discrete_distribution.h +1 -1
  207. package/vendor/abseil-cpp/absl/random/distributions.h +17 -17
  208. package/vendor/abseil-cpp/absl/random/distributions_test.cc +4 -4
  209. package/vendor/abseil-cpp/absl/random/exponential_distribution.h +1 -1
  210. package/vendor/abseil-cpp/absl/random/internal/BUILD.bazel +4 -2
  211. package/vendor/abseil-cpp/absl/random/internal/distribution_caller.h +8 -21
  212. package/vendor/abseil-cpp/absl/random/internal/fast_uniform_bits.h +1 -1
  213. package/vendor/abseil-cpp/absl/random/internal/generate_real.h +1 -1
  214. package/vendor/abseil-cpp/absl/random/internal/iostream_state_saver.h +2 -2
  215. package/vendor/abseil-cpp/absl/random/internal/iostream_state_saver_test.cc +3 -2
  216. package/vendor/abseil-cpp/absl/random/internal/mock_helpers.h +14 -40
  217. package/vendor/abseil-cpp/absl/random/internal/nonsecure_base.h +2 -2
  218. package/vendor/abseil-cpp/absl/random/internal/nonsecure_base_test.cc +2 -2
  219. package/vendor/abseil-cpp/absl/random/internal/pcg_engine.h +6 -6
  220. package/vendor/abseil-cpp/absl/random/internal/pcg_engine_test.cc +3 -2
  221. package/vendor/abseil-cpp/absl/random/internal/randen_detect.cc +6 -6
  222. package/vendor/abseil-cpp/absl/random/internal/randen_engine.h +2 -2
  223. package/vendor/abseil-cpp/absl/random/internal/randen_engine_test.cc +3 -2
  224. package/vendor/abseil-cpp/absl/random/internal/randen_test.cc +3 -2
  225. package/vendor/abseil-cpp/absl/random/internal/salted_seed_seq.h +6 -5
  226. package/vendor/abseil-cpp/absl/random/internal/seed_material.cc +4 -4
  227. package/vendor/abseil-cpp/absl/random/internal/seed_material.h +2 -1
  228. package/vendor/abseil-cpp/absl/random/internal/traits.h +21 -0
  229. package/vendor/abseil-cpp/absl/random/internal/traits_test.cc +5 -0
  230. package/vendor/abseil-cpp/absl/random/internal/uniform_helper.h +23 -23
  231. package/vendor/abseil-cpp/absl/random/internal/uniform_helper_test.cc +2 -1
  232. package/vendor/abseil-cpp/absl/random/mocking_access.h +74 -0
  233. package/vendor/abseil-cpp/absl/random/mocking_bit_gen.h +9 -19
  234. package/vendor/abseil-cpp/absl/random/uniform_real_distribution.h +1 -1
  235. package/vendor/abseil-cpp/absl/status/BUILD.bazel +81 -0
  236. package/vendor/abseil-cpp/absl/status/CMakeLists.txt +91 -0
  237. package/vendor/abseil-cpp/absl/status/internal/status_internal.cc +63 -18
  238. package/vendor/abseil-cpp/absl/status/internal/status_internal.h +26 -2
  239. package/vendor/abseil-cpp/absl/status/internal/status_matchers.h +22 -8
  240. package/vendor/abseil-cpp/absl/status/internal/statusor_internal.h +43 -43
  241. package/vendor/abseil-cpp/absl/status/status.cc +62 -70
  242. package/vendor/abseil-cpp/absl/status/status.h +249 -23
  243. package/vendor/abseil-cpp/absl/status/status_benchmark.cc +12 -0
  244. package/vendor/abseil-cpp/absl/status/status_builder.cc +196 -0
  245. package/vendor/abseil-cpp/absl/status/status_builder.h +978 -0
  246. package/vendor/abseil-cpp/absl/status/status_builder_test.cc +380 -0
  247. package/vendor/abseil-cpp/absl/status/status_macros.h +484 -0
  248. package/vendor/abseil-cpp/absl/status/status_macros_test.cc +634 -0
  249. package/vendor/abseil-cpp/absl/status/status_matchers.h +2 -1
  250. package/vendor/abseil-cpp/absl/status/status_matchers_test.cc +3 -4
  251. package/vendor/abseil-cpp/absl/status/status_payload_printer.h +3 -2
  252. package/vendor/abseil-cpp/absl/status/status_test.cc +443 -13
  253. package/vendor/abseil-cpp/absl/status/statusor.h +69 -36
  254. package/vendor/abseil-cpp/absl/status/statusor_test.cc +132 -35
  255. package/vendor/abseil-cpp/absl/strings/BUILD.bazel +42 -7
  256. package/vendor/abseil-cpp/absl/strings/CMakeLists.txt +33 -4
  257. package/vendor/abseil-cpp/absl/strings/ascii.h +1 -2
  258. package/vendor/abseil-cpp/absl/strings/atod_manual_test.cc +5 -5
  259. package/vendor/abseil-cpp/absl/strings/cord.cc +26 -7
  260. package/vendor/abseil-cpp/absl/strings/cord.h +23 -13
  261. package/vendor/abseil-cpp/absl/strings/cord_buffer.h +4 -2
  262. package/vendor/abseil-cpp/absl/strings/cord_test.cc +85 -9
  263. package/vendor/abseil-cpp/absl/strings/escaping.cc +183 -35
  264. package/vendor/abseil-cpp/absl/strings/escaping.h +12 -2
  265. package/vendor/abseil-cpp/absl/strings/escaping_benchmark.cc +1 -3
  266. package/vendor/abseil-cpp/absl/strings/escaping_test.cc +22 -18
  267. package/vendor/abseil-cpp/absl/strings/has_absl_stringify_test.cc +2 -2
  268. package/vendor/abseil-cpp/absl/strings/has_ostream_operator_test.cc +2 -2
  269. package/vendor/abseil-cpp/absl/strings/internal/append_and_overwrite.h +10 -10
  270. package/vendor/abseil-cpp/absl/strings/internal/cordz_sample_token_test.cc +1 -1
  271. package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +6 -0
  272. package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +1 -0
  273. package/vendor/abseil-cpp/absl/strings/internal/escaping.cc +0 -141
  274. package/vendor/abseil-cpp/absl/strings/internal/escaping.h +2 -26
  275. package/vendor/abseil-cpp/absl/strings/internal/generic_printer_internal.h +23 -2
  276. package/vendor/abseil-cpp/absl/strings/internal/generic_printer_test.cc +6 -2
  277. package/vendor/abseil-cpp/absl/strings/internal/resize_uninitialized.h +31 -24
  278. package/vendor/abseil-cpp/absl/strings/internal/resize_uninitialized_test.cc +16 -41
  279. package/vendor/abseil-cpp/absl/strings/internal/stl_type_traits.h +39 -39
  280. package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -22
  281. package/vendor/abseil-cpp/absl/strings/internal/str_format/bind.h +2 -2
  282. package/vendor/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +12 -20
  283. package/vendor/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +510 -307
  284. package/vendor/abseil-cpp/absl/strings/internal/str_join_internal.h +0 -1
  285. package/vendor/abseil-cpp/absl/strings/internal/str_split_internal.h +9 -10
  286. package/vendor/abseil-cpp/absl/strings/internal/string_constant_test.cc +6 -5
  287. package/vendor/abseil-cpp/absl/strings/internal/stringify_sink.h +12 -0
  288. package/vendor/abseil-cpp/absl/strings/internal/stringify_stream.h +119 -0
  289. package/vendor/abseil-cpp/absl/strings/internal/stringify_stream_test.cc +111 -0
  290. package/vendor/abseil-cpp/absl/strings/numbers.cc +406 -0
  291. package/vendor/abseil-cpp/absl/strings/numbers.h +4 -0
  292. package/vendor/abseil-cpp/absl/strings/numbers_test.cc +33 -0
  293. package/vendor/abseil-cpp/absl/strings/resize_and_overwrite.h +10 -6
  294. package/vendor/abseil-cpp/absl/strings/str_cat.h +36 -1
  295. package/vendor/abseil-cpp/absl/strings/str_cat_benchmark.cc +1 -2
  296. package/vendor/abseil-cpp/absl/strings/str_cat_test.cc +28 -0
  297. package/vendor/abseil-cpp/absl/strings/str_join_test.cc +4 -4
  298. package/vendor/abseil-cpp/absl/strings/str_split.h +11 -6
  299. package/vendor/abseil-cpp/absl/strings/str_split_test.cc +13 -0
  300. package/vendor/abseil-cpp/absl/strings/substitute.h +2 -2
  301. package/vendor/abseil-cpp/absl/synchronization/BUILD.bazel +3 -0
  302. package/vendor/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +21 -0
  303. package/vendor/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +5 -0
  304. package/vendor/abseil-cpp/absl/synchronization/mutex.cc +13 -0
  305. package/vendor/abseil-cpp/absl/synchronization/mutex.h +32 -2
  306. package/vendor/abseil-cpp/absl/synchronization/mutex_test.cc +17 -3
  307. package/vendor/abseil-cpp/absl/time/BUILD.bazel +80 -0
  308. package/vendor/abseil-cpp/absl/time/CMakeLists.txt +73 -0
  309. package/vendor/abseil-cpp/absl/time/clock.h +3 -0
  310. package/vendor/abseil-cpp/absl/time/clock_interface.cc +71 -0
  311. package/vendor/abseil-cpp/absl/time/clock_interface.h +93 -0
  312. package/vendor/abseil-cpp/absl/time/clock_interface_test.cc +128 -0
  313. package/vendor/abseil-cpp/absl/time/format.cc +3 -10
  314. package/vendor/abseil-cpp/absl/time/format_test.cc +12 -0
  315. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +90 -89
  316. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format_test.cc +80 -5
  317. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +1 -2
  318. package/vendor/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +10 -15
  319. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -1
  320. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Vancouver +0 -0
  321. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ho_Chi_Minh +0 -0
  322. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Phnom_Penh +0 -0
  323. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Saigon +0 -0
  324. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tbilisi +0 -0
  325. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Vientiane +0 -0
  326. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Pacific +0 -0
  327. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Chisinau +0 -0
  328. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Tiraspol +0 -0
  329. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +1 -1
  330. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +3 -3
  331. package/vendor/abseil-cpp/absl/time/simulated_clock.cc +225 -0
  332. package/vendor/abseil-cpp/absl/time/simulated_clock.h +109 -0
  333. package/vendor/abseil-cpp/absl/time/simulated_clock_test.cc +614 -0
  334. package/vendor/abseil-cpp/absl/types/BUILD.bazel +116 -0
  335. package/vendor/abseil-cpp/absl/types/CMakeLists.txt +100 -0
  336. package/vendor/abseil-cpp/absl/types/any.h +26 -4
  337. package/vendor/abseil-cpp/absl/types/any_span.h +1067 -0
  338. package/vendor/abseil-cpp/absl/types/any_span_benchmark.cc +258 -0
  339. package/vendor/abseil-cpp/absl/types/any_span_test.cc +1210 -0
  340. package/vendor/abseil-cpp/absl/types/compare.h +4 -4
  341. package/vendor/abseil-cpp/absl/types/internal/any_span.h +477 -0
  342. package/vendor/abseil-cpp/absl/types/internal/span.h +5 -6
  343. package/vendor/abseil-cpp/absl/types/optional.h +30 -3
  344. package/vendor/abseil-cpp/absl/types/optional_ref.h +295 -0
  345. package/vendor/abseil-cpp/absl/types/optional_ref_test.cc +370 -0
  346. package/vendor/abseil-cpp/absl/types/source_location.cc +18 -0
  347. package/vendor/abseil-cpp/absl/types/source_location.h +172 -0
  348. package/vendor/abseil-cpp/absl/types/source_location_test.cc +139 -0
  349. package/vendor/abseil-cpp/absl/types/span.h +19 -23
  350. package/vendor/abseil-cpp/absl/types/variant.h +75 -18
  351. package/vendor/abseil-cpp/absl/types/variant_test.cc +23 -23
  352. package/vendor/abseil-cpp/absl/utility/BUILD.bazel +1 -0
  353. package/vendor/abseil-cpp/absl/utility/CMakeLists.txt +1 -0
  354. package/vendor/abseil-cpp/absl/utility/utility.h +99 -16
  355. package/vendor/abseil-cpp/ci/absl_alternate_options.h +2 -0
  356. package/vendor/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +10 -4
  357. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +13 -6
  358. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +10 -4
  359. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +12 -5
  360. package/vendor/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +9 -2
  361. package/vendor/abseil-cpp/ci/linux_docker_containers.sh +4 -4
  362. package/vendor/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +10 -3
  363. package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +8 -2
  364. package/vendor/abseil-cpp/ci/macos_xcode_bazel.sh +4 -3
  365. package/vendor/abseil-cpp/ci/macos_xcode_cmake.sh +2 -2
  366. package/vendor/abseil-cpp/ci/windows_clangcl_bazel.bat +1 -1
  367. package/vendor/abseil-cpp/ci/windows_msvc_bazel.bat +1 -1
  368. package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.cc +0 -118
  369. package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.h +0 -71
  370. package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer_test.cc +0 -97
@@ -48,25 +48,25 @@ struct IsSpecializationImpl : std::false_type {};
48
48
  template <template <typename...> class T, typename... Args>
49
49
  struct IsSpecializationImpl<T<Args...>, T> : std::true_type {};
50
50
  template <typename C, template <typename...> class T>
51
- using IsSpecialization = IsSpecializationImpl<absl::decay_t<C>, T>;
51
+ using IsSpecialization = IsSpecializationImpl<std::decay_t<C>, T>;
52
52
 
53
53
  template <typename C>
54
54
  struct IsArrayImpl : std::false_type {};
55
55
  template <template <typename, size_t> class A, typename T, size_t N>
56
56
  struct IsArrayImpl<A<T, N>> : std::is_same<A<T, N>, std::array<T, N>> {};
57
57
  template <typename C>
58
- using IsArray = IsArrayImpl<absl::decay_t<C>>;
58
+ using IsArray = IsArrayImpl<std::decay_t<C>>;
59
59
 
60
60
  template <typename C>
61
61
  struct IsBitsetImpl : std::false_type {};
62
62
  template <template <size_t> class B, size_t N>
63
63
  struct IsBitsetImpl<B<N>> : std::is_same<B<N>, std::bitset<N>> {};
64
64
  template <typename C>
65
- using IsBitset = IsBitsetImpl<absl::decay_t<C>>;
65
+ using IsBitset = IsBitsetImpl<std::decay_t<C>>;
66
66
 
67
67
  template <typename C>
68
68
  struct IsSTLContainer
69
- : absl::disjunction<
69
+ : std::disjunction<
70
70
  IsArray<C>, IsBitset<C>, IsSpecialization<C, std::deque>,
71
71
  IsSpecialization<C, std::forward_list>,
72
72
  IsSpecialization<C, std::list>, IsSpecialization<C, std::map>,
@@ -85,14 +85,14 @@ struct IsBaseOfSpecializationImpl : std::false_type {};
85
85
  // template.
86
86
  template <typename C, template <typename, typename> class T>
87
87
  struct IsBaseOfSpecializationImpl<
88
- C, T, absl::void_t<typename C::value_type, typename C::allocator_type>>
88
+ C, T, std::void_t<typename C::value_type, typename C::allocator_type>>
89
89
  : std::is_base_of<C,
90
90
  T<typename C::value_type, typename C::allocator_type>> {};
91
91
  template <typename C, template <typename, typename, typename> class T>
92
92
  struct IsBaseOfSpecializationImpl<
93
93
  C, T,
94
- absl::void_t<typename C::key_type, typename C::key_compare,
95
- typename C::allocator_type>>
94
+ std::void_t<typename C::key_type, typename C::key_compare,
95
+ typename C::allocator_type>>
96
96
  : std::is_base_of<C, T<typename C::key_type, typename C::key_compare,
97
97
  typename C::allocator_type>> {};
98
98
  template <typename C, template <typename, typename, typename, typename> class T>
@@ -116,14 +116,14 @@ template <typename C,
116
116
  template <typename, typename, typename, typename, typename> class T>
117
117
  struct IsBaseOfSpecializationImpl<
118
118
  C, T,
119
- absl::void_t<typename C::key_type, typename C::mapped_type,
120
- typename C::hasher, typename C::key_equal,
121
- typename C::allocator_type>>
119
+ std::void_t<typename C::key_type, typename C::mapped_type,
120
+ typename C::hasher, typename C::key_equal,
121
+ typename C::allocator_type>>
122
122
  : std::is_base_of<C, T<typename C::key_type, typename C::mapped_type,
123
123
  typename C::hasher, typename C::key_equal,
124
124
  typename C::allocator_type>> {};
125
125
  template <typename C, template <typename...> class T>
126
- using IsBaseOfSpecialization = IsBaseOfSpecializationImpl<absl::decay_t<C>, T>;
126
+ using IsBaseOfSpecialization = IsBaseOfSpecializationImpl<std::decay_t<C>, T>;
127
127
 
128
128
  template <typename C>
129
129
  struct IsBaseOfArrayImpl : std::false_type {};
@@ -131,30 +131,30 @@ template <template <typename, size_t> class A, typename T, size_t N>
131
131
  struct IsBaseOfArrayImpl<A<T, N>> : std::is_base_of<A<T, N>, std::array<T, N>> {
132
132
  };
133
133
  template <typename C>
134
- using IsBaseOfArray = IsBaseOfArrayImpl<absl::decay_t<C>>;
134
+ using IsBaseOfArray = IsBaseOfArrayImpl<std::decay_t<C>>;
135
135
 
136
136
  template <typename C>
137
137
  struct IsBaseOfBitsetImpl : std::false_type {};
138
138
  template <template <size_t> class B, size_t N>
139
139
  struct IsBaseOfBitsetImpl<B<N>> : std::is_base_of<B<N>, std::bitset<N>> {};
140
140
  template <typename C>
141
- using IsBaseOfBitset = IsBaseOfBitsetImpl<absl::decay_t<C>>;
141
+ using IsBaseOfBitset = IsBaseOfBitsetImpl<std::decay_t<C>>;
142
142
 
143
143
  template <typename C>
144
144
  struct IsBaseOfSTLContainer
145
- : absl::disjunction<IsBaseOfArray<C>, IsBaseOfBitset<C>,
146
- IsBaseOfSpecialization<C, std::deque>,
147
- IsBaseOfSpecialization<C, std::forward_list>,
148
- IsBaseOfSpecialization<C, std::list>,
149
- IsBaseOfSpecialization<C, std::map>,
150
- IsBaseOfSpecialization<C, std::multimap>,
151
- IsBaseOfSpecialization<C, std::set>,
152
- IsBaseOfSpecialization<C, std::multiset>,
153
- IsBaseOfSpecialization<C, std::unordered_map>,
154
- IsBaseOfSpecialization<C, std::unordered_multimap>,
155
- IsBaseOfSpecialization<C, std::unordered_set>,
156
- IsBaseOfSpecialization<C, std::unordered_multiset>,
157
- IsBaseOfSpecialization<C, std::vector>> {};
145
+ : std::disjunction<IsBaseOfArray<C>, IsBaseOfBitset<C>,
146
+ IsBaseOfSpecialization<C, std::deque>,
147
+ IsBaseOfSpecialization<C, std::forward_list>,
148
+ IsBaseOfSpecialization<C, std::list>,
149
+ IsBaseOfSpecialization<C, std::map>,
150
+ IsBaseOfSpecialization<C, std::multimap>,
151
+ IsBaseOfSpecialization<C, std::set>,
152
+ IsBaseOfSpecialization<C, std::multiset>,
153
+ IsBaseOfSpecialization<C, std::unordered_map>,
154
+ IsBaseOfSpecialization<C, std::unordered_multimap>,
155
+ IsBaseOfSpecialization<C, std::unordered_set>,
156
+ IsBaseOfSpecialization<C, std::unordered_multiset>,
157
+ IsBaseOfSpecialization<C, std::vector>> {};
158
158
 
159
159
  template <typename C, template <typename...> class T, typename = void>
160
160
  struct IsConvertibleToSpecializationImpl : std::false_type {};
@@ -163,14 +163,14 @@ struct IsConvertibleToSpecializationImpl : std::false_type {};
163
163
  // STL template.
164
164
  template <typename C, template <typename, typename> class T>
165
165
  struct IsConvertibleToSpecializationImpl<
166
- C, T, absl::void_t<typename C::value_type, typename C::allocator_type>>
166
+ C, T, std::void_t<typename C::value_type, typename C::allocator_type>>
167
167
  : std::is_convertible<
168
168
  C, T<typename C::value_type, typename C::allocator_type>> {};
169
169
  template <typename C, template <typename, typename, typename> class T>
170
170
  struct IsConvertibleToSpecializationImpl<
171
171
  C, T,
172
- absl::void_t<typename C::key_type, typename C::key_compare,
173
- typename C::allocator_type>>
172
+ std::void_t<typename C::key_type, typename C::key_compare,
173
+ typename C::allocator_type>>
174
174
  : std::is_convertible<C, T<typename C::key_type, typename C::key_compare,
175
175
  typename C::allocator_type>> {};
176
176
  template <typename C, template <typename, typename, typename, typename> class T>
@@ -193,15 +193,15 @@ template <typename C,
193
193
  template <typename, typename, typename, typename, typename> class T>
194
194
  struct IsConvertibleToSpecializationImpl<
195
195
  C, T,
196
- absl::void_t<typename C::key_type, typename C::mapped_type,
197
- typename C::hasher, typename C::key_equal,
198
- typename C::allocator_type>>
196
+ std::void_t<typename C::key_type, typename C::mapped_type,
197
+ typename C::hasher, typename C::key_equal,
198
+ typename C::allocator_type>>
199
199
  : std::is_convertible<C, T<typename C::key_type, typename C::mapped_type,
200
200
  typename C::hasher, typename C::key_equal,
201
201
  typename C::allocator_type>> {};
202
202
  template <typename C, template <typename...> class T>
203
203
  using IsConvertibleToSpecialization =
204
- IsConvertibleToSpecializationImpl<absl::decay_t<C>, T>;
204
+ IsConvertibleToSpecializationImpl<std::decay_t<C>, T>;
205
205
 
206
206
  template <typename C>
207
207
  struct IsConvertibleToArrayImpl : std::false_type {};
@@ -209,7 +209,7 @@ template <template <typename, size_t> class A, typename T, size_t N>
209
209
  struct IsConvertibleToArrayImpl<A<T, N>>
210
210
  : std::is_convertible<A<T, N>, std::array<T, N>> {};
211
211
  template <typename C>
212
- using IsConvertibleToArray = IsConvertibleToArrayImpl<absl::decay_t<C>>;
212
+ using IsConvertibleToArray = IsConvertibleToArrayImpl<std::decay_t<C>>;
213
213
 
214
214
  template <typename C>
215
215
  struct IsConvertibleToBitsetImpl : std::false_type {};
@@ -217,11 +217,11 @@ template <template <size_t> class B, size_t N>
217
217
  struct IsConvertibleToBitsetImpl<B<N>>
218
218
  : std::is_convertible<B<N>, std::bitset<N>> {};
219
219
  template <typename C>
220
- using IsConvertibleToBitset = IsConvertibleToBitsetImpl<absl::decay_t<C>>;
220
+ using IsConvertibleToBitset = IsConvertibleToBitsetImpl<std::decay_t<C>>;
221
221
 
222
222
  template <typename C>
223
223
  struct IsConvertibleToSTLContainer
224
- : absl::disjunction<
224
+ : std::disjunction<
225
225
  IsConvertibleToArray<C>, IsConvertibleToBitset<C>,
226
226
  IsConvertibleToSpecialization<C, std::deque>,
227
227
  IsConvertibleToSpecialization<C, std::forward_list>,
@@ -238,9 +238,9 @@ struct IsConvertibleToSTLContainer
238
238
 
239
239
  template <typename C>
240
240
  struct IsStrictlyBaseOfAndConvertibleToSTLContainer
241
- : absl::conjunction<absl::negation<IsSTLContainer<C>>,
242
- IsBaseOfSTLContainer<C>,
243
- IsConvertibleToSTLContainer<C>> {};
241
+ : std::conjunction<std::negation<IsSTLContainer<C>>,
242
+ IsBaseOfSTLContainer<C>,
243
+ IsConvertibleToSTLContainer<C>> {};
244
244
 
245
245
  } // namespace strings_internal
246
246
  ABSL_NAMESPACE_END
@@ -73,7 +73,7 @@ template <typename T, typename = void>
73
73
  struct HasUserDefinedConvert : std::false_type {};
74
74
 
75
75
  template <typename T>
76
- struct HasUserDefinedConvert<T, void_t<decltype(AbslFormatConvert(
76
+ struct HasUserDefinedConvert<T, std::void_t<decltype(AbslFormatConvert(
77
77
  std::declval<const T&>(),
78
78
  std::declval<const FormatConversionSpec&>(),
79
79
  std::declval<FormatSink*>()))>>
@@ -133,9 +133,8 @@ auto FormatConvertImpl(const T& v, FormatConversionSpecImpl conv,
133
133
  std::declval<const FormatConversionSpec&>(),
134
134
  std::declval<FormatSink*>())) {
135
135
  using FormatConversionSpecT =
136
- absl::enable_if_t<sizeof(const T& (*)()) != 0, FormatConversionSpec>;
137
- using FormatSinkT =
138
- absl::enable_if_t<sizeof(const T& (*)()) != 0, FormatSink>;
136
+ std::enable_if_t<sizeof(const T& (*)()) != 0, FormatConversionSpec>;
137
+ using FormatSinkT = std::enable_if_t<sizeof(const T& (*)()) != 0, FormatSink>;
139
138
  auto fcs = conv.Wrap<FormatConversionSpecT>();
140
139
  auto fs = sink->Wrap<FormatSinkT>();
141
140
  return AbslFormatConvert(v, fcs, &fs);
@@ -150,7 +149,7 @@ auto FormatConvertImpl(const T& v, FormatConversionSpecImpl conv,
150
149
  IntegralConvertResult> {
151
150
  if (conv.conversion_char() == FormatConversionCharInternal::v) {
152
151
  using FormatSinkT =
153
- absl::enable_if_t<sizeof(const T& (*)()) != 0, FormatSink>;
152
+ std::enable_if_t<sizeof(const T& (*)()) != 0, FormatSink>;
154
153
  auto fs = sink->Wrap<FormatSinkT>();
155
154
  AbslStringify(fs, v);
156
155
  return {true};
@@ -168,8 +167,7 @@ auto FormatConvertImpl(const T& v, FormatConversionSpecImpl,
168
167
  std::is_void<decltype(AbslStringify(
169
168
  std::declval<FormatSink&>(), v))>::value,
170
169
  ArgConvertResult<FormatConversionCharSetInternal::v>> {
171
- using FormatSinkT =
172
- absl::enable_if_t<sizeof(const T& (*)()) != 0, FormatSink>;
170
+ using FormatSinkT = std::enable_if_t<sizeof(const T& (*)()) != 0, FormatSink>;
173
171
  auto fs = sink->Wrap<FormatSinkT>();
174
172
  AbslStringify(fs, v);
175
173
  return {true};
@@ -214,8 +212,7 @@ ArgConvertResult<FormatConversionCharSetInternal::p> FormatConvertImpl(
214
212
 
215
213
  // Strings.
216
214
  using StringConvertResult = ArgConvertResult<FormatConversionCharSetUnion(
217
- FormatConversionCharSetInternal::s,
218
- FormatConversionCharSetInternal::v)>;
215
+ FormatConversionCharSetInternal::s, FormatConversionCharSetInternal::v)>;
219
216
  StringConvertResult FormatConvertImpl(const std::string& v,
220
217
  FormatConversionSpecImpl conv,
221
218
  FormatSinkImpl* sink);
@@ -237,8 +234,7 @@ inline StringConvertResult FormatConvertImpl(std::string_view v,
237
234
  #endif // !ABSL_USES_STD_STRING_VIEW
238
235
 
239
236
  using StringPtrConvertResult = ArgConvertResult<FormatConversionCharSetUnion(
240
- FormatConversionCharSetInternal::s,
241
- FormatConversionCharSetInternal::p)>;
237
+ FormatConversionCharSetInternal::s, FormatConversionCharSetInternal::p)>;
242
238
  StringPtrConvertResult FormatConvertImpl(const char* v,
243
239
  FormatConversionSpecImpl conv,
244
240
  FormatSinkImpl* sink);
@@ -303,8 +299,7 @@ FloatingConvertResult FormatConvertImpl(long double v,
303
299
  // Chars.
304
300
  CharConvertResult FormatConvertImpl(char v, FormatConversionSpecImpl conv,
305
301
  FormatSinkImpl* sink);
306
- CharConvertResult FormatConvertImpl(wchar_t v,
307
- FormatConversionSpecImpl conv,
302
+ CharConvertResult FormatConvertImpl(wchar_t v, FormatConversionSpecImpl conv,
308
303
  FormatSinkImpl* sink);
309
304
 
310
305
  // Ints.
@@ -345,7 +340,7 @@ IntegralConvertResult FormatConvertImpl(uint128 v,
345
340
 
346
341
  // This function needs to be a template due to ambiguity regarding type
347
342
  // conversions.
348
- template <typename T, enable_if_t<std::is_same<T, bool>::value, int> = 0>
343
+ template <typename T, std::enable_if_t<std::is_same<T, bool>::value, int> = 0>
349
344
  IntegralConvertResult FormatConvertImpl(T v, FormatConversionSpecImpl conv,
350
345
  FormatSinkImpl* sink) {
351
346
  if (conv.conversion_char() == FormatConversionCharInternal::v) {
@@ -381,7 +376,7 @@ struct FormatCountCaptureHelper {
381
376
  static ArgConvertResult<FormatConversionCharSetInternal::n> ConvertHelper(
382
377
  const FormatCountCapture& v, FormatConversionSpecImpl conv,
383
378
  FormatSinkImpl* sink) {
384
- const absl::enable_if_t<sizeof(T) != 0, FormatCountCapture>& v2 = v;
379
+ const std::enable_if_t<sizeof(T) != 0, FormatCountCapture>& v2 = v;
385
380
 
386
381
  if (conv.conversion_char() !=
387
382
  str_format_internal::FormatConversionCharInternal::n) {
@@ -484,8 +479,7 @@ class FormatArgImpl {
484
479
  const wchar_t*,
485
480
  typename std::conditional<
486
481
  !kHasUserDefined && std::is_convertible<T, VoidPtr>::value,
487
- VoidPtr,
488
- const T&>::type>::type>::type;
482
+ VoidPtr, const T&>::type>::type>::type;
489
483
  };
490
484
  template <typename T>
491
485
  struct DecayType<
@@ -598,13 +592,12 @@ class FormatArgImpl {
598
592
  return ToInt<T>(arg, static_cast<int*>(out), std::is_integral<T>(),
599
593
  std::is_enum<T>());
600
594
  }
601
- if (ABSL_PREDICT_FALSE(!Contains(ArgumentToConv<T>(),
602
- spec.conversion_char()))) {
595
+ if (ABSL_PREDICT_FALSE(
596
+ !Contains(ArgumentToConv<T>(), spec.conversion_char()))) {
603
597
  return false;
604
598
  }
605
599
  return str_format_internal::FormatConvertImpl(
606
- Manager<T>::Value(arg), spec,
607
- static_cast<FormatSinkImpl*>(out))
600
+ Manager<T>::Value(arg), spec, static_cast<FormatSinkImpl*>(out))
608
601
  .value;
609
602
  }
610
603
 
@@ -653,7 +646,6 @@ class FormatArgImpl {
653
646
 
654
647
  ABSL_INTERNAL_FORMAT_DISPATCH_OVERLOADS_EXPAND_(extern);
655
648
 
656
-
657
649
  } // namespace str_format_internal
658
650
  ABSL_NAMESPACE_END
659
651
  } // namespace absl
@@ -116,7 +116,7 @@ class FormatSpecTemplate
116
116
  }
117
117
 
118
118
  template <FormatConversionCharSet... C, size_t... I>
119
- static bool CheckMatches(absl::index_sequence<I...>) {
119
+ static bool CheckMatches(std::index_sequence<I...>) {
120
120
  bool res[] = {true, CheckMatch<Args, C, I + 1>()...};
121
121
  (void)res;
122
122
  return true;
@@ -173,7 +173,7 @@ class FormatSpecTemplate
173
173
  FormatSpecTemplate(const ExtendedParsedFormat<C...>& pc) // NOLINT
174
174
  : Base(&pc) {
175
175
  CheckArity<sizeof...(C), sizeof...(Args)>();
176
- CheckMatches<C...>(absl::make_index_sequence<sizeof...(C)>{});
176
+ CheckMatches<C...>(std::make_index_sequence<sizeof...(C)>{});
177
177
  }
178
178
  };
179
179
 
@@ -24,6 +24,7 @@
24
24
  #include <cstring>
25
25
  #include <cwctype>
26
26
  #include <limits>
27
+ #include <optional>
27
28
  #include <set>
28
29
  #include <sstream>
29
30
  #include <string>
@@ -44,7 +45,6 @@
44
45
  #include "absl/strings/match.h"
45
46
  #include "absl/strings/str_format.h"
46
47
  #include "absl/strings/string_view.h"
47
- #include "absl/types/optional.h"
48
48
  #include "absl/types/span.h"
49
49
 
50
50
  namespace absl {
@@ -285,9 +285,6 @@ const NativePrintfTraits &VerifyNativeImplementation() {
285
285
  }
286
286
 
287
287
  bool IsNativeHexFloatConversion(char f) { return f == 'a' || f == 'A'; }
288
- bool IsNativeFloatConversion(char f) {
289
- return f == 'f' || f == 'F' || f == 'e' || f == 'E' || f == 'a' || f == 'A';
290
- }
291
288
 
292
289
  class FormatConvertTest : public ::testing::Test { };
293
290
 
@@ -593,11 +590,11 @@ TYPED_TEST_P(TypedFormatConvertTest, AllIntsWithFlags) {
593
590
  }
594
591
 
595
592
  template <typename T>
596
- absl::optional<std::string> StrPrintChar(T c) {
593
+ std::optional<std::string> StrPrintChar(T c) {
597
594
  return StrPrint("%c", static_cast<int>(c));
598
595
  }
599
596
  template <>
600
- absl::optional<std::string> StrPrintChar(wchar_t c) {
597
+ std::optional<std::string> StrPrintChar(wchar_t c) {
601
598
  // musl libc has a bug where ("%lc", 0) writes no characters, and Android
602
599
  // doesn't support forcing UTF-8 via setlocale(). Hardcode the expected
603
600
  // answers for ASCII inputs to maximize test coverage on these platforms.
@@ -611,7 +608,7 @@ absl::optional<std::string> StrPrintChar(wchar_t c) {
611
608
  // call.
612
609
  std::string old_locale = setlocale(LC_CTYPE, nullptr);
613
610
  if (!setlocale(LC_CTYPE, "en_US.UTF-8")) {
614
- return absl::nullopt;
611
+ return std::nullopt;
615
612
  }
616
613
  const std::string output = StrPrint("%lc", static_cast<wint_t>(c));
617
614
  setlocale(LC_CTYPE, old_locale.c_str());
@@ -666,7 +663,7 @@ TYPED_TEST_P(TypedFormatConvertTest, Char) {
666
663
  SCOPED_TRACE(Esc(c));
667
664
  const FormatArgImpl args[] = {FormatArgImpl(c)};
668
665
  UntypedFormatSpecImpl format("%c");
669
- absl::optional<std::string> result = StrPrintChar(c);
666
+ std::optional<std::string> result = StrPrintChar(c);
670
667
  if (result.has_value()) {
671
668
  EXPECT_EQ(result.value(), FormatPack(format, absl::MakeSpan(args)));
672
669
  }
@@ -804,12 +801,6 @@ void TestWithMultipleFormatsHelper(Floating tested_float) {
804
801
  'e', 'E'}) {
805
802
  std::string fmt_str = std::string(fmt) + f;
806
803
 
807
- if (fmt == absl::string_view("%.5000") && !IsNativeFloatConversion(f)) {
808
- // This particular test takes way too long with snprintf.
809
- // Disable for the case we are not implementing natively.
810
- continue;
811
- }
812
-
813
804
  if (IsNativeHexFloatConversion(f) &&
814
805
  !native_traits.hex_float_has_glibc_rounding) {
815
806
  continue;
@@ -1074,6 +1065,13 @@ TEST_F(FormatConvertTest, DoubleRound) {
1074
1065
 
1075
1066
  // Rounding large negative exponent first digit
1076
1067
  EXPECT_EQ(format("%0.1e", -8.956e-294), "-9.0e-294");
1068
+
1069
+ // FormatGNegativeExpSlow: 2^(-77) has decomposed.exponent < -128.
1070
+ EXPECT_EQ(format("%.10g", std::ldexp(1.0, -77)), "6.6174449e-24");
1071
+
1072
+ // FormatGPositiveExpSlow: 2^130 has total_bits > 128.
1073
+ EXPECT_EQ(format("%.10g", std::ldexp(1.0, 130)),
1074
+ "1.361129468e+39");
1077
1075
  }
1078
1076
 
1079
1077
  TEST_F(FormatConvertTest, DoubleRoundA) {
@@ -1332,12 +1330,6 @@ TEST_F(FormatConvertTest, LongDouble) {
1332
1330
  'e', 'E'}) {
1333
1331
  std::string fmt_str = std::string(fmt) + 'L' + f;
1334
1332
 
1335
- if (fmt == absl::string_view("%.5000") && !IsNativeFloatConversion(f)) {
1336
- // This particular test takes way too long with snprintf.
1337
- // Disable for the case we are not implementing natively.
1338
- continue;
1339
- }
1340
-
1341
1333
  if (IsNativeHexFloatConversion(f)) {
1342
1334
  if (!native_traits.hex_float_has_glibc_rounding ||
1343
1335
  !native_traits.hex_float_optimizes_leading_digit_bit_count) {