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
@@ -16,21 +16,21 @@
16
16
  // File: nullability.h
17
17
  // -----------------------------------------------------------------------------
18
18
  //
19
- // This header file defines a set of "templated annotations" for designating the
20
- // expected nullability of pointers. These annotations allow you to designate
21
- // pointers in one of three classification states:
19
+ // This header file defines a set of annotations for designating the expected
20
+ // nullability of pointers. These annotations allow you to designate pointers in
21
+ // one of three classification states:
22
22
  //
23
- // * "Non-null" (for pointers annotated `Nonnull<T>`), indicating that it is
23
+ // * "Non-null" (for pointers annotated `absl_nonnull`), indicating that it is
24
24
  // invalid for the given pointer to ever be null.
25
- // * "Nullable" (for pointers annotated `Nullable<T>`), indicating that it is
25
+ // * "Nullable" (for pointers annotated `absl_nullable`), indicating that it is
26
26
  // valid for the given pointer to be null.
27
- // * "Unknown" (for pointers annotated `NullabilityUnknown<T>`), indicating
28
- // that the given pointer has not been yet classified as either nullable or
27
+ // * "Unknown" (for pointers annotated `absl_nullability_unknown`), indicating
28
+ // that the given pointer has not yet been classified as either nullable or
29
29
  // non-null. This is the default state of unannotated pointers.
30
30
  //
31
- // NOTE: unannotated pointers implicitly bear the annotation
32
- // `NullabilityUnknown<T>`; you should rarely, if ever, see this annotation used
33
- // in the codebase explicitly.
31
+ // NOTE: Unannotated pointers implicitly bear the annotation
32
+ // `absl_nullability_unknown`; you should rarely, if ever, see this annotation
33
+ // used in the codebase explicitly.
34
34
  //
35
35
  // -----------------------------------------------------------------------------
36
36
  // Nullability and Contracts
@@ -64,16 +64,49 @@
64
64
  // formalize those contracts within the codebase.
65
65
  //
66
66
  // -----------------------------------------------------------------------------
67
+ // Annotation Syntax
68
+ // -----------------------------------------------------------------------------
69
+ //
70
+ // The annotations should be positioned as a qualifier for the pointer type. For
71
+ // example, the position of `const` when declaring a const pointer (not a
72
+ // pointer to a const type) is the position you should also use for these
73
+ // annotations.
74
+ //
75
+ // Example:
76
+ //
77
+ // // A const non-null pointer to an `Employee`.
78
+ // Employee* absl_nonnull const e;
79
+ //
80
+ // // A non-null pointer to a const `Employee`.
81
+ // const Employee* absl_nonnull e;
82
+ //
83
+ // // A non-null pointer to a const nullable pointer to an `Employee`.
84
+ // Employee* absl_nullable const* absl_nonnull e = nullptr;
85
+ //
86
+ // // A non-null function pointer.
87
+ // void (*absl_nonnull func)(int, double);
88
+ //
89
+ // // A non-null array of `Employee`s as a parameter.
90
+ // void func(Employee employees[absl_nonnull]);
91
+ //
92
+ // // A non-null std::unique_ptr to an `Employee`.
93
+ // // As with `const`, it is possible to place the annotation on either side of
94
+ // // a named type not ending in `*`, but placing it before the type it
95
+ // // describes is preferred, unless inconsistent with surrounding code.
96
+ // absl_nonnull std::unique_ptr<Employee> employee;
97
+ //
98
+ // // Invalid annotation usage – this attempts to declare a pointer to a
99
+ // // nullable `Employee`, which is meaningless.
100
+ // absl_nullable Employee* e;
101
+ //
102
+ // -----------------------------------------------------------------------------
67
103
  // Using Nullability Annotations
68
104
  // -----------------------------------------------------------------------------
69
105
  //
70
- // It is important to note that these annotations are not distinct strong
71
- // *types*. They are alias templates defined to be equal to the underlying
72
- // pointer type. A pointer annotated `Nonnull<T*>`, for example, is simply a
73
- // pointer of type `T*`. Each annotation acts as a form of documentation about
74
- // the contract for the given pointer. Each annotation requires providers or
75
- // consumers of these pointers across API boundaries to take appropriate steps
76
- // when setting or using these pointers:
106
+ // Each annotation acts as a form of documentation about the contract for the
107
+ // given pointer. Each annotation requires providers or consumers of these
108
+ // pointers across API boundaries to take appropriate steps when setting or
109
+ // using these pointers:
77
110
  //
