re2 1.24.1 → 1.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/LICENSE +15 -20
  2. package/README.md +62 -4
  3. package/binding.gyp +1 -2
  4. package/lib/addon.cc +7 -3
  5. package/lib/exec.cc +4 -4
  6. package/lib/match.cc +4 -4
  7. package/lib/pattern.cc +148 -1
  8. package/lib/replace.cc +5 -4
  9. package/lib/search.cc +1 -1
  10. package/lib/set.cc +75 -0
  11. package/lib/test.cc +1 -1
  12. package/lib/unicode_properties.h +15840 -0
  13. package/lib/wrapped_re2.h +11 -4
  14. package/lib/wrapped_re2_set.h +3 -1
  15. package/llms-full.txt +37 -7
  16. package/llms.txt +4 -1
  17. package/package.json +11 -10
  18. package/re2.d.ts +2 -0
  19. package/vendor/abseil-cpp/CMake/AbseilDll.cmake +87 -74
  20. package/vendor/abseil-cpp/CMakeLists.txt +3 -3
  21. package/vendor/abseil-cpp/FAQ.md +130 -79
  22. package/vendor/abseil-cpp/MODULE.bazel +6 -7
  23. package/vendor/abseil-cpp/absl/BUILD.bazel +6 -0
  24. package/vendor/abseil-cpp/absl/algorithm/BUILD.bazel +4 -0
  25. package/vendor/abseil-cpp/absl/algorithm/CMakeLists.txt +4 -0
  26. package/vendor/abseil-cpp/absl/algorithm/algorithm.h +34 -2
  27. package/vendor/abseil-cpp/absl/algorithm/container.h +164 -17
  28. package/vendor/abseil-cpp/absl/algorithm/container_test.cc +390 -13
  29. package/vendor/abseil-cpp/absl/base/BUILD.bazel +53 -6
  30. package/vendor/abseil-cpp/absl/base/CMakeLists.txt +28 -4
  31. package/vendor/abseil-cpp/absl/base/attributes.h +61 -42
  32. package/vendor/abseil-cpp/absl/base/call_once.h +1 -0
  33. package/vendor/abseil-cpp/absl/base/casts.h +8 -1
  34. package/vendor/abseil-cpp/absl/base/casts_test.cc +3 -6
  35. package/vendor/abseil-cpp/absl/base/config.h +54 -10
  36. package/vendor/abseil-cpp/absl/base/exception_safety_testing_test.cc +9 -9
  37. package/vendor/abseil-cpp/absl/base/fast_type_id.h +30 -2
  38. package/vendor/abseil-cpp/absl/base/fast_type_id_test.cc +3 -0
  39. package/vendor/abseil-cpp/absl/base/internal/exception_safety_testing.h +15 -12
  40. package/vendor/abseil-cpp/absl/base/internal/hardening.h +136 -0
  41. package/vendor/abseil-cpp/absl/base/internal/hardening_test.cc +168 -0
  42. package/vendor/abseil-cpp/absl/base/internal/iterator_traits.h +2 -2
  43. package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.cc +6 -0
  44. package/vendor/abseil-cpp/absl/base/internal/low_level_scheduling.h +77 -15
  45. package/vendor/abseil-cpp/absl/base/internal/sysinfo.cc +1 -2
  46. package/vendor/abseil-cpp/absl/base/internal/thread_identity.h +52 -0
  47. package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.h +5 -0
  48. package/vendor/abseil-cpp/absl/base/macros.h +36 -20
  49. package/vendor/abseil-cpp/absl/base/nullability.h +4 -3
  50. package/vendor/abseil-cpp/absl/base/optimization.h +3 -2
  51. package/vendor/abseil-cpp/absl/base/optimization_test.cc +4 -3
  52. package/vendor/abseil-cpp/absl/base/options.h +55 -1
  53. package/vendor/abseil-cpp/absl/base/policy_checks.h +5 -5
  54. package/vendor/abseil-cpp/absl/base/{internal/throw_delegate.cc → throw_delegate.cc} +9 -7
  55. package/vendor/abseil-cpp/absl/base/{internal/throw_delegate.h → throw_delegate.h} +4 -14
  56. package/vendor/abseil-cpp/absl/base/throw_delegate_test.cc +19 -28
  57. package/vendor/abseil-cpp/absl/cleanup/BUILD.bazel +2 -0
  58. package/vendor/abseil-cpp/absl/cleanup/CMakeLists.txt +2 -0
  59. package/vendor/abseil-cpp/absl/cleanup/cleanup.h +3 -2
  60. package/vendor/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -2
  61. package/vendor/abseil-cpp/absl/container/BUILD.bazel +19 -7
  62. package/vendor/abseil-cpp/absl/container/CMakeLists.txt +6 -5
  63. package/vendor/abseil-cpp/absl/container/btree_benchmark.cc +3 -5
  64. package/vendor/abseil-cpp/absl/container/btree_set.h +5 -5
  65. package/vendor/abseil-cpp/absl/container/btree_test.cc +11 -14
  66. package/vendor/abseil-cpp/absl/container/chunked_queue.h +8 -6
  67. package/vendor/abseil-cpp/absl/container/chunked_queue_test.cc +5 -5
  68. package/vendor/abseil-cpp/absl/container/fixed_array.h +14 -13
  69. package/vendor/abseil-cpp/absl/container/fixed_array_test.cc +3 -3
  70. package/vendor/abseil-cpp/absl/container/flat_hash_map.h +18 -6
  71. package/vendor/abseil-cpp/absl/container/flat_hash_map_test.cc +34 -1
  72. package/vendor/abseil-cpp/absl/container/flat_hash_set.h +21 -7
  73. package/vendor/abseil-cpp/absl/container/flat_hash_set_test.cc +39 -7
  74. package/vendor/abseil-cpp/absl/container/inlined_vector.h +29 -29
  75. package/vendor/abseil-cpp/absl/container/inlined_vector_test.cc +2 -2
  76. package/vendor/abseil-cpp/absl/container/internal/btree.h +32 -24
  77. package/vendor/abseil-cpp/absl/container/internal/btree_container.h +16 -17
  78. package/vendor/abseil-cpp/absl/container/internal/common.h +6 -5
  79. package/vendor/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -1
  80. package/vendor/abseil-cpp/absl/container/internal/compressed_tuple.h +16 -16
  81. package/vendor/abseil-cpp/absl/container/internal/compressed_tuple_test.cc +13 -13
  82. package/vendor/abseil-cpp/absl/container/internal/container_memory.h +41 -31
  83. package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults.h +2 -2
  84. package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.h +4 -4
  85. package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits.h +3 -3
  86. package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +27 -19
  87. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +2 -2
  88. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.h +0 -17
  89. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +12 -30
  90. package/vendor/abseil-cpp/absl/container/internal/inlined_vector.h +28 -28
  91. package/vendor/abseil-cpp/absl/container/internal/layout.h +13 -13
  92. package/vendor/abseil-cpp/absl/container/internal/layout_test.cc +3 -2
  93. package/vendor/abseil-cpp/absl/container/internal/raw_hash_map.h +60 -62
  94. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc +59 -39
  95. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.h +619 -326
  96. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +25 -2
  97. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +4 -4
  98. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +575 -159
  99. package/vendor/abseil-cpp/absl/container/linked_hash_map.h +2 -2
  100. package/vendor/abseil-cpp/absl/container/node_hash_map.h +27 -15
  101. package/vendor/abseil-cpp/absl/container/node_hash_map_test.cc +34 -0
  102. package/vendor/abseil-cpp/absl/container/node_hash_set.h +25 -11
  103. package/vendor/abseil-cpp/absl/container/node_hash_set_test.cc +39 -7
  104. package/vendor/abseil-cpp/absl/container/sample_element_size_test.cc +7 -4
  105. package/vendor/abseil-cpp/absl/crc/BUILD.bazel +0 -1
  106. package/vendor/abseil-cpp/absl/crc/CMakeLists.txt +2 -3
  107. package/vendor/abseil-cpp/absl/crc/crc32c_benchmark.cc +2 -1
  108. package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.cc +6 -6
  109. package/vendor/abseil-cpp/absl/crc/internal/crc.cc +4 -6
  110. package/vendor/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +41 -0
  111. package/vendor/abseil-cpp/absl/crc/internal/crc_internal.h +0 -16
  112. package/vendor/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +143 -81
  113. package/vendor/abseil-cpp/absl/debugging/BUILD.bazel +9 -31
  114. package/vendor/abseil-cpp/absl/debugging/CMakeLists.txt +3 -33
  115. package/vendor/abseil-cpp/absl/debugging/internal/demangle_rust.h +8 -0
  116. package/vendor/abseil-cpp/absl/debugging/internal/demangle_test.cc +2 -1
  117. package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.cc +12 -2
  118. package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.h +2 -3
  119. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +11 -0
  120. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +13 -4
  121. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +14 -7
  122. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +4 -0
  123. package/vendor/abseil-cpp/absl/debugging/internal/symbolize.h +46 -36
  124. package/vendor/abseil-cpp/absl/debugging/stacktrace.cc +18 -58
  125. package/vendor/abseil-cpp/absl/debugging/stacktrace.h +5 -48
  126. package/vendor/abseil-cpp/absl/debugging/stacktrace_test.cc +10 -124
  127. package/vendor/abseil-cpp/absl/debugging/symbolize.cc +20 -2
  128. package/vendor/abseil-cpp/absl/debugging/symbolize_elf.inc +58 -106
  129. package/vendor/abseil-cpp/absl/debugging/symbolize_test.cc +37 -36
  130. package/vendor/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +4 -4
  131. package/vendor/abseil-cpp/absl/flags/BUILD.bazel +6 -3
  132. package/vendor/abseil-cpp/absl/flags/CMakeLists.txt +1 -1
  133. package/vendor/abseil-cpp/absl/flags/commandlineflag.h +8 -6
  134. package/vendor/abseil-cpp/absl/flags/commandlineflag_test.cc +1 -1
  135. package/vendor/abseil-cpp/absl/flags/flag_benchmark.cc +5 -5
  136. package/vendor/abseil-cpp/absl/flags/flag_test.cc +30 -30
  137. package/vendor/abseil-cpp/absl/flags/internal/flag.cc +4 -4
  138. package/vendor/abseil-cpp/absl/flags/internal/flag.h +6 -6
  139. package/vendor/abseil-cpp/absl/flags/marshalling.h +2 -28
  140. package/vendor/abseil-cpp/absl/flags/marshalling_test.cc +12 -11
  141. package/vendor/abseil-cpp/absl/flags/reflection_test.cc +1 -1
  142. package/vendor/abseil-cpp/absl/functional/BUILD.bazel +26 -1
  143. package/vendor/abseil-cpp/absl/functional/CMakeLists.txt +29 -1
  144. package/vendor/abseil-cpp/absl/functional/any_invocable.h +13 -14
  145. package/vendor/abseil-cpp/absl/functional/any_invocable_test.cc +46 -47
  146. package/vendor/abseil-cpp/absl/functional/bind_back.h +79 -0
  147. package/vendor/abseil-cpp/absl/functional/bind_back_test.cc +237 -0
  148. package/vendor/abseil-cpp/absl/functional/bind_front.h +7 -1
  149. package/vendor/abseil-cpp/absl/functional/bind_front_test.cc +4 -4
  150. package/vendor/abseil-cpp/absl/functional/function_ref_test.cc +2 -2
  151. package/vendor/abseil-cpp/absl/functional/internal/any_invocable.h +28 -28
  152. package/vendor/abseil-cpp/absl/functional/internal/back_binder.h +95 -0
  153. package/vendor/abseil-cpp/absl/functional/internal/front_binder.h +4 -4
  154. package/vendor/abseil-cpp/absl/functional/internal/function_ref.h +2 -2
  155. package/vendor/abseil-cpp/absl/functional/overload_test.cc +13 -13
  156. package/vendor/abseil-cpp/absl/hash/BUILD.bazel +1 -2
  157. package/vendor/abseil-cpp/absl/hash/CMakeLists.txt +1 -2
  158. package/vendor/abseil-cpp/absl/hash/hash.h +1 -1
  159. package/vendor/abseil-cpp/absl/hash/hash_test.cc +14 -20
  160. package/vendor/abseil-cpp/absl/hash/hash_testing.h +11 -9
  161. package/vendor/abseil-cpp/absl/hash/internal/city.cc +39 -51
  162. package/vendor/abseil-cpp/absl/hash/internal/hash.cc +165 -47
  163. package/vendor/abseil-cpp/absl/hash/internal/hash.h +82 -26
  164. package/vendor/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +36 -1
  165. package/vendor/abseil-cpp/absl/hash/internal/spy_hash_state.h +8 -5
  166. package/vendor/abseil-cpp/absl/log/BUILD.bazel +5 -2
  167. package/vendor/abseil-cpp/absl/log/CMakeLists.txt +5 -3
  168. package/vendor/abseil-cpp/absl/log/absl_vlog_is_on.h +0 -2
  169. package/vendor/abseil-cpp/absl/log/internal/BUILD.bazel +15 -1
  170. package/vendor/abseil-cpp/absl/log/internal/log_message.cc +5 -4
  171. package/vendor/abseil-cpp/absl/log/internal/log_message.h +14 -0
  172. package/vendor/abseil-cpp/absl/log/internal/nullstream.h +1 -1
  173. package/vendor/abseil-cpp/absl/log/internal/proto.cc +13 -0
  174. package/vendor/abseil-cpp/absl/log/internal/structured_proto.cc +5 -5
  175. package/vendor/abseil-cpp/absl/log/internal/structured_proto.h +6 -5
  176. package/vendor/abseil-cpp/absl/log/internal/structured_proto_test.cc +3 -3
  177. package/vendor/abseil-cpp/absl/log/internal/vlog_config.cc +2 -2
  178. package/vendor/abseil-cpp/absl/log/internal/vlog_config_benchmark.cc +3 -3
  179. package/vendor/abseil-cpp/absl/log/log_format_test.cc +19 -2
  180. package/vendor/abseil-cpp/absl/log/log_modifier_methods_test.cc +18 -0
  181. package/vendor/abseil-cpp/absl/log/log_streamer.h +29 -2
  182. package/vendor/abseil-cpp/absl/log/log_streamer_test.cc +18 -0
  183. package/vendor/abseil-cpp/absl/log/scoped_mock_log_test.cc +1 -1
  184. package/vendor/abseil-cpp/absl/log/vlog_is_on.h +0 -2
  185. package/vendor/abseil-cpp/absl/log/vlog_is_on_test.cc +6 -5
  186. package/vendor/abseil-cpp/absl/memory/memory.h +55 -5
  187. package/vendor/abseil-cpp/absl/memory/memory_test.cc +55 -1
  188. package/vendor/abseil-cpp/absl/meta/BUILD.bazel +2 -0
  189. package/vendor/abseil-cpp/absl/meta/internal/requires.h +1 -1
  190. package/vendor/abseil-cpp/absl/meta/type_traits.h +119 -55
  191. package/vendor/abseil-cpp/absl/meta/type_traits_test.cc +7 -7
  192. package/vendor/abseil-cpp/absl/numeric/int128_test.cc +6 -6
  193. package/vendor/abseil-cpp/absl/profiling/BUILD.bazel +3 -1
  194. package/vendor/abseil-cpp/absl/profiling/hashtable.cc +0 -4
  195. package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.cc +32 -33
  196. package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.h +25 -2
  197. package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder_test.cc +8 -5
  198. package/vendor/abseil-cpp/absl/random/BUILD.bazel +13 -1
  199. package/vendor/abseil-cpp/absl/random/CMakeLists.txt +23 -2
  200. package/vendor/abseil-cpp/absl/random/benchmarks.cc +1 -1
  201. package/vendor/abseil-cpp/absl/random/beta_distribution.h +2 -2
  202. package/vendor/abseil-cpp/absl/random/bit_gen_ref.h +26 -53
  203. package/vendor/abseil-cpp/absl/random/bit_gen_ref_test.cc +43 -0
  204. package/vendor/abseil-cpp/absl/random/discrete_distribution.h +1 -1
  205. package/vendor/abseil-cpp/absl/random/distributions.h +17 -17
  206. package/vendor/abseil-cpp/absl/random/distributions_test.cc +4 -4
  207. package/vendor/abseil-cpp/absl/random/exponential_distribution.h +1 -1
  208. package/vendor/abseil-cpp/absl/random/internal/BUILD.bazel +4 -2
  209. package/vendor/abseil-cpp/absl/random/internal/distribution_caller.h +8 -21
  210. package/vendor/abseil-cpp/absl/random/internal/fast_uniform_bits.h +1 -1
  211. package/vendor/abseil-cpp/absl/random/internal/generate_real.h +1 -1
  212. package/vendor/abseil-cpp/absl/random/internal/iostream_state_saver.h +2 -2
  213. package/vendor/abseil-cpp/absl/random/internal/iostream_state_saver_test.cc +3 -2
  214. package/vendor/abseil-cpp/absl/random/internal/mock_helpers.h +14 -40
  215. package/vendor/abseil-cpp/absl/random/internal/nonsecure_base.h +2 -2
  216. package/vendor/abseil-cpp/absl/random/internal/nonsecure_base_test.cc +2 -2
  217. package/vendor/abseil-cpp/absl/random/internal/pcg_engine.h +6 -6
  218. package/vendor/abseil-cpp/absl/random/internal/pcg_engine_test.cc +3 -2
  219. package/vendor/abseil-cpp/absl/random/internal/randen_detect.cc +6 -6
  220. package/vendor/abseil-cpp/absl/random/internal/randen_engine.h +2 -2
  221. package/vendor/abseil-cpp/absl/random/internal/randen_engine_test.cc +3 -2
  222. package/vendor/abseil-cpp/absl/random/internal/randen_test.cc +3 -2
  223. package/vendor/abseil-cpp/absl/random/internal/salted_seed_seq.h +6 -5
  224. package/vendor/abseil-cpp/absl/random/internal/seed_material.cc +4 -4
  225. package/vendor/abseil-cpp/absl/random/internal/seed_material.h +2 -1
  226. package/vendor/abseil-cpp/absl/random/internal/traits.h +21 -0
  227. package/vendor/abseil-cpp/absl/random/internal/traits_test.cc +5 -0
  228. package/vendor/abseil-cpp/absl/random/internal/uniform_helper.h +23 -23
  229. package/vendor/abseil-cpp/absl/random/internal/uniform_helper_test.cc +2 -1
  230. package/vendor/abseil-cpp/absl/random/mocking_access.h +74 -0
  231. package/vendor/abseil-cpp/absl/random/mocking_bit_gen.h +9 -19
  232. package/vendor/abseil-cpp/absl/random/uniform_real_distribution.h +1 -1
  233. package/vendor/abseil-cpp/absl/status/BUILD.bazel +81 -0
  234. package/vendor/abseil-cpp/absl/status/CMakeLists.txt +91 -0
  235. package/vendor/abseil-cpp/absl/status/internal/status_internal.cc +63 -18
  236. package/vendor/abseil-cpp/absl/status/internal/status_internal.h +26 -2
  237. package/vendor/abseil-cpp/absl/status/internal/status_matchers.h +22 -8
  238. package/vendor/abseil-cpp/absl/status/internal/statusor_internal.h +43 -43
  239. package/vendor/abseil-cpp/absl/status/status.cc +62 -70
  240. package/vendor/abseil-cpp/absl/status/status.h +249 -23
  241. package/vendor/abseil-cpp/absl/status/status_benchmark.cc +12 -0
  242. package/vendor/abseil-cpp/absl/status/status_builder.cc +196 -0
  243. package/vendor/abseil-cpp/absl/status/status_builder.h +978 -0
  244. package/vendor/abseil-cpp/absl/status/status_builder_test.cc +380 -0
  245. package/vendor/abseil-cpp/absl/status/status_macros.h +484 -0
  246. package/vendor/abseil-cpp/absl/status/status_macros_test.cc +634 -0
  247. package/vendor/abseil-cpp/absl/status/status_matchers.h +2 -1
  248. package/vendor/abseil-cpp/absl/status/status_matchers_test.cc +3 -4
  249. package/vendor/abseil-cpp/absl/status/status_payload_printer.h +3 -2
  250. package/vendor/abseil-cpp/absl/status/status_test.cc +443 -13
  251. package/vendor/abseil-cpp/absl/status/statusor.h +69 -36
  252. package/vendor/abseil-cpp/absl/status/statusor_test.cc +132 -35
  253. package/vendor/abseil-cpp/absl/strings/BUILD.bazel +42 -7
  254. package/vendor/abseil-cpp/absl/strings/CMakeLists.txt +33 -4
  255. package/vendor/abseil-cpp/absl/strings/ascii.h +1 -2
  256. package/vendor/abseil-cpp/absl/strings/atod_manual_test.cc +5 -5
  257. package/vendor/abseil-cpp/absl/strings/cord.cc +26 -7
  258. package/vendor/abseil-cpp/absl/strings/cord.h +23 -13
  259. package/vendor/abseil-cpp/absl/strings/cord_buffer.h +4 -2
  260. package/vendor/abseil-cpp/absl/strings/cord_test.cc +85 -9
  261. package/vendor/abseil-cpp/absl/strings/escaping.cc +176 -30
  262. package/vendor/abseil-cpp/absl/strings/escaping.h +12 -2
  263. package/vendor/abseil-cpp/absl/strings/escaping_benchmark.cc +1 -3
  264. package/vendor/abseil-cpp/absl/strings/escaping_test.cc +18 -18
  265. package/vendor/abseil-cpp/absl/strings/has_absl_stringify_test.cc +2 -2
  266. package/vendor/abseil-cpp/absl/strings/has_ostream_operator_test.cc +2 -2
  267. package/vendor/abseil-cpp/absl/strings/internal/append_and_overwrite.h +10 -10
  268. package/vendor/abseil-cpp/absl/strings/internal/cordz_sample_token_test.cc +1 -1
  269. package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +6 -0
  270. package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +1 -0
  271. package/vendor/abseil-cpp/absl/strings/internal/escaping.cc +0 -141
  272. package/vendor/abseil-cpp/absl/strings/internal/escaping.h +2 -26
  273. package/vendor/abseil-cpp/absl/strings/internal/generic_printer_internal.h +23 -2
  274. package/vendor/abseil-cpp/absl/strings/internal/generic_printer_test.cc +6 -2
  275. package/vendor/abseil-cpp/absl/strings/internal/resize_uninitialized.h +31 -24
  276. package/vendor/abseil-cpp/absl/strings/internal/resize_uninitialized_test.cc +16 -41
  277. package/vendor/abseil-cpp/absl/strings/internal/stl_type_traits.h +39 -39
  278. package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -22
  279. package/vendor/abseil-cpp/absl/strings/internal/str_format/bind.h +2 -2
  280. package/vendor/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +12 -20
  281. package/vendor/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +510 -307
  282. package/vendor/abseil-cpp/absl/strings/internal/str_join_internal.h +0 -1
  283. package/vendor/abseil-cpp/absl/strings/internal/str_split_internal.h +9 -10
  284. package/vendor/abseil-cpp/absl/strings/internal/string_constant_test.cc +6 -5
  285. package/vendor/abseil-cpp/absl/strings/internal/stringify_sink.h +12 -0
  286. package/vendor/abseil-cpp/absl/strings/internal/stringify_stream.h +119 -0
  287. package/vendor/abseil-cpp/absl/strings/internal/stringify_stream_test.cc +111 -0
  288. package/vendor/abseil-cpp/absl/strings/numbers.cc +406 -0
  289. package/vendor/abseil-cpp/absl/strings/numbers.h +4 -0
  290. package/vendor/abseil-cpp/absl/strings/numbers_test.cc +33 -0
  291. package/vendor/abseil-cpp/absl/strings/resize_and_overwrite.h +10 -6
  292. package/vendor/abseil-cpp/absl/strings/str_cat.h +36 -1
  293. package/vendor/abseil-cpp/absl/strings/str_cat_benchmark.cc +1 -2
  294. package/vendor/abseil-cpp/absl/strings/str_cat_test.cc +28 -0
  295. package/vendor/abseil-cpp/absl/strings/str_join_test.cc +4 -4
  296. package/vendor/abseil-cpp/absl/strings/str_split.h +11 -6
  297. package/vendor/abseil-cpp/absl/strings/str_split_test.cc +13 -0
  298. package/vendor/abseil-cpp/absl/strings/substitute.h +2 -2
  299. package/vendor/abseil-cpp/absl/synchronization/BUILD.bazel +3 -0
  300. package/vendor/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +21 -0
  301. package/vendor/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +5 -0
  302. package/vendor/abseil-cpp/absl/synchronization/mutex.cc +13 -0
  303. package/vendor/abseil-cpp/absl/synchronization/mutex.h +32 -2
  304. package/vendor/abseil-cpp/absl/synchronization/mutex_test.cc +17 -3
  305. package/vendor/abseil-cpp/absl/time/BUILD.bazel +80 -0
  306. package/vendor/abseil-cpp/absl/time/CMakeLists.txt +73 -0
  307. package/vendor/abseil-cpp/absl/time/clock.h +3 -0
  308. package/vendor/abseil-cpp/absl/time/clock_interface.cc +71 -0
  309. package/vendor/abseil-cpp/absl/time/clock_interface.h +93 -0
  310. package/vendor/abseil-cpp/absl/time/clock_interface_test.cc +128 -0
  311. package/vendor/abseil-cpp/absl/time/format.cc +3 -10
  312. package/vendor/abseil-cpp/absl/time/format_test.cc +12 -0
  313. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +90 -89
  314. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format_test.cc +80 -5
  315. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +1 -2
  316. package/vendor/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +10 -15
  317. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -1
  318. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Vancouver +0 -0
  319. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ho_Chi_Minh +0 -0
  320. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Phnom_Penh +0 -0
  321. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Saigon +0 -0
  322. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tbilisi +0 -0
  323. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Vientiane +0 -0
  324. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Pacific +0 -0
  325. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Chisinau +0 -0
  326. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Tiraspol +0 -0
  327. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +1 -1
  328. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +3 -3
  329. package/vendor/abseil-cpp/absl/time/simulated_clock.cc +225 -0
  330. package/vendor/abseil-cpp/absl/time/simulated_clock.h +109 -0
  331. package/vendor/abseil-cpp/absl/time/simulated_clock_test.cc +614 -0
  332. package/vendor/abseil-cpp/absl/types/BUILD.bazel +116 -0
  333. package/vendor/abseil-cpp/absl/types/CMakeLists.txt +100 -0
  334. package/vendor/abseil-cpp/absl/types/any.h +26 -4
  335. package/vendor/abseil-cpp/absl/types/any_span.h +1067 -0
  336. package/vendor/abseil-cpp/absl/types/any_span_benchmark.cc +258 -0
  337. package/vendor/abseil-cpp/absl/types/any_span_test.cc +1210 -0
  338. package/vendor/abseil-cpp/absl/types/compare.h +4 -4
  339. package/vendor/abseil-cpp/absl/types/internal/any_span.h +477 -0
  340. package/vendor/abseil-cpp/absl/types/internal/span.h +5 -6
  341. package/vendor/abseil-cpp/absl/types/optional.h +30 -3
  342. package/vendor/abseil-cpp/absl/types/optional_ref.h +295 -0
  343. package/vendor/abseil-cpp/absl/types/optional_ref_test.cc +370 -0
  344. package/vendor/abseil-cpp/absl/types/source_location.cc +18 -0
  345. package/vendor/abseil-cpp/absl/types/source_location.h +172 -0
  346. package/vendor/abseil-cpp/absl/types/source_location_test.cc +139 -0
  347. package/vendor/abseil-cpp/absl/types/span.h +19 -23
  348. package/vendor/abseil-cpp/absl/types/variant.h +75 -18
  349. package/vendor/abseil-cpp/absl/types/variant_test.cc +23 -23
  350. package/vendor/abseil-cpp/absl/utility/BUILD.bazel +1 -0
  351. package/vendor/abseil-cpp/absl/utility/CMakeLists.txt +1 -0
  352. package/vendor/abseil-cpp/absl/utility/utility.h +99 -16
  353. package/vendor/abseil-cpp/ci/absl_alternate_options.h +2 -0
  354. package/vendor/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +10 -4
  355. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +13 -6
  356. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +10 -4
  357. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +12 -5
  358. package/vendor/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +9 -2
  359. package/vendor/abseil-cpp/ci/linux_docker_containers.sh +4 -4
  360. package/vendor/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +10 -3
  361. package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +8 -2
  362. package/vendor/abseil-cpp/ci/macos_xcode_bazel.sh +4 -3
  363. package/vendor/abseil-cpp/ci/macos_xcode_cmake.sh +2 -2
  364. package/vendor/abseil-cpp/ci/windows_clangcl_bazel.bat +1 -1
  365. package/vendor/abseil-cpp/ci/windows_msvc_bazel.bat +1 -1
  366. package/AGENTS.md +0 -131
  367. package/ARCHITECTURE.md +0 -152
  368. package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.cc +0 -118
  369. package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.h +0 -71
  370. package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer_test.cc +0 -97
