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
@@ -47,11 +47,12 @@
47
47
 
48
48
  #include "absl/algorithm/algorithm.h"
49
49
  #include "absl/base/attributes.h"
50
+ #include "absl/base/internal/hardening.h"
50
51
  #include "absl/base/internal/iterator_traits.h"
51
- #include "absl/base/internal/throw_delegate.h"
52
52
  #include "absl/base/macros.h"
53
53
  #include "absl/base/optimization.h"
54
54
  #include "absl/base/port.h"
55
+ #include "absl/base/throw_delegate.h"
55
56
  #include "absl/container/internal/inlined_vector.h"
56
57
  #include "absl/hash/internal/weakly_mixed_integer.h"
57
58
  #include "absl/memory/memory.h"
@@ -192,7 +193,7 @@ class ABSL_ATTRIBUTE_WARN_UNUSED InlinedVector {
192
193
  // allocator doesn't do anything fancy, and there is nothing on the heap
193
194
  // then we know it is legal for us to simply memcpy the other vector's
194
195
  // inlined bytes to form our copy of its elements.
195
- if (absl::is_trivially_copy_constructible<value_type>::value &&
196
+ if (std::is_trivially_copy_constructible<value_type>::value &&
196
197
  std::is_same<A, std::allocator<value_type>>::value &&
197
198
  !other.storage_.GetIsAllocated()) {
198
199
  storage_.MemcpyFrom(other.storage_);
@@ -363,14 +364,14 @@ class ABSL_ATTRIBUTE_WARN_UNUSED InlinedVector {
363
364
  //
364
365
  // Returns a `reference` to the `i`th element of the inlined vector.
365
366
  reference operator[](size_type i) ABSL_ATTRIBUTE_LIFETIME_BOUND {
366
- ABSL_HARDENING_ASSERT(i < size());
367
+ absl::base_internal::HardeningAssertLT(i, size());
367
368
  return data()[i];
368
369
  }
369
370
 
370
371
  // Overload of `InlinedVector::operator[](...)` that returns a
371
372
  // `const_reference` to the `i`th element of the inlined vector.
372
373
  const_reference operator[](size_type i) const ABSL_ATTRIBUTE_LIFETIME_BOUND {
373
- ABSL_HARDENING_ASSERT(i < size());
374
+ absl::base_internal::HardeningAssertLT(i, size());
374
375
  return data()[i];
375
376
  }
376
377
 
@@ -382,8 +383,7 @@ class ABSL_ATTRIBUTE_WARN_UNUSED InlinedVector {
382
383
  // in both debug and non-debug builds, `std::out_of_range` will be thrown.
383
384
  reference at(size_type i) ABSL_ATTRIBUTE_LIFETIME_BOUND {
384
385
  if (ABSL_PREDICT_FALSE(i >= size())) {
385
- base_internal::ThrowStdOutOfRange(
386
- "`InlinedVector::at(size_type)` failed bounds check");
386
+ ThrowStdOutOfRange("`InlinedVector::at(size_type)` failed bounds check");
387
387
  }
388
388
  return data()[i];
389
389
  }
@@ -395,7 +395,7 @@ class ABSL_ATTRIBUTE_WARN_UNUSED InlinedVector {
395
395
  // in both debug and non-debug builds, `std::out_of_range` will be thrown.
396
396
  const_reference at(size_type i) const ABSL_ATTRIBUTE_LIFETIME_BOUND {
397
397
  if (ABSL_PREDICT_FALSE(i >= size())) {
398
- base_internal::ThrowStdOutOfRange(
398
+ ThrowStdOutOfRange(
399
399
  "`InlinedVector::at(size_type) const` failed bounds check");
400
400
  }
401
401
  return data()[i];
@@ -405,14 +405,14 @@ class ABSL_ATTRIBUTE_WARN_UNUSED InlinedVector {
405
405
  //
406
406
  // Returns a `reference` to the first element of the inlined vector.
407
407
  reference front() ABSL_ATTRIBUTE_LIFETIME_BOUND {
408
- ABSL_HARDENING_ASSERT(!empty());
408
+ absl::base_internal::HardeningAssertNonEmpty(*this);
409
409
  return data()[0];
410
410
  }
411
411
 
412
412
  // Overload of `InlinedVector::front()` that returns a `const_reference` to
413
413
  // the first element of the inlined vector.
414
414
  const_reference front() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
415
- ABSL_HARDENING_ASSERT(!empty());
415
+ absl::base_internal::HardeningAssertNonEmpty(*this);
416
416
  return data()[0];
417
417
  }
418
418
 
@@ -420,14 +420,14 @@ class ABSL_ATTRIBUTE_WARN_UNUSED InlinedVector {
420
420
  //
421
421
  // Returns a `reference` to the last element of the inlined vector.
422
422
  reference back() ABSL_ATTRIBUTE_LIFETIME_BOUND {
423
- ABSL_HARDENING_ASSERT(!empty());
423
+ absl::base_internal::HardeningAssertNonEmpty(*this);
424
424
  return data()[size() - 1];
425
425
  }
426
426
 
427
427
  // Overload of `InlinedVector::back()` that returns a `const_reference` to the
428
428
  // last element of the inlined vector.
429
429
  const_reference back() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
430
- ABSL_HARDENING_ASSERT(!empty());
430
+ absl::base_internal::HardeningAssertNonEmpty(*this);
431
431
  return data()[size() - 1];
432
432
  }
433
433
 
@@ -601,7 +601,7 @@ class ABSL_ATTRIBUTE_WARN_UNUSED InlinedVector {
601
601
  // NOTE: If `n` is smaller than `size()`, extra elements are destroyed. If `n`
602
602
  // is larger than `size()`, new elements are value-initialized.
603
603
  void resize(size_type n) {
604
- ABSL_HARDENING_ASSERT(n <= max_size());
604
+ absl::base_internal::HardeningAssertLE(n, max_size());
605
605
  storage_.Resize(DefaultValueAdapter<A>(), n);
606
606
  }
607
607
 
@@ -611,7 +611,7 @@ class ABSL_ATTRIBUTE_WARN_UNUSED InlinedVector {
611
611
  // NOTE: if `n` is smaller than `size()`, extra elements are destroyed. If `n`
612
612
  // is larger than `size()`, new elements are copied-constructed from `v`.
613
613
  void resize(size_type n, const_reference v) {
614
- ABSL_HARDENING_ASSERT(n <= max_size());
614
+ absl::base_internal::HardeningAssertLE(n, max_size());
615
615
  storage_.Resize(CopyValueAdapter<A>(std::addressof(v)), n);
616
616
  }
617
617
 
@@ -636,8 +636,8 @@ class ABSL_ATTRIBUTE_WARN_UNUSED InlinedVector {
636
636
  // the newly inserted elements.
637
637
  iterator insert(const_iterator pos, size_type n,
638
638
  const_reference v) ABSL_ATTRIBUTE_LIFETIME_BOUND {
639
- ABSL_HARDENING_ASSERT(pos >= begin());
640
- ABSL_HARDENING_ASSERT(pos <= end());
639
+ absl::base_internal::HardeningAssertGE(pos, cbegin());
640
+ absl::base_internal::HardeningAssertLE(pos, cend());
641
641
 
642
642
  if (ABSL_PREDICT_TRUE(n != 0)) {
643
643
  value_type dealias = v;
@@ -677,8 +677,8 @@ class ABSL_ATTRIBUTE_WARN_UNUSED InlinedVector {
677
677
  EnableIfAtLeastForwardIterator<ForwardIterator> = 0>
678
678
  iterator insert(const_iterator pos, ForwardIterator first,
679
679
  ForwardIterator last) ABSL_ATTRIBUTE_LIFETIME_BOUND {
680
- ABSL_HARDENING_ASSERT(pos >= begin());
681
- ABSL_HARDENING_ASSERT(pos <= end());
680
+ absl::base_internal::HardeningAssertGE(pos, cbegin());
681
+ absl::base_internal::HardeningAssertLE(pos, cend());
682
682
 
683
683
  if (ABSL_PREDICT_TRUE(first != last)) {
684
684
  return storage_.Insert(
@@ -698,8 +698,8 @@ class ABSL_ATTRIBUTE_WARN_UNUSED InlinedVector {
698
698
  DisableIfAtLeastForwardIterator<InputIterator> = 0>
699
699
  iterator insert(const_iterator pos, InputIterator first,
700
700
  InputIterator last) ABSL_ATTRIBUTE_LIFETIME_BOUND {
701
- ABSL_HARDENING_ASSERT(pos >= begin());
702
- ABSL_HARDENING_ASSERT(pos <= end());
701
+ absl::base_internal::HardeningAssertGE(pos, cbegin());
702
+ absl::base_internal::HardeningAssertLE(pos, cend());
703
703
 
704
704
  size_type index = static_cast<size_type>(std::distance(cbegin(), pos));
705
705
  for (size_type i = index; first != last; ++i, static_cast<void>(++first)) {
@@ -716,8 +716,8 @@ class ABSL_ATTRIBUTE_WARN_UNUSED InlinedVector {
716
716
  template <typename... Args>
717
717
  iterator emplace(const_iterator pos,
718
718
  Args&&... args) ABSL_ATTRIBUTE_LIFETIME_BOUND {
719
- ABSL_HARDENING_ASSERT(pos >= begin());
720
- ABSL_HARDENING_ASSERT(pos <= end());
719
+ absl::base_internal::HardeningAssertGE(pos, cbegin());
720
+ absl::base_internal::HardeningAssertLE(pos, cend());
721
721
 
722
722
  value_type dealias(std::forward<Args>(args)...);
723
723
  // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102329#c2
@@ -762,7 +762,7 @@ class ABSL_ATTRIBUTE_WARN_UNUSED InlinedVector {
762
762
  //
763
763
  // Destroys the element at `back()`, reducing the size by `1`.
764
764
  void pop_back() noexcept {
765
- ABSL_HARDENING_ASSERT(!empty());
765
+ absl::base_internal::HardeningAssertNonEmpty(*this);
766
766
 
767
767
  AllocatorTraits<A>::destroy(storage_.GetAllocator(), data() + (size() - 1));
768
768
  storage_.SubtractSize(1);
@@ -775,8 +775,8 @@ class ABSL_ATTRIBUTE_WARN_UNUSED InlinedVector {
775
775
  //
776
776
  // NOTE: may return `end()`, which is not dereferenceable.
777
777
  iterator erase(const_iterator pos) ABSL_ATTRIBUTE_LIFETIME_BOUND {
778
- ABSL_HARDENING_ASSERT(pos >= begin());
779
- ABSL_HARDENING_ASSERT(pos < end());
778
+ absl::base_internal::HardeningAssertGE(pos, cbegin());
779
+ absl::base_internal::HardeningAssertLT(pos, cend());
780
780
 
781
781
  // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102329#c2
782
782
  // It appears that GCC thinks that since `pos` is a const pointer and may
@@ -801,9 +801,9 @@ class ABSL_ATTRIBUTE_WARN_UNUSED InlinedVector {
801
801
  // NOTE: may return `end()`, which is not dereferenceable.
802
802
  iterator erase(const_iterator from,
803
803
  const_iterator to) ABSL_ATTRIBUTE_LIFETIME_BOUND {
804
- ABSL_HARDENING_ASSERT(from >= begin());
805
- ABSL_HARDENING_ASSERT(from <= to);
806
- ABSL_HARDENING_ASSERT(to <= end());
804
+ absl::base_internal::HardeningAssertGE(from, cbegin());
805
+ absl::base_internal::HardeningAssertLE(from, to);
806
+ absl::base_internal::HardeningAssertLE(to, cend());
807
807
 
808
808
  if (ABSL_PREDICT_TRUE(from != to)) {
809
809
  return storage_.Erase(from, to);
@@ -858,7 +858,7 @@ class ABSL_ATTRIBUTE_WARN_UNUSED InlinedVector {
858
858
  // Assumption check: we shouldn't be told to use memcpy to implement move
859
859
  // assignment unless we have trivially destructible elements and an
860
860
  // allocator that does nothing fancy.
861
- static_assert(absl::is_trivially_destructible<value_type>::value, "");
861
+ static_assert(std::is_trivially_destructible<value_type>::value, "");
862
862
  static_assert(std::is_same<A, std::allocator<value_type>>::value, "");
863
863
 
864
864
  // Throw away our existing heap allocation, if any. There is no need to
@@ -876,7 +876,7 @@ class ABSL_ATTRIBUTE_WARN_UNUSED InlinedVector {
876
876
  //
877
877
  // REQUIRES: other.storage_.GetIsAllocated()
878
878
  void DestroyExistingAndAdopt(InlinedVector&& other) {
879
- ABSL_HARDENING_ASSERT(other.storage_.GetIsAllocated());
879
+ absl::base_internal::HardeningAssert(other.storage_.GetIsAllocated());
880
880
 
881
881
  inlined_vector_internal::DestroyAdapter<A>::DestroyElements(
882
882
  storage_.GetAllocator(), data(), size());
@@ -823,7 +823,7 @@ class NotTriviallyDestructible {
823
823
  : p_(new int(*other.p_)) {}
824
824
 
825
825
  NotTriviallyDestructible& operator=(const NotTriviallyDestructible& other) {
826
- p_ = absl::make_unique<int>(*other.p_);
826
+ p_ = std::make_unique<int>(*other.p_);
827
827
  return *this;
828
828
  }
829
829
 
@@ -1995,7 +1995,7 @@ TEST(AllocatorSupportTest, SizeAllocConstructor) {
1995
1995
  TEST(InlinedVectorTest, MinimumAllocatorCompilesUsingTraits) {
1996
1996
  using T = int;
1997
1997
  using A = std::allocator<T>;
1998
- using ATraits = absl::allocator_traits<A>;
1998
+ using ATraits = std::allocator_traits<A>;
1999
1999
 
2000
2000
  struct MinimumAllocator {
2001
2001
  using value_type = T;
@@ -53,11 +53,13 @@
53
53
  #include <functional>
54
54
  #include <iterator>
55
55
  #include <limits>
56
+ #include <memory>
56
57
  #include <string>
57
58
  #include <type_traits>
58
59
  #include <utility>
59
60
 
60
61
  #include "absl/base/config.h"
62
+ #include "absl/base/internal/hardening.h"
61
63
  #include "absl/base/internal/raw_logging.h"
62
64
  #include "absl/base/macros.h"
63
65
  #include "absl/base/optimization.h"
@@ -231,7 +233,7 @@ struct key_compare_adapter {
231
233
  explicit operator Compare() const { return comp(); }
232
234
 
233
235
  template <typename T, typename U,
234
- absl::enable_if_t<
236
+ std::enable_if_t<
235
237
  std::is_same<bool, compare_result_t<Compare, T, U>>::value,
236
238
  int> = 0>
237
239
  bool operator()(const T &lhs, const U &rhs) const {
@@ -247,7 +249,7 @@ struct key_compare_adapter {
247
249
 
248
250
  template <
249
251
  typename T, typename U,
250
- absl::enable_if_t<std::is_convertible<compare_result_t<Compare, T, U>,
252
+ std::enable_if_t<std::is_convertible<compare_result_t<Compare, T, U>,
251
253
  absl::weak_ordering>::value,
252
254
  int> = 0>
253
255
  absl::weak_ordering operator()(const T &lhs, const U &rhs) const {
@@ -270,7 +272,7 @@ struct key_compare_adapter {
270
272
  return lhs_comp_rhs;
271
273
  }
272
274
  };
273
- using type = absl::conditional_t<
275
+ using type = std::conditional_t<
274
276
  std::is_base_of<BtreeTestOnlyCheckedCompareOptOutBase, Compare>::value,
275
277
  Compare, checked_compare>;
276
278
  };
@@ -330,11 +332,11 @@ template <typename T, typename = void>
330
332
  struct prefers_linear_node_search : std::false_type {};
331
333
  template <typename T>
332
334
  struct has_linear_node_search_preference<
333
- T, absl::void_t<typename T::absl_btree_prefer_linear_node_search>>
335
+ T, std::void_t<typename T::absl_btree_prefer_linear_node_search>>
334
336
  : std::true_type {};
335
337
  template <typename T>
336
338
  struct prefers_linear_node_search<
337
- T, absl::void_t<typename T::absl_btree_prefer_linear_node_search>>
339
+ T, std::void_t<typename T::absl_btree_prefer_linear_node_search>>
338
340
  : T::absl_btree_prefer_linear_node_search {};
339
341
 
340
342
  template <typename Compare, typename Key>
@@ -377,7 +379,7 @@ struct common_params : common_policy_traits<SlotPolicy> {
377
379
  // this, then there will be cascading compilation failures that are confusing
378
380
  // for users.
379
381
  using key_compare =
380
- absl::conditional_t<!compare_has_valid_result_type<Compare, Key>(),
382
+ std::conditional_t<!compare_has_valid_result_type<Compare, Key>(),
381
383
  Compare,
382
384
  typename key_compare_adapter<Compare, Key>::type>;
383
385
 
@@ -406,7 +408,7 @@ struct common_params : common_policy_traits<SlotPolicy> {
406
408
  using const_reference = const value_type &;
407
409
 
408
410
  using value_compare =
409
- absl::conditional_t<IsMap,
411
+ std::conditional_t<IsMap,
410
412
  map_value_compare<original_key_compare, value_type>,
411
413
  original_key_compare>;
412
414
  using is_map_container = std::integral_constant<bool, IsMap>;
@@ -438,7 +440,7 @@ struct common_params : common_policy_traits<SlotPolicy> {
438
440
  // This is an integral type large enough to hold as many slots as will fit a
439
441
  // node of TargetNodeSize bytes.
440
442
  using node_count_type =
441
- absl::conditional_t<(kNodeSlotSpace / sizeof(slot_type) >
443
+ std::conditional_t<(kNodeSlotSpace / sizeof(slot_type) >
442
444
  (std::numeric_limits<uint8_t>::max)()),
443
445
  uint16_t, uint8_t>; // NOLINT
444
446
  };
@@ -1119,7 +1121,7 @@ class btree_iterator : private btree_iterator_generation_info {
1119
1121
  using slot_type = typename params_type::slot_type;
1120
1122
 
1121
1123
  // In sets, all iterators are const.
1122
- using iterator = absl::conditional_t<
1124
+ using iterator = std::conditional_t<
1123
1125
  is_map_container::value,
1124
1126
  btree_iterator<normal_node, normal_reference, normal_pointer>,
1125
1127
  btree_iterator<normal_node, const_reference, const_pointer>>;
@@ -1146,7 +1148,7 @@ class btree_iterator : private btree_iterator_generation_info {
1146
1148
  // const_iterator, but it specifically avoids hiding the copy constructor so
1147
1149
  // that the trivial one will be used when possible.
1148
1150
  template <typename N, typename R, typename P,
1149
- absl::enable_if_t<
1151
+ std::enable_if_t<
1150
1152
  std::is_same<btree_iterator<N, R, P>, iterator>::value &&
1151
1153
  std::is_same<btree_iterator, const_iterator>::value,
1152
1154
  int> = 0>
@@ -1200,12 +1202,16 @@ class btree_iterator : private btree_iterator_generation_info {
1200
1202
 
1201
1203
  // Accessors for the key/value the iterator is pointing at.
1202
1204
  reference operator*() const {
1203
- ABSL_HARDENING_ASSERT(node_ != nullptr);
1205
+ absl::base_internal::HardeningAssertNonNull(node_);
1204
1206
  assert_valid_generation(node_);
1205
- ABSL_HARDENING_ASSERT(position_ >= node_->start());
1207
+ absl::base_internal::HardeningAssertGE(position_,
1208
+ static_cast<int>(node_->start()));
1206
1209
  if (position_ >= node_->finish()) {
1207
- ABSL_HARDENING_ASSERT(!IsEndIterator() && "Dereferencing end() iterator");
1208
- ABSL_HARDENING_ASSERT(position_ < node_->finish());
1210
+ // If this assertion fails, we have tried to dereference an end()
1211
+ // iterator.
1212
+ absl::base_internal::HardeningAssert(!IsEndIterator());
1213
+ absl::base_internal::HardeningAssertLT(position_,
1214
+ static_cast<int>(node_->finish()));
1209
1215
  }
1210
1216
  return node_->value(static_cast<field_type>(position_));
1211
1217
  }
@@ -1252,7 +1258,7 @@ class btree_iterator : private btree_iterator_generation_info {
1252
1258
  // NOTE: the const_cast is safe because this constructor is only called by
1253
1259
  // non-const methods and the container owns the nodes.
1254
1260
  template <typename N, typename R, typename P,
1255
- absl::enable_if_t<
1261
+ std::enable_if_t<
1256
1262
  std::is_same<btree_iterator<N, R, P>, const_iterator>::value &&
1257
1263
  std::is_same<btree_iterator, iterator>::value,
1258
1264
  int> = 0>
@@ -1262,10 +1268,11 @@ class btree_iterator : private btree_iterator_generation_info {
1262
1268
  position_(other.position_) {}
1263
1269
 
1264
1270
  bool Equals(const const_iterator other) const {
1265
- ABSL_HARDENING_ASSERT(((node_ == nullptr && other.node_ == nullptr) ||
1266
- (node_ != nullptr && other.node_ != nullptr)) &&
1267
- "Comparing default-constructed iterator with "
1268
- "non-default-constructed iterator.");
1271
+ absl::base_internal::HardeningAssert(
1272
+ ((node_ == nullptr && other.node_ == nullptr) ||
1273
+ (node_ != nullptr && other.node_ != nullptr)) &&
1274
+ "Comparing default-constructed iterator with "
1275
+ "non-default-constructed iterator.");
1269
1276
  // Note: we use assert instead of ABSL_HARDENING_ASSERT here because this
1270
1277
  // changes the complexity of Equals from O(1) to O(log(N) + log(M)) where
1271
1278
  // N/M are sizes of the containers containing node_/other.node_.
@@ -2221,7 +2228,7 @@ btree_iterator<N, R, P> &btree_iterator<N, R, P>::increment_n_slow(
2221
2228
  node = node->parent();
2222
2229
  }
2223
2230
  if (position == node->finish()) {
2224
- ABSL_HARDENING_ASSERT(n == 0);
2231
+ absl::base_internal::HardeningAssert(n == 0);
2225
2232
  return *this = save;
2226
2233
  }
2227
2234
  }
@@ -2258,7 +2265,8 @@ btree_iterator<N, R, P> &btree_iterator<N, R, P>::decrement_n_slow(
2258
2265
  position = node->position() - 1;
2259
2266
  node = node->parent();
2260
2267
  }
2261
- ABSL_HARDENING_ASSERT(position >= node->start());
2268
+ absl::base_internal::HardeningAssertGE(position,
2269
+ static_cast<int>(node->start()));
2262
2270
  }
2263
2271
  } else {
2264
2272
  --n;
@@ -2489,7 +2497,7 @@ auto btree<P>::operator=(const btree &other) -> btree & {
2489
2497
  clear();
2490
2498
 
2491
2499
  *mutable_key_comp() = other.key_comp();
2492
- if (absl::allocator_traits<
2500
+ if (std::allocator_traits<
2493
2501
  allocator_type>::propagate_on_container_copy_assignment::value) {
2494
2502
  *mutable_allocator() = other.allocator();
2495
2503
  }
@@ -2505,7 +2513,7 @@ auto btree<P>::operator=(btree &&other) noexcept -> btree & {
2505
2513
  clear();
2506
2514
 
2507
2515
  using std::swap;
2508
- if (absl::allocator_traits<
2516
+ if (std::allocator_traits<
2509
2517
  allocator_type>::propagate_on_container_move_assignment::value) {
2510
2518
  swap(root_, other.root_);
2511
2519
  // Note: `rightmost_` also contains the allocator and the key comparator.
@@ -2681,7 +2689,7 @@ void btree<P>::clear() {
2681
2689
  template <typename P>
2682
2690
  void btree<P>::swap(btree &other) {
2683
2691
  using std::swap;
2684
- if (absl::allocator_traits<
2692
+ if (std::allocator_traits<
2685
2693
  allocator_type>::propagate_on_container_swap::value) {
2686
2694
  // Note: `rightmost_` also contains the allocator and the key comparator.
2687
2695
  swap(rightmost_, other.rightmost_);
@@ -18,11 +18,12 @@
18
18
  #include <algorithm>
19
19
  #include <initializer_list>
20
20
  #include <iterator>
21
+ #include <memory>
21
22
  #include <type_traits>
22
23
  #include <utility>
23
24
 
24
25
  #include "absl/base/attributes.h"
25
- #include "absl/base/internal/throw_delegate.h"
26
+ #include "absl/base/throw_delegate.h"
26
27
  #include "absl/container/internal/btree.h" // IWYU pragma: export
27
28
  #include "absl/container/internal/common.h"
28
29
  #include "absl/hash/internal/weakly_mixed_integer.h"
@@ -80,8 +81,8 @@ class btree_container {
80
81
  explicit btree_container(const allocator_type &alloc)
81
82
  : tree_(key_compare(), alloc) {}
82
83
 
83
- btree_container(const btree_container &other)
84
- : btree_container(other, absl::allocator_traits<allocator_type>::
84
+ btree_container(const btree_container& other)
85
+ : btree_container(other, std::allocator_traits<allocator_type>::
85
86
  select_on_container_copy_construction(
86
87
  other.get_allocator())) {}
87
88
  btree_container(const btree_container &other, const allocator_type &alloc)
@@ -412,8 +413,8 @@ class btree_set_container : public btree_container<Tree> {
412
413
  // `this`, it is left unmodified in `src`.
413
414
  template <
414
415
  typename T,
415
- typename absl::enable_if_t<
416
- absl::conjunction<
416
+ typename std::enable_if_t<
417
+ std::conjunction<
417
418
  std::is_same<value_type, typename T::value_type>,
418
419
  std::is_same<allocator_type, typename T::allocator_type>,
419
420
  std::is_same<typename params_type::is_map_container,
@@ -431,8 +432,8 @@ class btree_set_container : public btree_container<Tree> {
431
432
 
432
433
  template <
433
434
  typename T,
434
- typename absl::enable_if_t<
435
- absl::conjunction<
435
+ typename std::enable_if_t<
436
+ std::conjunction<
436
437
  std::is_same<value_type, typename T::value_type>,
437
438
  std::is_same<allocator_type, typename T::allocator_type>,
438
439
  std::is_same<typename params_type::is_map_container,
@@ -474,8 +475,8 @@ class btree_map_container : public btree_set_container<Tree> {
474
475
  typename Tree::params_type::mapped_type, M>>;
475
476
  template <class K, bool KValue, class M, bool MValue, typename... Dummy>
476
477
  using LifetimeBoundKV =
477
- absl::conjunction<LifetimeBoundK<K, KValue, absl::void_t<Dummy...>>,
478
- LifetimeBoundV<M, MValue>>;
478
+ std::conjunction<LifetimeBoundK<K, KValue, std::void_t<Dummy...>>,
479
+ LifetimeBoundV<M, MValue>>;
479
480
 
480
481
  public:
481
482
  using key_type = typename Tree::key_type;
@@ -651,16 +652,14 @@ class btree_map_container : public btree_set_container<Tree> {
651
652
  template <typename K = key_type>
652
653
  mapped_type &at(const key_arg<K> &key) ABSL_ATTRIBUTE_LIFETIME_BOUND {
653
654
  auto it = this->find(key);
654
- if (it == this->end())
655
- base_internal::ThrowStdOutOfRange("absl::btree_map::at");
655
+ if (it == this->end()) ThrowStdOutOfRange("absl::btree_map::at");
656
656
  return it->second;
657
657
  }
658
658
  template <typename K = key_type>
659
659
  const mapped_type &at(const key_arg<K> &key) const
660
660
  ABSL_ATTRIBUTE_LIFETIME_BOUND {
661
661
  auto it = this->find(key);
662
- if (it == this->end())
663
- base_internal::ThrowStdOutOfRange("absl::btree_map::at");
662
+ if (it == this->end()) ThrowStdOutOfRange("absl::btree_map::at");
664
663
  return it->second;
665
664
  }
666
665
 
@@ -826,8 +825,8 @@ class btree_multiset_container : public btree_container<Tree> {
826
825
  // Moves all elements from `src` into `this`.
827
826
  template <
828
827
  typename T,
829
- typename absl::enable_if_t<
830
- absl::conjunction<
828
+ typename std::enable_if_t<
829
+ std::conjunction<
831
830
  std::is_same<value_type, typename T::value_type>,
832
831
  std::is_same<allocator_type, typename T::allocator_type>,
833
832
  std::is_same<typename params_type::is_map_container,
@@ -842,8 +841,8 @@ class btree_multiset_container : public btree_container<Tree> {
842
841
 
843
842
  template <
844
843
  typename T,
845
- typename absl::enable_if_t<
846
- absl::conjunction<
844
+ typename std::enable_if_t<
845
+ std::conjunction<
847
846
  std::is_same<value_type, typename T::value_type>,
848
847
  std::is_same<allocator_type, typename T::allocator_type>,
849
848
  std::is_same<typename params_type::is_map_container,
@@ -18,6 +18,7 @@
18
18
  #include <algorithm>
19
19
  #include <cassert>
20
20
  #include <cstddef>
21
+ #include <optional>
21
22
  #include <tuple>
22
23
  #include <type_traits>
23
24
 
@@ -57,7 +58,7 @@ template <class Cond>
57
58
  using EnableIf = std::enable_if_t<Cond::value, int>;
58
59
 
59
60
  template <bool Value, class T>
60
- using HasValue = std::conditional_t<Value, T, absl::negation<T>>;
61
+ using HasValue = std::conditional_t<Value, T, std::negation<T>>;
61
62
 
62
63
  template <class T>
63
64
  struct IfRRef {
@@ -74,7 +75,7 @@ struct IfRRef<T&&> {
74
75
  template <class, class = void>
75
76
  struct IsTransparent : std::false_type {};
76
77
  template <class T>
77
- struct IsTransparent<T, absl::void_t<typename T::is_transparent>>
78
+ struct IsTransparent<T, std::void_t<typename T::is_transparent>>
78
79
  : std::true_type {};
79
80
 
80
81
  template <bool is_transparent>
@@ -146,7 +147,7 @@ class node_handle_base {
146
147
 
147
148
  void reset() {
148
149
  assert(alloc_.has_value());
149
- alloc_ = absl::nullopt;
150
+ alloc_ = std::nullopt;
150
151
  }
151
152
 
152
153
  slot_type* slot() const {
@@ -156,7 +157,7 @@ class node_handle_base {
156
157
  allocator_type* alloc() { return std::addressof(*alloc_); }
157
158
 
158
159
  private:
159
- absl::optional<allocator_type> alloc_ = {};
160
+ std::optional<allocator_type> alloc_ = {};
160
161
  alignas(slot_type) mutable unsigned char slot_space_[sizeof(slot_type)] = {};
161
162
  };
162
163
 
@@ -182,7 +183,7 @@ class node_handle : public node_handle_base<PolicyTraits, Alloc> {
182
183
  // For maps.
183
184
  template <typename Policy, typename PolicyTraits, typename Alloc>
184
185
  class node_handle<Policy, PolicyTraits, Alloc,
185
- absl::void_t<typename Policy::mapped_type>>
186
+ std::void_t<typename Policy::mapped_type>>
186
187
  : public node_handle_base<PolicyTraits, Alloc> {
187
188
  using Base = node_handle_base<PolicyTraits, Alloc>;
188
189
  using slot_type = typename PolicyTraits::slot_type;
@@ -81,7 +81,7 @@ struct common_policy_traits {
81
81
  // Note: we use remove_const_t so that the two overloads have different args
82
82
  // in the case of sets with explicitly const value_types.
83
83
  template <class P = Policy>
84
- static auto element(absl::remove_const_t<slot_type>* slot)
84
+ static auto element(std::remove_const_t<slot_type>* slot)
85
85
  -> decltype(P::element(slot)) {
86
86
  return P::element(slot);
87
87
  }
@@ -86,7 +86,7 @@ struct Storage {
86
86
  T value;
87
87
  constexpr Storage() = default;
88
88
  template <typename V>
89
- explicit constexpr Storage(absl::in_place_t, V&& v)
89
+ explicit constexpr Storage(std::in_place_t, V&& v)
90
90
  : value(std::forward<V>(v)) {}
91
91
  constexpr const T& get() const& { return value; }
92
92
  constexpr T& get() & { return value; }
@@ -99,7 +99,7 @@ struct ABSL_INTERNAL_COMPRESSED_TUPLE_DECLSPEC Storage<T, I, Tag, true> : T {
99
99
  constexpr Storage() = default;
100
100
 
101
101
  template <typename V>
102
- explicit constexpr Storage(absl::in_place_t, V&& v) : T(std::forward<V>(v)) {}
102
+ explicit constexpr Storage(std::in_place_t, V&& v) : T(std::forward<V>(v)) {}
103
103
 
104
104
  constexpr const T& get() const& { return *this; }
105
105
  constexpr T& get() & { return *this; }
@@ -112,7 +112,7 @@ struct ABSL_INTERNAL_COMPRESSED_TUPLE_DECLSPEC CompressedTupleImpl;
112
112
 
113
113
  template <typename... Ts, size_t... I, bool ShouldAnyUseBase>
114
114
  struct ABSL_INTERNAL_COMPRESSED_TUPLE_DECLSPEC
115
- CompressedTupleImpl<CompressedTuple<Ts...>, absl::index_sequence<I...>,
115
+ CompressedTupleImpl<CompressedTuple<Ts...>, std::index_sequence<I...>,
116
116
  ShouldAnyUseBase>
117
117
  // We use the dummy identity function through std::integral_constant to
118
118
  // convince MSVC of accepting and expanding I in that context. Without it
@@ -122,23 +122,23 @@ struct ABSL_INTERNAL_COMPRESSED_TUPLE_DECLSPEC
122
122
  StorageTag<Ts...>>... {
123
123
  constexpr CompressedTupleImpl() = default;
124
124
  template <typename... Vs>
125
- explicit constexpr CompressedTupleImpl(absl::in_place_t, Vs&&... args)
126
- : Storage<Ts, I, StorageTag<Ts...>>(absl::in_place,
125
+ explicit constexpr CompressedTupleImpl(std::in_place_t, Vs&&... args)
126
+ : Storage<Ts, I, StorageTag<Ts...>>(std::in_place,
127
127
  std::forward<Vs>(args))... {}
128
128
  friend CompressedTuple<Ts...>;
129
129
  };
130
130
 
131
131
  template <typename... Ts, size_t... I>
132
132
  struct ABSL_INTERNAL_COMPRESSED_TUPLE_DECLSPEC
133
- CompressedTupleImpl<CompressedTuple<Ts...>, absl::index_sequence<I...>,
133
+ CompressedTupleImpl<CompressedTuple<Ts...>, std::index_sequence<I...>,
134
134
  false>
135
135
  // We use the dummy identity function as above...
136
136
  : Storage<Ts, std::integral_constant<size_t, I>::value, StorageTag<Ts...>,
137
137
  false>... {
138
138
  constexpr CompressedTupleImpl() = default;
139
139
  template <typename... Vs>
140
- explicit constexpr CompressedTupleImpl(absl::in_place_t, Vs&&... args)
141
- : Storage<Ts, I, StorageTag<Ts...>, false>(absl::in_place,
140
+ explicit constexpr CompressedTupleImpl(std::in_place_t, Vs&&... args)
141
+ : Storage<Ts, I, StorageTag<Ts...>, false>(std::in_place,
142
142
  std::forward<Vs>(args))... {}
143
143
  friend CompressedTuple<Ts...>;
144
144
  };
@@ -166,7 +166,7 @@ struct TupleMoveConstructible : std::false_type {};
166
166
  template <class... Ts, class... Vs>
167
167
  struct TupleMoveConstructible<true, CompressedTuple<Ts...>, Vs...>
168
168
  : std::integral_constant<
169
- bool, absl::conjunction<
169
+ bool, std::conjunction<
170
170
  TupleElementMoveConstructible<Ts, Vs&&>...>::value> {};
171
171
 
172
172
  template <typename T>
@@ -204,7 +204,7 @@ struct TupleItemsMoveConstructible
204
204
  template <typename... Ts>
205
205
  class ABSL_INTERNAL_COMPRESSED_TUPLE_DECLSPEC CompressedTuple
206
206
  : private internal_compressed_tuple::CompressedTupleImpl<
207
- CompressedTuple<Ts...>, absl::index_sequence_for<Ts...>,
207
+ CompressedTuple<Ts...>, std::index_sequence_for<Ts...>,
208
208
  internal_compressed_tuple::ShouldAnyUseBase<Ts...>()> {
209
209
  private:
210
210
  template <int I>
@@ -224,19 +224,19 @@ class ABSL_INTERNAL_COMPRESSED_TUPLE_DECLSPEC CompressedTuple
224
224
  constexpr CompressedTuple() = default;
225
225
  #endif
226
226
  explicit constexpr CompressedTuple(const Ts&... base)
227
- : CompressedTuple::CompressedTupleImpl(absl::in_place, base...) {}
227
+ : CompressedTuple::CompressedTupleImpl(std::in_place, base...) {}
228
228
 
229
229
  template <typename First, typename... Vs,
230
- absl::enable_if_t<
231
- absl::conjunction<
230
+ std::enable_if_t<
231
+ std::conjunction<
232
232
  // Ensure we are not hiding default copy/move constructors.
233
- absl::negation<std::is_same<void(CompressedTuple),
234
- void(absl::decay_t<First>)>>,
233
+ std::negation<std::is_same<void(CompressedTuple),
234
+ void(std::decay_t<First>)>>,
235
235
  internal_compressed_tuple::TupleItemsMoveConstructible<
236
236
  CompressedTuple<Ts...>, First, Vs...>>::value,
237
237
  bool> = true>
238
238
  explicit constexpr CompressedTuple(First&& first, Vs&&... base)
239
- : CompressedTuple::CompressedTupleImpl(absl::in_place,
239
+ : CompressedTuple::CompressedTupleImpl(std::in_place,
240
240
  std::forward<First>(first),
241
241
  std::forward<Vs>(base)...) {}
242
242