78
111
  // * "Non-null" pointers should never be null. It is the responsibility of the
79
112
  // provider of this pointer to ensure that the pointer may never be set to
@@ -91,20 +124,20 @@
91
124
  // Example:
92
125
  //
93
126
  // // PaySalary() requires the passed pointer to an `Employee` to be non-null.
94
- // void PaySalary(absl::Nonnull<Employee *> e) {
127
+ // void PaySalary(Employee* absl_nonnull e) {
95
128
  // pay(e->salary); // OK to dereference
96
129
  // }
97
130
  //
98
131
  // // CompleteTransaction() guarantees the returned pointer to an `Account` to
99
132
  // // be non-null.
100
- // absl::Nonnull<Account *> balance CompleteTransaction(double fee) {
133
+ // Account* absl_nonnull balance CompleteTransaction(double fee) {
101
134
  // ...
102
135
  // }
103
136
  //
104
137
  // // Note that specifying a nullability annotation does not prevent someone
105
138
  // // from violating the contract:
106
139
  //
107
- // Nullable<Employee *> find(Map& employees, std::string_view name);
140
+ // Employee* absl_nullable find(Map& employees, std::string_view name);
108
141
  //
109
142
  // void g(Map& employees) {
110
143
  // Employee *e = find(employees, "Pat");
@@ -144,14 +177,13 @@
144
177
  // These nullability annotations are primarily a human readable signal about the
145
178
  // intended contract of the pointer. They are not *types* and do not currently
146
179
  // provide any correctness guarantees. For example, a pointer annotated as
147
- // `Nonnull<T*>` is *not guaranteed* to be non-null, and the compiler won't
148
- // alert or prevent assignment of a `Nullable<T*>` to a `Nonnull<T*>`.
180
+ // `absl_nonnull` is *not guaranteed* to be non-null, and the compiler won't
181
+ // alert or prevent assignment of a `T* absl_nullable` to a `T* absl_nonnull`.
149
182
  // ===========================================================================
150
183
  #ifndef ABSL_BASE_NULLABILITY_H_
151
184
  #define ABSL_BASE_NULLABILITY_H_
152
185
 
153
186
  #include "absl/base/config.h"
154
- #include "absl/base/internal/nullability_impl.h"
155
187
 
156
188
  // ABSL_POINTERS_DEFAULT_NONNULL
157
189
  //
@@ -168,14 +200,14 @@
168
200
  // ABSL_POINTERS_DEFAULT_NONNULL
169
201
  //
170
202
  // void FillMessage(Message *m); // implicitly non-null
171
- // absl::Nullable<T*> GetNullablePtr(); // explicitly nullable
172
- // absl::NullabilityUnknown<T*> GetUnknownPtr(); // explicitly unknown
203
+ // T* absl_nullable GetNullablePtr(); // explicitly nullable
204
+ // T* absl_nullability_unknown GetUnknownPtr(); // explicitly unknown
173
205
  //
174
- // The macro can be safely used in header files -- it will not affect any files
206
+ // The macro can be safely used in header files it will not affect any files
175
207
  // that include it.
176
208
  //
177
- // In files with the macro, plain `T*` syntax means `absl::Nonnull<T*>`, and the
178
- // exceptions (`Nullable` and `NullabilityUnknown`) must be marked
209
+ // In files with the macro, plain `T*` syntax means `T* absl_nonnull`, and the
210
+ // exceptions (`absl_nullable` and `absl_nullability_unknown`) must be marked
179
211
  // explicitly. The same holds, correspondingly, for smart pointer types.
180
212
  //
181
213
  // For comparison, without the macro, all unannotated pointers would default to
@@ -183,17 +215,16 @@
183
215
  //
184
216
  // #include "absl/base/nullability.h"
185
217
  //
186
- // void FillMessage(absl::Nonnull<Message*> m); // explicitly non-null
187
- // absl::Nullable<T*> GetNullablePtr(); // explicitly nullable
218
+ // void FillMessage(Message* absl_nonnull m); // explicitly non-null
219
+ // T* absl_nullable GetNullablePtr(); // explicitly nullable
188
220
  // T* GetUnknownPtr(); // implicitly unknown
189
221
  //
190
222
  // No-op except for being a human readable signal.
191
223
  #define ABSL_POINTERS_DEFAULT_NONNULL