@@ -60,7 +60,7 @@ struct IsEqualityComparable<
60
60
  // Detects whether `T` is constructible or convertible from `StatusOr<U>`.
61
61
  template <typename T, typename U>
62
62
  using IsConstructibleOrConvertibleFromStatusOr =
63
- absl::disjunction<std::is_constructible<T, StatusOr<U>&>,
63
+ std::disjunction<std::is_constructible<T, StatusOr<U>&>,
64
64
  std::is_constructible<T, const StatusOr<U>&>,
65
65
  std::is_constructible<T, StatusOr<U>&&>,
66
66
  std::is_constructible<T, const StatusOr<U>&&>,
@@ -73,7 +73,7 @@ using IsConstructibleOrConvertibleFromStatusOr =
73
73
  // `StatusOr<U>`.
74
74
  template <typename T, typename U>
75
75
  using IsConstructibleOrConvertibleOrAssignableFromStatusOr =
76
- absl::disjunction<IsConstructibleOrConvertibleFromStatusOr<T, U>,
76
+ std::disjunction<IsConstructibleOrConvertibleFromStatusOr<T, U>,
77
77
  std::is_assignable<T&, StatusOr<U>&>,
78
78
  std::is_assignable<T&, const StatusOr<U>&>,
79
79
  std::is_assignable<T&, StatusOr<U>&&>,
