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
@@ -35,26 +35,26 @@ namespace absl {
35
35
  ABSL_NAMESPACE_BEGIN
36
36
  namespace log_internal {
37
37
 
38
- #define ABSL_LOGGING_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(x) \
39
- template absl::Nonnull<const char*> MakeCheckOpString( \
40
- x, x, absl::Nonnull<const char*>)
41
- ABSL_LOGGING_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(bool);
42
- ABSL_LOGGING_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(int64_t);
43
- ABSL_LOGGING_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(uint64_t);
44
- ABSL_LOGGING_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(float);
45
- ABSL_LOGGING_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(double);
46
- ABSL_LOGGING_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(char);
47
- ABSL_LOGGING_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(unsigned char);
48
- ABSL_LOGGING_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(const std::string&);
49
- ABSL_LOGGING_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(const absl::string_view&);
50
- ABSL_LOGGING_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(const char*);
51
- ABSL_LOGGING_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(const signed char*);
52
- ABSL_LOGGING_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(const unsigned char*);
53
- ABSL_LOGGING_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(const void*);
54
- #undef ABSL_LOGGING_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING
38
+ #define ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(x) \
39
+ template const char* absl_nonnull MakeCheckOpString( \
40
+ x, x, const char* absl_nonnull)
41
+ ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(bool);
42
+ ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(int64_t);
43
+ ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(uint64_t);
44
+ ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(float);
45
+ ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(double);
46
+ ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(char);
47
+ ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(unsigned char);
48
+ ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(const std::string&);
49
+ ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(const absl::string_view&);
50
+ ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(const char*);
51
+ ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(const signed char*);
52
+ ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(const unsigned char*);
53
+ ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING(const void*);
54
+ #undef ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING
55
55
 
56
56
  CheckOpMessageBuilder::CheckOpMessageBuilder(
57
- absl::Nonnull<const char*> exprtext) {
57
+ const char* absl_nonnull exprtext) {
58
58
  stream_ << exprtext << " (";
59
59
  }
60
60
 
@@ -63,7 +63,7 @@ std::ostream& CheckOpMessageBuilder::ForVar2() {
63
63
  return stream_;
64
64
  }
65
65
 
66
- absl::Nonnull<const char*> CheckOpMessageBuilder::NewString() {
66
+ const char* absl_nonnull CheckOpMessageBuilder::NewString() {
67
67
  stream_ << ")";
68
68
  // There's no need to free this string since the process is crashing.
69
69
  return absl::IgnoreLeak(new std::string(std::move(stream_).str()))->c_str();
@@ -101,11 +101,13 @@ void MakeCheckOpValueString(std::ostream& os, const void* p) {
101
101
  }
102
102
  }
103
103
 
104
+ void MakeCheckOpUnprintableString(std::ostream& os) { os << "UNPRINTABLE"; }
105
+
104
106
  // Helper functions for string comparisons.
105
107
  #define DEFINE_CHECK_STROP_IMPL(name, func, expected) \
106
- absl::Nullable<const char*> Check##func##expected##Impl( \
107
- absl::Nullable<const char*> s1, absl::Nullable<const char*> s2, \
108
- absl::Nonnull<const char*> exprtext) { \
108
+ const char* absl_nullable Check##func##expected##Impl( \
109
+ const char* absl_nullable s1, const char* absl_nullable s2, \
110
+ const char* absl_nonnull exprtext) { \
109
111
  bool equal = s1 == s2 || (s1 && s2 && !func(s1, s2)); \
110
112
  if (equal == expected) { \
111
113
  return nullptr; \
@@ -40,6 +40,7 @@
40
40
  #include "absl/log/internal/nullstream.h"
41
41
  #include "absl/log/internal/strip.h"
42
42
  #include "absl/strings/has_absl_stringify.h"
43
+ #include "absl/strings/has_ostream_operator.h"
43
44
  #include "absl/strings/string_view.h"
44
45
 
45
46
  // `ABSL_LOG_INTERNAL_STRIP_STRING_LITERAL` wraps string literals that
@@ -64,49 +65,48 @@
64
65
  #endif
65
66
 
66
67
  #define ABSL_LOG_INTERNAL_CHECK_OP(name, op, val1, val1_text, val2, val2_text) \
67
- while (absl::Nullable<const char*> absl_log_internal_check_op_result \
68
- ABSL_LOG_INTERNAL_ATTRIBUTE_UNUSED_IF_STRIP_LOG = \
69
- ::absl::log_internal::name##Impl( \
70
- ::absl::log_internal::GetReferenceableValue(val1), \
71
- ::absl::log_internal::GetReferenceableValue(val2), \
72
- ABSL_LOG_INTERNAL_STRIP_STRING_LITERAL( \
73
- val1_text " " #op " " val2_text))) \
68
+ while (const char* absl_nullable absl_log_internal_check_op_result \
69
+ [[maybe_unused]] = ::absl::log_internal::name##Impl( \
70
+ ::absl::log_internal::GetReferenceableValue(val1), \
71
+ ::absl::log_internal::GetReferenceableValue(val2), \
72
+ ABSL_LOG_INTERNAL_STRIP_STRING_LITERAL(val1_text " " #op \
73
+ " " val2_text))) \
74
74
  ABSL_LOG_INTERNAL_CONDITION_FATAL(STATELESS, true) \
75
- ABSL_LOG_INTERNAL_CHECK(absl::implicit_cast<absl::Nonnull<const char*>>( \
75
+ ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>( \
76
76
  absl_log_internal_check_op_result)) \
77
77
  .InternalStream()
78
78
  #define ABSL_LOG_INTERNAL_QCHECK_OP(name, op, val1, val1_text, val2, \
79
79
  val2_text) \
80
- while (absl::Nullable<const char*> absl_log_internal_qcheck_op_result = \
80
+ while (const char* absl_nullable absl_log_internal_qcheck_op_result = \
81
81
  ::absl::log_internal::name##Impl( \
82
82
  ::absl::log_internal::GetReferenceableValue(val1), \
83
83
  ::absl::log_internal::GetReferenceableValue(val2), \
84
84
  ABSL_LOG_INTERNAL_STRIP_STRING_LITERAL( \
85
85
  val1_text " " #op " " val2_text))) \
86
86
  ABSL_LOG_INTERNAL_CONDITION_QFATAL(STATELESS, true) \
87
- ABSL_LOG_INTERNAL_QCHECK(absl::implicit_cast<absl::Nonnull<const char*>>( \
87
+ ABSL_LOG_INTERNAL_QCHECK(::absl::implicit_cast<const char* absl_nonnull>( \
88
88
  absl_log_internal_qcheck_op_result)) \
89
89
  .InternalStream()
90
90
  #define ABSL_LOG_INTERNAL_CHECK_STROP(func, op, expected, s1, s1_text, s2, \
91
91
  s2_text) \
92
- while (absl::Nullable<const char*> absl_log_internal_check_strop_result = \
92
+ while (const char* absl_nullable absl_log_internal_check_strop_result = \
93
93
  ::absl::log_internal::Check##func##expected##Impl( \
94
94
  (s1), (s2), \
95
95
  ABSL_LOG_INTERNAL_STRIP_STRING_LITERAL(s1_text " " #op \
96
96
  " " s2_text))) \
97
97
  ABSL_LOG_INTERNAL_CONDITION_FATAL(STATELESS, true) \
98
- ABSL_LOG_INTERNAL_CHECK(absl::implicit_cast<absl::Nonnull<const char*>>( \
98
+ ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>( \
99
99
  absl_log_internal_check_strop_result)) \
100
100
  .InternalStream()
101
101
  #define ABSL_LOG_INTERNAL_QCHECK_STROP(func, op, expected, s1, s1_text, s2, \
102
102
  s2_text) \
103
- while (absl::Nullable<const char*> absl_log_internal_qcheck_strop_result = \
103
+ while (const char* absl_nullable absl_log_internal_qcheck_strop_result = \
104
104
  ::absl::log_internal::Check##func##expected##Impl( \
105
105
  (s1), (s2), \
106
106
  ABSL_LOG_INTERNAL_STRIP_STRING_LITERAL(s1_text " " #op \
107
107
  " " s2_text))) \
108
108
  ABSL_LOG_INTERNAL_CONDITION_QFATAL(STATELESS, true) \
109
- ABSL_LOG_INTERNAL_QCHECK(absl::implicit_cast<absl::Nonnull<const char*>>( \
109
+ ABSL_LOG_INTERNAL_QCHECK(::absl::implicit_cast<const char* absl_nonnull>( \
110
110
  absl_log_internal_qcheck_strop_result)) \
111
111
  .InternalStream()
112
112
 
@@ -134,41 +134,39 @@
134
134
  // string literal and abort without doing any streaming. We don't need to
135
135
  // strip the call to stringify the non-ok `Status` as long as we don't log it;
136
136
  // dropping the `Status`'s message text is out of scope.
137
- #define ABSL_LOG_INTERNAL_CHECK_OK(val, val_text) \
138
- for (::std::pair<absl::Nonnull<const ::absl::Status*>, \
139
- absl::Nullable<const char*>> \
140
- absl_log_internal_check_ok_goo; \
141
- absl_log_internal_check_ok_goo.first = \
142
- ::absl::log_internal::AsStatus(val), \
143
- absl_log_internal_check_ok_goo.second = \
144
- ABSL_PREDICT_TRUE(absl_log_internal_check_ok_goo.first->ok()) \
145
- ? nullptr \
146
- : ::absl::status_internal::MakeCheckFailString( \
147
- absl_log_internal_check_ok_goo.first, \
148
- ABSL_LOG_INTERNAL_STRIP_STRING_LITERAL(val_text \
149
- " is OK")), \
150
- !ABSL_PREDICT_TRUE(absl_log_internal_check_ok_goo.first->ok());) \
151
- ABSL_LOG_INTERNAL_CONDITION_FATAL(STATELESS, true) \
152
- ABSL_LOG_INTERNAL_CHECK(absl::implicit_cast<absl::Nonnull<const char*>>( \
153
- absl_log_internal_check_ok_goo.second)) \
137
+ #define ABSL_LOG_INTERNAL_CHECK_OK(val, val_text) \
138
+ for (::std::pair<const ::absl::Status* absl_nonnull, \
139
+ const char* absl_nonnull> \
140
+ absl_log_internal_check_ok_goo; \
141
+ absl_log_internal_check_ok_goo.first = \
142
+ ::absl::log_internal::AsStatus(val), \
143
+ absl_log_internal_check_ok_goo.second = \
144
+ ABSL_PREDICT_TRUE(absl_log_internal_check_ok_goo.first->ok()) \
145
+ ? "" /* Don't use nullptr, to keep the annotation happy */ \
146
+ : ::absl::status_internal::MakeCheckFailString( \
147
+ absl_log_internal_check_ok_goo.first, \
148
+ ABSL_LOG_INTERNAL_STRIP_STRING_LITERAL(val_text \
149
+ " is OK")), \
150
+ !ABSL_PREDICT_TRUE(absl_log_internal_check_ok_goo.first->ok());) \
151
+ ABSL_LOG_INTERNAL_CONDITION_FATAL(STATELESS, true) \
152
+ ABSL_LOG_INTERNAL_CHECK(absl_log_internal_check_ok_goo.second) \
154
153
  .InternalStream()
155
- #define ABSL_LOG_INTERNAL_QCHECK_OK(val, val_text) \
156
- for (::std::pair<absl::Nonnull<const ::absl::Status*>, \
157
- absl::Nullable<const char*>> \
158
- absl_log_internal_qcheck_ok_goo; \
159
- absl_log_internal_qcheck_ok_goo.first = \
160
- ::absl::log_internal::AsStatus(val), \
161
- absl_log_internal_qcheck_ok_goo.second = \
162
- ABSL_PREDICT_TRUE(absl_log_internal_qcheck_ok_goo.first->ok()) \
163
- ? nullptr \
164
- : ::absl::status_internal::MakeCheckFailString( \
165
- absl_log_internal_qcheck_ok_goo.first, \
166
- ABSL_LOG_INTERNAL_STRIP_STRING_LITERAL(val_text \
167
- " is OK")), \
168
- !ABSL_PREDICT_TRUE(absl_log_internal_qcheck_ok_goo.first->ok());) \
169
- ABSL_LOG_INTERNAL_CONDITION_QFATAL(STATELESS, true) \
170
- ABSL_LOG_INTERNAL_QCHECK(absl::implicit_cast<absl::Nonnull<const char*>>( \
171
- absl_log_internal_qcheck_ok_goo.second)) \
154
+ #define ABSL_LOG_INTERNAL_QCHECK_OK(val, val_text) \
155
+ for (::std::pair<const ::absl::Status* absl_nonnull, \
156
+ const char* absl_nonnull> \
157
+ absl_log_internal_qcheck_ok_goo; \
158
+ absl_log_internal_qcheck_ok_goo.first = \
159
+ ::absl::log_internal::AsStatus(val), \
160
+ absl_log_internal_qcheck_ok_goo.second = \
161
+ ABSL_PREDICT_TRUE(absl_log_internal_qcheck_ok_goo.first->ok()) \
162
+ ? "" /* Don't use nullptr, to keep the annotation happy */ \
163
+ : ::absl::status_internal::MakeCheckFailString( \
164
+ absl_log_internal_qcheck_ok_goo.first, \
165
+ ABSL_LOG_INTERNAL_STRIP_STRING_LITERAL(val_text \
166
+ " is OK")), \
167
+ !ABSL_PREDICT_TRUE(absl_log_internal_qcheck_ok_goo.first->ok());) \
168
+ ABSL_LOG_INTERNAL_CONDITION_QFATAL(STATELESS, true) \
169
+ ABSL_LOG_INTERNAL_QCHECK(absl_log_internal_qcheck_ok_goo.second) \
172
170
  .InternalStream()
173
171
 
174
172
  namespace absl {
@@ -179,9 +177,8 @@ template <typename T>
179
177
  class StatusOr;
180
178
 
181
179
  namespace status_internal {
182
- ABSL_ATTRIBUTE_PURE_FUNCTION absl::Nonnull<const char*> MakeCheckFailString(
183
- absl::Nonnull<const absl::Status*> status,
184
- absl::Nonnull<const char*> prefix);
180
+ ABSL_ATTRIBUTE_PURE_FUNCTION const char* absl_nonnull MakeCheckFailString(
181
+ const absl::Status* absl_nonnull status, const char* absl_nonnull prefix);
185
182
  } // namespace status_internal
186
183
 
187
184
  namespace log_internal {
@@ -189,11 +186,11 @@ namespace log_internal {
189
186
  // Convert a Status or a StatusOr to its underlying status value.
190
187
  //
191
188
  // (This implementation does not require a dep on absl::Status to work.)
192
- inline absl::Nonnull<const absl::Status*> AsStatus(const absl::Status& s) {
189
+ inline const absl::Status* absl_nonnull AsStatus(const absl::Status& s) {
193
190
  return &s;
194
191
  }
195
192
  template <typename T>
196
- absl::Nonnull<const absl::Status*> AsStatus(const absl::StatusOr<T>& s) {
193
+ const absl::Status* absl_nonnull AsStatus(const absl::StatusOr<T>& s) {
197
194
  return &s.status();
198
195
  }
199
196
 
@@ -202,14 +199,14 @@ absl::Nonnull<const absl::Status*> AsStatus(const absl::StatusOr<T>& s) {
202
199
  class CheckOpMessageBuilder final {
203
200
  public:
204
201
  // Inserts `exprtext` and ` (` to the stream.
205
- explicit CheckOpMessageBuilder(absl::Nonnull<const char*> exprtext);
202
+ explicit CheckOpMessageBuilder(const char* absl_nonnull exprtext);
206
203
  ~CheckOpMessageBuilder() = default;
207
204
  // For inserting the first variable.
208
205
  std::ostream& ForVar1() { return stream_; }
209
206
  // For inserting the second variable (adds an intermediate ` vs. `).
210
207
  std::ostream& ForVar2();
211
208
  // Get the result (inserts the closing `)`).
212
- absl::Nonnull<const char*> NewString();
209
+ const char* absl_nonnull NewString();
213
210
 
214
211
  private:
215
212
  std::ostringstream stream_;
@@ -226,7 +223,20 @@ inline void MakeCheckOpValueString(std::ostream& os, const T& v) {
226
223
  void MakeCheckOpValueString(std::ostream& os, char v);
227
224
  void MakeCheckOpValueString(std::ostream& os, signed char v);
228
225
  void MakeCheckOpValueString(std::ostream& os, unsigned char v);
229
- void MakeCheckOpValueString(std::ostream& os, const void* p);
226
+ void MakeCheckOpValueString(std::ostream& os, const void* absl_nullable p);
227
+
228
+ void MakeCheckOpUnprintableString(std::ostream& os);
229
+
230
+ // A wrapper for types that have no operator<<.
231
+ struct UnprintableWrapper {
232
+ template <typename T>
233
+ explicit UnprintableWrapper(const T&) {}
234
+
235
+ friend std::ostream& operator<<(std::ostream& os, const UnprintableWrapper&) {
236
+ MakeCheckOpUnprintableString(os);
237
+ return os;
238
+ }
239
+ };
230
240
 
231
241
  namespace detect_specialization {
232
242
 
@@ -268,8 +278,9 @@ float operator<<(std::ostream&, float value);
268
278
  double operator<<(std::ostream&, double value);
269
279
  long double operator<<(std::ostream&, long double value);
270
280
  bool operator<<(std::ostream&, bool value);
271
- const void* operator<<(std::ostream&, const void* value);
272
- const void* operator<<(std::ostream&, std::nullptr_t);
281
+ const void* absl_nullable operator<<(std::ostream&,
282
+ const void* absl_nullable value);
283
+ const void* absl_nullable operator<<(std::ostream&, std::nullptr_t);
273
284
 
274
285
  // These `char` overloads are specified like this in the standard, so we have to
275
286
  // write them exactly the same to ensure the call is ambiguous.
@@ -283,13 +294,14 @@ signed char operator<<(std::basic_ostream<char, Traits>&, signed char);
283
294
  template <typename Traits>
284
295
  unsigned char operator<<(std::basic_ostream<char, Traits>&, unsigned char);
285
296
  template <typename Traits>
286
- const char* operator<<(std::basic_ostream<char, Traits>&, const char*);
297
+ const char* absl_nonnull operator<<(std::basic_ostream<char, Traits>&,
298
+ const char* absl_nonnull);
287
299
  template <typename Traits>
288
- const signed char* operator<<(std::basic_ostream<char, Traits>&,
289
- const signed char*);
300
+ const signed char* absl_nonnull operator<<(std::basic_ostream<char, Traits>&,
301
+ const signed char* absl_nonnull);
290
302
  template <typename Traits>
291
- const unsigned char* operator<<(std::basic_ostream<char, Traits>&,
292
- const unsigned char*);
303
+ const unsigned char* absl_nonnull operator<<(std::basic_ostream<char, Traits>&,
304
+ const unsigned char* absl_nonnull);
293
305
 
294
306
  // This overload triggers when the call is not ambiguous.
295
307
  // It means that T is being printed with some overload not on this list.
@@ -300,12 +312,11 @@ const T& Detect(int);
300
312
 
301
313
  // This overload triggers when the call is ambiguous.
302
314
  // It means that T is either one from this list or printed as one from this
303
- // list. Eg an enum that decays to `int` for printing.
315
+ // list. Eg an unscoped enum that decays to `int` for printing.
304
316
  // We ask the overload set to give us the type we want to convert it to.
305
317
  template <typename T>
306
- decltype(detect_specialization::operator<<(std::declval<std::ostream&>(),
307
- std::declval<const T&>()))
308
- Detect(char);
318
+ decltype(detect_specialization::operator<<(
319
+ std::declval<std::ostream&>(), std::declval<const T&>())) Detect(char);
309
320
 
310
321
  // A sink for AbslStringify which redirects everything to a std::ostream.
311
322
  class StringifySink {
@@ -314,7 +325,8 @@ class StringifySink {
314
325
 
315
326
  void Append(absl::string_view text);
316
327
  void Append(size_t length, char ch);
317
- friend void AbslFormatFlush(StringifySink* sink, absl::string_view text);
328
+ friend void AbslFormatFlush(StringifySink* absl_nonnull sink,
329
+ absl::string_view text);
318
330
 
319
331
  private:
320
332
  std::ostream& os_;
@@ -345,6 +357,47 @@ template <typename T>
345
357
  std::enable_if_t<HasAbslStringify<T>::value,
346
358
  StringifyToStreamWrapper<T>>
347
359
  Detect(...); // Ellipsis has lowest preference when int passed.
360
+
361
+ // This overload triggers when T is neither possible to print nor an enum.
362
+ template <typename T>
363
+ std::enable_if_t<std::negation_v<std::disjunction<
364
+ std::is_convertible<T, int>, std::is_enum<T>,
365
+ std::is_pointer<T>, std::is_same<T, std::nullptr_t>,
366
+ HasOstreamOperator<T>, HasAbslStringify<T>>>,
367
+ UnprintableWrapper>
368
+ Detect(...);
369
+
370
+ // Equivalent to the updated std::underlying_type from C++20, which is no
371
+ // longer undefined behavior for non-enum types.
372
+ template <typename T, typename EnableT = void>
373
+ struct UnderlyingType {};
374
+
375
+ template <typename T>
376
+ struct UnderlyingType<T, std::enable_if_t<std::is_enum_v<T>>> {
377
+ using type = std::underlying_type_t<T>;
378
+ };
379
+ template <typename T>
380
+ using UnderlyingTypeT = typename UnderlyingType<T>::type;
381
+
382
+ // This overload triggers when T is a scoped enum that has not defined an output
383
+ // stream operator (operator<<) or AbslStringify. It causes the enum value to be
384
+ // converted to a type that can be streamed. For consistency with other enums, a
385
+ // scoped enum backed by a bool or char is converted to its underlying type, and
386
+ // one backed by another integer is converted to (u)int64_t.
387
+ template <typename T>
388
+ std::enable_if_t<
389
+ std::conjunction_v<std::is_enum<T>,
390
+ std::negation<std::is_convertible<T, int>>,
391
+ std::negation<HasOstreamOperator<T>>,
392
+ std::negation<HasAbslStringify<T>>>,
393
+ std::conditional_t<std::is_same_v<UnderlyingTypeT<T>, bool> ||
394
+ std::is_same_v<UnderlyingTypeT<T>, char> ||
395
+ std::is_same_v<UnderlyingTypeT<T>, signed char> ||
396
+ std::is_same_v<UnderlyingTypeT<T>, unsigned char>,
397
+ UnderlyingTypeT<T>,
398
+ std::conditional_t<std::is_signed_v<UnderlyingTypeT<T>>,
399
+ int64_t, uint64_t>>>
400
+ Detect(...);
348
401
  } // namespace detect_specialization
349
402
 
350
403
  template <typename T>
@@ -352,12 +405,12 @@ using CheckOpStreamType = decltype(detect_specialization::Detect<T>(0));
352
405
 
353
406
  // Build the error message string. Specify no inlining for code size.
354
407
  template <typename T1, typename T2>
355
- ABSL_ATTRIBUTE_RETURNS_NONNULL absl::Nonnull<const char*> MakeCheckOpString(
356
- T1 v1, T2 v2, absl::Nonnull<const char*> exprtext) ABSL_ATTRIBUTE_NOINLINE;
408
+ ABSL_ATTRIBUTE_RETURNS_NONNULL const char* absl_nonnull MakeCheckOpString(
409
+ T1 v1, T2 v2, const char* absl_nonnull exprtext) ABSL_ATTRIBUTE_NOINLINE;
357
410
 
358
411
  template <typename T1, typename T2>
359
- absl::Nonnull<const char*> MakeCheckOpString(
360
- T1 v1, T2 v2, absl::Nonnull<const char*> exprtext) {
412
+ const char* absl_nonnull MakeCheckOpString(T1 v1, T2 v2,
413
+ const char* absl_nonnull exprtext) {
361
414
  CheckOpMessageBuilder comb(exprtext);
362
415
  MakeCheckOpValueString(comb.ForVar1(), v1);
363
416
  MakeCheckOpValueString(comb.ForVar2(), v2);
@@ -367,8 +420,8 @@ absl::Nonnull<const char*> MakeCheckOpString(
367
420
  // Add a few commonly used instantiations as extern to reduce size of objects
368
421
  // files.
369
422
  #define ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING_EXTERN(x) \
370
- extern template absl::Nonnull<const char*> MakeCheckOpString( \
371
- x, x, absl::Nonnull<const char*>)
423
+ extern template const char* absl_nonnull MakeCheckOpString( \
424
+ x, x, const char* absl_nonnull)
372
425
  ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING_EXTERN(bool);
373
426
  ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING_EXTERN(int64_t);
374
427
  ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING_EXTERN(uint64_t);
@@ -378,10 +431,12 @@ ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING_EXTERN(char);
378
431
  ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING_EXTERN(unsigned char);
379
432
  ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING_EXTERN(const std::string&);
380
433
  ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING_EXTERN(const absl::string_view&);
381
- ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING_EXTERN(const char*);
382
- ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING_EXTERN(const signed char*);
383
- ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING_EXTERN(const unsigned char*);
384
- ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING_EXTERN(const void*);
434
+ ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING_EXTERN(const char* absl_nonnull);
435
+ ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING_EXTERN(
436
+ const signed char* absl_nonnull);
437
+ ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING_EXTERN(
438
+ const unsigned char* absl_nonnull);
439
+ ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING_EXTERN(const void* absl_nonnull);
385
440
  #undef ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING_EXTERN
386
441
 
387
442
  // `ABSL_LOG_INTERNAL_CHECK_OP_IMPL_RESULT` skips formatting the Check_OP result
@@ -404,8 +459,8 @@ ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING_EXTERN(const void*);
404
459
  // type.
405
460
  #define ABSL_LOG_INTERNAL_CHECK_OP_IMPL(name, op) \
406
461
  template <typename T1, typename T2> \
407
- inline constexpr absl::Nullable<const char*> name##Impl( \
408
- const T1& v1, const T2& v2, absl::Nonnull<const char*> exprtext) { \
462
+ inline constexpr const char* absl_nullable name##Impl( \
463
+ const T1& v1, const T2& v2, const char* absl_nonnull exprtext) { \
409
464
  using U1 = CheckOpStreamType<T1>; \
410
465
  using U2 = CheckOpStreamType<T2>; \
411
466
  return ABSL_PREDICT_TRUE(v1 op v2) \
@@ -413,8 +468,8 @@ ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING_EXTERN(const void*);
413
468
  : ABSL_LOG_INTERNAL_CHECK_OP_IMPL_RESULT(U1, U2, U1(v1), \
414
469
  U2(v2), exprtext); \
415
470
  } \
416
- inline constexpr absl::Nullable<const char*> name##Impl( \
417
- int v1, int v2, absl::Nonnull<const char*> exprtext) { \
471
+ inline constexpr const char* absl_nullable name##Impl( \
472
+ int v1, int v2, const char* absl_nonnull exprtext) { \
418
473
  return name##Impl<int, int>(v1, v2, exprtext); \
419
474
  }
420
475
 
@@ -427,18 +482,18 @@ ABSL_LOG_INTERNAL_CHECK_OP_IMPL(Check_GT, >)
427
482
  #undef ABSL_LOG_INTERNAL_CHECK_OP_IMPL_RESULT
428
483
  #undef ABSL_LOG_INTERNAL_CHECK_OP_IMPL
429
484
 
430
- absl::Nullable<const char*> CheckstrcmptrueImpl(
431
- absl::Nullable<const char*> s1, absl::Nullable<const char*> s2,
432
- absl::Nonnull<const char*> exprtext);
433
- absl::Nullable<const char*> CheckstrcmpfalseImpl(
434
- absl::Nullable<const char*> s1, absl::Nullable<const char*> s2,
435
- absl::Nonnull<const char*> exprtext);
436
- absl::Nullable<const char*> CheckstrcasecmptrueImpl(
437
- absl::Nullable<const char*> s1, absl::Nullable<const char*> s2,
438
- absl::Nonnull<const char*> exprtext);
439
- absl::Nullable<const char*> CheckstrcasecmpfalseImpl(
440
- absl::Nullable<const char*> s1, absl::Nullable<const char*> s2,
441
- absl::Nonnull<const char*> exprtext);
485
+ const char* absl_nullable CheckstrcmptrueImpl(
486
+ const char* absl_nullable s1, const char* absl_nullable s2,
487
+ const char* absl_nonnull exprtext);
488
+ const char* absl_nullable CheckstrcmpfalseImpl(
489
+ const char* absl_nullable s1, const char* absl_nullable s2,
490
+ const char* absl_nonnull exprtext);
491
+ const char* absl_nullable CheckstrcasecmptrueImpl(
492
+ const char* absl_nullable s1, const char* absl_nullable s2,
493
+ const char* absl_nonnull exprtext);
494
+ const char* absl_nullable CheckstrcasecmpfalseImpl(
495
+ const char* absl_nullable s1, const char* absl_nullable s2,
496
+ const char* absl_nonnull exprtext);
442
497
 
443
498
  // `CHECK_EQ` and friends want to pass their arguments by reference, however
444
499
  // this winds up exposing lots of cases where people have defined and
@@ -63,8 +63,9 @@ bool LogEveryNSecState::ShouldLog(double seconds) {
63
63
  // myriad2 does not have 8-byte compare and exchange. Use a racy version that
64
64
  // is "good enough" but will over-log in the face of concurrent logging.
65
65
  if (now_cycles > next_cycles) {
66
- next_log_time_cycles_.store(now_cycles + seconds * CycleClock::Frequency(),
67
- std::memory_order_relaxed);
66
+ next_log_time_cycles_.store(
67
+ static_cast<int64_t>(now_cycles + seconds * CycleClock::Frequency()),
68
+ std::memory_order_relaxed);
68
69
  return true;
69
70
  }
70
71
  return false;
@@ -72,7 +73,8 @@ bool LogEveryNSecState::ShouldLog(double seconds) {
72
73
  do {
73
74
  if (now_cycles <= next_cycles) return false;
74
75
  } while (!next_log_time_cycles_.compare_exchange_weak(
75
- next_cycles, now_cycles + seconds * CycleClock::Frequency(),
76
+ next_cycles,
77
+ static_cast<int64_t>(now_cycles + seconds * CycleClock::Frequency()),
76
78
  std::memory_order_relaxed, std::memory_order_relaxed));
77
79
  return true;
78
80
  #endif
@@ -65,7 +65,7 @@
65
65
  switch (0) \
66
66
  case 0: \
67
67
  default: \
68
- !(condition) ? (void)0 : ::absl::log_internal::Voidify()&&
68
+ !(condition) ? (void)0 : ::absl::log_internal::Voidify() &&
69
69
 
70
70
  // `ABSL_LOG_INTERNAL_STATEFUL_CONDITION` applies a condition like
71
71
  // `ABSL_LOG_INTERNAL_STATELESS_CONDITION` but adds to that a series of variable
@@ -96,7 +96,8 @@
96
96
  for (const uint32_t COUNTER ABSL_ATTRIBUTE_UNUSED = \
97
97
  absl_log_internal_stateful_condition_state.counter(); \
98
98
  absl_log_internal_stateful_condition_do_log; \
99
- absl_log_internal_stateful_condition_do_log = false)
99
+ absl_log_internal_stateful_condition_do_log = false) \
100
+ ::absl::log_internal::Voidify() &&
100
101
 
101
102
  // `ABSL_LOG_INTERNAL_CONDITION_*` serve to combine any conditions from the
102
103
  // macro (e.g. `LOG_IF` or `VLOG`) with inherent conditions (e.g.
@@ -117,6 +118,8 @@
117
118
  ABSL_LOG_INTERNAL_##type##_CONDITION( \
118
119
  (condition) && ::absl::LogSeverity::kError >= \
119
120
  static_cast<::absl::LogSeverity>(ABSL_MIN_LOG_LEVEL))
121
+ #define ABSL_LOG_INTERNAL_CONDITION_DO_NOT_SUBMIT(type, condition) \
122
+ ABSL_LOG_INTERNAL_CONDITION_ERROR(type, condition)
120
123
  // NOTE: Use ternary operators instead of short-circuiting to mitigate
121
124
  // https://bugs.llvm.org/show_bug.cgi?id=51928.
122
125
  #define ABSL_LOG_INTERNAL_CONDITION_FATAL(type, condition) \
@@ -168,6 +171,8 @@
168
171
  ABSL_LOG_INTERNAL_##type##_CONDITION(condition)
169
172
  #define ABSL_LOG_INTERNAL_CONDITION_ERROR(type, condition) \
170
173
  ABSL_LOG_INTERNAL_##type##_CONDITION(condition)
174
+ #define ABSL_LOG_INTERNAL_CONDITION_DO_NOT_SUBMIT(type, condition) \
175
+ ABSL_LOG_INTERNAL_CONDITION_ERROR(type, condition)
171
176
  #define ABSL_LOG_INTERNAL_CONDITION_FATAL(type, condition) \
172
177
  ABSL_LOG_INTERNAL_##type##_CONDITION(condition)
173
178
  #define ABSL_LOG_INTERNAL_CONDITION_QFATAL(type, condition) \
@@ -27,6 +27,7 @@ TEST(FNMatchTest, Works) {
27
27
  EXPECT_THAT(FNMatch("foo", "bar"), IsFalse());
28
28
  EXPECT_THAT(FNMatch("foo", "fo"), IsFalse());
29
29
  EXPECT_THAT(FNMatch("foo", "foo2"), IsFalse());
30
+ EXPECT_THAT(FNMatch("foo/*", "foo/1/2/3/4"), IsTrue());
30
31
  EXPECT_THAT(FNMatch("bar/foo.ext", "bar/foo.ext"), IsTrue());
31
32
  EXPECT_THAT(FNMatch("*ba*r/fo*o.ext*", "bar/foo.ext"), IsTrue());
32
33
  EXPECT_THAT(FNMatch("bar/foo.ext", "bar/baz.ext"), IsFalse());