192
224
 
193
- namespace absl {
194
- ABSL_NAMESPACE_BEGIN
195
-
196
- // absl::Nonnull (default with `ABSL_POINTERS_DEFAULT_NONNULL`)
225
+ #if defined(__clang__) && !defined(__OBJC__) && \
226
+ ABSL_HAVE_FEATURE(nullability_on_classes)
227
+ // absl_nonnull (default with `ABSL_POINTERS_DEFAULT_NONNULL`)
197
228
  //
198
229
  // The indicated pointer is never null. It is the responsibility of the provider
199
230
  // of this pointer across an API boundary to ensure that the pointer is never
@@ -203,13 +234,12 @@ ABSL_NAMESPACE_BEGIN
203
234
  // Example:
204
235
  //
205
236
  // // `employee` is designated as not null.
206
- // void PaySalary(absl::Nonnull<Employee *> employee) {
237
+ // void PaySalary(Employee* absl_nonnull employee) {
207
238
  // pay(*employee); // OK to dereference
208
239
  // }
209
- template <typename T>
210
- using Nonnull = nullability_internal::NonnullImpl<T>;
240
+ #define absl_nonnull _Nonnull
211
241
 
212
- // absl::Nullable
242
+ // absl_nullable
213
243
  //
214
244
  // The indicated pointer may, by design, be either null or non-null. Consumers
215
245
  // of this pointer across an API boundary should perform a `nullptr` check
@@ -218,15 +248,14 @@ using Nonnull = nullability_internal::NonnullImpl<T>;
218
248
  // Example:
219
249
  //
220
250
  // // `employee` may be null.
221
- // void PaySalary(absl::Nullable<Employee *> employee) {
251
+ // void PaySalary(Employee* absl_nullable employee) {
222
252
  // if (employee != nullptr) {
223
253
  // Pay(*employee); // OK to dereference
224
254
  // }
225
255
  // }
226
- template <typename T>
227
- using Nullable = nullability_internal::NullableImpl<T>;
256
+ #define absl_nullable _Nullable
228
257
 
229
- // absl::NullabilityUnknown (default without `ABSL_POINTERS_DEFAULT_NONNULL`)
258
+ // absl_nullability_unknown (default without `ABSL_POINTERS_DEFAULT_NONNULL`)
230
259
  //
231
260
  // The indicated pointer has not yet been determined to be definitively
232
261
  // "non-null" or "nullable." Providers of such pointers across API boundaries
@@ -234,8 +263,8 @@ using Nullable = nullability_internal::NullableImpl<T>;
234
263
  // Consumers of these pointers across an API boundary should treat such pointers
235
264
  // with the same caution they treat currently unannotated pointers. Most
236
265
  // existing code will have "unknown" pointers, which should eventually be
237
- // migrated into one of the above two nullability states: `Nonnull<T>` or
238
- // `Nullable<T>`.
266
+ // migrated into one of the above two nullability states: `absl_nonnull` or
267
+ // `absl_nullable`.
239
268
  //
240
269
  // NOTE: For files that do not specify `ABSL_POINTERS_DEFAULT_NONNULL`,
241
270
  // because this annotation is the global default state, unannotated pointers are
@@ -245,7 +274,7 @@ using Nullable = nullability_internal::NullableImpl<T>;
245
274
  // Example:
246
275
  //
247
276
  // // `employee`s nullability state is unknown.
248
- // void PaySalary(absl::NullabilityUnknown<Employee *> employee) {
277
+ // void PaySalary(Employee* absl_nullability_unknown employee) {
249
278
  // Pay(*employee); // Potentially dangerous. API provider should investigate.
250
279
  // }
251
280
  //
@@ -256,11 +285,15 @@ using Nullable = nullability_internal::NullableImpl<T>;
256
285
  // void PaySalary(Employee* employee) {
257
286
  // Pay(*employee); // Potentially dangerous. API provider should investigate.
258
287
  // }
259
- template <typename T>
260
- using NullabilityUnknown = nullability_internal::NullabilityUnknownImpl<T>;
261
-
262
- ABSL_NAMESPACE_END
263
- } // namespace absl
288
+ #define absl_nullability_unknown _Null_unspecified
289
+ #else
290
+ // No-op for non-Clang compilers or Objective-C.
291
+ #define absl_nonnull
292
+ // No-op for non-Clang compilers or Objective-C.
293
+ #define absl_nullable
294
+ // No-op for non-Clang compilers or Objective-C.
295
+ #define absl_nullability_unknown
296
+ #endif
264
297
 