@@ -83,7 +83,7 @@ using IsConstructibleOrConvertibleOrAssignableFromStatusOr =
83
83
  // when `U` is `StatusOr<V>` and `T` is constructible or convertible from `V`.
84
84
  template <typename T, typename U>
85
85
  struct IsDirectInitializationAmbiguous
86
- : public absl::conditional_t<
86
+ : public std::conditional_t<
87
87
  std::is_same<absl::remove_cvref_t<U>, U>::value, std::false_type,
88
88
  IsDirectInitializationAmbiguous<T, absl::remove_cvref_t<U>>> {};
89
89
 
@@ -95,7 +95,7 @@ struct IsDirectInitializationAmbiguous<T, absl::StatusOr<V>>
95
95
  // temporaries.
96
96
  // REQUIRES: T and U are references.
97
97
  template <typename T, typename U>
98
- using IsReferenceConversionValid = absl::conjunction< //
98
+ using IsReferenceConversionValid = std::conjunction< //
99
99
  std::is_reference<T>, std::is_reference<U>,
100
100
  // The references are convertible. This checks for
101
101
  // lvalue/rvalue compatibility.
@@ -108,16 +108,16 @@ using IsReferenceConversionValid = absl::conjunction< //
108
108
  // Checks against the constraints of the direction initialization, i.e. when
