re2 1.22.2 → 1.23.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 (495) hide show
  1. package/README.md +60 -4
  2. package/binding.gyp +5 -1
  3. package/lib/addon.cc +4 -0
  4. package/lib/new.cc +1 -246
  5. package/lib/pattern.cc +252 -0
  6. package/lib/pattern.h +10 -0
  7. package/lib/set.cc +777 -0
  8. package/lib/wrapped_re2_set.h +42 -0
  9. package/package.json +21 -9
  10. package/re2.d.ts +46 -9
  11. package/vendor/abseil-cpp/CMake/AbseilDll.cmake +14 -24
  12. package/vendor/abseil-cpp/CMake/AbseilHelpers.cmake +3 -3
  13. package/vendor/abseil-cpp/CMake/README.md +2 -2
  14. package/vendor/abseil-cpp/CMakeLists.txt +3 -3
  15. package/vendor/abseil-cpp/MODULE.bazel +6 -9
  16. package/vendor/abseil-cpp/README.md +6 -8
  17. package/vendor/abseil-cpp/absl/abseil.podspec.gen.py +6 -4
  18. package/vendor/abseil-cpp/absl/algorithm/BUILD.bazel +3 -0
  19. package/vendor/abseil-cpp/absl/algorithm/CMakeLists.txt +1 -0
  20. package/vendor/abseil-cpp/absl/algorithm/container.h +2 -19
  21. package/vendor/abseil-cpp/absl/algorithm/container_test.cc +4 -11
  22. package/vendor/abseil-cpp/absl/base/BUILD.bazel +60 -45
  23. package/vendor/abseil-cpp/absl/base/CMakeLists.txt +57 -38
  24. package/vendor/abseil-cpp/absl/base/attributes.h +76 -7
  25. package/vendor/abseil-cpp/absl/base/attributes_test.cc +43 -0
  26. package/vendor/abseil-cpp/absl/base/call_once.h +11 -12
  27. package/vendor/abseil-cpp/absl/base/config.h +22 -129
  28. package/vendor/abseil-cpp/absl/base/exception_safety_testing_test.cc +0 -4
  29. package/vendor/abseil-cpp/absl/base/{internal/fast_type_id.h → fast_type_id.h} +11 -16
  30. package/vendor/abseil-cpp/absl/base/{internal/fast_type_id_test.cc → fast_type_id_test.cc} +34 -30
  31. package/vendor/abseil-cpp/absl/base/internal/cycleclock.cc +0 -5
  32. package/vendor/abseil-cpp/absl/base/internal/cycleclock_config.h +7 -7
  33. package/vendor/abseil-cpp/absl/base/internal/endian.h +34 -38
  34. package/vendor/abseil-cpp/absl/base/internal/iterator_traits.h +71 -0
  35. package/vendor/abseil-cpp/absl/base/internal/iterator_traits_test.cc +85 -0
  36. package/vendor/abseil-cpp/absl/base/internal/iterator_traits_test_helper.h +97 -0
  37. package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.cc +39 -9
  38. package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.h +6 -0
  39. package/vendor/abseil-cpp/absl/base/internal/poison.cc +7 -6
  40. package/vendor/abseil-cpp/absl/base/internal/spinlock.cc +15 -28
  41. package/vendor/abseil-cpp/absl/base/internal/spinlock.h +65 -35
  42. package/vendor/abseil-cpp/absl/base/internal/spinlock_benchmark.cc +2 -2
  43. package/vendor/abseil-cpp/absl/base/internal/sysinfo_test.cc +2 -2
  44. package/vendor/abseil-cpp/absl/base/internal/thread_identity_benchmark.cc +1 -1
  45. package/vendor/abseil-cpp/absl/base/internal/thread_identity_test.cc +4 -4
  46. package/vendor/abseil-cpp/absl/base/internal/unaligned_access.h +6 -6
  47. package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +4 -0
  48. package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.h +8 -3
  49. package/vendor/abseil-cpp/absl/base/no_destructor.h +11 -32
  50. package/vendor/abseil-cpp/absl/base/no_destructor_test.cc +0 -4
  51. package/vendor/abseil-cpp/absl/base/nullability.h +83 -72
  52. package/vendor/abseil-cpp/absl/base/nullability_test.cc +25 -64
  53. package/vendor/abseil-cpp/absl/base/options.h +3 -80
  54. package/vendor/abseil-cpp/absl/base/policy_checks.h +7 -7
  55. package/vendor/abseil-cpp/absl/base/raw_logging_test.cc +15 -0
  56. package/vendor/abseil-cpp/absl/base/spinlock_test_common.cc +50 -30
  57. package/vendor/abseil-cpp/absl/cleanup/BUILD.bazel +2 -1
  58. package/vendor/abseil-cpp/absl/cleanup/CMakeLists.txt +0 -1
  59. package/vendor/abseil-cpp/absl/cleanup/cleanup.h +1 -3
  60. package/vendor/abseil-cpp/absl/cleanup/cleanup_test.cc +0 -2
  61. package/vendor/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -4
  62. package/vendor/abseil-cpp/absl/container/BUILD.bazel +74 -1
  63. package/vendor/abseil-cpp/absl/container/CMakeLists.txt +73 -0
  64. package/vendor/abseil-cpp/absl/container/btree_benchmark.cc +51 -9
  65. package/vendor/abseil-cpp/absl/container/btree_map.h +8 -6
  66. package/vendor/abseil-cpp/absl/container/btree_set.h +8 -6
  67. package/vendor/abseil-cpp/absl/container/btree_test.cc +89 -4
  68. package/vendor/abseil-cpp/absl/container/fixed_array.h +7 -15
  69. package/vendor/abseil-cpp/absl/container/fixed_array_test.cc +17 -0
  70. package/vendor/abseil-cpp/absl/container/flat_hash_map.h +20 -15
  71. package/vendor/abseil-cpp/absl/container/flat_hash_map_test.cc +8 -14
  72. package/vendor/abseil-cpp/absl/container/flat_hash_set.h +19 -14
  73. package/vendor/abseil-cpp/absl/container/flat_hash_set_test.cc +46 -0
  74. package/vendor/abseil-cpp/absl/container/inlined_vector.h +7 -6
  75. package/vendor/abseil-cpp/absl/container/inlined_vector_test.cc +28 -0
  76. package/vendor/abseil-cpp/absl/container/internal/btree.h +132 -29
  77. package/vendor/abseil-cpp/absl/container/internal/btree_container.h +175 -71
  78. package/vendor/abseil-cpp/absl/container/internal/common.h +43 -0
  79. package/vendor/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -2
  80. package/vendor/abseil-cpp/absl/container/internal/compressed_tuple.h +28 -24
  81. package/vendor/abseil-cpp/absl/container/internal/compressed_tuple_test.cc +4 -17
  82. package/vendor/abseil-cpp/absl/container/internal/container_memory.h +80 -17
  83. package/vendor/abseil-cpp/absl/container/internal/container_memory_test.cc +32 -2
  84. package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults.h +13 -8
  85. package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults_test.cc +1 -52
  86. package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.cc +9 -31
  87. package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.h +23 -32
  88. package/vendor/abseil-cpp/absl/container/internal/hash_policy_testing.h +5 -1
  89. package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits.h +11 -23
  90. package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits_test.cc +14 -9
  91. package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +516 -0
  92. package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes_test.cc +259 -0
  93. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +23 -6
  94. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.h +32 -13
  95. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +8 -8
  96. package/vendor/abseil-cpp/absl/container/internal/inlined_vector.h +2 -7
  97. package/vendor/abseil-cpp/absl/container/internal/layout.h +26 -42
  98. package/vendor/abseil-cpp/absl/container/internal/raw_hash_map.h +199 -68
  99. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc +1506 -213
  100. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.h +1095 -1658
  101. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_allocator_test.cc +3 -2
  102. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +31 -29
  103. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +51 -20
  104. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +79 -0
  105. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl_test.cc +66 -0
  106. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +707 -363
  107. package/vendor/abseil-cpp/absl/container/node_hash_map.h +20 -15
  108. package/vendor/abseil-cpp/absl/container/node_hash_map_test.cc +0 -3
  109. package/vendor/abseil-cpp/absl/container/node_hash_set.h +18 -13
  110. package/vendor/abseil-cpp/absl/container/sample_element_size_test.cc +3 -8
  111. package/vendor/abseil-cpp/absl/copts/AbseilConfigureCopts.cmake +1 -1
  112. package/vendor/abseil-cpp/absl/copts/GENERATED_AbseilCopts.cmake +9 -20
  113. package/vendor/abseil-cpp/absl/copts/GENERATED_copts.bzl +9 -20
  114. package/vendor/abseil-cpp/absl/copts/copts.py +24 -15
  115. package/vendor/abseil-cpp/absl/crc/BUILD.bazel +3 -0
  116. package/vendor/abseil-cpp/absl/crc/crc32c.cc +0 -4
  117. package/vendor/abseil-cpp/absl/crc/crc32c.h +7 -5
  118. package/vendor/abseil-cpp/absl/crc/crc32c_benchmark.cc +17 -4
  119. package/vendor/abseil-cpp/absl/crc/crc32c_test.cc +30 -0
  120. package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.cc +17 -0
  121. package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.h +7 -1
  122. package/vendor/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +0 -22
  123. package/vendor/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +5 -0
  124. package/vendor/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +136 -165
  125. package/vendor/abseil-cpp/absl/crc/internal/gen_crc32c_consts.py +90 -0
  126. package/vendor/abseil-cpp/absl/debugging/BUILD.bazel +7 -0
  127. package/vendor/abseil-cpp/absl/debugging/CMakeLists.txt +4 -0
  128. package/vendor/abseil-cpp/absl/debugging/internal/addresses.h +57 -0
  129. package/vendor/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +1 -1
  130. package/vendor/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +5 -5
  131. package/vendor/abseil-cpp/absl/debugging/internal/demangle.cc +8 -35
  132. package/vendor/abseil-cpp/absl/debugging/internal/demangle_rust.cc +16 -16
  133. package/vendor/abseil-cpp/absl/debugging/internal/demangle_test.cc +11 -10
  134. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +40 -37
  135. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +16 -7
  136. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_config.h +6 -5
  137. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +14 -5
  138. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +10 -4
  139. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +27 -16
  140. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +13 -4
  141. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +4 -3
  142. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +15 -28
  143. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +25 -14
  144. package/vendor/abseil-cpp/absl/debugging/internal/vdso_support.cc +4 -0
  145. package/vendor/abseil-cpp/absl/debugging/stacktrace.cc +161 -27
  146. package/vendor/abseil-cpp/absl/debugging/stacktrace.h +73 -5
  147. package/vendor/abseil-cpp/absl/debugging/stacktrace_test.cc +435 -1
  148. package/vendor/abseil-cpp/absl/debugging/symbolize_elf.inc +55 -63
  149. package/vendor/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -2
  150. package/vendor/abseil-cpp/absl/debugging/symbolize_win32.inc +25 -6
  151. package/vendor/abseil-cpp/absl/flags/BUILD.bazel +6 -0
  152. package/vendor/abseil-cpp/absl/flags/CMakeLists.txt +3 -0
  153. package/vendor/abseil-cpp/absl/flags/commandlineflag.h +2 -2
  154. package/vendor/abseil-cpp/absl/flags/flag.h +4 -3
  155. package/vendor/abseil-cpp/absl/flags/internal/commandlineflag.h +2 -2
  156. package/vendor/abseil-cpp/absl/flags/internal/flag.cc +14 -13
  157. package/vendor/abseil-cpp/absl/flags/internal/flag.h +34 -34
  158. package/vendor/abseil-cpp/absl/flags/internal/program_name.cc +2 -2
  159. package/vendor/abseil-cpp/absl/flags/internal/registry.h +4 -3
  160. package/vendor/abseil-cpp/absl/flags/internal/usage.cc +2 -2
  161. package/vendor/abseil-cpp/absl/flags/parse.cc +10 -6
  162. package/vendor/abseil-cpp/absl/flags/reflection.cc +9 -7
  163. package/vendor/abseil-cpp/absl/flags/usage.cc +2 -2
  164. package/vendor/abseil-cpp/absl/flags/usage_config.cc +2 -2
  165. package/vendor/abseil-cpp/absl/functional/BUILD.bazel +7 -6
  166. package/vendor/abseil-cpp/absl/functional/CMakeLists.txt +2 -4
  167. package/vendor/abseil-cpp/absl/functional/any_invocable.h +15 -15
  168. package/vendor/abseil-cpp/absl/functional/any_invocable_test.cc +10 -42
  169. package/vendor/abseil-cpp/absl/functional/function_ref.h +2 -9
  170. package/vendor/abseil-cpp/absl/functional/function_ref_test.cc +10 -0
  171. package/vendor/abseil-cpp/absl/functional/function_type_benchmark.cc +1 -1
  172. package/vendor/abseil-cpp/absl/functional/internal/any_invocable.h +112 -227
  173. package/vendor/abseil-cpp/absl/functional/internal/front_binder.h +10 -12
  174. package/vendor/abseil-cpp/absl/functional/internal/function_ref.h +2 -5
  175. package/vendor/abseil-cpp/absl/functional/overload.h +0 -20
  176. package/vendor/abseil-cpp/absl/functional/overload_test.cc +1 -7
  177. package/vendor/abseil-cpp/absl/hash/BUILD.bazel +16 -9
  178. package/vendor/abseil-cpp/absl/hash/CMakeLists.txt +6 -9
  179. package/vendor/abseil-cpp/absl/hash/hash.h +18 -0
  180. package/vendor/abseil-cpp/absl/hash/hash_benchmark.cc +3 -0
  181. package/vendor/abseil-cpp/absl/hash/hash_instantiated_test.cc +1 -1
  182. package/vendor/abseil-cpp/absl/hash/hash_test.cc +131 -30
  183. package/vendor/abseil-cpp/absl/hash/hash_testing.h +20 -20
  184. package/vendor/abseil-cpp/absl/hash/internal/hash.cc +129 -17
  185. package/vendor/abseil-cpp/absl/hash/internal/hash.h +326 -362
  186. package/vendor/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +54 -151
  187. package/vendor/abseil-cpp/absl/hash/internal/spy_hash_state.h +14 -2
  188. package/vendor/abseil-cpp/absl/{strings/cord_buffer.cc → hash/internal/weakly_mixed_integer.h} +14 -6
  189. package/vendor/abseil-cpp/absl/log/BUILD.bazel +4 -0
  190. package/vendor/abseil-cpp/absl/log/CMakeLists.txt +7 -0
  191. package/vendor/abseil-cpp/absl/log/check.h +2 -1
  192. package/vendor/abseil-cpp/absl/log/check_test_impl.inc +308 -14
  193. package/vendor/abseil-cpp/absl/log/die_if_null.h +2 -2
  194. package/vendor/abseil-cpp/absl/log/flags_test.cc +7 -0
  195. package/vendor/abseil-cpp/absl/log/globals.h +4 -5
  196. package/vendor/abseil-cpp/absl/log/internal/BUILD.bazel +13 -9
  197. package/vendor/abseil-cpp/absl/log/internal/append_truncated.h +28 -0
  198. package/vendor/abseil-cpp/absl/log/internal/check_op.cc +24 -22
  199. package/vendor/abseil-cpp/absl/log/internal/check_op.h +149 -94
  200. package/vendor/abseil-cpp/absl/log/internal/conditions.cc +5 -3
  201. package/vendor/abseil-cpp/absl/log/internal/conditions.h +7 -2
  202. package/vendor/abseil-cpp/absl/log/internal/fnmatch_test.cc +1 -0
  203. package/vendor/abseil-cpp/absl/log/internal/log_message.cc +85 -43
  204. package/vendor/abseil-cpp/absl/log/internal/log_message.h +84 -59
  205. package/vendor/abseil-cpp/absl/log/internal/log_sink_set.cc +4 -4
  206. package/vendor/abseil-cpp/absl/log/internal/nullstream.h +1 -0
  207. package/vendor/abseil-cpp/absl/log/internal/proto.cc +3 -2
  208. package/vendor/abseil-cpp/absl/log/internal/proto.h +3 -3
  209. package/vendor/abseil-cpp/absl/log/internal/strip.h +4 -12
  210. package/vendor/abseil-cpp/absl/log/internal/structured.h +3 -7
  211. package/vendor/abseil-cpp/absl/log/internal/vlog_config.cc +9 -9
  212. package/vendor/abseil-cpp/absl/log/internal/vlog_config.h +8 -6
  213. package/vendor/abseil-cpp/absl/log/internal/voidify.h +10 -4
  214. package/vendor/abseil-cpp/absl/log/log.h +48 -35
  215. package/vendor/abseil-cpp/absl/log/log_basic_test_impl.inc +45 -0
  216. package/vendor/abseil-cpp/absl/log/log_entry.cc +241 -19
  217. package/vendor/abseil-cpp/absl/log/log_entry.h +2 -0
  218. package/vendor/abseil-cpp/absl/log/log_format_test.cc +412 -6
  219. package/vendor/abseil-cpp/absl/log/log_modifier_methods_test.cc +20 -0
  220. package/vendor/abseil-cpp/absl/log/log_sink_registry.h +2 -2
  221. package/vendor/abseil-cpp/absl/log/log_streamer_test.cc +15 -2
  222. package/vendor/abseil-cpp/absl/log/scoped_mock_log.h +7 -1
  223. package/vendor/abseil-cpp/absl/log/structured_test.cc +1 -0
  224. package/vendor/abseil-cpp/absl/memory/BUILD.bazel +2 -0
  225. package/vendor/abseil-cpp/absl/meta/BUILD.bazel +2 -0
  226. package/vendor/abseil-cpp/absl/meta/type_traits.h +46 -175
  227. package/vendor/abseil-cpp/absl/meta/type_traits_test.cc +1 -478
  228. package/vendor/abseil-cpp/absl/numeric/BUILD.bazel +7 -3
  229. package/vendor/abseil-cpp/absl/numeric/CMakeLists.txt +2 -0
  230. package/vendor/abseil-cpp/absl/numeric/bits.h +68 -2
  231. package/vendor/abseil-cpp/absl/numeric/bits_benchmark.cc +1 -1
  232. package/vendor/abseil-cpp/absl/numeric/bits_test.cc +83 -0
  233. package/vendor/abseil-cpp/absl/numeric/int128.cc +0 -52
  234. package/vendor/abseil-cpp/absl/numeric/int128_benchmark.cc +14 -15
  235. package/vendor/abseil-cpp/absl/numeric/int128_test.cc +13 -8
  236. package/vendor/abseil-cpp/absl/numeric/internal/bits.h +39 -7
  237. package/vendor/abseil-cpp/absl/profiling/BUILD.bazel +47 -0
  238. package/vendor/abseil-cpp/absl/profiling/CMakeLists.txt +38 -0
  239. package/vendor/abseil-cpp/absl/profiling/hashtable.cc +124 -0
  240. package/vendor/abseil-cpp/absl/profiling/hashtable.h +40 -0
  241. package/vendor/abseil-cpp/absl/profiling/internal/exponential_biased.cc +1 -1
  242. package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.cc +462 -0
  243. package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.h +138 -0
  244. package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder.h +9 -9
  245. package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder_test.cc +7 -3
  246. package/vendor/abseil-cpp/absl/random/BUILD.bazel +6 -4
  247. package/vendor/abseil-cpp/absl/random/CMakeLists.txt +20 -19
  248. package/vendor/abseil-cpp/absl/random/benchmarks.cc +16 -23
  249. package/vendor/abseil-cpp/absl/random/bit_gen_ref.h +10 -11
  250. package/vendor/abseil-cpp/absl/random/bit_gen_ref_test.cc +7 -2
  251. package/vendor/abseil-cpp/absl/random/distributions.h +6 -8
  252. package/vendor/abseil-cpp/absl/random/gaussian_distribution.h +1 -1
  253. package/vendor/abseil-cpp/absl/random/internal/BUILD.bazel +19 -20
  254. package/vendor/abseil-cpp/absl/random/internal/distribution_caller.h +5 -6
  255. package/vendor/abseil-cpp/absl/random/internal/{pool_urbg.cc → entropy_pool.cc} +24 -92
  256. package/vendor/abseil-cpp/absl/{base/inline_variable_test_b.cc → random/internal/entropy_pool.h} +14 -6
  257. package/vendor/abseil-cpp/absl/random/internal/entropy_pool_test.cc +119 -0
  258. package/vendor/abseil-cpp/absl/random/internal/mock_helpers.h +6 -7
  259. package/vendor/abseil-cpp/absl/random/internal/nonsecure_base.h +5 -6
  260. package/vendor/abseil-cpp/absl/random/internal/nonsecure_base_test.cc +39 -0
  261. package/vendor/abseil-cpp/absl/random/internal/randen_benchmarks.cc +8 -6
  262. package/vendor/abseil-cpp/absl/random/internal/randen_detect.cc +1 -1
  263. package/vendor/abseil-cpp/absl/random/internal/seed_material.cc +20 -12
  264. package/vendor/abseil-cpp/absl/random/internal/seed_material.h +5 -5
  265. package/vendor/abseil-cpp/absl/random/internal/seed_material_test.cc +3 -0
  266. package/vendor/abseil-cpp/absl/random/mock_distributions_test.cc +5 -4
  267. package/vendor/abseil-cpp/absl/random/mocking_bit_gen.h +8 -10
  268. package/vendor/abseil-cpp/absl/random/random.h +88 -53
  269. package/vendor/abseil-cpp/absl/random/seed_sequences.cc +6 -2
  270. package/vendor/abseil-cpp/absl/status/BUILD.bazel +26 -0
  271. package/vendor/abseil-cpp/absl/status/internal/status_internal.cc +3 -4
  272. package/vendor/abseil-cpp/absl/status/internal/status_internal.h +3 -4
  273. package/vendor/abseil-cpp/absl/status/internal/status_matchers.cc +4 -3
  274. package/vendor/abseil-cpp/absl/status/internal/statusor_internal.h +194 -32
  275. package/vendor/abseil-cpp/absl/status/status.cc +4 -8
  276. package/vendor/abseil-cpp/absl/status/status.h +8 -8
  277. package/vendor/abseil-cpp/absl/{base/inline_variable_test_a.cc → status/status_benchmark.cc} +20 -10
  278. package/vendor/abseil-cpp/absl/status/status_matchers_test.cc +65 -0
  279. package/vendor/abseil-cpp/absl/status/status_payload_printer.h +2 -2
  280. package/vendor/abseil-cpp/absl/status/statusor.cc +2 -2
  281. package/vendor/abseil-cpp/absl/status/statusor.h +49 -102
  282. package/vendor/abseil-cpp/absl/status/statusor_benchmark.cc +480 -0
  283. package/vendor/abseil-cpp/absl/status/statusor_test.cc +323 -1
  284. package/vendor/abseil-cpp/absl/strings/BUILD.bazel +70 -34
  285. package/vendor/abseil-cpp/absl/strings/CMakeLists.txt +6 -3
  286. package/vendor/abseil-cpp/absl/strings/ascii.cc +9 -9
  287. package/vendor/abseil-cpp/absl/strings/ascii.h +18 -18
  288. package/vendor/abseil-cpp/absl/strings/ascii_benchmark.cc +5 -8
  289. package/vendor/abseil-cpp/absl/strings/charconv.cc +21 -22
  290. package/vendor/abseil-cpp/absl/strings/charconv.h +5 -5
  291. package/vendor/abseil-cpp/absl/strings/charconv_benchmark.cc +1 -2
  292. package/vendor/abseil-cpp/absl/strings/charset_benchmark.cc +1 -1
  293. package/vendor/abseil-cpp/absl/strings/cord.cc +54 -58
  294. package/vendor/abseil-cpp/absl/strings/cord.h +94 -84
  295. package/vendor/abseil-cpp/absl/strings/cord_analysis.cc +11 -11
  296. package/vendor/abseil-cpp/absl/strings/cord_analysis.h +3 -3
  297. package/vendor/abseil-cpp/absl/strings/cord_test.cc +23 -0
  298. package/vendor/abseil-cpp/absl/strings/cordz_test_helpers.h +4 -5
  299. package/vendor/abseil-cpp/absl/strings/escaping.cc +130 -149
  300. package/vendor/abseil-cpp/absl/strings/escaping.h +9 -10
  301. package/vendor/abseil-cpp/absl/strings/escaping_benchmark.cc +2 -3
  302. package/vendor/abseil-cpp/absl/strings/escaping_test.cc +19 -9
  303. package/vendor/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
  304. package/vendor/abseil-cpp/absl/strings/internal/charconv_bigint_test.cc +1 -1
  305. package/vendor/abseil-cpp/absl/strings/internal/cord_internal.h +6 -10
  306. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +0 -4
  307. package/vendor/abseil-cpp/absl/strings/internal/cordz_handle.cc +6 -6
  308. package/vendor/abseil-cpp/absl/strings/internal/cordz_info.cc +5 -9
  309. package/vendor/abseil-cpp/absl/strings/internal/cordz_info.h +2 -4
  310. package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance_benchmark.cc +56 -0
  311. package/vendor/abseil-cpp/absl/strings/internal/memutil_benchmark.cc +2 -3
  312. package/vendor/abseil-cpp/absl/strings/internal/ostringstream_benchmark.cc +1 -2
  313. package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.cc +7 -63
  314. package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -11
  315. package/vendor/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +1 -6
  316. package/vendor/abseil-cpp/absl/strings/internal/str_format/extension.cc +0 -22
  317. package/vendor/abseil-cpp/absl/strings/internal/str_format/extension_test.cc +3 -2
  318. package/vendor/abseil-cpp/absl/strings/internal/str_format/output.cc +5 -3
  319. package/vendor/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
  320. package/vendor/abseil-cpp/absl/strings/internal/str_join_internal.h +3 -3
  321. package/vendor/abseil-cpp/absl/strings/internal/str_split_internal.h +7 -2
  322. package/vendor/abseil-cpp/absl/strings/internal/string_constant.h +0 -5
  323. package/vendor/abseil-cpp/absl/strings/internal/utf8.cc +96 -1
  324. package/vendor/abseil-cpp/absl/strings/internal/utf8.h +15 -1
  325. package/vendor/abseil-cpp/absl/strings/internal/utf8_test.cc +196 -3
  326. package/vendor/abseil-cpp/absl/strings/numbers.cc +53 -32
  327. package/vendor/abseil-cpp/absl/strings/numbers.h +87 -58
  328. package/vendor/abseil-cpp/absl/strings/numbers_benchmark.cc +1 -1
  329. package/vendor/abseil-cpp/absl/strings/numbers_test.cc +634 -120
  330. package/vendor/abseil-cpp/absl/strings/str_cat.cc +6 -7
  331. package/vendor/abseil-cpp/absl/strings/str_cat.h +32 -32
  332. package/vendor/abseil-cpp/absl/strings/str_cat_benchmark.cc +25 -1
  333. package/vendor/abseil-cpp/absl/strings/str_cat_test.cc +2 -7
  334. package/vendor/abseil-cpp/absl/strings/str_format.h +18 -18
  335. package/vendor/abseil-cpp/absl/strings/str_format_test.cc +8 -14
  336. package/vendor/abseil-cpp/absl/strings/str_join_benchmark.cc +2 -3
  337. package/vendor/abseil-cpp/absl/strings/str_replace.cc +3 -3
  338. package/vendor/abseil-cpp/absl/strings/str_replace.h +6 -6
  339. package/vendor/abseil-cpp/absl/strings/str_replace_benchmark.cc +2 -3
  340. package/vendor/abseil-cpp/absl/strings/str_split.h +2 -2
  341. package/vendor/abseil-cpp/absl/strings/str_split_benchmark.cc +2 -3
  342. package/vendor/abseil-cpp/absl/strings/string_view.cc +4 -9
  343. package/vendor/abseil-cpp/absl/strings/string_view.h +38 -39
  344. package/vendor/abseil-cpp/absl/strings/string_view_benchmark.cc +4 -6
  345. package/vendor/abseil-cpp/absl/strings/string_view_test.cc +2 -50
  346. package/vendor/abseil-cpp/absl/strings/strip.h +4 -4
  347. package/vendor/abseil-cpp/absl/strings/substitute.cc +5 -4
  348. package/vendor/abseil-cpp/absl/strings/substitute.h +66 -64
  349. package/vendor/abseil-cpp/absl/strings/substitute_benchmark.cc +158 -0
  350. package/vendor/abseil-cpp/absl/synchronization/BUILD.bazel +6 -1
  351. package/vendor/abseil-cpp/absl/synchronization/CMakeLists.txt +2 -1
  352. package/vendor/abseil-cpp/absl/synchronization/barrier.cc +1 -1
  353. package/vendor/abseil-cpp/absl/synchronization/barrier_test.cc +3 -3
  354. package/vendor/abseil-cpp/absl/synchronization/blocking_counter.cc +2 -2
  355. package/vendor/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +3 -3
  356. package/vendor/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +0 -4
  357. package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles.cc +30 -33
  358. package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles_benchmark.cc +2 -3
  359. package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles_test.cc +6 -5
  360. package/vendor/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +0 -5
  361. package/vendor/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +0 -4
  362. package/vendor/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +0 -4
  363. package/vendor/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +0 -4
  364. package/vendor/abseil-cpp/absl/synchronization/internal/thread_pool.h +3 -3
  365. package/vendor/abseil-cpp/absl/synchronization/internal/waiter_base.cc +0 -4
  366. package/vendor/abseil-cpp/absl/synchronization/internal/waiter_test.cc +12 -3
  367. package/vendor/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +0 -4
  368. package/vendor/abseil-cpp/absl/synchronization/lifetime_test.cc +4 -4
  369. package/vendor/abseil-cpp/absl/synchronization/mutex.cc +27 -29
  370. package/vendor/abseil-cpp/absl/synchronization/mutex.h +205 -126
  371. package/vendor/abseil-cpp/absl/synchronization/mutex_benchmark.cc +13 -31
  372. package/vendor/abseil-cpp/absl/synchronization/mutex_test.cc +183 -169
  373. package/vendor/abseil-cpp/absl/synchronization/notification.cc +5 -5
  374. package/vendor/abseil-cpp/absl/synchronization/notification.h +1 -1
  375. package/vendor/abseil-cpp/absl/synchronization/notification_test.cc +3 -3
  376. package/vendor/abseil-cpp/absl/time/BUILD.bazel +9 -1
  377. package/vendor/abseil-cpp/absl/time/CMakeLists.txt +3 -1
  378. package/vendor/abseil-cpp/absl/time/civil_time.cc +1 -0
  379. package/vendor/abseil-cpp/absl/time/civil_time_test.cc +134 -0
  380. package/vendor/abseil-cpp/absl/time/clock.cc +11 -14
  381. package/vendor/abseil-cpp/absl/time/duration.cc +14 -9
  382. package/vendor/abseil-cpp/absl/time/duration_test.cc +6 -7
  383. package/vendor/abseil-cpp/absl/time/internal/cctz/BUILD.bazel +14 -3
  384. package/vendor/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +12 -0
  385. package/vendor/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -1
  386. package/vendor/abseil-cpp/absl/time/internal/cctz/src/cctz_benchmark.cc +4 -490
  387. package/vendor/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.cc +515 -0
  388. package/vendor/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.h +33 -0
  389. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +41 -4
  390. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format_test.cc +22 -23
  391. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +90 -111
  392. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup_test.cc +1 -488
  393. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -1
  394. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Coyhaique +0 -0
  395. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tehran +0 -0
  396. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Iran +0 -0
  397. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +2 -1
  398. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +1 -1
  399. package/vendor/abseil-cpp/absl/time/time.h +24 -18
  400. package/vendor/abseil-cpp/absl/time/time_test.cc +26 -0
  401. package/vendor/abseil-cpp/absl/types/BUILD.bazel +11 -164
  402. package/vendor/abseil-cpp/absl/types/CMakeLists.txt +23 -167
  403. package/vendor/abseil-cpp/absl/types/any.h +9 -484
  404. package/vendor/abseil-cpp/absl/types/optional.h +7 -747
  405. package/vendor/abseil-cpp/absl/types/span.h +46 -19
  406. package/vendor/abseil-cpp/absl/types/span_test.cc +27 -0
  407. package/vendor/abseil-cpp/absl/types/variant.h +5 -784
  408. package/vendor/abseil-cpp/absl/types/variant_test.cc +43 -2597
  409. package/vendor/abseil-cpp/absl/utility/BUILD.bazel +1 -41
  410. package/vendor/abseil-cpp/absl/utility/CMakeLists.txt +0 -40
  411. package/vendor/abseil-cpp/absl/utility/utility.h +10 -185
  412. package/vendor/abseil-cpp/ci/absl_alternate_options.h +2 -3
  413. package/vendor/abseil-cpp/ci/cmake_common.sh +2 -2
  414. package/vendor/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +12 -13
  415. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +24 -21
  416. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +12 -12
  417. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +23 -22
  418. package/vendor/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +20 -19
  419. package/vendor/abseil-cpp/ci/linux_docker_containers.sh +4 -4
  420. package/vendor/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +17 -17
  421. package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +10 -10
  422. package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_cmake.sh +1 -1
  423. package/vendor/abseil-cpp/ci/linux_gcc_alpine_cmake.sh +1 -1
  424. package/vendor/abseil-cpp/ci/macos_xcode_bazel.sh +9 -10
  425. package/vendor/abseil-cpp/ci/macos_xcode_cmake.sh +9 -1
  426. package/vendor/abseil-cpp/ci/windows_clangcl_bazel.bat +14 -6
  427. package/vendor/abseil-cpp/ci/windows_msvc_bazel.bat +14 -6
  428. package/vendor/abseil-cpp/ci/windows_msvc_cmake.bat +1 -1
  429. package/vendor/re2/.bazelrc +4 -4
  430. package/vendor/re2/.bcr/metadata.template.json +16 -0
  431. package/vendor/re2/.bcr/presubmit.yml +57 -0
  432. package/vendor/re2/.bcr/source.template.json +5 -0
  433. package/vendor/re2/.github/bazel.sh +1 -7
  434. package/vendor/re2/.github/workflows/ci-bazel.yml +5 -5
  435. package/vendor/re2/.github/workflows/ci-cmake.yml +4 -4
  436. package/vendor/re2/.github/workflows/ci.yml +5 -6
  437. package/vendor/re2/.github/workflows/pages.yml +3 -3
  438. package/vendor/re2/.github/workflows/python.yml +29 -24
  439. package/vendor/re2/.github/workflows/release-bazel.yml +42 -0
  440. package/vendor/re2/.github/workflows/release.yml +15 -4
  441. package/vendor/re2/BUILD.bazel +25 -0
  442. package/vendor/re2/CMakeLists.txt +100 -85
  443. package/vendor/re2/CONTRIBUTING.md +0 -1
  444. package/vendor/re2/MODULE.bazel +10 -10
  445. package/vendor/re2/Makefile +1 -1
  446. package/vendor/re2/README.md +259 -0
  447. package/vendor/re2/python/BUILD.bazel +8 -0
  448. package/vendor/re2/python/re2.py +1 -1
  449. package/vendor/re2/python/re2_test.py +6 -0
  450. package/vendor/re2/python/setup.py +3 -3
  451. package/vendor/re2/re2/bitmap256.cc +3 -4
  452. package/vendor/re2/re2/bitstate.cc +15 -10
  453. package/vendor/re2/re2/dfa.cc +1 -2
  454. package/vendor/re2/re2/parse.cc +3 -4
  455. package/vendor/re2/re2/prog.cc +1 -2
  456. package/vendor/re2/re2/prog.h +1 -0
  457. package/vendor/re2/re2/re2.cc +5 -0
  458. package/vendor/re2/re2/re2.h +9 -9
  459. package/vendor/re2/re2/set.cc +6 -0
  460. package/vendor/re2/re2/set.h +5 -0
  461. package/vendor/re2/re2/testing/re2_arg_test.cc +3 -3
  462. package/vendor/re2/re2/testing/re2_test.cc +8 -0
  463. package/vendor/re2/re2/testing/set_test.cc +5 -0
  464. package/vendor/re2/re2/walker-inl.h +1 -1
  465. package/vendor/abseil-cpp/WORKSPACE +0 -76
  466. package/vendor/abseil-cpp/WORKSPACE.bzlmod +0 -19
  467. package/vendor/abseil-cpp/absl/base/inline_variable_test.cc +0 -64
  468. package/vendor/abseil-cpp/absl/base/internal/inline_variable.h +0 -108
  469. package/vendor/abseil-cpp/absl/base/internal/inline_variable_testing.h +0 -46
  470. package/vendor/abseil-cpp/absl/base/internal/invoke.h +0 -241
  471. package/vendor/abseil-cpp/absl/base/internal/nullability_impl.h +0 -69
  472. package/vendor/abseil-cpp/absl/base/invoke_test.cc +0 -331
  473. package/vendor/abseil-cpp/absl/hash/internal/low_level_hash.cc +0 -148
  474. package/vendor/abseil-cpp/absl/hash/internal/low_level_hash.h +0 -54
  475. package/vendor/abseil-cpp/absl/random/internal/pool_urbg.h +0 -131
  476. package/vendor/abseil-cpp/absl/random/internal/pool_urbg_test.cc +0 -182
  477. package/vendor/abseil-cpp/absl/types/any_exception_safety_test.cc +0 -173
  478. package/vendor/abseil-cpp/absl/types/any_test.cc +0 -778
  479. package/vendor/abseil-cpp/absl/types/bad_any_cast.cc +0 -64
  480. package/vendor/abseil-cpp/absl/types/bad_any_cast.h +0 -75
  481. package/vendor/abseil-cpp/absl/types/bad_optional_access.cc +0 -66
  482. package/vendor/abseil-cpp/absl/types/bad_optional_access.h +0 -78
  483. package/vendor/abseil-cpp/absl/types/bad_variant_access.cc +0 -82
  484. package/vendor/abseil-cpp/absl/types/bad_variant_access.h +0 -82
  485. package/vendor/abseil-cpp/absl/types/internal/optional.h +0 -352
  486. package/vendor/abseil-cpp/absl/types/internal/variant.h +0 -1622
  487. package/vendor/abseil-cpp/absl/types/optional_exception_safety_test.cc +0 -292
  488. package/vendor/abseil-cpp/absl/types/optional_test.cc +0 -1615
  489. package/vendor/abseil-cpp/absl/types/variant_benchmark.cc +0 -222
  490. package/vendor/abseil-cpp/absl/types/variant_exception_safety_test.cc +0 -532
  491. package/vendor/abseil-cpp/absl/utility/internal/if_constexpr.h +0 -70
  492. package/vendor/abseil-cpp/absl/utility/internal/if_constexpr_test.cc +0 -79
  493. package/vendor/abseil-cpp/absl/utility/utility_test.cc +0 -239
  494. package/vendor/re2/.github/workflows/pr.yml +0 -34
  495. package/vendor/re2/README +0 -47