265
298
  // ABSL_NULLABILITY_COMPATIBLE
266
299
  //
@@ -281,26 +314,4 @@ ABSL_NAMESPACE_END
281
314
  #define ABSL_NULLABILITY_COMPATIBLE
282
315
  #endif
283
316
 
284
- // ABSL_NONNULL
285
- // ABSL_NULLABLE
286
- // ABSL_NULLABILITY_UNKNOWN
287
- //
288
- // These macros are analogues of the alias template nullability annotations
289
- // above.
290
- //
291
- // Example:
292
- // int* ABSL_NULLABLE foo;
293
- // Is equivalent to:
294
- // absl::Nullable<int*> foo;
295
- #if defined(__clang__) && !defined(__OBJC__) && \
296
- ABSL_HAVE_FEATURE(nullability_on_classes)
297
- #define ABSL_NONNULL _Nonnull
298
- #define ABSL_NULLABLE _Nullable
299
- #define ABSL_NULLABILITY_UNKNOWN _Null_unspecified
300
- #else
301
- #define ABSL_NONNULL
302
- #define ABSL_NULLABLE
303
- #define ABSL_NULLABILITY_UNKNOWN
304
- #endif
305
-
306
317
  #endif // ABSL_BASE_NULLABILITY_H_
@@ -14,21 +14,16 @@
14
14
 
15
15
  #include "absl/base/nullability.h"
16
16
 
17
- #include <cassert>
18
17
  #include <memory>
18
+ #include <type_traits>
19
19
  #include <utility>
20
20
 
21
21
  #include "gtest/gtest.h"
22
- #include "absl/base/attributes.h"
23
22
 