109
109
  // `StatusOr<T>::StatusOr(U&&)` should participate in overload resolution.
110
110
  template <typename T, typename U>
111
- using IsDirectInitializationValid = absl::disjunction<
111
+ using IsDirectInitializationValid = std::disjunction<
112
112
  // Short circuits if T is basically U.
113
113
  std::is_same<T, absl::remove_cvref_t<U>>, //
114
114
  std::conditional_t<
115
115
  std::is_reference_v<T>, //
116
116
  IsReferenceConversionValid<T, U>,
117
- absl::negation<absl::disjunction<
117
+ std::negation<std::disjunction<
118
118
  std::is_same<absl::StatusOr<T>, absl::remove_cvref_t<U>>,
119
119
  std::is_same<absl::Status, absl::remove_cvref_t<U>>,
120
- std::is_same<absl::in_place_t, absl::remove_cvref_t<U>>,
120
+ std::is_same<std::in_place_t, absl::remove_cvref_t<U>>,
121
121
  IsDirectInitializationAmbiguous<T, U>>>>>;
122
122
 
123
123
  // This trait detects whether `StatusOr<T>::operator=(U&&)` is ambiguous, which
@@ -132,7 +132,7 @@ using IsDirectInitializationValid = absl::disjunction<
132
132
  // s1 = s2; // ambiguous, `s1 = s2.ValueOrDie()` or `s1 = bool(s2)`?
