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
@@ -57,7 +57,7 @@ template <typename T>
57
57
  using Flag = flags_internal::Flag<T>;
58
58
 
59
59
  template <typename T>
60
- ABSL_MUST_USE_RESULT T GetFlag(const absl::Flag<T>& flag);
60
+ [[nodiscard]] T GetFlag(const absl::Flag<T>& flag);
61
61
 
62
62
  template <typename T>
63
63
  void SetFlag(absl::Flag<T>* flag, const T& v);
@@ -601,17 +601,17 @@ class FlagImpl final : public CommandLineFlag {
601
601
  data_guard_{} {}
602
602
 
603
603
  // Constant access methods
604
- int64_t ReadOneWord() const ABSL_LOCKS_EXCLUDED(*DataGuard());
605
- bool ReadOneBool() const ABSL_LOCKS_EXCLUDED(*DataGuard());
606
- void Read(void* dst) const override ABSL_LOCKS_EXCLUDED(*DataGuard());
607
- void Read(bool* value) const ABSL_LOCKS_EXCLUDED(*DataGuard()) {
604
+ int64_t ReadOneWord() const ABSL_LOCKS_EXCLUDED(DataGuard());
605
+ bool ReadOneBool() const ABSL_LOCKS_EXCLUDED(DataGuard());
606
+ void Read(void* dst) const override ABSL_LOCKS_EXCLUDED(DataGuard());
607
+ void Read(bool* value) const ABSL_LOCKS_EXCLUDED(DataGuard()) {
608
608
  *value = ReadOneBool();
609
609
  }
610
610
  template <typename T,
611
611
  absl::enable_if_t<flags_internal::StorageKind<T>() ==
612
612
  FlagValueStorageKind::kOneWordAtomic,
613
613
  int> = 0>
614
- void Read(T* value) const ABSL_LOCKS_EXCLUDED(*DataGuard()) {
614
+ void Read(T* value) const ABSL_LOCKS_EXCLUDED(DataGuard()) {
615
615
  int64_t v = ReadOneWord();
616
616
  std::memcpy(value, static_cast<const void*>(&v), sizeof(T));
617
617
  }
@@ -619,17 +619,17 @@ class FlagImpl final : public CommandLineFlag {
619
619
  typename std::enable_if<flags_internal::StorageKind<T>() ==
620
620
  FlagValueStorageKind::kValueAndInitBit,
621
621
  int>::type = 0>
622
- void Read(T* value) const ABSL_LOCKS_EXCLUDED(*DataGuard()) {
622
+ void Read(T* value) const ABSL_LOCKS_EXCLUDED(DataGuard()) {
623
623
  *value = absl::bit_cast<FlagValueAndInitBit<T>>(ReadOneWord()).value;
624
624
  }
625
625
 
626
626
  // Mutating access methods
627
- void Write(const void* src) ABSL_LOCKS_EXCLUDED(*DataGuard());
627
+ void Write(const void* src) ABSL_LOCKS_EXCLUDED(DataGuard());
628
628
 
629
629
  // Interfaces to operate on callbacks.
630
630
  void SetCallback(const FlagCallbackFunc mutation_callback)
631
- ABSL_LOCKS_EXCLUDED(*DataGuard());
632
- void InvokeCallback() const ABSL_EXCLUSIVE_LOCKS_REQUIRED(*DataGuard());
631
+ ABSL_LOCKS_EXCLUDED(DataGuard());
632
+ void InvokeCallback() const ABSL_EXCLUSIVE_LOCKS_REQUIRED(DataGuard());
633
633
 
634
634
  // Used in read/write operations to validate source/target has correct type.
635
635
  // For example if flag is declared as absl::Flag<int> FLAGS_foo, a call to
@@ -646,11 +646,11 @@ class FlagImpl final : public CommandLineFlag {
646
646
  friend class FlagState;
647
647
 
648
648
  // Ensures that `data_guard_` is initialized and returns it.
649
- absl::Mutex* DataGuard() const
649
+ absl::Mutex& DataGuard() const
650
650
  ABSL_LOCK_RETURNED(reinterpret_cast<absl::Mutex*>(data_guard_));
651
651
  // Returns heap allocated value of type T initialized with default value.
652
652
  std::unique_ptr<void, DynValueDeleter> MakeInitValue() const
653
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(*DataGuard());
653
+ ABSL_EXCLUSIVE_LOCKS_REQUIRED(DataGuard());
654
654
  // Flag initialization called via absl::call_once.
655
655
  void Init();
656
656
 
@@ -676,16 +676,15 @@ class FlagImpl final : public CommandLineFlag {
676
676
  // returns new value. Otherwise returns nullptr.
677
677
  std::unique_ptr<void, DynValueDeleter> TryParse(absl::string_view value,
678
678
  std::string& err) const
679
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(*DataGuard());
679
+ ABSL_EXCLUSIVE_LOCKS_REQUIRED(DataGuard());
680
680
  // Stores the flag value based on the pointer to the source.
681
681
  void StoreValue(const void* src, ValueSource source)
682
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(*DataGuard());
682
+ ABSL_EXCLUSIVE_LOCKS_REQUIRED(DataGuard());
683
683
 
684
684
  // Copy the flag data, protected by `seq_lock_` into `dst`.
685
685
  //
686
686
  // REQUIRES: ValueStorageKind() == kSequenceLocked.
687
- void ReadSequenceLockedData(void* dst) const
688
- ABSL_LOCKS_EXCLUDED(*DataGuard());
687
+ void ReadSequenceLockedData(void* dst) const ABSL_LOCKS_EXCLUDED(DataGuard());
689
688
 
690
689
  FlagHelpKind HelpSourceKind() const {
691
690
  return static_cast<FlagHelpKind>(help_source_kind_);
@@ -694,7 +693,7 @@ class FlagImpl final : public CommandLineFlag {
694
693
  return static_cast<FlagValueStorageKind>(value_storage_kind_);
695
694
  }
696
695
  FlagDefaultKind DefaultKind() const
697
- ABSL_EXCLUSIVE_LOCKS_REQUIRED(*DataGuard()) {
696
+ ABSL_EXCLUSIVE_LOCKS_REQUIRED(DataGuard()) {
698
697
  return static_cast<FlagDefaultKind>(def_kind_);
699
698
  }
700
699
 
@@ -705,30 +704,30 @@ class FlagImpl final : public CommandLineFlag {
705
704
  std::string Help() const override;
706
705
  FlagFastTypeId TypeId() const override;
707
706
  bool IsSpecifiedOnCommandLine() const override
708
- ABSL_LOCKS_EXCLUDED(*DataGuard());
709
- std::string DefaultValue() const override ABSL_LOCKS_EXCLUDED(*DataGuard());
710
- std::string CurrentValue() const override ABSL_LOCKS_EXCLUDED(*DataGuard());
707
+ ABSL_LOCKS_EXCLUDED(DataGuard());
708
+ std::string DefaultValue() const override ABSL_LOCKS_EXCLUDED(DataGuard());
709
+ std::string CurrentValue() const override ABSL_LOCKS_EXCLUDED(DataGuard());
711
710
  bool ValidateInputValue(absl::string_view value) const override
712
- ABSL_LOCKS_EXCLUDED(*DataGuard());
711
+ ABSL_LOCKS_EXCLUDED(DataGuard());
713
712
  void CheckDefaultValueParsingRoundtrip() const override
714
- ABSL_LOCKS_EXCLUDED(*DataGuard());
713
+ ABSL_LOCKS_EXCLUDED(DataGuard());
715
714
 
716
- int64_t ModificationCount() const ABSL_EXCLUSIVE_LOCKS_REQUIRED(*DataGuard());
715
+ int64_t ModificationCount() const ABSL_EXCLUSIVE_LOCKS_REQUIRED(DataGuard());
717
716
 
718
717
  // Interfaces to save and restore flags to/from persistent state.
719
718
  // Returns current flag state or nullptr if flag does not support
720
719
  // saving and restoring a state.
721
720
  std::unique_ptr<FlagStateInterface> SaveState() override
722
- ABSL_LOCKS_EXCLUDED(*DataGuard());
721
+ ABSL_LOCKS_EXCLUDED(DataGuard());
723
722
 
724
723
  // Restores the flag state to the supplied state object. If there is
725
724
  // nothing to restore returns false. Otherwise returns true.
726
725
  bool RestoreState(const FlagState& flag_state)
727
- ABSL_LOCKS_EXCLUDED(*DataGuard());
726
+ ABSL_LOCKS_EXCLUDED(DataGuard());
728
727
 
729
728
  bool ParseFrom(absl::string_view value, FlagSettingMode set_mode,
730
729
  ValueSource source, std::string& error) override
731
- ABSL_LOCKS_EXCLUDED(*DataGuard());
730
+ ABSL_LOCKS_EXCLUDED(DataGuard());
732
731
 
733
732
  // Immutable flag's state.
734
733
 
@@ -758,9 +757,9 @@ class FlagImpl final : public CommandLineFlag {
758
757
  // locks.
759
758
  uint8_t def_kind_ : 2;
760
759
  // Has this flag's value been modified?
761
- bool modified_ : 1 ABSL_GUARDED_BY(*DataGuard());
760
+ bool modified_ : 1 ABSL_GUARDED_BY(DataGuard());
762
761
  // Has this flag been specified on command line.
763
- bool on_command_line_ : 1 ABSL_GUARDED_BY(*DataGuard());
762
+ bool on_command_line_ : 1 ABSL_GUARDED_BY(DataGuard());
764
763
 
765
764
  // Unique tag for absl::call_once call to initialize this flag.
766
765
  absl::once_flag init_control_;
@@ -769,7 +768,7 @@ class FlagImpl final : public CommandLineFlag {
769
768
  flags_internal::SequenceLock seq_lock_;
770
769
 
771
770
  // Optional flag's callback and absl::Mutex to guard the invocations.
772
- FlagCallback* callback_ ABSL_GUARDED_BY(*DataGuard());
771
+ FlagCallback* callback_ ABSL_GUARDED_BY(DataGuard());
773
772
  // Either a pointer to the function generating the default value based on the
774
773
  // value specified in ABSL_FLAG or pointer to the dynamically set default
775
774
  // value via SetCommandLineOptionWithMode. def_kind_ is used to distinguish
@@ -783,7 +782,7 @@ class FlagImpl final : public CommandLineFlag {
783
782
  // heap allocation during initialization, which is both slows program startup
784
783
  // and can fail. Using reserved space + placement new allows us to avoid both
785
784
  // problems.
786
- alignas(absl::Mutex) mutable char data_guard_[sizeof(absl::Mutex)];
785
+ alignas(absl::Mutex) mutable unsigned char data_guard_[sizeof(absl::Mutex)];
787
786
  };
788
787
  #if defined(__GNUC__) && !defined(__clang__)
789
788
  #pragma GCC diagnostic pop
@@ -828,7 +827,7 @@ class Flag {
828
827
  U u;
829
828
 
830
829
  #if !defined(NDEBUG)
831
- impl_.AssertValidType(base_internal::FastTypeId<T>(), &GenRuntimeTypeId<T>);
830
+ impl_.AssertValidType(absl::FastTypeId<T>(), &GenRuntimeTypeId<T>);
832
831
  #endif
833
832
 
834
833
  if (ABSL_PREDICT_FALSE(!value_.Get(impl_.seq_lock_, u.value))) {
@@ -837,7 +836,7 @@ class Flag {
837
836
  return std::move(u.value);
838
837
  }
839
838
  void Set(const T& v) {
840
- impl_.AssertValidType(base_internal::FastTypeId<T>(), &GenRuntimeTypeId<T>);
839
+ impl_.AssertValidType(absl::FastTypeId<T>(), &GenRuntimeTypeId<T>);
841
840
  impl_.Write(&v);
842
841
  }
843
842
 
@@ -876,7 +875,8 @@ class FlagImplPeer {
876
875
  template <typename T>
877
876
  void* FlagOps(FlagOp op, const void* v1, void* v2, void* v3) {
878
877
  struct AlignedSpace {
879
- alignas(MaskedPointer::RequiredAlignment()) alignas(T) char buf[sizeof(T)];
878
+ alignas(MaskedPointer::RequiredAlignment()) alignas(
879
+ T) unsigned char buf[sizeof(T)];
880
880
  };
881
881
  using Allocator = std::allocator<AlignedSpace>;
882
882
  switch (op) {
@@ -901,7 +901,7 @@ void* FlagOps(FlagOp op, const void* v1, void* v2, void* v3) {
901
901
  case FlagOp::kSizeof:
902
902
  return reinterpret_cast<void*>(static_cast<uintptr_t>(sizeof(T)));
903
903
  case FlagOp::kFastTypeId:
904
- return const_cast<void*>(base_internal::FastTypeId<T>());
904
+ return const_cast<void*>(absl::FastTypeId<T>());
905
905
  case FlagOp::kRuntimeTypeId:
906
906
  return const_cast<std::type_info*>(GenRuntimeTypeId<T>());
907
907
  case FlagOp::kParse: {
@@ -29,9 +29,9 @@ namespace absl {
29
29
  ABSL_NAMESPACE_BEGIN
30
30
  namespace flags_internal {
31
31
 
32
- static absl::Mutex* ProgramNameMutex() {
32
+ static absl::Mutex& ProgramNameMutex() {
33
33
  static absl::NoDestructor<absl::Mutex> mutex;
34
- return mutex.get();
34
+ return *mutex;
35
35
  }
36
36
  ABSL_CONST_INIT static std::string* program_name ABSL_GUARDED_BY(
37
37
  ProgramNameMutex()) ABSL_PT_GUARDED_BY(ProgramNameMutex()) = nullptr;
@@ -19,6 +19,7 @@
19
19
  #include <functional>
20
20
 
21
21
  #include "absl/base/config.h"
22
+ #include "absl/base/fast_type_id.h"
22
23
  #include "absl/flags/commandlineflag.h"
23
24
  #include "absl/flags/internal/commandlineflag.h"
24
25
  #include "absl/strings/string_view.h"
@@ -73,7 +74,7 @@ void FinalizeRegistry();
73
74
  //
74
75
 
75
76
  // Retire flag with name "name" and type indicated by ops.
76
- void Retire(const char* name, FlagFastTypeId type_id, char* buf);
77
+ void Retire(const char* name, FlagFastTypeId type_id, unsigned char* buf);
77
78
 
78
79
  constexpr size_t kRetiredFlagObjSize = 3 * sizeof(void*);
79
80
  constexpr size_t kRetiredFlagObjAlignment = alignof(void*);
@@ -83,11 +84,11 @@ template <typename T>
83
84
  class RetiredFlag {
84
85
  public:
85
86
  void Retire(const char* flag_name) {
86
- flags_internal::Retire(flag_name, base_internal::FastTypeId<T>(), buf_);
87
+ flags_internal::Retire(flag_name, absl::FastTypeId<T>(), buf_);
87
88
  }
88
89
 
89
90
  private:
90
- alignas(kRetiredFlagObjAlignment) char buf_[kRetiredFlagObjSize];
91
+ alignas(kRetiredFlagObjAlignment) unsigned char buf_[kRetiredFlagObjSize];
91
92
  };
92
93
 
93
94
  } // namespace flags_internal
@@ -434,9 +434,9 @@ HelpMode HandleUsageFlags(std::ostream& out,
434
434
 
435
435
  namespace {
436
436
 
437
- absl::Mutex* HelpAttributesMutex() {
437
+ absl::Mutex& HelpAttributesMutex() {
438
438
  static absl::NoDestructor<absl::Mutex> mutex;
439
- return mutex.get();
439
+ return *mutex;
440
440
  }
441
441
  ABSL_CONST_INIT std::string* match_substr ABSL_GUARDED_BY(HelpAttributesMutex())
442
442
  ABSL_PT_GUARDED_BY(HelpAttributesMutex()) = nullptr;
@@ -64,9 +64,9 @@ ABSL_NAMESPACE_BEGIN
64
64
  namespace flags_internal {
65
65
  namespace {
66
66
 
67
- absl::Mutex* ProcessingChecksMutex() {
67
+ absl::Mutex& ProcessingChecksMutex() {
68
68
  static absl::NoDestructor<absl::Mutex> mutex;
69
- return mutex.get();
69
+ return *mutex;
70
70
  }
71
71
 
72
72
  ABSL_CONST_INIT bool flagfile_needs_processing
@@ -76,9 +76,13 @@ ABSL_CONST_INIT bool fromenv_needs_processing
76
76
  ABSL_CONST_INIT bool tryfromenv_needs_processing
77
77
  ABSL_GUARDED_BY(ProcessingChecksMutex()) = false;
78
78
 
79
- ABSL_CONST_INIT absl::Mutex specified_flags_guard(absl::kConstInit);
79
+ absl::Mutex& SpecifiedFlagsMutex() {
80
+ static absl::NoDestructor<absl::Mutex> mutex;
81
+ return *mutex;
82
+ }
83
+
80
84
  ABSL_CONST_INIT std::vector<const CommandLineFlag*>* specified_flags
81
- ABSL_GUARDED_BY(specified_flags_guard) = nullptr;
85
+ ABSL_GUARDED_BY(SpecifiedFlagsMutex()) = nullptr;
82
86
 
83
87
  // Suggesting at most kMaxHints flags in case of misspellings.
84
88
  ABSL_CONST_INIT const size_t kMaxHints = 100;
@@ -640,7 +644,7 @@ void ReportUnrecognizedFlags(
640
644
  // --------------------------------------------------------------------
641
645
 
642
646
  bool WasPresentOnCommandLine(absl::string_view flag_name) {
643
- absl::ReaderMutexLock l(&specified_flags_guard);
647
+ absl::ReaderMutexLock l(SpecifiedFlagsMutex());
644
648
  ABSL_INTERNAL_CHECK(specified_flags != nullptr,
645
649
  "ParseCommandLine is not invoked yet");
646
650
 
@@ -767,7 +771,7 @@ HelpMode ParseAbseilFlagsOnlyImpl(
767
771
  }
768
772
  positional_args.push_back(argv[0]);
769
773
 
770
- absl::MutexLock l(&flags_internal::specified_flags_guard);
774
+ absl::MutexLock l(flags_internal::SpecifiedFlagsMutex());
771
775
  if (specified_flags == nullptr) {
772
776
  specified_flags = new std::vector<const CommandLineFlag*>;
773
777
  } else {
@@ -53,8 +53,11 @@ class FlagRegistry {
53
53
  // Store a flag in this registry. Takes ownership of *flag.
54
54
  void RegisterFlag(CommandLineFlag& flag, const char* filename);
55
55
 
56
- void Lock() ABSL_EXCLUSIVE_LOCK_FUNCTION(lock_) { lock_.Lock(); }
57
- void Unlock() ABSL_UNLOCK_FUNCTION(lock_) { lock_.Unlock(); }
56
+ void lock() ABSL_EXCLUSIVE_LOCK_FUNCTION(lock_) { lock_.lock(); }
57
+ inline void Lock() ABSL_EXCLUSIVE_LOCK_FUNCTION(lock_) { lock(); }
58
+
59
+ void unlock() ABSL_UNLOCK_FUNCTION(lock_) { lock_.unlock(); }
60
+ inline void Unlock() ABSL_UNLOCK_FUNCTION(lock_) { unlock(); }
58
61
 
59
62
  // Returns the flag object for the specified name, or nullptr if not found.
60
63
  // Will emit a warning if a 'retired' flag is specified.
@@ -87,8 +90,8 @@ namespace {
87
90
 
88
91
  class FlagRegistryLock {
89
92
  public:
90
- explicit FlagRegistryLock(FlagRegistry& fr) : fr_(fr) { fr_.Lock(); }
91
- ~FlagRegistryLock() { fr_.Unlock(); }
93
+ explicit FlagRegistryLock(FlagRegistry& fr) : fr_(fr) { fr_.lock(); }
94
+ ~FlagRegistryLock() { fr_.unlock(); }
92
95
 
93
96
  private:
94
97
  FlagRegistry& fr_;
@@ -289,11 +292,10 @@ class RetiredFlagObj final : public CommandLineFlag {
289
292
 
290
293
  } // namespace
291
294
 
292
- void Retire(const char* name, FlagFastTypeId type_id, char* buf) {
295
+ void Retire(const char* name, FlagFastTypeId type_id, unsigned char* buf) {
293
296
  static_assert(sizeof(RetiredFlagObj) == kRetiredFlagObjSize, "");
294
297
  static_assert(alignof(RetiredFlagObj) == kRetiredFlagObjAlignment, "");
295
- auto* flag = ::new (static_cast<void*>(buf))
296
- flags_internal::RetiredFlagObj(name, type_id);
298
+ auto* flag = ::new (buf) flags_internal::RetiredFlagObj(name, type_id);
297
299
  FlagRegistry::GlobalRegistry().RegisterFlag(*flag, nullptr);
298
300
  }
299
301
 
@@ -40,7 +40,7 @@ ABSL_CONST_INIT std::string* program_usage_message
40
40
  // --------------------------------------------------------------------
41
41
  // Sets the "usage" message to be used by help reporting routines.
42
42
  void SetProgramUsageMessage(absl::string_view new_usage_message) {
43
- absl::MutexLock l(&flags_internal::usage_message_guard);
43
+ absl::MutexLock l(flags_internal::usage_message_guard);
44
44
 
45
45
  if (flags_internal::program_usage_message != nullptr) {
46
46
  ABSL_INTERNAL_LOG(FATAL, "SetProgramUsageMessage() called twice.");
@@ -55,7 +55,7 @@ void SetProgramUsageMessage(absl::string_view new_usage_message) {
55
55
  // Note: We able to return string_view here only because calling
56
56
  // SetProgramUsageMessage twice is prohibited.
57
57
  absl::string_view ProgramUsageMessage() {
58
- absl::MutexLock l(&flags_internal::usage_message_guard);
58
+ absl::MutexLock l(flags_internal::usage_message_guard);
59
59
 
60
60
  return flags_internal::program_usage_message != nullptr
61
61
  ? absl::string_view(*flags_internal::program_usage_message)
@@ -105,9 +105,9 @@ std::string NormalizeFilename(absl::string_view filename) {
105
105
 
106
106
  // --------------------------------------------------------------------
107
107
 
108
- absl::Mutex* CustomUsageConfigMutex() {
108
+ absl::Mutex& CustomUsageConfigMutex() {
109
109
  static absl::NoDestructor<absl::Mutex> mutex;
110
- return mutex.get();
110
+ return *mutex;
111
111
  }
112
112
  ABSL_CONST_INIT FlagsUsageConfig* custom_usage_config
113
113
  ABSL_GUARDED_BY(CustomUsageConfigMutex())
@@ -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",
@@ -39,9 +42,9 @@ cc_library(
39
42
  copts = ABSL_DEFAULT_COPTS,
40
43
  linkopts = ABSL_DEFAULT_LINKOPTS,
41
44
  deps = [
42
- "//absl/base:base_internal",
43
45
  "//absl/base:config",
44
46
  "//absl/base:core_headers",
47
+ "//absl/base:nullability",
45
48
  "//absl/meta:type_traits",
46
49
  "//absl/utility",
47
50
  ],
@@ -57,9 +60,9 @@ cc_test(
57
60
  linkopts = ABSL_DEFAULT_LINKOPTS,
58
61
  deps = [
59
62
  ":any_invocable",
60
- "//absl/base:base_internal",
61
63
  "//absl/base:config",
62
64
  "//absl/base:core_headers",
65
+ "//absl/base:nullability",
63
66
  "//absl/meta:type_traits",
64
67
  "//absl/utility",
65
68
  "@googletest//:gtest",
@@ -74,7 +77,6 @@ cc_library(
74
77
  copts = ABSL_DEFAULT_COPTS,
75
78
  linkopts = ABSL_DEFAULT_LINKOPTS,
76
79
  deps = [
77
- "//absl/base:base_internal",
78
80
  "//absl/container:compressed_tuple",
79
81
  "//absl/meta:type_traits",
80
82
  "//absl/utility",
@@ -102,7 +104,6 @@ cc_library(
102
104
  linkopts = ABSL_DEFAULT_LINKOPTS,
103
105
  deps = [
104
106
  ":any_invocable",
105
- "//absl/base:base_internal",
106
107
  "//absl/base:core_headers",
107
108
  "//absl/meta:type_traits",
108
109
  ],
@@ -150,8 +151,9 @@ cc_test(
150
151
  ],
151
152
  )
152
153
 
153
- cc_test(
154
+ cc_binary(
154
155
  name = "function_type_benchmark",
156
+ testonly = True,
155
157
  srcs = [
156
158
  "function_type_benchmark.cc",
157
159
  ],
@@ -163,6 +165,5 @@ cc_test(
163
165
  ":function_ref",
164
166
  "//absl/base:core_headers",
165
167
  "@google_benchmark//:benchmark_main",
166
- "@googletest//:gtest",
167
168
  ],
168
169
  )
@@ -24,7 +24,7 @@ absl_cc_library(
24
24
  COPTS
25
25
  ${ABSL_DEFAULT_COPTS}
26
26
  DEPS
27
- absl::base_internal
27
+ absl::base
28
28
  absl::config
29
29
  absl::core_headers
30
30
  absl::type_traits
@@ -42,7 +42,7 @@ absl_cc_test(
42
42
  ${ABSL_TEST_COPTS}
43
43
  DEPS
44
44
  absl::any_invocable
45
- absl::base_internal
45
+ absl::base
46
46
  absl::config
47
47
  absl::core_headers
48
48
  absl::type_traits
@@ -60,7 +60,6 @@ absl_cc_library(
60
60
  COPTS
61
61
  ${ABSL_DEFAULT_COPTS}
62
62
  DEPS
63
- absl::base_internal
64
63
  absl::compressed_tuple
65
64
  PUBLIC
66
65
  )
@@ -88,7 +87,6 @@ absl_cc_library(
88
87
  COPTS
89
88
  ${ABSL_DEFAULT_COPTS}
90
89
  DEPS
91
- absl::base_internal
92
90
  absl::core_headers
93
91
  absl::any_invocable
94
92
  absl::meta
@@ -25,7 +25,7 @@
25
25
  //
26
26
  // NOTE: `absl::AnyInvocable` is similar to the C++23 `std::move_only_function`
27
27
  // abstraction, but has a slightly different API and is not designed to be a
28
- // drop-in replacement or C++11-compatible backfill of that type.
28
+ // drop-in replacement or backfill of that type.
29
29
  //
30
30
  // Credits to Matt Calabrese (https://github.com/mattcalabrese) for the original
31
31
  // implementation.
@@ -40,6 +40,7 @@
40
40
  #include <utility>
41
41
 
42
42
  #include "absl/base/config.h"
43
+ #include "absl/base/nullability.h"
43
44
  #include "absl/functional/internal/any_invocable.h"
44
45
  #include "absl/meta/type_traits.h"
45
46
  #include "absl/utility/utility.h"
@@ -97,11 +98,10 @@ ABSL_NAMESPACE_BEGIN
97
98
  // my_func(std::move(func6));
98
99
  //
99
100
  // `AnyInvocable` also properly respects `const` qualifiers, reference
100
- // qualifiers, and the `noexcept` specification (only in C++ 17 and beyond) as
101
- // part of the user-specified function type (e.g.
102
- // `AnyInvocable<void() const && noexcept>`). These qualifiers will be applied
103
- // to the `AnyInvocable` object's `operator()`, and the underlying invocable
104
- // must be compatible with those qualifiers.
101
+ // qualifiers, and the `noexcept` specification as part of the user-specified
102
+ // function type (e.g. `AnyInvocable<void() const && noexcept>`). These
103
+ // qualifiers will be applied to the `AnyInvocable` object's `operator()`, and
104
+ // the underlying invocable must be compatible with those qualifiers.
105
105
  //
106
106
  // Comparison of const and non-const function types:
107
107
  //
@@ -159,7 +159,8 @@ ABSL_NAMESPACE_BEGIN
159
159
  // AnyInvocable<void()> empty;
160
160
  // empty(); // WARNING: Undefined behavior!
161
161
  template <class Sig>
162
- class AnyInvocable : private internal_any_invocable::Impl<Sig> {
162
+ class ABSL_NULLABILITY_COMPATIBLE AnyInvocable
163
+ : private internal_any_invocable::Impl<Sig> {
163
164
  private:
164
165
  static_assert(
165
166
  std::is_function<Sig>::value,
@@ -280,11 +281,10 @@ class AnyInvocable : private internal_any_invocable::Impl<Sig> {
280
281
  //
281
282
  // WARNING: An `AnyInvocable` that wraps an empty `std::function` is not
282
283
  // itself empty. This behavior is consistent with the standard equivalent
283
- // `std::move_only_function`.
284
- //
285
- // In other words:
284
+ // `std::move_only_function`. In the following example, `a()` will actually
285
+ // invoke `f()`, leading to an `std::bad_function_call` exception:
286
286
  // std::function<void()> f; // empty
287
- // absl::AnyInvocable<void()> a = std::move(f); // not empty
287
+ // absl::AnyInvocable<void()> a = f; // not empty
288
288
  //
289
289
  // Invoking an empty `AnyInvocable` results in undefined behavior.
290
290
  explicit operator bool() const noexcept { return this->HasValue(); }
@@ -297,22 +297,22 @@ class AnyInvocable : private internal_any_invocable::Impl<Sig> {
297
297
 
298
298
  // Equality operators
299
299
 
300
- // Returns `true` if `*this` is empty.
300
+ // Returns `true` if `f` is empty.
301
301
  friend bool operator==(const AnyInvocable& f, std::nullptr_t) noexcept {
302
302
  return !f.HasValue();
303
303
  }
304
304
 
305
- // Returns `true` if `*this` is empty.
305
+ // Returns `true` if `f` is empty.
306
306
  friend bool operator==(std::nullptr_t, const AnyInvocable& f) noexcept {
307
307
  return !f.HasValue();
308
308
  }
309
309
 
310
- // Returns `false` if `*this` is empty.
310
+ // Returns `false` if `f` is empty.
311
311
  friend bool operator!=(const AnyInvocable& f, std::nullptr_t) noexcept {
312
312
  return f.HasValue();
313
313
  }
314
314
 
315
- // Returns `false` if `*this` is empty.
315
+ // Returns `false` if `f` is empty.
316
316
  friend bool operator!=(std::nullptr_t, const AnyInvocable& f) noexcept {
317
317
  return f.HasValue();
318
318
  }