24
23
  namespace {
25
- using ::absl::Nonnull;
26
- using ::absl::NullabilityUnknown;
27
- using ::absl::Nullable;
28
-
29
- void funcWithNonnullArg(Nonnull<int*> /*arg*/) {}
24
+ void funcWithNonnullArg(int* absl_nonnull /*arg*/) {}
30
25
  template <typename T>
31
- void funcWithDeducedNonnullArg(Nonnull<T*> /*arg*/) {}
26
+ void funcWithDeducedNonnullArg(T* absl_nonnull /*arg*/) {}
32
27
 
33
28
  TEST(NonnullTest, NonnullArgument) {
34
29
  int var = 0;
@@ -36,7 +31,7 @@ TEST(NonnullTest, NonnullArgument) {
36
31
  funcWithDeducedNonnullArg(&var);
37
32
  }
38
33
 
39
- Nonnull<int*> funcWithNonnullReturn() {
34
+ int* absl_nonnull funcWithNonnullReturn() {
40
35
  static int var = 0;
41
36
  return &var;
42
37
  }
@@ -47,83 +42,49 @@ TEST(NonnullTest, NonnullReturn) {
47
42
  }
48
43
 
49
44
  TEST(PassThroughTest, PassesThroughRawPointerToInt) {
50
- EXPECT_TRUE((std::is_same<Nonnull<int*>, int*>::value));
51
- EXPECT_TRUE((std::is_same<Nullable<int*>, int*>::value));
52
- EXPECT_TRUE((std::is_same<NullabilityUnknown<int*>, int*>::value));
45
+ EXPECT_TRUE((std::is_same<int* absl_nonnull, int*>::value));
46
+ EXPECT_TRUE((std::is_same<int* absl_nullable, int*>::value));
47
+ EXPECT_TRUE((std::is_same<int* absl_nullability_unknown, int*>::value));
53
48
  }
54
49
 
55
50
  TEST(PassThroughTest, PassesThroughRawPointerToVoid) {
56
- EXPECT_TRUE((std::is_same<Nonnull<void*>, void*>::value));
57
- EXPECT_TRUE((std::is_same<Nullable<void*>, void*>::value));
58
- EXPECT_TRUE((std::is_same<NullabilityUnknown<void*>, void*>::value));
51
+ EXPECT_TRUE((std::is_same<void* absl_nonnull, void*>::value));
52
+ EXPECT_TRUE((std::is_same<void* absl_nullable, void*>::value));
53
+ EXPECT_TRUE((std::is_same<void* absl_nullability_unknown, void*>::value));
59
54
  }
60
55
 
61
56
  TEST(PassThroughTest, PassesThroughUniquePointerToInt) {
62
57
  using T = std::unique_ptr<int>;
63
- EXPECT_TRUE((std::is_same<Nonnull<T>, T>::value));
64
- EXPECT_TRUE((std::is_same<Nullable<T>, T>::value));
65
- EXPECT_TRUE((std::is_same<NullabilityUnknown<T>, T>::value));
58
+ EXPECT_TRUE((std::is_same<absl_nonnull T, T>::value));
59
+ EXPECT_TRUE((std::is_same<absl_nullable T, T>::value));
60
+ EXPECT_TRUE((std::is_same<absl_nullability_unknown T, T>::value));
66
61
  }
67
62
 
68
63
  TEST(PassThroughTest, PassesThroughSharedPointerToInt) {
69
64
  using T = std::shared_ptr<int>;
70
- EXPECT_TRUE((std::is_same<Nonnull<T>, T>::value));
71
- EXPECT_TRUE((std::is_same<Nullable<T>, T>::value));
72
- EXPECT_TRUE((std::is_same<NullabilityUnknown<T>, T>::value));
65
+ EXPECT_TRUE((std::is_same<absl_nonnull T, T>::value));
66
+ EXPECT_TRUE((std::is_same<absl_nullable T, T>::value));
67
+ EXPECT_TRUE((std::is_same<absl_nullability_unknown T, T>::value));
73
68
  }
74
69
 
75
70
  TEST(PassThroughTest, PassesThroughSharedPointerToVoid) {
76
71
  using T = std::shared_ptr<void>;
77
- EXPECT_TRUE((std::is_same<Nonnull<T>, T>::value));
78
- EXPECT_TRUE((std::is_same<Nullable<T>, T>::value));
79
- EXPECT_TRUE((std::is_same<NullabilityUnknown<T>, T>::value));
72
+ EXPECT_TRUE((std::is_same<absl_nonnull T, T>::value));
73
+ EXPECT_TRUE((std::is_same<absl_nullable T, T>::value));
74
+ EXPECT_TRUE((std::is_same<absl_nullability_unknown T, T>::value));
80
75
  }
81
76
 
82
77
  TEST(PassThroughTest, PassesThroughPointerToMemberObject) {
83
78
  using T = decltype(&std::pair<int, int>::first);
84
- EXPECT_TRUE((std::is_same<Nonnull<T>, T>::value));
85
- EXPECT_TRUE((std::is_same<Nullable<T>, T>::value));
86
- EXPECT_TRUE((std::is_same<NullabilityUnknown<T>, T>::value));
79
+ EXPECT_TRUE((std::is_same<absl_nonnull T, T>::value));
80
+ EXPECT_TRUE((std::is_same<absl_nullable T, T>::value));
81
+ EXPECT_TRUE((std::is_same<absl_nullability_unknown T, T>::value));
87
82
  }
88
83
 
89
84
  TEST(PassThroughTest, PassesThroughPointerToMemberFunction) {
90
85
  using T = decltype(&std::unique_ptr<int>::reset);
91
- EXPECT_TRUE((std::is_same<Nonnull<T>, T>::value));
92
- EXPECT_TRUE((std::is_same<Nullable<T>, T>::value));
93
- EXPECT_TRUE((std::is_same<NullabilityUnknown<T>, T>::value));
94
- }
95
-
96
- } // namespace
97
-
98
- // Nullable ADL lookup test
99
- namespace util {
100
- // Helper for NullableAdlTest. Returns true, denoting that argument-dependent
101
- // lookup found this implementation of DidAdlWin. Must be in namespace
102
- // util itself, not a nested anonymous namespace.
103
- template <typename T>
104
- bool DidAdlWin(T*) {
105
- return true;
106
- }
107
-
108
- // Because this type is defined in namespace util, an unqualified call to
109
- // DidAdlWin with a pointer to MakeAdlWin will find the above implementation.
110
- struct MakeAdlWin {};
111
- } // namespace util
112
-
113
- namespace {
114
- // Returns false, denoting that ADL did not inspect namespace util. If it
115
- // had, the better match (T*) above would have won out over the (...) here.
116
- bool DidAdlWin(...) { return false; }
117
-
118
- TEST(NullableAdlTest, NullableAddsNothingToArgumentDependentLookup) {
119
- // Treatment: util::Nullable<int*> contributes nothing to ADL because
120
- // int* itself doesn't.
121
- EXPECT_FALSE(DidAdlWin((int*)nullptr));
122
- EXPECT_FALSE(DidAdlWin((Nullable<int*>)nullptr));
123
-
124
- // Control: Argument-dependent lookup does find the implementation in
125
- // namespace util when the underlying pointee type resides there.
126
- EXPECT_TRUE(DidAdlWin((util::MakeAdlWin*)nullptr));
127
- EXPECT_TRUE(DidAdlWin((Nullable<util::MakeAdlWin*>)nullptr));
86
+ EXPECT_TRUE((std::is_same<absl_nonnull T, T>::value));
87
+ EXPECT_TRUE((std::is_same<absl_nullable T, T>::value));
88
+ EXPECT_TRUE((std::is_same<absl_nullability_unknown T, T>::value));
128
89
  }
129
90
  } // namespace
@@ -64,65 +64,14 @@
64
64
  // proper Abseil implementation at compile-time, which will not be sufficient
65
65
  // to guarantee ABI stability to package managers.
66
66
 
67
+ // SKIP_ABSL_INLINE_NAMESPACE_CHECK
68
+
67
69
  #ifndef ABSL_BASE_OPTIONS_H_
68
70
  #define ABSL_BASE_OPTIONS_H_
69
71
 
70
72
  // -----------------------------------------------------------------------------
71
73
  // Type Compatibility Options
72
74
  // -----------------------------------------------------------------------------
73
- //
74
- // ABSL_OPTION_USE_STD_ANY
75
- //
76
- // This option controls whether absl::any is implemented as an alias to
77
- // std::any, or as an independent implementation.
78
- //
79
- // A value of 0 means to use Abseil's implementation. This requires only C++11
80
- // support, and is expected to work on every toolchain we support.
81
- //
82
- // A value of 1 means to use an alias to std::any. This requires that all code
83
- // using Abseil is built in C++17 mode or later.
84
- //
85
- // A value of 2 means to detect the C++ version being used to compile Abseil,
86
- // and use an alias only if a working std::any is available. This option is
87
- // useful when you are building your entire program, including all of its
88
- // dependencies, from source. It should not be used otherwise -- for example,
89
- // if you are distributing Abseil in a binary package manager -- since in
90
- // mode 2, absl::any will name a different type, with a different mangled name
91
- // and binary layout, depending on the compiler flags passed by the end user.
92
- // For more info, see https://abseil.io/about/design/dropin-types.
93
- //
94
- // User code should not inspect this macro. To check in the preprocessor if
95
- // absl::any is a typedef of std::any, use the feature macro ABSL_USES_STD_ANY.
96
-
97
- #define ABSL_OPTION_USE_STD_ANY 2
98
-
99
-
100
- // ABSL_OPTION_USE_STD_OPTIONAL
101
- //
102
- // This option controls whether absl::optional is implemented as an alias to
103
- // std::optional, or as an independent implementation.
104
- //
105
- // A value of 0 means to use Abseil's implementation. This requires only C++11
106
- // support, and is expected to work on every toolchain we support.
107
- //
108
- // A value of 1 means to use an alias to std::optional. This requires that all
109
- // code using Abseil is built in C++17 mode or later.
110
- //
111
- // A value of 2 means to detect the C++ version being used to compile Abseil,
112
- // and use an alias only if a working std::optional is available. This option
113
- // is useful when you are building your program from source. It should not be
114
- // used otherwise -- for example, if you are distributing Abseil in a binary
115
- // package manager -- since in mode 2, absl::optional will name a different
116
- // type, with a different mangled name and binary layout, depending on the
117
- // compiler flags passed by the end user. For more info, see
118
- // https://abseil.io/about/design/dropin-types.
119
-
120
- // User code should not inspect this macro. To check in the preprocessor if
121
- // absl::optional is a typedef of std::optional, use the feature macro
122
- // ABSL_USES_STD_OPTIONAL.
123
-
124
- #define ABSL_OPTION_USE_STD_OPTIONAL 2
125
-
126
75
 
127
76
  // ABSL_OPTION_USE_STD_STRING_VIEW
128
77
  //
@@ -150,32 +99,6 @@
150
99
 
151
100
  #define ABSL_OPTION_USE_STD_STRING_VIEW 2
152
101
 
153
- // ABSL_OPTION_USE_STD_VARIANT
154
- //
155
- // This option controls whether absl::variant is implemented as an alias to
156
- // std::variant, or as an independent implementation.
157
- //
158
- // A value of 0 means to use Abseil's implementation. This requires only C++11
159
- // support, and is expected to work on every toolchain we support.
160
- //
161
- // A value of 1 means to use an alias to std::variant. This requires that all
162
- // code using Abseil is built in C++17 mode or later.
163
- //
164
- // A value of 2 means to detect the C++ version being used to compile Abseil,
165
- // and use an alias only if a working std::variant is available. This option
166
- // is useful when you are building your program from source. It should not be
167
- // used otherwise -- for example, if you are distributing Abseil in a binary
168
- // package manager -- since in mode 2, absl::variant will name a different
169
- // type, with a different mangled name and binary layout, depending on the
170
- // compiler flags passed by the end user. For more info, see
171
- // https://abseil.io/about/design/dropin-types.
172
- //
173
- // User code should not inspect this macro. To check in the preprocessor if
174
- // absl::variant is a typedef of std::variant, use the feature macro
175
- // ABSL_USES_STD_VARIANT.
176
-
177
- #define ABSL_OPTION_USE_STD_VARIANT 2
178
-
179
102
  // ABSL_OPTION_USE_STD_ORDERING
180
103
  //
181
104
  // This option controls whether absl::{partial,weak,strong}_ordering are
@@ -226,7 +149,7 @@
226
149
  // allowed.
227
150
 
228
151
  #define ABSL_OPTION_USE_INLINE_NAMESPACE 1
229
- #define ABSL_OPTION_INLINE_NAMESPACE_NAME lts_20250127
152
+ #define ABSL_OPTION_INLINE_NAMESPACE_NAME lts_20250814
230
153
 
231
154
  // ABSL_OPTION_HARDENED
232
155
  //
@@ -71,15 +71,15 @@
71
71
  // C++ Version Check
72
72
  // -----------------------------------------------------------------------------
73
73
 
74
- // Enforce C++14 as the minimum.
74
+ // Enforce C++17 as the minimum.
75
75
  #if defined(_MSVC_LANG)
76
- #if _MSVC_LANG < 201402L
77
- #error "C++ versions less than C++14 are not supported."
78
- #endif // _MSVC_LANG < 201402L
76
+ #if _MSVC_LANG < 201703L
77
+ #error "C++ versions less than C++17 are not supported."
78
+ #endif // _MSVC_LANG < 201703L
79
79
  #elif defined(__cplusplus)
80
- #if __cplusplus < 201402L
81
- #error "C++ versions less than C++14 are not supported."
82
- #endif // __cplusplus < 201402L
80
+ #if __cplusplus < 201703L
81
+ #error "C++ versions less than C++17 are not supported."
82
+ #endif // __cplusplus < 201703L
83
83
  #endif
84
84
 
85
85
  // -----------------------------------------------------------------------------
@@ -43,12 +43,27 @@ TEST(RawLoggingCompilationTest, PassingCheck) {
43
43
  ABSL_RAW_CHECK(true, "RAW CHECK");
44
44
  }
45
45
 
46
+ TEST(RawLoggingCompilationTest, DebugLog) {
47
+ ABSL_RAW_DLOG(INFO, "RAW DLOG: %d", 1);
48
+ }
49
+
50
+ TEST(RawLoggingCompilationTest, PassingDebugCheck) {
51
+ ABSL_RAW_DCHECK(true, "failure message");
52
+ }
53
+
46
54
  // Not all platforms support output from raw log, so we don't verify any
47
55
  // particular output for RAW check failures (expecting the empty string
48
56
  // accomplishes this). This test is primarily a compilation test, but we
49
57
  // are verifying process death when EXPECT_DEATH works for a platform.
50
58
  const char kExpectedDeathOutput[] = "";
51
59
 
60
+ #if !defined(NDEBUG) // if debug build
61
+ TEST(RawLoggingDeathTest, FailingDebugCheck) {
62
+ EXPECT_DEATH_IF_SUPPORTED(ABSL_RAW_DCHECK(1 == 0, "explanation"),
63
+ kExpectedDeathOutput);
64
+ }
65
+ #endif // if debug build
66
+
52
67
  TEST(RawLoggingDeathTest, FailingCheck) {
53
68
  EXPECT_DEATH_IF_SUPPORTED(ABSL_RAW_CHECK(1 == 0, "explanation"),
54
69
  kExpectedDeathOutput);