133
133
  template <typename T, typename U>
134
134
  struct IsForwardingAssignmentAmbiguous
135
- : public absl::conditional_t<
135
+ : public std::conditional_t<
136
136
  std::is_same<absl::remove_cvref_t<U>, U>::value, std::false_type,
137
137
  IsForwardingAssignmentAmbiguous<T, absl::remove_cvref_t<U>>> {};
138
138
 
@@ -143,91 +143,91 @@ struct IsForwardingAssignmentAmbiguous<T, absl::StatusOr<U>>
143
143
  // Checks against the constraints of the forwarding assignment, i.e. whether
144
144
  // `StatusOr<T>::operator(U&&)` should participate in overload resolution.
145
145
  template <typename T, typename U>
146
- using IsForwardingAssignmentValid = absl::disjunction<
146
+ using IsForwardingAssignmentValid = std::disjunction<
147
147
  // Short circuits if T is basically U.
148
148
  std::is_same<T, absl::remove_cvref_t<U>>,
149
- absl::negation<absl::disjunction<
149
+ std::negation<std::disjunction<
150
150
  std::is_same<absl::StatusOr<T>, absl::remove_cvref_t<U>>,
151
151
  std::is_same<absl::Status, absl::remove_cvref_t<U>>,
152
- std::is_same<absl::in_place_t, absl::remove_cvref_t<U>>,
152
+ std::is_same<std::in_place_t, absl::remove_cvref_t<U>>,
153
153
  IsForwardingAssignmentAmbiguous<T, U>>>>;