@@ -14,6 +14,9 @@
14
14
  # limitations under the License.
15
15
  #
16
16
 
17
+ load("@rules_cc//cc:cc_binary.bzl", "cc_binary")
18
+ load("@rules_cc//cc:cc_library.bzl", "cc_library")
19
+ load("@rules_cc//cc:cc_test.bzl", "cc_test")
17
20
  load(
18
21
  "//absl:copts/configure_copts.bzl",
19
22
  "ABSL_DEFAULT_COPTS",
@@ -82,14 +85,12 @@ cc_library(
82
85
 
83
86
  cc_library(
84
87
  name = "nullability",
85
- srcs = ["internal/nullability_impl.h"],
86
88
  hdrs = ["nullability.h"],
87
89
  copts = ABSL_DEFAULT_COPTS,
88
90
  linkopts = ABSL_DEFAULT_LINKOPTS,
89
91
  deps = [
90
92
  ":config",
91
93
  ":core_headers",
92
- "//absl/meta:type_traits",
93
94
  ],
94
95
  )
95
96
 
@@ -230,8 +231,6 @@ cc_library(
230
231
  hdrs = [
231
232
  "internal/hide_ptr.h",
232
233
  "internal/identity.h",
233
- "internal/inline_variable.h",
234
- "internal/invoke.h",
235
234
  "internal/scheduling_mode.h",
236
235
  ],
237
236
  copts = ABSL_DEFAULT_COPTS,
@@ -340,6 +339,21 @@ cc_test(
340
339
  ],
341
340
  )
342
341
 
342
+ cc_test(
343
+ name = "attributes_test",
344
+ srcs = [
345
+ "attributes_test.cc",
346
+ ],
347
+ copts = ABSL_TEST_COPTS,
348
+ linkopts = ABSL_DEFAULT_LINKOPTS,
349
+ deps = [
350
+ ":config",
351
+ ":core_headers",
352
+ "@googletest//:gtest",
353
+ "@googletest//:gtest_main",
354
+ ],
355
+ )
356
+
343
357
  cc_test(
344
358
  name = "c_header_test",
345
359
  srcs = ["c_header_test.c"],
@@ -449,39 +463,6 @@ cc_test(
449
463
  ],
450
464
  )
451
465
 
452
- cc_test(
453
- name = "inline_variable_test",
454
- size = "small",
455
- srcs = [
456
- "inline_variable_test.cc",
457
- "inline_variable_test_a.cc",
458
- "inline_variable_test_b.cc",
459
- "internal/inline_variable_testing.h",
460
- ],
461
- copts = ABSL_TEST_COPTS,
462
- linkopts = ABSL_DEFAULT_LINKOPTS,
463
- deps = [
464
- ":base_internal",
465
- "@googletest//:gtest",
466
- "@googletest//:gtest_main",
467
- ],
468
- )
469
-
470
- cc_test(
471
- name = "invoke_test",
472
- size = "small",
473
- srcs = ["invoke_test.cc"],
474
- copts = ABSL_TEST_COPTS,
475
- linkopts = ABSL_DEFAULT_LINKOPTS,
476
- deps = [
477
- ":base_internal",
478
- "//absl/memory",
479
- "//absl/strings",
480
- "@googletest//:gtest",
481
- "@googletest//:gtest_main",
482
- ],
483
- )
484
-
485
466
  # Common test library made available for use in non-absl code that overrides
486
467
  # AbslInternalSpinLockDelay and AbslInternalSpinLockWake.
487
468
  cc_library(
@@ -561,6 +542,9 @@ cc_library(
561
542
  ],
562
543
  copts = ABSL_DEFAULT_COPTS,
563
544
  linkopts = ABSL_DEFAULT_LINKOPTS,
545
+ visibility = [
546
+ "//absl:__subpackages__",
547
+ ],
564
548
  deps = [
565
549
  ":base",
566
550
  ":config",
@@ -703,7 +687,6 @@ cc_test(
703
687
 
704
688
  cc_test(
705
689
  name = "thread_identity_test",
706
- size = "small",
707
690
  srcs = ["internal/thread_identity_test.cc"],
708
691
  copts = ABSL_TEST_COPTS,
709
692
  linkopts = ABSL_DEFAULT_LINKOPTS,
@@ -719,8 +702,9 @@ cc_test(
719
702
  ],
720
703
  )
721
704
 
722
- cc_test(
705
+ cc_binary(
723
706
  name = "thread_identity_benchmark",
707
+ testonly = True,
724
708
  srcs = ["internal/thread_identity_benchmark.cc"],
725
709
  copts = ABSL_TEST_COPTS,
726
710
  linkopts = ABSL_DEFAULT_LINKOPTS,
@@ -730,7 +714,6 @@ cc_test(
730
714
  ":base",
731
715
  "//absl/synchronization",
732
716
  "@google_benchmark//:benchmark_main",
733
- "@googletest//:gtest",
734
717
  ],
735
718
  )
736
719
 
@@ -739,6 +722,7 @@ cc_library(
739
722
  testonly = True,
740
723
  srcs = ["internal/scoped_set_env.cc"],
741
724
  hdrs = ["internal/scoped_set_env.h"],
725
+ copts = ABSL_DEFAULT_COPTS,
742
726
  linkopts = ABSL_DEFAULT_LINKOPTS,
743
727
  visibility = [
744
728
  "//absl:__subpackages__",
@@ -824,12 +808,9 @@ cc_binary(
824
808
 
825
809
  cc_library(
826
810
  name = "fast_type_id",
827
- hdrs = ["internal/fast_type_id.h"],
811
+ hdrs = ["fast_type_id.h"],
828
812
  copts = ABSL_DEFAULT_COPTS,
829
813
  linkopts = ABSL_DEFAULT_LINKOPTS,
830
- visibility = [
831
- "//absl:__subpackages__",
832
- ],
833
814
  deps = [
834
815
  ":config",
835
816
  ],
@@ -838,10 +819,11 @@ cc_library(
838
819
  cc_test(
839
820
  name = "fast_type_id_test",
840
821
  size = "small",
841
- srcs = ["internal/fast_type_id_test.cc"],
822
+ srcs = ["fast_type_id_test.cc"],
842
823
  copts = ABSL_TEST_COPTS,
843
824
  linkopts = ABSL_DEFAULT_LINKOPTS,
844
825
  deps = [
826
+ ":core_headers",
845
827
  ":fast_type_id",
846
828
  "@googletest//:gtest",
847
829
  "@googletest//:gtest_main",
@@ -940,6 +922,31 @@ cc_test(
940
922
  ],
941
923
  )
942
924
 
925
+ cc_library(
926
+ name = "iterator_traits_internal",
927
+ hdrs = ["internal/iterator_traits.h"],
928
+ copts = ABSL_DEFAULT_COPTS,
929
+ linkopts = ABSL_DEFAULT_LINKOPTS,
930
+ deps = [
931
+ ":config",
932
+ "//absl/meta:type_traits",
933
+ ],
934
+ )
935
+
936
+ cc_test(
937
+ name = "iterator_traits_test",
938
+ srcs = ["internal/iterator_traits_test.cc"],
939
+ copts = ABSL_TEST_COPTS,
940
+ linkopts = ABSL_DEFAULT_LINKOPTS,
941
+ deps = [
942
+ ":config",
943
+ ":iterator_traits_internal",
944
+ ":iterator_traits_test_helper",
945
+ "@googletest//:gtest",
946
+ "@googletest//:gtest_main",
947
+ ],
948
+ )
949
+
943
950
  cc_library(
944
951
  name = "tracing_internal",
945
952
  srcs = ["internal/tracing.cc"],
@@ -955,6 +962,14 @@ cc_library(
955
962
  ],
956
963
  )
957
964
 
965
+ cc_library(
966
+ name = "iterator_traits_test_helper",
967
+ hdrs = ["internal/iterator_traits_test_helper.h"],
968
+ copts = ABSL_DEFAULT_COPTS,
969
+ linkopts = ABSL_DEFAULT_LINKOPTS,
970
+ deps = [":config"],
971
+ )
972
+
958
973
  cc_test(
959
974
  name = "tracing_internal_weak_test",
960
975
  srcs = ["internal/tracing_weak_test.cc"],
@@ -72,12 +72,9 @@ absl_cc_library(
72
72
  nullability
73
73
  HDRS
74
74
  "nullability.h"
75
- SRCS
76
- "internal/nullability_impl.h"
77
75
  DEPS
78
76
  absl::config
79
77
  absl::core_headers
80
- absl::type_traits
81
78
  COPTS
82
79
  ${ABSL_DEFAULT_COPTS}
83
80
  )
@@ -216,8 +213,6 @@ absl_cc_library(
216
213
  HDRS
217
214
  "internal/hide_ptr.h"
218
215
  "internal/identity.h"
219
- "internal/inline_variable.h"
220
- "internal/invoke.h"
221
216
  "internal/scheduling_mode.h"
222
217
  COPTS
223
218
  ${ABSL_DEFAULT_COPTS}
@@ -371,6 +366,19 @@ absl_cc_test(
371
366
  GTest::gtest_main
372
367
  )
373
368
 
369
+ absl_cc_test(
370
+ NAME
371
+ attributes_test
372
+ SRCS
373
+ "attributes_test.cc"
374
+ COPTS
375
+ ${ABSL_TEST_COPTS}
376
+ DEPS
377
+ absl::config
378
+ absl::core_headers
379
+ GTest::gtest_main
380
+ )
381
+
374
382
  absl_cc_test(
375
383
  NAME
376
384
  bit_cast_test
@@ -412,36 +420,6 @@ absl_cc_test(
412
420
  GTest::gtest_main
413
421
  )
414
422
 
415
- absl_cc_test(
416
- NAME
417
- inline_variable_test
418
- SRCS
419
- "internal/inline_variable_testing.h"
420
- "inline_variable_test.cc"
421
- "inline_variable_test_a.cc"
422
- "inline_variable_test_b.cc"
423
- COPTS
424
- ${ABSL_TEST_COPTS}
425
- DEPS
426
- absl::base_internal
427
- GTest::gtest_main
428
- )
429
-
430
- absl_cc_test(
431
- NAME
432
- invoke_test
433
- SRCS
434
- "invoke_test.cc"
435
- COPTS
436
- ${ABSL_TEST_COPTS}
437
- DEPS
438
- absl::base_internal
439
- absl::memory
440
- absl::strings
441
- GTest::gmock
442
- GTest::gtest_main
443
- )
444
-
445
423
  # Internal-only target, do not depend on directly.
446
424
  absl_cc_library(
447
425
  NAME
@@ -688,12 +666,11 @@ absl_cc_test(
688
666
  GTest::gtest_main
689
667
  )
690
668
 
691
- # Internal-only target, do not depend on directly.
692
669
  absl_cc_library(
693
670
  NAME
694
671
  fast_type_id
695
672
  HDRS
696
- "internal/fast_type_id.h"
673
+ "fast_type_id.h"
697
674
  COPTS
698
675
  ${ABSL_DEFAULT_COPTS}
699
676
  LINKOPTS
@@ -706,10 +683,11 @@ absl_cc_test(
706
683
  NAME
707
684
  fast_type_id_test
708
685
  SRCS
709
- "internal/fast_type_id_test.cc"
686
+ "fast_type_id_test.cc"
710
687
  COPTS
711
688
  ${ABSL_TEST_COPTS}
712
689
  DEPS
690
+ absl::core_headers
713
691
  absl::fast_type_id
714
692
  GTest::gtest_main
715
693
  )
@@ -821,3 +799,44 @@ absl_cc_test(
821
799
  absl::tracing_internal
822
800
  GTest::gtest_main
823
801
  )
802
+
803
+ # Internal-only target, do not depend on directly.
804
+ absl_cc_library(
805
+ NAME
806
+ iterator_traits_internal
807
+ HDRS
808
+ "internal/iterator_traits.h"
809
+ COPTS
810
+ ${ABSL_DEFAULT_COPTS}
811
+ DEPS
812
+ absl::config
813
+ absl::type_traits
814
+ PUBLIC
815
+ )
816
+
817
+ absl_cc_test(
818
+ NAME
819
+ iterator_traits_test
820
+ SRCS
821
+ "internal/iterator_traits_test.cc"
822
+ COPTS
823
+ ${ABSL_TEST_COPTS}
824
+ DEPS
825
+ absl::config
826
+ absl::iterator_traits_internal
827
+ absl::iterator_traits_test_helper_internal
828
+ GTest::gtest_main
829
+ )
830
+
831
+ # Internal-only target, do not depend on directly.
832
+ absl_cc_library(
833
+ NAME
834
+ iterator_traits_test_helper_internal
835
+ HDRS
836
+ "internal/iterator_traits_test_helper.h"
837
+ COPTS
838
+ ${ABSL_DEFAULT_COPTS}
839
+ DEPS
840
+ absl::config
841
+ PUBLIC
842
+ )
@@ -339,9 +339,9 @@
339
339
  #ifndef ABSL_ATTRIBUTE_SECTION_VARIABLE
340
340
  #ifdef _AIX
341
341
  // __attribute__((section(#name))) on AIX is achieved by using the `.csect`
342
- // psudo op which includes an additional integer as part of its syntax indcating
343
- // alignment. If data fall under different alignments then you might get a
344
- // compilation error indicating a `Section type conflict`.
342
+ // pseudo op which includes an additional integer as part of its syntax
343
+ // indicating alignment. If data fall under different alignments then you might
344
+ // get a compilation error indicating a `Section type conflict`.
345
345
  #define ABSL_ATTRIBUTE_SECTION_VARIABLE(name)
346
346
  #else
347
347
  #define ABSL_ATTRIBUTE_SECTION_VARIABLE(name) __attribute__((section(#name)))
@@ -553,12 +553,11 @@
553
553
  //
554
554
  // Prevents the compiler from complaining about variables that appear unused.
555
555
  //
556
- // For code or headers that are assured to only build with C++17 and up, prefer
557
- // just using the standard '[[maybe_unused]]' directly over this macro.
556
+ // Deprecated: Use the standard C++17 `[[maybe_unused]]` instead.
558
557
  //
559
558
  // Due to differences in positioning requirements between the old, compiler
560
- // specific __attribute__ syntax and the now standard [[maybe_unused]], this
561
- // macro does not attempt to take advantage of '[[maybe_unused]]'.
559
+ // specific __attribute__ syntax and the now standard `[[maybe_unused]]`, this
560
+ // macro does not attempt to take advantage of `[[maybe_unused]]`.
562
561
  #if ABSL_HAVE_ATTRIBUTE(unused) || (defined(__GNUC__) && !defined(__clang__))
563
562
  #undef ABSL_ATTRIBUTE_UNUSED
564
563
  #define ABSL_ATTRIBUTE_UNUSED __attribute__((__unused__))
@@ -759,6 +758,76 @@
759
758
  #define ABSL_CONST_INIT
760
759
  #endif
761
760
 
761
+ // ABSL_REQUIRE_EXPLICIT_INIT
762
+ //
763
+ // ABSL_REQUIRE_EXPLICIT_INIT is placed *after* the data members of an aggregate
764
+ // type to indicate that the annotated member must be explicitly initialized by
765
+ // the user whenever the aggregate is constructed. For example:
766
+ //
767
+ // struct Coord {
768
+ // int x ABSL_REQUIRE_EXPLICIT_INIT;
769
+ // int y ABSL_REQUIRE_EXPLICIT_INIT;
770
+ // };
771
+ // Coord coord = {1}; // warning: field 'y' is not explicitly initialized
772
+ //
773
+ // Note that usage on C arrays is not supported in C++.
774
+ // Use a struct (such as std::array) to wrap the array member instead.
775
+ //
776
+ // Avoid applying this attribute to the members of non-aggregate types.
777
+ // The behavior within non-aggregates is unspecified and subject to change.
778
+ //
779
+ // Do NOT attempt to suppress or demote the error generated by this attribute.
780
+ // Just like with a missing function argument, it is a hard error by design.
781
+ //
782
+ // See the upstream documentation for more details:
783
+ // https://clang.llvm.org/docs/AttributeReference.html#require-explicit-initialization
784
+ #ifdef __cplusplus
785
+ #if ABSL_HAVE_CPP_ATTRIBUTE(clang::require_explicit_initialization)
786
+ // clang-format off
787
+ #define ABSL_REQUIRE_EXPLICIT_INIT \
788
+ [[clang::require_explicit_initialization]] = \
789
+ AbslInternal_YouForgotToExplicitlyInitializeAField::v
790
+ #else
791
+ #define ABSL_REQUIRE_EXPLICIT_INIT \
792
+ = AbslInternal_YouForgotToExplicitlyInitializeAField::v
793
+ #endif
794
+ // clang-format on
795
+ #else
796
+ // clang-format off
797
+ #if ABSL_HAVE_ATTRIBUTE(require_explicit_initialization)
798
+ #define ABSL_REQUIRE_EXPLICIT_INIT \
799
+ __attribute__((require_explicit_initialization))
800
+ #else
801
+ #define ABSL_REQUIRE_EXPLICIT_INIT \
802
+ /* No portable fallback for C is available */
803
+ #endif
804
+ // clang-format on
805
+ #endif
806
+
807
+ #ifdef __cplusplus
808
+ struct AbslInternal_YouForgotToExplicitlyInitializeAField {
809
+ // A portable version of [[clang::require_explicit_initialization]] that
810
+ // never builds, as a last resort for all toolchains.
811
+ // The error messages are poor, so we don't rely on this unless we have to.
812
+ template <class T>
813
+ #if !defined(SWIG)
814
+ constexpr
815
+ #endif
816
+ operator T() const /* NOLINT */ {
817
+ const void *volatile deliberately_volatile_ptr = nullptr;
818
+ // Infinite loop to prevent constexpr compilation
819
+ for (;;) {
820
+ // This assignment ensures the 'this' pointer is not optimized away, so
821
+ // that linking always fails.
822
+ deliberately_volatile_ptr = this; // Deliberately not constexpr
823
+ (void)deliberately_volatile_ptr;
824
+ }
825
+ }
826
+ // This is deliberately left undefined to prevent linking
827
+ static AbslInternal_YouForgotToExplicitlyInitializeAField v;
828
+ };
829
+ #endif
830
+
762
831
  // ABSL_ATTRIBUTE_PURE_FUNCTION
763
832
  //
764
833
  // ABSL_ATTRIBUTE_PURE_FUNCTION is used to annotate declarations of "pure"
@@ -0,0 +1,43 @@
1
+ // Copyright 2025 The Abseil Authors
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // https://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ #include "absl/base/attributes.h"
16
+
17
+ #include "gtest/gtest.h"
18
+ #include "absl/base/config.h"
19
+
20
+ namespace {
21
+
22
+ TEST(Attributes, RequireExplicitInit) {
23
+ struct Agg {
24
+ int f1;
25
+ int f2 ABSL_REQUIRE_EXPLICIT_INIT;
26
+ };
27
+ Agg good1 ABSL_ATTRIBUTE_UNUSED = {1, 2};
28
+ #if ABSL_INTERNAL_CPLUSPLUS_LANG >= 202002L
29
+ Agg good2 ABSL_ATTRIBUTE_UNUSED(1, 2);
30
+ #endif
31
+ Agg good3 ABSL_ATTRIBUTE_UNUSED{1, 2};
32
+ Agg good4 ABSL_ATTRIBUTE_UNUSED = {1, 2};
33
+ Agg good5 ABSL_ATTRIBUTE_UNUSED = Agg{1, 2};
34
+ Agg good6[1] ABSL_ATTRIBUTE_UNUSED = {{1, 2}};
35
+ Agg good7[1] ABSL_ATTRIBUTE_UNUSED = {Agg{1, 2}};
36
+ union {
37
+ Agg agg;
38
+ } good8 ABSL_ATTRIBUTE_UNUSED = {{1, 2}};
39
+ constexpr Agg good9 ABSL_ATTRIBUTE_UNUSED = {1, 2};
40
+ constexpr Agg good10 ABSL_ATTRIBUTE_UNUSED{1, 2};
41
+ }
42
+
43
+ } // namespace
@@ -28,12 +28,12 @@
28
28
  #include <algorithm>
29
29
  #include <atomic>
30
30
  #include <cstdint>
31
+ #include <functional>
31
32
  #include <type_traits>
32
33
  #include <utility>
33
34
 
34
35
  #include "absl/base/attributes.h"
35
36
  #include "absl/base/config.h"
36
- #include "absl/base/internal/invoke.h"
37
37
  #include "absl/base/internal/low_level_scheduling.h"
38
38
  #include "absl/base/internal/raw_logging.h"
39
39
  #include "absl/base/internal/scheduling_mode.h"
@@ -49,8 +49,8 @@ ABSL_NAMESPACE_BEGIN
49
49
  class once_flag;
50
50
 
51
51
  namespace base_internal {
52
- absl::Nonnull<std::atomic<uint32_t>*> ControlWord(
53
- absl::Nonnull<absl::once_flag*> flag);
52
+ std::atomic<uint32_t>* absl_nonnull ControlWord(
53
+ absl::once_flag* absl_nonnull flag);
54
54
  } // namespace base_internal
55
55
 
56
56
  // call_once()
@@ -93,8 +93,8 @@ class once_flag {
93
93
  once_flag& operator=(const once_flag&) = delete;
94
94
 
95
95
  private:
96
- friend absl::Nonnull<std::atomic<uint32_t>*> base_internal::ControlWord(
97
- absl::Nonnull<once_flag*> flag);
96
+ friend std::atomic<uint32_t>* absl_nonnull base_internal::ControlWord(
97
+ once_flag* absl_nonnull flag);
98
98
  std::atomic<uint32_t> control_;
99
99
  };
100
100
 
@@ -108,7 +108,7 @@ namespace base_internal {
108
108
  // Like call_once, but uses KERNEL_ONLY scheduling. Intended to be used to
109
109
  // initialize entities used by the scheduler implementation.
110
110
  template <typename Callable, typename... Args>
111
- void LowLevelCallOnce(absl::Nonnull<absl::once_flag*> flag, Callable&& fn,
111
+ void LowLevelCallOnce(absl::once_flag* absl_nonnull flag, Callable&& fn,
112
112
  Args&&... args);
113
113
 
114
114
  // Disables scheduling while on stack when scheduling mode is non-cooperative.
@@ -150,7 +150,7 @@ enum {
150
150
 
151
151
  template <typename Callable, typename... Args>
152
152
  void
153
- CallOnceImpl(absl::Nonnull<std::atomic<uint32_t>*> control,
153
+ CallOnceImpl(std::atomic<uint32_t>* absl_nonnull control,
154
154
  base_internal::SchedulingMode scheduling_mode, Callable&& fn,
155
155
  Args&&... args) {
156
156
  #ifndef NDEBUG
@@ -181,8 +181,7 @@ template <typename Callable, typename... Args>
181
181
  std::memory_order_relaxed) ||
182
182
  base_internal::SpinLockWait(control, ABSL_ARRAYSIZE(trans), trans,
183
183
  scheduling_mode) == kOnceInit) {
184
- base_internal::invoke(std::forward<Callable>(fn),
185
- std::forward<Args>(args)...);
184
+ std::invoke(std::forward<Callable>(fn), std::forward<Args>(args)...);
186
185
  old_control =
187
186
  control->exchange(base_internal::kOnceDone, std::memory_order_release);
188
187
  if (old_control == base_internal::kOnceWaiter) {
@@ -191,13 +190,13 @@ template <typename Callable, typename... Args>
191
190
  } // else *control is already kOnceDone
192
191
  }
193
192
 
194
- inline absl::Nonnull<std::atomic<uint32_t>*> ControlWord(
195
- absl::Nonnull<once_flag*> flag) {
193
+ inline std::atomic<uint32_t>* absl_nonnull ControlWord(
194
+ once_flag* absl_nonnull flag) {
196
195
  return &flag->control_;
197
196
  }
198
197
 
199
198
  template <typename Callable, typename... Args>
200
- void LowLevelCallOnce(absl::Nonnull<absl::once_flag*> flag, Callable&& fn,
199
+ void LowLevelCallOnce(absl::once_flag* absl_nonnull flag, Callable&& fn,
201
200
  Args&&... args) {
202
201
  std::atomic<uint32_t>* once = base_internal::ControlWord(flag);
203
202
  uint32_t s = once->load(std::memory_order_acquire);