154
154
 
155
155
  template <bool Value, typename T>
156
- using Equality = std::conditional_t<Value, T, absl::negation<T>>;
156
+ using Equality = std::conditional_t<Value, T, std::negation<T>>;
157
157
 
158
158
  template <bool Explicit, typename T, typename U, bool Lifetimebound>
159
- using IsConstructionValid = absl::conjunction<
159
+ using IsConstructionValid = std::conjunction<
160
160
  Equality<Lifetimebound,
161
- absl::disjunction<
161
+ std::disjunction<
162
162
  std::is_reference<T>,
163
163
  type_traits_internal::IsLifetimeBoundAssignment<T, U>>>,
164
164
  IsDirectInitializationValid<T, U&&>, std::is_constructible<T, U&&>,
165
165
  Equality<!Explicit, std::is_convertible<U&&, T>>,
166
- absl::disjunction<
166
+ std::disjunction<
167
167
  std::is_same<T, absl::remove_cvref_t<U>>,
168
- absl::conjunction<
168
+ std::conjunction<
169
169
  std::conditional_t<
170
170
  Explicit,
171
- absl::negation<std::is_constructible<absl::Status, U&&>>,
172
- absl::negation<std::is_convertible<U&&, absl::Status>>>,
173
- absl::negation<
171
+ std::negation<std::is_constructible<absl::Status, U&&>>,
172
+ std::negation<std::is_convertible<U&&, absl::Status>>>,
173
+ std::negation<
174
174
  internal_statusor::HasConversionOperatorToStatusOr<T, U&&>>>>>;
175
175
 
176
176
  template <typename T, typename U, bool Lifetimebound>
177
- using IsAssignmentValid = absl::conjunction<
177
+ using IsAssignmentValid = std::conjunction<
178
178
  Equality<Lifetimebound,
179
- absl::disjunction<
179
+ std::disjunction<
180
180
  std::is_reference<T>,
181
181
  type_traits_internal::IsLifetimeBoundAssignment<T, U>>>,
182
182
  std::conditional_t<std::is_reference_v<T>,
183
183
  IsReferenceConversionValid<T, U&&>,
184
- absl::conjunction<std::is_constructible<T, U&&>,
184
+ std::conjunction<std::is_constructible<T, U&&>,
185
185
  std::is_assignable<T&, U&&>>>,
186
- absl::disjunction<
186
+ std::disjunction<
187
187
  std::is_same<T, absl::remove_cvref_t<U>>,
188
- absl::conjunction<
189
- absl::negation<std::is_convertible<U&&, absl::Status>>,
190
- absl::negation<HasConversionOperatorToStatusOr<T, U&&>>>>,
188
+ std::conjunction<
189
+ std::negation<std::is_convertible<U&&, absl::Status>>,
190
+ std::negation<HasConversionOperatorToStatusOr<T, U&&>>>>,
191
191
  IsForwardingAssignmentValid<T, U&&>>;
192
192
 
193
193
  template <bool Explicit, typename T, typename U>
194
- using IsConstructionFromStatusValid = absl::conjunction<
195
- absl::negation<std::is_same<absl::StatusOr<T>, absl::remove_cvref_t<U>>>,
196
- absl::negation<std::is_same<T, absl::remove_cvref_t<U>>>,
197
- absl::negation<std::is_same<absl::in_place_t, absl::remove_cvref_t<U>>>,
194
+ using IsConstructionFromStatusValid = std::conjunction<
195
+ std::negation<std::is_same<absl::StatusOr<T>, absl::remove_cvref_t<U>>>,
196
+ std::negation<std::is_same<T, absl::remove_cvref_t<U>>>,
197
+ std::negation<std::is_same<std::in_place_t, absl::remove_cvref_t<U>>>,
198
198
  Equality<!Explicit, std::is_convertible<U, absl::Status>>,
199
199
  std::is_constructible<absl::Status, U>,
200
- absl::negation<HasConversionOperatorToStatusOr<T, U>>>;
200
+ std::negation<HasConversionOperatorToStatusOr<T, U>>>;
201
201
 
202
202
  template <bool Explicit, typename T, typename U, bool Lifetimebound,
203
203
  typename UQ>
204
- using IsConstructionFromStatusOrValid = absl::conjunction<
205
- absl::negation<std::is_same<T, U>>,
204
+ using IsConstructionFromStatusOrValid = std::conjunction<
205
+ std::negation<std::is_same<T, U>>,
206
206
  // If `T` is a reference, then U must be a compatible one.
207
- absl::disjunction<absl::negation<std::is_reference<T>>,
207
+ std::disjunction<std::negation<std::is_reference<T>>,
208
208
  IsReferenceConversionValid<T, U>>,
209
209
  Equality<Lifetimebound,
210
210
  type_traits_internal::IsLifetimeBoundAssignment<T, U>>,
211
211
  std::is_constructible<T, UQ>,
212
212
  Equality<!Explicit, std::is_convertible<UQ, T>>,
213
- absl::negation<IsConstructibleOrConvertibleFromStatusOr<T, U>>>;
213
+ std::negation<IsConstructibleOrConvertibleFromStatusOr<T, U>>>;
214
214
 
215
215
  template <typename T, typename U, bool Lifetimebound>
216
- using IsStatusOrAssignmentValid = absl::conjunction<
217
- absl::negation<std::is_same<T, absl::remove_cvref_t<U>>>,
216
+ using IsStatusOrAssignmentValid = std::conjunction<
217
+ std::negation<std::is_same<T, absl::remove_cvref_t<U>>>,
218
218
  Equality<Lifetimebound,
219
219
  type_traits_internal::IsLifetimeBoundAssignment<T, U>>,
220
220
  std::is_constructible<T, U>, std::is_assignable<T, U>,
221
- absl::negation<IsConstructibleOrConvertibleOrAssignableFromStatusOr<
221
+ std::negation<IsConstructibleOrConvertibleOrAssignableFromStatusOr<
222
222
  T, absl::remove_cvref_t<U>>>>;
223
223
 
224
224
  template <typename T, typename U, bool Lifetimebound>
225
- using IsValueOrValid = absl::conjunction<
225
+ using IsValueOrValid = std::conjunction<
226
226
  // If `T` is a reference, then U must be a compatible one.
227
- absl::disjunction<absl::negation<std::is_reference<T>>,
227
+ std::disjunction<std::negation<std::is_reference<T>>,
228
228
  IsReferenceConversionValid<T, U>>,
229
229
  Equality<Lifetimebound,
230
- absl::disjunction<
230
+ std::disjunction<
231
231
  std::is_reference<T>,
232
232
  type_traits_internal::IsLifetimeBoundAssignment<T, U>>>>;
233
233
 
@@ -325,13 +325,13 @@ class StatusOrData {
325
325
  }
326
326
 
327
327
  template <typename... Args>
328
- explicit StatusOrData(absl::in_place_t, Args&&... args)
328
+ explicit StatusOrData(std::in_place_t, Args&&... args)
329
329
  : data_(std::forward<Args>(args)...) {
330
330
  MakeStatus();
331
331
  }
332
332
 
333
333
  template <typename U,
334
- absl::enable_if_t<std::is_constructible<absl::Status, U&&>::value,
334
+ std::enable_if_t<std::is_constructible<absl::Status, U&&>::value,
335
335
  int> = 0>
336
336
  explicit StatusOrData(U&& v) : status_(std::forward<U>(v)) {
337
337
  EnsureNotOk();
@@ -37,7 +37,7 @@
37
37
  #include "absl/strings/str_format.h"
38
38
  #include "absl/strings/str_split.h"
39
39
  #include "absl/strings/string_view.h"
40
- #include "absl/types/optional.h"
40
+ #include "absl/types/source_location.h"
41
41
 
42
42
  namespace absl {
43
43
  ABSL_NAMESPACE_BEGIN
@@ -105,11 +105,36 @@ const std::string* absl_nonnull Status::MovedFromString() {
105
105
  return kMovedFrom.get();
106
106
  }
107
107
 
108
- Status::Status(absl::StatusCode code, absl::string_view msg)
109
- : rep_(CodeToInlinedRep(code)) {
110
- if (code != absl::StatusCode::kOk && !msg.empty()) {
111
- rep_ = PointerToRep(new status_internal::StatusRep(code, msg, nullptr));
108
+ absl::Status absl::Status::MakeNonOkStatusWithOkCode(
109
+ absl::string_view message) {
110
+ return absl::Status(
111
+ absl::Status::PointerToRep(new absl::status_internal::StatusRep(
112
+ absl::StatusCode::kOk, message, nullptr)));
113
+ }
114
+
115
+ uintptr_t Status::MakeRep(uintptr_t inlined_rep, absl::string_view msg,
116
+ absl::SourceLocation loc) {
117
+ bool ok = inlined_rep == CodeToInlinedRep(absl::StatusCode::kOk);
118
+ if (ok) return inlined_rep;
119
+ if (msg.empty()
120
+ ) {
121
+ return inlined_rep;
122
+ }
123
+ auto* rep = new status_internal::StatusRep(InlinedRepToCode(inlined_rep), msg,
124
+ nullptr);
125
+ if (loc.file_name()[0] != '\0') {
126
+ rep->AddSourceLocation(loc);
112
127
  }
128
+ return PointerToRep(rep);
129
+ }
130
+
131
+ uintptr_t Status::AddSourceLocationImpl(uintptr_t rep,
132
+ absl::SourceLocation loc) {
133
+ if (IsInlined(rep)) return rep;
134
+ if (loc.file_name()[0] == '\0') return rep;
135
+ status_internal::StatusRep* rep_ptr = PrepareToModify(rep);
136
+ rep_ptr->AddSourceLocation(loc);
137
+ return PointerToRep(rep_ptr);
113
138
  }
114
139
 
115
140
  status_internal::StatusRep* absl_nonnull Status::PrepareToModify(
@@ -133,69 +158,35 @@ std::ostream& operator<<(std::ostream& os, const Status& x) {
133
158
  return os;
134
159
  }
135
160
 
136
- Status AbortedError(absl::string_view message) {
137
- return Status(absl::StatusCode::kAborted, message);
138
- }
139
-
140
- Status AlreadyExistsError(absl::string_view message) {
141
- return Status(absl::StatusCode::kAlreadyExists, message);
142
- }
143
-
144
- Status CancelledError(absl::string_view message) {
145
- return Status(absl::StatusCode::kCancelled, message);
146
- }
147
-
148
- Status DataLossError(absl::string_view message) {
149
- return Status(absl::StatusCode::kDataLoss, message);
150
- }
151
-
152
- Status DeadlineExceededError(absl::string_view message) {
153
- return Status(absl::StatusCode::kDeadlineExceeded, message);
154
- }
155
-
156
- Status FailedPreconditionError(absl::string_view message) {
157
- return Status(absl::StatusCode::kFailedPrecondition, message);
158
- }
159
-
160
- Status InternalError(absl::string_view message) {
161
- return Status(absl::StatusCode::kInternal, message);
162
- }
163
-
164
- Status InvalidArgumentError(absl::string_view message) {
165
- return Status(absl::StatusCode::kInvalidArgument, message);
166
- }
167
-
168
- Status NotFoundError(absl::string_view message) {
169
- return Status(absl::StatusCode::kNotFound, message);
170
- }
171
-
172
- Status OutOfRangeError(absl::string_view message) {
173
- return Status(absl::StatusCode::kOutOfRange, message);
174
- }
175
-
176
- Status PermissionDeniedError(absl::string_view message) {
177
- return Status(absl::StatusCode::kPermissionDenied, message);
178
- }
179
-
180
- Status ResourceExhaustedError(absl::string_view message) {
181
- return Status(absl::StatusCode::kResourceExhausted, message);
182
- }
183
-
184
- Status UnauthenticatedError(absl::string_view message) {
185
- return Status(absl::StatusCode::kUnauthenticated, message);
186
- }
187
-
188
- Status UnavailableError(absl::string_view message) {
189
- return Status(absl::StatusCode::kUnavailable, message);
190
- }
191
-
192
- Status UnimplementedError(absl::string_view message) {
193
- return Status(absl::StatusCode::kUnimplemented, message);
194
- }
195
-
196
- Status UnknownError(absl::string_view message) {
197
- return Status(absl::StatusCode::kUnknown, message);
198
- }
161
+ namespace status_internal {
162
+ // We use an int in the template parameter to shorten mangled names.
163
+ template <int error_code>
164
+ Status MakeErrorImpl(string_view message, SourceLocation loc) {
165
+ return Status(static_cast<StatusCode>(error_code), message, loc);
166
+ }
167
+
168
+ // Explicit instantiation for all the error codes.
169
+ // If we add more error code, we need to add their values on this list.
170
+ // Using ints here instead of static_cast<int>(StatusCode::kFoo) makes it easier
171
+ // to see that the list is complete.
172
+ template Status MakeErrorImpl<0>(string_view, SourceLocation);
173
+ template Status MakeErrorImpl<1>(string_view, SourceLocation);
174
+ template Status MakeErrorImpl<2>(string_view, SourceLocation);
175
+ template Status MakeErrorImpl<3>(string_view, SourceLocation);
176
+ template Status MakeErrorImpl<4>(string_view, SourceLocation);
177
+ template Status MakeErrorImpl<5>(string_view, SourceLocation);
178
+ template Status MakeErrorImpl<6>(string_view, SourceLocation);
179
+ template Status MakeErrorImpl<7>(string_view, SourceLocation);
180
+ template Status MakeErrorImpl<8>(string_view, SourceLocation);
181
+ template Status MakeErrorImpl<9>(string_view, SourceLocation);
182
+ template Status MakeErrorImpl<10>(string_view, SourceLocation);
183
+ template Status MakeErrorImpl<11>(string_view, SourceLocation);
184
+ template Status MakeErrorImpl<12>(string_view, SourceLocation);
185
+ template Status MakeErrorImpl<13>(string_view, SourceLocation);
186
+ template Status MakeErrorImpl<14>(string_view, SourceLocation);
187
+ template Status MakeErrorImpl<15>(string_view, SourceLocation);
188
+ template Status MakeErrorImpl<16>(string_view, SourceLocation);
189
+ } // namespace status_internal
199
190
 
200
191
  bool IsAborted(const Status& status) {
201
192
  return status.code() == absl::StatusCode::kAborted;
@@ -405,9 +396,10 @@ std::string MessageForErrnoToStatus(int error_number,
405
396
  }
406
397
  } // namespace
407
398
 
408
- Status ErrnoToStatus(int error_number, absl::string_view message) {
399
+ Status ErrnoToStatus(int error_number, absl::string_view message,
400
+ absl::SourceLocation loc) {
409
401
  return Status(ErrnoToStatusCode(error_number),
410
- MessageForErrnoToStatus(error_number, message));
402
+ MessageForErrnoToStatus(error_number, message), loc);
411
403
  }
412
404
 
413
405
  const char* absl_nonnull StatusMessageAsCStr(const Status& status) {