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.
- package/LICENSE +15 -20
- package/README.md +62 -4
- package/binding.gyp +1 -2
- package/lib/addon.cc +7 -3
- package/lib/exec.cc +4 -4
- package/lib/match.cc +4 -4
- package/lib/pattern.cc +148 -1
- package/lib/replace.cc +5 -4
- package/lib/search.cc +1 -1
- package/lib/set.cc +75 -0
- package/lib/test.cc +1 -1
- package/lib/unicode_properties.h +15840 -0
- package/lib/wrapped_re2.h +11 -4
- package/lib/wrapped_re2_set.h +3 -1
- package/llms-full.txt +37 -7
- package/llms.txt +4 -1
- package/package.json +11 -10
- package/re2.d.ts +2 -0
- package/vendor/abseil-cpp/CMake/AbseilDll.cmake +87 -74
- package/vendor/abseil-cpp/CMakeLists.txt +3 -3
- package/vendor/abseil-cpp/FAQ.md +130 -79
- package/vendor/abseil-cpp/MODULE.bazel +6 -7
- package/vendor/abseil-cpp/absl/BUILD.bazel +6 -0
- package/vendor/abseil-cpp/absl/algorithm/BUILD.bazel +4 -0
- package/vendor/abseil-cpp/absl/algorithm/CMakeLists.txt +4 -0
- package/vendor/abseil-cpp/absl/algorithm/algorithm.h +34 -2
- package/vendor/abseil-cpp/absl/algorithm/container.h +164 -17
- package/vendor/abseil-cpp/absl/algorithm/container_test.cc +390 -13
- package/vendor/abseil-cpp/absl/base/BUILD.bazel +53 -6
- package/vendor/abseil-cpp/absl/base/CMakeLists.txt +28 -4
- package/vendor/abseil-cpp/absl/base/attributes.h +61 -42
- package/vendor/abseil-cpp/absl/base/call_once.h +1 -0
- package/vendor/abseil-cpp/absl/base/casts.h +8 -1
- package/vendor/abseil-cpp/absl/base/casts_test.cc +3 -6
- package/vendor/abseil-cpp/absl/base/config.h +54 -10
- package/vendor/abseil-cpp/absl/base/exception_safety_testing_test.cc +9 -9
- package/vendor/abseil-cpp/absl/base/fast_type_id.h +30 -2
- package/vendor/abseil-cpp/absl/base/fast_type_id_test.cc +3 -0
- package/vendor/abseil-cpp/absl/base/internal/exception_safety_testing.h +15 -12
- package/vendor/abseil-cpp/absl/base/internal/hardening.h +136 -0
- package/vendor/abseil-cpp/absl/base/internal/hardening_test.cc +168 -0
- package/vendor/abseil-cpp/absl/base/internal/iterator_traits.h +2 -2
- package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.cc +6 -0
- package/vendor/abseil-cpp/absl/base/internal/low_level_scheduling.h +77 -15
- package/vendor/abseil-cpp/absl/base/internal/sysinfo.cc +1 -2
- package/vendor/abseil-cpp/absl/base/internal/thread_identity.h +52 -0
- package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.h +5 -0
- package/vendor/abseil-cpp/absl/base/macros.h +36 -20
- package/vendor/abseil-cpp/absl/base/nullability.h +4 -3
- package/vendor/abseil-cpp/absl/base/optimization.h +3 -2
- package/vendor/abseil-cpp/absl/base/optimization_test.cc +4 -3
- package/vendor/abseil-cpp/absl/base/options.h +55 -1
- package/vendor/abseil-cpp/absl/base/policy_checks.h +5 -5
- package/vendor/abseil-cpp/absl/base/{internal/throw_delegate.cc → throw_delegate.cc} +9 -7
- package/vendor/abseil-cpp/absl/base/{internal/throw_delegate.h → throw_delegate.h} +4 -14
- package/vendor/abseil-cpp/absl/base/throw_delegate_test.cc +19 -28
- package/vendor/abseil-cpp/absl/cleanup/BUILD.bazel +2 -0
- package/vendor/abseil-cpp/absl/cleanup/CMakeLists.txt +2 -0
- package/vendor/abseil-cpp/absl/cleanup/cleanup.h +3 -2
- package/vendor/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -2
- package/vendor/abseil-cpp/absl/container/BUILD.bazel +19 -7
- package/vendor/abseil-cpp/absl/container/CMakeLists.txt +6 -5
- package/vendor/abseil-cpp/absl/container/btree_benchmark.cc +3 -5
- package/vendor/abseil-cpp/absl/container/btree_set.h +5 -5
- package/vendor/abseil-cpp/absl/container/btree_test.cc +11 -14
- package/vendor/abseil-cpp/absl/container/chunked_queue.h +8 -6
- package/vendor/abseil-cpp/absl/container/chunked_queue_test.cc +5 -5
- package/vendor/abseil-cpp/absl/container/fixed_array.h +14 -13
- package/vendor/abseil-cpp/absl/container/fixed_array_test.cc +3 -3
- package/vendor/abseil-cpp/absl/container/flat_hash_map.h +18 -6
- package/vendor/abseil-cpp/absl/container/flat_hash_map_test.cc +34 -1
- package/vendor/abseil-cpp/absl/container/flat_hash_set.h +21 -7
- package/vendor/abseil-cpp/absl/container/flat_hash_set_test.cc +39 -7
- package/vendor/abseil-cpp/absl/container/inlined_vector.h +29 -29
- package/vendor/abseil-cpp/absl/container/inlined_vector_test.cc +2 -2
- package/vendor/abseil-cpp/absl/container/internal/btree.h +32 -24
- package/vendor/abseil-cpp/absl/container/internal/btree_container.h +16 -17
- package/vendor/abseil-cpp/absl/container/internal/common.h +6 -5
- package/vendor/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -1
- package/vendor/abseil-cpp/absl/container/internal/compressed_tuple.h +16 -16
- package/vendor/abseil-cpp/absl/container/internal/compressed_tuple_test.cc +13 -13
- package/vendor/abseil-cpp/absl/container/internal/container_memory.h +41 -31
- package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults.h +2 -2
- package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.h +4 -4
- package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits.h +3 -3
- package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +27 -19
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +2 -2
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.h +0 -17
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +12 -30
- package/vendor/abseil-cpp/absl/container/internal/inlined_vector.h +28 -28
- package/vendor/abseil-cpp/absl/container/internal/layout.h +13 -13
- package/vendor/abseil-cpp/absl/container/internal/layout_test.cc +3 -2
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_map.h +60 -62
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc +59 -39
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.h +619 -326
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +25 -2
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +4 -4
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +575 -159
- package/vendor/abseil-cpp/absl/container/linked_hash_map.h +2 -2
- package/vendor/abseil-cpp/absl/container/node_hash_map.h +27 -15
- package/vendor/abseil-cpp/absl/container/node_hash_map_test.cc +34 -0
- package/vendor/abseil-cpp/absl/container/node_hash_set.h +25 -11
- package/vendor/abseil-cpp/absl/container/node_hash_set_test.cc +39 -7
- package/vendor/abseil-cpp/absl/container/sample_element_size_test.cc +7 -4
- package/vendor/abseil-cpp/absl/crc/BUILD.bazel +0 -1
- package/vendor/abseil-cpp/absl/crc/CMakeLists.txt +2 -3
- package/vendor/abseil-cpp/absl/crc/crc32c_benchmark.cc +2 -1
- package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.cc +6 -6
- package/vendor/abseil-cpp/absl/crc/internal/crc.cc +4 -6
- package/vendor/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +41 -0
- package/vendor/abseil-cpp/absl/crc/internal/crc_internal.h +0 -16
- package/vendor/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +143 -81
- package/vendor/abseil-cpp/absl/debugging/BUILD.bazel +9 -31
- package/vendor/abseil-cpp/absl/debugging/CMakeLists.txt +3 -33
- package/vendor/abseil-cpp/absl/debugging/internal/demangle_rust.h +8 -0
- package/vendor/abseil-cpp/absl/debugging/internal/demangle_test.cc +2 -1
- package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.cc +12 -2
- package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.h +2 -3
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +11 -0
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +13 -4
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +14 -7
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +4 -0
- package/vendor/abseil-cpp/absl/debugging/internal/symbolize.h +46 -36
- package/vendor/abseil-cpp/absl/debugging/stacktrace.cc +18 -58
- package/vendor/abseil-cpp/absl/debugging/stacktrace.h +5 -48
- package/vendor/abseil-cpp/absl/debugging/stacktrace_test.cc +10 -124
- package/vendor/abseil-cpp/absl/debugging/symbolize.cc +20 -2
- package/vendor/abseil-cpp/absl/debugging/symbolize_elf.inc +58 -106
- package/vendor/abseil-cpp/absl/debugging/symbolize_test.cc +37 -36
- package/vendor/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +4 -4
- package/vendor/abseil-cpp/absl/flags/BUILD.bazel +6 -3
- package/vendor/abseil-cpp/absl/flags/CMakeLists.txt +1 -1
- package/vendor/abseil-cpp/absl/flags/commandlineflag.h +8 -6
- package/vendor/abseil-cpp/absl/flags/commandlineflag_test.cc +1 -1
- package/vendor/abseil-cpp/absl/flags/flag_benchmark.cc +5 -5
- package/vendor/abseil-cpp/absl/flags/flag_test.cc +30 -30
- package/vendor/abseil-cpp/absl/flags/internal/flag.cc +4 -4
- package/vendor/abseil-cpp/absl/flags/internal/flag.h +6 -6
- package/vendor/abseil-cpp/absl/flags/marshalling.h +2 -28
- package/vendor/abseil-cpp/absl/flags/marshalling_test.cc +12 -11
- package/vendor/abseil-cpp/absl/flags/reflection_test.cc +1 -1
- package/vendor/abseil-cpp/absl/functional/BUILD.bazel +26 -1
- package/vendor/abseil-cpp/absl/functional/CMakeLists.txt +29 -1
- package/vendor/abseil-cpp/absl/functional/any_invocable.h +13 -14
- package/vendor/abseil-cpp/absl/functional/any_invocable_test.cc +46 -47
- package/vendor/abseil-cpp/absl/functional/bind_back.h +79 -0
- package/vendor/abseil-cpp/absl/functional/bind_back_test.cc +237 -0
- package/vendor/abseil-cpp/absl/functional/bind_front.h +7 -1
- package/vendor/abseil-cpp/absl/functional/bind_front_test.cc +4 -4
- package/vendor/abseil-cpp/absl/functional/function_ref_test.cc +2 -2
- package/vendor/abseil-cpp/absl/functional/internal/any_invocable.h +28 -28
- package/vendor/abseil-cpp/absl/functional/internal/back_binder.h +95 -0
- package/vendor/abseil-cpp/absl/functional/internal/front_binder.h +4 -4
- package/vendor/abseil-cpp/absl/functional/internal/function_ref.h +2 -2
- package/vendor/abseil-cpp/absl/functional/overload_test.cc +13 -13
- package/vendor/abseil-cpp/absl/hash/BUILD.bazel +1 -2
- package/vendor/abseil-cpp/absl/hash/CMakeLists.txt +1 -2
- package/vendor/abseil-cpp/absl/hash/hash.h +1 -1
- package/vendor/abseil-cpp/absl/hash/hash_test.cc +14 -20
- package/vendor/abseil-cpp/absl/hash/hash_testing.h +11 -9
- package/vendor/abseil-cpp/absl/hash/internal/city.cc +39 -51
- package/vendor/abseil-cpp/absl/hash/internal/hash.cc +165 -47
- package/vendor/abseil-cpp/absl/hash/internal/hash.h +82 -26
- package/vendor/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +36 -1
- package/vendor/abseil-cpp/absl/hash/internal/spy_hash_state.h +8 -5
- package/vendor/abseil-cpp/absl/log/BUILD.bazel +5 -2
- package/vendor/abseil-cpp/absl/log/CMakeLists.txt +5 -3
- package/vendor/abseil-cpp/absl/log/absl_vlog_is_on.h +0 -2
- package/vendor/abseil-cpp/absl/log/internal/BUILD.bazel +15 -1
- package/vendor/abseil-cpp/absl/log/internal/log_message.cc +5 -4
- package/vendor/abseil-cpp/absl/log/internal/log_message.h +14 -0
- package/vendor/abseil-cpp/absl/log/internal/nullstream.h +1 -1
- package/vendor/abseil-cpp/absl/log/internal/proto.cc +13 -0
- package/vendor/abseil-cpp/absl/log/internal/structured_proto.cc +5 -5
- package/vendor/abseil-cpp/absl/log/internal/structured_proto.h +6 -5
- package/vendor/abseil-cpp/absl/log/internal/structured_proto_test.cc +3 -3
- package/vendor/abseil-cpp/absl/log/internal/vlog_config.cc +2 -2
- package/vendor/abseil-cpp/absl/log/internal/vlog_config_benchmark.cc +3 -3
- package/vendor/abseil-cpp/absl/log/log_format_test.cc +19 -2
- package/vendor/abseil-cpp/absl/log/log_modifier_methods_test.cc +18 -0
- package/vendor/abseil-cpp/absl/log/log_streamer.h +29 -2
- package/vendor/abseil-cpp/absl/log/log_streamer_test.cc +18 -0
- package/vendor/abseil-cpp/absl/log/scoped_mock_log_test.cc +1 -1
- package/vendor/abseil-cpp/absl/log/vlog_is_on.h +0 -2
- package/vendor/abseil-cpp/absl/log/vlog_is_on_test.cc +6 -5
- package/vendor/abseil-cpp/absl/memory/memory.h +55 -5
- package/vendor/abseil-cpp/absl/memory/memory_test.cc +55 -1
- package/vendor/abseil-cpp/absl/meta/BUILD.bazel +2 -0
- package/vendor/abseil-cpp/absl/meta/internal/requires.h +1 -1
- package/vendor/abseil-cpp/absl/meta/type_traits.h +119 -55
- package/vendor/abseil-cpp/absl/meta/type_traits_test.cc +7 -7
- package/vendor/abseil-cpp/absl/numeric/int128_test.cc +6 -6
- package/vendor/abseil-cpp/absl/profiling/BUILD.bazel +3 -1
- package/vendor/abseil-cpp/absl/profiling/hashtable.cc +0 -4
- package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.cc +32 -33
- package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.h +25 -2
- package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder_test.cc +8 -5
- package/vendor/abseil-cpp/absl/random/BUILD.bazel +13 -1
- package/vendor/abseil-cpp/absl/random/CMakeLists.txt +23 -2
- package/vendor/abseil-cpp/absl/random/benchmarks.cc +1 -1
- package/vendor/abseil-cpp/absl/random/beta_distribution.h +2 -2
- package/vendor/abseil-cpp/absl/random/bit_gen_ref.h +26 -53
- package/vendor/abseil-cpp/absl/random/bit_gen_ref_test.cc +43 -0
- package/vendor/abseil-cpp/absl/random/discrete_distribution.h +1 -1
- package/vendor/abseil-cpp/absl/random/distributions.h +17 -17
- package/vendor/abseil-cpp/absl/random/distributions_test.cc +4 -4
- package/vendor/abseil-cpp/absl/random/exponential_distribution.h +1 -1
- package/vendor/abseil-cpp/absl/random/internal/BUILD.bazel +4 -2
- package/vendor/abseil-cpp/absl/random/internal/distribution_caller.h +8 -21
- package/vendor/abseil-cpp/absl/random/internal/fast_uniform_bits.h +1 -1
- package/vendor/abseil-cpp/absl/random/internal/generate_real.h +1 -1
- package/vendor/abseil-cpp/absl/random/internal/iostream_state_saver.h +2 -2
- package/vendor/abseil-cpp/absl/random/internal/iostream_state_saver_test.cc +3 -2
- package/vendor/abseil-cpp/absl/random/internal/mock_helpers.h +14 -40
- package/vendor/abseil-cpp/absl/random/internal/nonsecure_base.h +2 -2
- package/vendor/abseil-cpp/absl/random/internal/nonsecure_base_test.cc +2 -2
- package/vendor/abseil-cpp/absl/random/internal/pcg_engine.h +6 -6
- package/vendor/abseil-cpp/absl/random/internal/pcg_engine_test.cc +3 -2
- package/vendor/abseil-cpp/absl/random/internal/randen_detect.cc +6 -6
- package/vendor/abseil-cpp/absl/random/internal/randen_engine.h +2 -2
- package/vendor/abseil-cpp/absl/random/internal/randen_engine_test.cc +3 -2
- package/vendor/abseil-cpp/absl/random/internal/randen_test.cc +3 -2
- package/vendor/abseil-cpp/absl/random/internal/salted_seed_seq.h +6 -5
- package/vendor/abseil-cpp/absl/random/internal/seed_material.cc +4 -4
- package/vendor/abseil-cpp/absl/random/internal/seed_material.h +2 -1
- package/vendor/abseil-cpp/absl/random/internal/traits.h +21 -0
- package/vendor/abseil-cpp/absl/random/internal/traits_test.cc +5 -0
- package/vendor/abseil-cpp/absl/random/internal/uniform_helper.h +23 -23
- package/vendor/abseil-cpp/absl/random/internal/uniform_helper_test.cc +2 -1
- package/vendor/abseil-cpp/absl/random/mocking_access.h +74 -0
- package/vendor/abseil-cpp/absl/random/mocking_bit_gen.h +9 -19
- package/vendor/abseil-cpp/absl/random/uniform_real_distribution.h +1 -1
- package/vendor/abseil-cpp/absl/status/BUILD.bazel +81 -0
- package/vendor/abseil-cpp/absl/status/CMakeLists.txt +91 -0
- package/vendor/abseil-cpp/absl/status/internal/status_internal.cc +63 -18
- package/vendor/abseil-cpp/absl/status/internal/status_internal.h +26 -2
- package/vendor/abseil-cpp/absl/status/internal/status_matchers.h +22 -8
- package/vendor/abseil-cpp/absl/status/internal/statusor_internal.h +43 -43
- package/vendor/abseil-cpp/absl/status/status.cc +62 -70
- package/vendor/abseil-cpp/absl/status/status.h +249 -23
- package/vendor/abseil-cpp/absl/status/status_benchmark.cc +12 -0
- package/vendor/abseil-cpp/absl/status/status_builder.cc +196 -0
- package/vendor/abseil-cpp/absl/status/status_builder.h +978 -0
- package/vendor/abseil-cpp/absl/status/status_builder_test.cc +380 -0
- package/vendor/abseil-cpp/absl/status/status_macros.h +484 -0
- package/vendor/abseil-cpp/absl/status/status_macros_test.cc +634 -0
- package/vendor/abseil-cpp/absl/status/status_matchers.h +2 -1
- package/vendor/abseil-cpp/absl/status/status_matchers_test.cc +3 -4
- package/vendor/abseil-cpp/absl/status/status_payload_printer.h +3 -2
- package/vendor/abseil-cpp/absl/status/status_test.cc +443 -13
- package/vendor/abseil-cpp/absl/status/statusor.h +69 -36
- package/vendor/abseil-cpp/absl/status/statusor_test.cc +132 -35
- package/vendor/abseil-cpp/absl/strings/BUILD.bazel +42 -7
- package/vendor/abseil-cpp/absl/strings/CMakeLists.txt +33 -4
- package/vendor/abseil-cpp/absl/strings/ascii.h +1 -2
- package/vendor/abseil-cpp/absl/strings/atod_manual_test.cc +5 -5
- package/vendor/abseil-cpp/absl/strings/cord.cc +26 -7
- package/vendor/abseil-cpp/absl/strings/cord.h +23 -13
- package/vendor/abseil-cpp/absl/strings/cord_buffer.h +4 -2
- package/vendor/abseil-cpp/absl/strings/cord_test.cc +85 -9
- package/vendor/abseil-cpp/absl/strings/escaping.cc +176 -30
- package/vendor/abseil-cpp/absl/strings/escaping.h +12 -2
- package/vendor/abseil-cpp/absl/strings/escaping_benchmark.cc +1 -3
- package/vendor/abseil-cpp/absl/strings/escaping_test.cc +18 -18
- package/vendor/abseil-cpp/absl/strings/has_absl_stringify_test.cc +2 -2
- package/vendor/abseil-cpp/absl/strings/has_ostream_operator_test.cc +2 -2
- package/vendor/abseil-cpp/absl/strings/internal/append_and_overwrite.h +10 -10
- package/vendor/abseil-cpp/absl/strings/internal/cordz_sample_token_test.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +6 -0
- package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +1 -0
- package/vendor/abseil-cpp/absl/strings/internal/escaping.cc +0 -141
- package/vendor/abseil-cpp/absl/strings/internal/escaping.h +2 -26
- package/vendor/abseil-cpp/absl/strings/internal/generic_printer_internal.h +23 -2
- package/vendor/abseil-cpp/absl/strings/internal/generic_printer_test.cc +6 -2
- package/vendor/abseil-cpp/absl/strings/internal/resize_uninitialized.h +31 -24
- package/vendor/abseil-cpp/absl/strings/internal/resize_uninitialized_test.cc +16 -41
- package/vendor/abseil-cpp/absl/strings/internal/stl_type_traits.h +39 -39
- package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -22
- package/vendor/abseil-cpp/absl/strings/internal/str_format/bind.h +2 -2
- package/vendor/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +12 -20
- package/vendor/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +510 -307
- package/vendor/abseil-cpp/absl/strings/internal/str_join_internal.h +0 -1
- package/vendor/abseil-cpp/absl/strings/internal/str_split_internal.h +9 -10
- package/vendor/abseil-cpp/absl/strings/internal/string_constant_test.cc +6 -5
- package/vendor/abseil-cpp/absl/strings/internal/stringify_sink.h +12 -0
- package/vendor/abseil-cpp/absl/strings/internal/stringify_stream.h +119 -0
- package/vendor/abseil-cpp/absl/strings/internal/stringify_stream_test.cc +111 -0
- package/vendor/abseil-cpp/absl/strings/numbers.cc +406 -0
- package/vendor/abseil-cpp/absl/strings/numbers.h +4 -0
- package/vendor/abseil-cpp/absl/strings/numbers_test.cc +33 -0
- package/vendor/abseil-cpp/absl/strings/resize_and_overwrite.h +10 -6
- package/vendor/abseil-cpp/absl/strings/str_cat.h +36 -1
- package/vendor/abseil-cpp/absl/strings/str_cat_benchmark.cc +1 -2
- package/vendor/abseil-cpp/absl/strings/str_cat_test.cc +28 -0
- package/vendor/abseil-cpp/absl/strings/str_join_test.cc +4 -4
- package/vendor/abseil-cpp/absl/strings/str_split.h +11 -6
- package/vendor/abseil-cpp/absl/strings/str_split_test.cc +13 -0
- package/vendor/abseil-cpp/absl/strings/substitute.h +2 -2
- package/vendor/abseil-cpp/absl/synchronization/BUILD.bazel +3 -0
- package/vendor/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +21 -0
- package/vendor/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +5 -0
- package/vendor/abseil-cpp/absl/synchronization/mutex.cc +13 -0
- package/vendor/abseil-cpp/absl/synchronization/mutex.h +32 -2
- package/vendor/abseil-cpp/absl/synchronization/mutex_test.cc +17 -3
- package/vendor/abseil-cpp/absl/time/BUILD.bazel +80 -0
- package/vendor/abseil-cpp/absl/time/CMakeLists.txt +73 -0
- package/vendor/abseil-cpp/absl/time/clock.h +3 -0
- package/vendor/abseil-cpp/absl/time/clock_interface.cc +71 -0
- package/vendor/abseil-cpp/absl/time/clock_interface.h +93 -0
- package/vendor/abseil-cpp/absl/time/clock_interface_test.cc +128 -0
- package/vendor/abseil-cpp/absl/time/format.cc +3 -10
- package/vendor/abseil-cpp/absl/time/format_test.cc +12 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +90 -89
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format_test.cc +80 -5
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +1 -2
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +10 -15
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Vancouver +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ho_Chi_Minh +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Phnom_Penh +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Saigon +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tbilisi +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Vientiane +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Pacific +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Chisinau +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Tiraspol +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +1 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +3 -3
- package/vendor/abseil-cpp/absl/time/simulated_clock.cc +225 -0
- package/vendor/abseil-cpp/absl/time/simulated_clock.h +109 -0
- package/vendor/abseil-cpp/absl/time/simulated_clock_test.cc +614 -0
- package/vendor/abseil-cpp/absl/types/BUILD.bazel +116 -0
- package/vendor/abseil-cpp/absl/types/CMakeLists.txt +100 -0
- package/vendor/abseil-cpp/absl/types/any.h +26 -4
- package/vendor/abseil-cpp/absl/types/any_span.h +1067 -0
- package/vendor/abseil-cpp/absl/types/any_span_benchmark.cc +258 -0
- package/vendor/abseil-cpp/absl/types/any_span_test.cc +1210 -0
- package/vendor/abseil-cpp/absl/types/compare.h +4 -4
- package/vendor/abseil-cpp/absl/types/internal/any_span.h +477 -0
- package/vendor/abseil-cpp/absl/types/internal/span.h +5 -6
- package/vendor/abseil-cpp/absl/types/optional.h +30 -3
- package/vendor/abseil-cpp/absl/types/optional_ref.h +295 -0
- package/vendor/abseil-cpp/absl/types/optional_ref_test.cc +370 -0
- package/vendor/abseil-cpp/absl/types/source_location.cc +18 -0
- package/vendor/abseil-cpp/absl/types/source_location.h +172 -0
- package/vendor/abseil-cpp/absl/types/source_location_test.cc +139 -0
- package/vendor/abseil-cpp/absl/types/span.h +19 -23
- package/vendor/abseil-cpp/absl/types/variant.h +75 -18
- package/vendor/abseil-cpp/absl/types/variant_test.cc +23 -23
- package/vendor/abseil-cpp/absl/utility/BUILD.bazel +1 -0
- package/vendor/abseil-cpp/absl/utility/CMakeLists.txt +1 -0
- package/vendor/abseil-cpp/absl/utility/utility.h +99 -16
- package/vendor/abseil-cpp/ci/absl_alternate_options.h +2 -0
- package/vendor/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +10 -4
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +13 -6
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +10 -4
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +12 -5
- package/vendor/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +9 -2
- package/vendor/abseil-cpp/ci/linux_docker_containers.sh +4 -4
- package/vendor/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +10 -3
- package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +8 -2
- package/vendor/abseil-cpp/ci/macos_xcode_bazel.sh +4 -3
- package/vendor/abseil-cpp/ci/macos_xcode_cmake.sh +2 -2
- package/vendor/abseil-cpp/ci/windows_clangcl_bazel.bat +1 -1
- package/vendor/abseil-cpp/ci/windows_msvc_bazel.bat +1 -1
- package/AGENTS.md +0 -131
- package/ARCHITECTURE.md +0 -152
- package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.cc +0 -118
- package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.h +0 -71
- package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer_test.cc +0 -97
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
#include <string>
|
|
44
44
|
#include <type_traits>
|
|
45
45
|
#include <utility>
|
|
46
|
+
#include <variant>
|
|
46
47
|
|
|
47
48
|
#include "absl/base/attributes.h"
|
|
48
49
|
#include "absl/base/call_once.h"
|
|
@@ -53,6 +54,8 @@
|
|
|
53
54
|
#include "absl/strings/has_absl_stringify.h"
|
|
54
55
|
#include "absl/strings/has_ostream_operator.h"
|
|
55
56
|
#include "absl/strings/str_format.h"
|
|
57
|
+
#include "absl/types/source_location.h"
|
|
58
|
+
#include "absl/types/span.h"
|
|
56
59
|
#include "absl/types/variant.h"
|
|
57
60
|
#include "absl/utility/utility.h"
|
|
58
61
|
|
|
@@ -244,50 +247,50 @@ class StatusOr : private internal_statusor::OperatorBase<T>,
|
|
|
244
247
|
// is explicit if and only if the corresponding construction of `T` from `U`
|
|
245
248
|
// is explicit. (This constructor inherits its explicitness from the
|
|
246
249
|
// underlying constructor.)
|
|
247
|
-
template <typename U,
|
|
250
|
+
template <typename U, std::enable_if_t<
|
|
248
251
|
internal_statusor::IsConstructionFromStatusOrValid<
|
|
249
252
|
false, T, U, false, const U&>::value,
|
|
250
253
|
int> = 0>
|
|
251
254
|
StatusOr(const StatusOr<U>& other) // NOLINT
|
|
252
255
|
: Base(static_cast<const typename StatusOr<U>::Base&>(other)) {}
|
|
253
|
-
template <typename U,
|
|
256
|
+
template <typename U, std::enable_if_t<
|
|
254
257
|
internal_statusor::IsConstructionFromStatusOrValid<
|
|
255
258
|
false, T, U, true, const U&>::value,
|
|
256
259
|
int> = 0>
|
|
257
260
|
StatusOr(const StatusOr<U>& other ABSL_ATTRIBUTE_LIFETIME_BOUND) // NOLINT
|
|
258
261
|
: Base(static_cast<const typename StatusOr<U>::Base&>(other)) {}
|
|
259
|
-
template <typename U,
|
|
262
|
+
template <typename U, std::enable_if_t<
|
|
260
263
|
internal_statusor::IsConstructionFromStatusOrValid<
|
|
261
264
|
true, T, U, false, const U&>::value,
|
|
262
265
|
int> = 0>
|
|
263
266
|
explicit StatusOr(const StatusOr<U>& other)
|
|
264
267
|
: Base(static_cast<const typename StatusOr<U>::Base&>(other)) {}
|
|
265
|
-
template <typename U,
|
|
268
|
+
template <typename U, std::enable_if_t<
|
|
266
269
|
internal_statusor::IsConstructionFromStatusOrValid<
|
|
267
270
|
true, T, U, true, const U&>::value,
|
|
268
271
|
int> = 0>
|
|
269
272
|
explicit StatusOr(const StatusOr<U>& other ABSL_ATTRIBUTE_LIFETIME_BOUND)
|
|
270
273
|
: Base(static_cast<const typename StatusOr<U>::Base&>(other)) {}
|
|
271
274
|
|
|
272
|
-
template <typename U,
|
|
275
|
+
template <typename U, std::enable_if_t<
|
|
273
276
|
internal_statusor::IsConstructionFromStatusOrValid<
|
|
274
277
|
false, T, U, false, U&&>::value,
|
|
275
278
|
int> = 0>
|
|
276
279
|
StatusOr(StatusOr<U>&& other) // NOLINT
|
|
277
280
|
: Base(static_cast<typename StatusOr<U>::Base&&>(other)) {}
|
|
278
|
-
template <typename U,
|
|
281
|
+
template <typename U, std::enable_if_t<
|
|
279
282
|
internal_statusor::IsConstructionFromStatusOrValid<
|
|
280
283
|
false, T, U, true, U&&>::value,
|
|
281
284
|
int> = 0>
|
|
282
285
|
StatusOr(StatusOr<U>&& other ABSL_ATTRIBUTE_LIFETIME_BOUND) // NOLINT
|
|
283
286
|
: Base(static_cast<typename StatusOr<U>::Base&&>(other)) {}
|
|
284
|
-
template <typename U,
|
|
287
|
+
template <typename U, std::enable_if_t<
|
|
285
288
|
internal_statusor::IsConstructionFromStatusOrValid<
|
|
286
289
|
true, T, U, false, U&&>::value,
|
|
287
290
|
int> = 0>
|
|
288
291
|
explicit StatusOr(StatusOr<U>&& other)
|
|
289
292
|
: Base(static_cast<typename StatusOr<U>::Base&&>(other)) {}
|
|
290
|
-
template <typename U,
|
|
293
|
+
template <typename U, std::enable_if_t<
|
|
291
294
|
internal_statusor::IsConstructionFromStatusOrValid<
|
|
292
295
|
true, T, U, true, U&&>::value,
|
|
293
296
|
int> = 0>
|
|
@@ -314,7 +317,7 @@ class StatusOr : private internal_statusor::OperatorBase<T>,
|
|
|
314
317
|
// assignable from `absl::StatusOr<U>` and `StatusOr<T>` cannot be directly
|
|
315
318
|
// assigned from `StatusOr<U>`.
|
|
316
319
|
template <typename U,
|
|
317
|
-
|
|
320
|
+
std::enable_if_t<internal_statusor::IsStatusOrAssignmentValid<
|
|
318
321
|
T, const U&, false>::value,
|
|
319
322
|
int> = 0>
|
|
320
323
|
StatusOr& operator=(const StatusOr<U>& other) {
|
|
@@ -322,7 +325,7 @@ class StatusOr : private internal_statusor::OperatorBase<T>,
|
|
|
322
325
|
return *this;
|
|
323
326
|
}
|
|
324
327
|
template <typename U,
|
|
325
|
-
|
|
328
|
+
std::enable_if_t<internal_statusor::IsStatusOrAssignmentValid<
|
|
326
329
|
T, const U&, true>::value,
|
|
327
330
|
int> = 0>
|
|
328
331
|
StatusOr& operator=(const StatusOr<U>& other ABSL_ATTRIBUTE_LIFETIME_BOUND) {
|
|
@@ -330,7 +333,7 @@ class StatusOr : private internal_statusor::OperatorBase<T>,
|
|
|
330
333
|
return *this;
|
|
331
334
|
}
|
|
332
335
|
template <typename U,
|
|
333
|
-
|
|
336
|
+
std::enable_if_t<internal_statusor::IsStatusOrAssignmentValid<
|
|
334
337
|
T, U&&, false>::value,
|
|
335
338
|
int> = 0>
|
|
336
339
|
StatusOr& operator=(StatusOr<U>&& other) {
|
|
@@ -338,7 +341,7 @@ class StatusOr : private internal_statusor::OperatorBase<T>,
|
|
|
338
341
|
return *this;
|
|
339
342
|
}
|
|
340
343
|
template <typename U,
|
|
341
|
-
|
|
344
|
+
std::enable_if_t<internal_statusor::IsStatusOrAssignmentValid<
|
|
342
345
|
T, U&&, true>::value,
|
|
343
346
|
int> = 0>
|
|
344
347
|
StatusOr& operator=(StatusOr<U>&& other ABSL_ATTRIBUTE_LIFETIME_BOUND) {
|
|
@@ -358,18 +361,18 @@ class StatusOr : private internal_statusor::OperatorBase<T>,
|
|
|
358
361
|
// In optimized builds, passing absl::OkStatus() here will have the effect
|
|
359
362
|
// of passing absl::StatusCode::kInternal as a fallback.
|
|
360
363
|
template <typename U = absl::Status,
|
|
361
|
-
|
|
364
|
+
std::enable_if_t<internal_statusor::IsConstructionFromStatusValid<
|
|
362
365
|
false, T, U>::value,
|
|
363
366
|
int> = 0>
|
|
364
367
|
StatusOr(U&& v) : Base(std::forward<U>(v)) {}
|
|
365
368
|
|
|
366
369
|
template <typename U = absl::Status,
|
|
367
|
-
|
|
370
|
+
std::enable_if_t<internal_statusor::IsConstructionFromStatusValid<
|
|
368
371
|
true, T, U>::value,
|
|
369
372
|
int> = 0>
|
|
370
373
|
explicit StatusOr(U&& v) : Base(std::forward<U>(v)) {}
|
|
371
374
|
template <typename U = absl::Status,
|
|
372
|
-
|
|
375
|
+
std::enable_if_t<internal_statusor::IsConstructionFromStatusValid<
|
|
373
376
|
false, T, U>::value,
|
|
374
377
|
int> = 0>
|
|
375
378
|
StatusOr& operator=(U&& v) {
|
|
@@ -413,9 +416,9 @@ class StatusOr : private internal_statusor::OperatorBase<T>,
|
|
|
413
416
|
// Constructs the inner value `T` in-place using the provided args, using the
|
|
414
417
|
// `T(args...)` constructor.
|
|
415
418
|
template <typename... Args>
|
|
416
|
-
explicit StatusOr(
|
|
419
|
+
explicit StatusOr(std::in_place_t, Args&&... args);
|
|
417
420
|
template <typename U, typename... Args>
|
|
418
|
-
explicit StatusOr(
|
|
421
|
+
explicit StatusOr(std::in_place_t, std::initializer_list<U> ilist,
|
|
419
422
|
Args&&... args);
|
|
420
423
|
|
|
421
424
|
// Constructs the inner value `T` in-place using the provided args, using the
|
|
@@ -426,30 +429,30 @@ class StatusOr : private internal_statusor::OperatorBase<T>,
|
|
|
426
429
|
// ambiguity, this constructor is disabled if `U` is a `StatusOr<J>`, where
|
|
427
430
|
// `J` is convertible to `T`.
|
|
428
431
|
template <typename U = T,
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
+
std::enable_if_t<internal_statusor::IsConstructionValid<
|
|
433
|
+
false, T, U, false>::value,
|
|
434
|
+
int> = 0>
|
|
432
435
|
StatusOr(U&& u) // NOLINT
|
|
433
|
-
: StatusOr(
|
|
436
|
+
: StatusOr(std::in_place, std::forward<U>(u)) {}
|
|
434
437
|
template <typename U = T,
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
+
std::enable_if_t<internal_statusor::IsConstructionValid<
|
|
439
|
+
false, T, U, true>::value,
|
|
440
|
+
int> = 0>
|
|
438
441
|
StatusOr(U&& u ABSL_ATTRIBUTE_LIFETIME_BOUND) // NOLINT
|
|
439
|
-
: StatusOr(
|
|
442
|
+
: StatusOr(std::in_place, std::forward<U>(u)) {}
|
|
440
443
|
|
|
441
444
|
template <typename U = T,
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
+
std::enable_if_t<internal_statusor::IsConstructionValid<
|
|
446
|
+
true, T, U, false>::value,
|
|
447
|
+
int> = 0>
|
|
445
448
|
explicit StatusOr(U&& u) // NOLINT
|
|
446
|
-
: StatusOr(
|
|
449
|
+
: StatusOr(std::in_place, std::forward<U>(u)) {}
|
|
447
450
|
template <typename U = T,
|
|
448
|
-
|
|
451
|
+
std::enable_if_t<
|
|
449
452
|
internal_statusor::IsConstructionValid<true, T, U, true>::value,
|
|
450
453
|
int> = 0>
|
|
451
454
|
explicit StatusOr(U&& u ABSL_ATTRIBUTE_LIFETIME_BOUND) // NOLINT
|
|
452
|
-
: StatusOr(
|
|
455
|
+
: StatusOr(std::in_place, std::forward<U>(u)) {}
|
|
453
456
|
|
|
454
457
|
// StatusOr<T>::ok()
|
|
455
458
|
//
|
|
@@ -475,6 +478,36 @@ class StatusOr : private internal_statusor::OperatorBase<T>,
|
|
|
475
478
|
ABSL_MUST_USE_RESULT const Status& status() const&;
|
|
476
479
|
Status status() &&;
|
|
477
480
|
|
|
481
|
+
absl::Span<const absl::SourceLocation> GetSourceLocations() const {
|
|
482
|
+
return this->status_.GetSourceLocations();
|
|
483
|
+
}
|
|
484
|
+
// Appends the `loc` to the current location chain inside the status, iff the
|
|
485
|
+
// status-or is non-ok and contains a non-empty message.
|
|
486
|
+
void AddSourceLocation(
|
|
487
|
+
absl::SourceLocation loc = absl::SourceLocation::current()) {
|
|
488
|
+
this->status_.AddSourceLocation(loc);
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
// StatusOr<T>::WithSourceLocation()
|
|
492
|
+
//
|
|
493
|
+
// Appends the `loc` to the current location chain inside the status iff the
|
|
494
|
+
// status-or is non-ok and contains a non-empty message, and returns an rvalue
|
|
495
|
+
// reference to `*this`.
|
|
496
|
+
//
|
|
497
|
+
// Example:
|
|
498
|
+
//
|
|
499
|
+
// StatusOr<int> Finalize(...);
|
|
500
|
+
//
|
|
501
|
+
// StatusOr<int> DoSomething(...) {
|
|
502
|
+
// ...
|
|
503
|
+
// return Finalize().WithSourceLocation();
|
|
504
|
+
// }
|
|
505
|
+
ABSL_MUST_USE_RESULT StatusOr<T>&& WithSourceLocation(
|
|
506
|
+
absl::SourceLocation loc = absl::SourceLocation::current()) && {
|
|
507
|
+
AddSourceLocation(loc);
|
|
508
|
+
return std::move(*this);
|
|
509
|
+
}
|
|
510
|
+
|
|
478
511
|
// StatusOr<T>::value()
|
|
479
512
|
//
|
|
480
513
|
// Returns a reference to the held value if `this->ok()`. Otherwise, throws
|
|
@@ -591,7 +624,7 @@ class StatusOr : private internal_statusor::OperatorBase<T>,
|
|
|
591
624
|
|
|
592
625
|
template <
|
|
593
626
|
typename U, typename... Args,
|
|
594
|
-
|
|
627
|
+
std::enable_if_t<
|
|
595
628
|
std::is_constructible<T, std::initializer_list<U>&, Args&&...>::value,
|
|
596
629
|
int> = 0>
|
|
597
630
|
T& emplace(std::initializer_list<U> ilist,
|
|
@@ -714,14 +747,14 @@ inline void StatusOr<T>::Assign(StatusOr<U>&& other) {
|
|
|
714
747
|
}
|
|
715
748
|
template <typename T>
|
|
716
749
|
template <typename... Args>
|
|
717
|
-
StatusOr<T>::StatusOr(
|
|
718
|
-
: Base(
|
|
750
|
+
StatusOr<T>::StatusOr(std::in_place_t, Args&&... args)
|
|
751
|
+
: Base(std::in_place, std::forward<Args>(args)...) {}
|
|
719
752
|
|
|
720
753
|
template <typename T>
|
|
721
754
|
template <typename U, typename... Args>
|
|
722
|
-
StatusOr<T>::StatusOr(
|
|
755
|
+
StatusOr<T>::StatusOr(std::in_place_t, std::initializer_list<U> ilist,
|
|
723
756
|
Args&&... args)
|
|
724
|
-
: Base(
|
|
757
|
+
: Base(std::in_place, ilist, std::forward<Args>(args)...) {}
|
|
725
758
|
|
|
726
759
|
template <typename T>
|
|
727
760
|
const Status& StatusOr<T>::status() const& {
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
#include "absl/status/statusor.h"
|
|
16
16
|
|
|
17
|
+
#include <any>
|
|
17
18
|
#include <array>
|
|
18
19
|
#include <cstddef>
|
|
19
20
|
#include <cstdint>
|
|
@@ -25,6 +26,7 @@
|
|
|
25
26
|
#include <string>
|
|
26
27
|
#include <type_traits>
|
|
27
28
|
#include <utility>
|
|
29
|
+
#include <variant>
|
|
28
30
|
#include <vector>
|
|
29
31
|
|
|
30
32
|
#include "gmock/gmock.h"
|
|
@@ -35,8 +37,7 @@
|
|
|
35
37
|
#include "absl/status/status_matchers.h"
|
|
36
38
|
#include "absl/strings/str_cat.h"
|
|
37
39
|
#include "absl/strings/string_view.h"
|
|
38
|
-
#include "absl/types/
|
|
39
|
-
#include "absl/types/variant.h"
|
|
40
|
+
#include "absl/types/source_location.h"
|
|
40
41
|
#include "absl/utility/utility.h"
|
|
41
42
|
|
|
42
43
|
namespace {
|
|
@@ -114,7 +115,7 @@ class CopyNoAssign {
|
|
|
114
115
|
|
|
115
116
|
absl::StatusOr<std::unique_ptr<int>> ReturnUniquePtr() {
|
|
116
117
|
// Uses implicit constructor from T&&
|
|
117
|
-
return
|
|
118
|
+
return std::make_unique<int>(0);
|
|
118
119
|
}
|
|
119
120
|
|
|
120
121
|
TEST(StatusOr, ElementType) {
|
|
@@ -357,7 +358,7 @@ struct Foo {
|
|
|
357
358
|
};
|
|
358
359
|
|
|
359
360
|
TEST(StatusOr, InPlaceConstruction) {
|
|
360
|
-
EXPECT_THAT(absl::StatusOr<Foo>(
|
|
361
|
+
EXPECT_THAT(absl::StatusOr<Foo>(std::in_place, 10),
|
|
361
362
|
IsOkAndHolds(Field(&Foo::x, 10)));
|
|
362
363
|
}
|
|
363
364
|
|
|
@@ -369,8 +370,8 @@ struct InPlaceHelper {
|
|
|
369
370
|
};
|
|
370
371
|
|
|
371
372
|
TEST(StatusOr, InPlaceInitListConstruction) {
|
|
372
|
-
absl::StatusOr<InPlaceHelper> status_or(
|
|
373
|
-
|
|
373
|
+
absl::StatusOr<InPlaceHelper> status_or(std::in_place, {10, 11, 12},
|
|
374
|
+
std::make_unique<int>(13));
|
|
374
375
|
EXPECT_THAT(status_or, IsOkAndHolds(AllOf(
|
|
375
376
|
Field(&InPlaceHelper::x, ElementsAre(10, 11, 12)),
|
|
376
377
|
Field(&InPlaceHelper::y, Pointee(13)))));
|
|
@@ -389,9 +390,9 @@ TEST(StatusOr, Emplace) {
|
|
|
389
390
|
}
|
|
390
391
|
|
|
391
392
|
TEST(StatusOr, EmplaceInitializerList) {
|
|
392
|
-
absl::StatusOr<InPlaceHelper> status_or(
|
|
393
|
-
|
|
394
|
-
status_or.emplace({1, 2, 3},
|
|
393
|
+
absl::StatusOr<InPlaceHelper> status_or(std::in_place, {10, 11, 12},
|
|
394
|
+
std::make_unique<int>(13));
|
|
395
|
+
status_or.emplace({1, 2, 3}, std::make_unique<int>(4));
|
|
395
396
|
EXPECT_THAT(status_or,
|
|
396
397
|
IsOkAndHolds(AllOf(Field(&InPlaceHelper::x, ElementsAre(1, 2, 3)),
|
|
397
398
|
Field(&InPlaceHelper::y, Pointee(4)))));
|
|
@@ -399,7 +400,7 @@ TEST(StatusOr, EmplaceInitializerList) {
|
|
|
399
400
|
EXPECT_FALSE(status_or.ok());
|
|
400
401
|
EXPECT_EQ(status_or.status().code(), absl::StatusCode::kInvalidArgument);
|
|
401
402
|
EXPECT_EQ(status_or.status().message(), "msg");
|
|
402
|
-
status_or.emplace({1, 2, 3},
|
|
403
|
+
status_or.emplace({1, 2, 3}, std::make_unique<int>(4));
|
|
403
404
|
EXPECT_THAT(status_or,
|
|
404
405
|
IsOkAndHolds(AllOf(Field(&InPlaceHelper::x, ElementsAre(1, 2, 3)),
|
|
405
406
|
Field(&InPlaceHelper::y, Pointee(4)))));
|
|
@@ -696,13 +697,13 @@ TEST(StatusOr, ExplicitConstruction) {
|
|
|
696
697
|
TEST(StatusOr, ImplicitConstruction) {
|
|
697
698
|
// Check implicit casting works.
|
|
698
699
|
auto status_or =
|
|
699
|
-
absl::implicit_cast<absl::StatusOr<
|
|
700
|
+
absl::implicit_cast<absl::StatusOr<std::variant<int, std::string>>>(10);
|
|
700
701
|
EXPECT_THAT(status_or, IsOkAndHolds(VariantWith<int>(10)));
|
|
701
702
|
}
|
|
702
703
|
|
|
703
704
|
TEST(StatusOr, ImplicitConstructionFromInitliazerList) {
|
|
704
705
|
// Note: dropping the explicit std::initializer_list<int> is not supported
|
|
705
|
-
// by absl::StatusOr or
|
|
706
|
+
// by absl::StatusOr or std::optional.
|
|
706
707
|
auto status_or =
|
|
707
708
|
absl::implicit_cast<absl::StatusOr<std::vector<int>>>({{10, 20, 30}});
|
|
708
709
|
EXPECT_THAT(status_or, IsOkAndHolds(ElementsAre(10, 20, 30)));
|
|
@@ -710,7 +711,7 @@ TEST(StatusOr, ImplicitConstructionFromInitliazerList) {
|
|
|
710
711
|
|
|
711
712
|
TEST(StatusOr, UniquePtrImplicitConstruction) {
|
|
712
713
|
auto status_or = absl::implicit_cast<absl::StatusOr<std::unique_ptr<Base1>>>(
|
|
713
|
-
|
|
714
|
+
std::make_unique<Derived>());
|
|
714
715
|
EXPECT_THAT(status_or, IsOkAndHolds(Ne(nullptr)));
|
|
715
716
|
}
|
|
716
717
|
|
|
@@ -796,49 +797,49 @@ TEST(StatusOr, CopyAndMoveAbility) {
|
|
|
796
797
|
}
|
|
797
798
|
|
|
798
799
|
TEST(StatusOr, StatusOrAnyCopyAndMoveConstructorTests) {
|
|
799
|
-
absl::StatusOr<
|
|
800
|
-
absl::StatusOr<
|
|
800
|
+
absl::StatusOr<std::any> status_or = CopyDetector(10);
|
|
801
|
+
absl::StatusOr<std::any> status_error = absl::InvalidArgumentError("foo");
|
|
801
802
|
EXPECT_THAT(
|
|
802
803
|
status_or,
|
|
803
804
|
IsOkAndHolds(AnyWith<CopyDetector>(CopyDetectorHas(10, true, false))));
|
|
804
|
-
absl::StatusOr<
|
|
805
|
+
absl::StatusOr<std::any> a = status_or;
|
|
805
806
|
EXPECT_THAT(
|
|
806
807
|
a, IsOkAndHolds(AnyWith<CopyDetector>(CopyDetectorHas(10, false, true))));
|
|
807
|
-
absl::StatusOr<
|
|
808
|
+
absl::StatusOr<std::any> a_err = status_error;
|
|
808
809
|
EXPECT_THAT(a_err, Not(IsOk()));
|
|
809
810
|
|
|
810
|
-
const absl::StatusOr<
|
|
811
|
+
const absl::StatusOr<std::any>& cref = status_or;
|
|
811
812
|
// No lint for no-change copy.
|
|
812
|
-
absl::StatusOr<
|
|
813
|
+
absl::StatusOr<std::any> b = cref; // NOLINT
|
|
813
814
|
EXPECT_THAT(
|
|
814
815
|
b, IsOkAndHolds(AnyWith<CopyDetector>(CopyDetectorHas(10, false, true))));
|
|
815
|
-
const absl::StatusOr<
|
|
816
|
+
const absl::StatusOr<std::any>& cref_err = status_error;
|
|
816
817
|
// No lint for no-change copy.
|
|
817
|
-
absl::StatusOr<
|
|
818
|
+
absl::StatusOr<std::any> b_err = cref_err; // NOLINT
|
|
818
819
|
EXPECT_THAT(b_err, Not(IsOk()));
|
|
819
820
|
|
|
820
|
-
absl::StatusOr<
|
|
821
|
+
absl::StatusOr<std::any> c = std::move(status_or);
|
|
821
822
|
EXPECT_THAT(
|
|
822
823
|
c, IsOkAndHolds(AnyWith<CopyDetector>(CopyDetectorHas(10, true, false))));
|
|
823
|
-
absl::StatusOr<
|
|
824
|
+
absl::StatusOr<std::any> c_err = std::move(status_error);
|
|
824
825
|
EXPECT_THAT(c_err, Not(IsOk()));
|
|
825
826
|
}
|
|
826
827
|
|
|
827
828
|
TEST(StatusOr, StatusOrAnyCopyAndMoveAssignment) {
|
|
828
|
-
absl::StatusOr<
|
|
829
|
-
absl::StatusOr<
|
|
830
|
-
absl::StatusOr<
|
|
829
|
+
absl::StatusOr<std::any> status_or = CopyDetector(10);
|
|
830
|
+
absl::StatusOr<std::any> status_error = absl::InvalidArgumentError("foo");
|
|
831
|
+
absl::StatusOr<std::any> a;
|
|
831
832
|
a = status_or;
|
|
832
833
|
EXPECT_THAT(
|
|
833
834
|
a, IsOkAndHolds(AnyWith<CopyDetector>(CopyDetectorHas(10, false, true))));
|
|
834
835
|
a = status_error;
|
|
835
836
|
EXPECT_THAT(a, Not(IsOk()));
|
|
836
837
|
|
|
837
|
-
const absl::StatusOr<
|
|
838
|
+
const absl::StatusOr<std::any>& cref = status_or;
|
|
838
839
|
a = cref;
|
|
839
840
|
EXPECT_THAT(
|
|
840
841
|
a, IsOkAndHolds(AnyWith<CopyDetector>(CopyDetectorHas(10, false, true))));
|
|
841
|
-
const absl::StatusOr<
|
|
842
|
+
const absl::StatusOr<std::any>& cref_err = status_error;
|
|
842
843
|
a = cref_err;
|
|
843
844
|
EXPECT_THAT(a, Not(IsOk()));
|
|
844
845
|
a = std::move(status_or);
|
|
@@ -876,15 +877,15 @@ TEST(StatusOr, StatusOrCopyAndMoveTestsAssignment) {
|
|
|
876
877
|
}
|
|
877
878
|
|
|
878
879
|
TEST(StatusOr, AbslAnyAssignment) {
|
|
879
|
-
EXPECT_FALSE((std::is_assignable<absl::StatusOr<
|
|
880
|
+
EXPECT_FALSE((std::is_assignable<absl::StatusOr<std::any>,
|
|
880
881
|
absl::StatusOr<int>>::value));
|
|
881
|
-
absl::StatusOr<
|
|
882
|
+
absl::StatusOr<std::any> status_or;
|
|
882
883
|
status_or = absl::InvalidArgumentError("foo");
|
|
883
884
|
EXPECT_THAT(status_or, Not(IsOk()));
|
|
884
885
|
}
|
|
885
886
|
|
|
886
887
|
TEST(StatusOr, ImplicitAssignment) {
|
|
887
|
-
absl::StatusOr<
|
|
888
|
+
absl::StatusOr<std::variant<int, std::string>> status_or;
|
|
888
889
|
status_or = 10;
|
|
889
890
|
EXPECT_THAT(status_or, IsOkAndHolds(VariantWith<int>(10)));
|
|
890
891
|
}
|
|
@@ -902,7 +903,7 @@ TEST(StatusOr, ImplicitCastFromInitializerList) {
|
|
|
902
903
|
|
|
903
904
|
TEST(StatusOr, UniquePtrImplicitAssignment) {
|
|
904
905
|
absl::StatusOr<std::unique_ptr<Base1>> status_or;
|
|
905
|
-
status_or =
|
|
906
|
+
status_or = std::make_unique<Derived>();
|
|
906
907
|
EXPECT_THAT(status_or, IsOkAndHolds(Ne(nullptr)));
|
|
907
908
|
}
|
|
908
909
|
|
|
@@ -1397,14 +1398,14 @@ TEST(StatusOr, ValueOrDefault) {
|
|
|
1397
1398
|
}
|
|
1398
1399
|
|
|
1399
1400
|
TEST(StatusOr, MoveOnlyValueOrOk) {
|
|
1400
|
-
EXPECT_THAT(absl::StatusOr<std::unique_ptr<int>>(
|
|
1401
|
-
.value_or(
|
|
1401
|
+
EXPECT_THAT(absl::StatusOr<std::unique_ptr<int>>(std::make_unique<int>(0))
|
|
1402
|
+
.value_or(std::make_unique<int>(-1)),
|
|
1402
1403
|
Pointee(0));
|
|
1403
1404
|
}
|
|
1404
1405
|
|
|
1405
1406
|
TEST(StatusOr, MoveOnlyValueOrDefault) {
|
|
1406
1407
|
EXPECT_THAT(absl::StatusOr<std::unique_ptr<int>>(absl::CancelledError())
|
|
1407
|
-
.value_or(
|
|
1408
|
+
.value_or(std::make_unique<int>(-1)),
|
|
1408
1409
|
Pointee(-1));
|
|
1409
1410
|
}
|
|
1410
1411
|
|
|
@@ -1800,6 +1801,102 @@ TEST(StatusOr, ErrorPrinting) {
|
|
|
1800
1801
|
EXPECT_THAT(absl::StrCat(print_me), error_matcher);
|
|
1801
1802
|
}
|
|
1802
1803
|
|
|
1804
|
+
#ifdef ABSL_INTERNAL_HAVE_BUILTIN_LINE_FILE
|
|
1805
|
+
#define GET_SOURCE_LOCATION(offset) __builtin_LINE() - offset
|
|
1806
|
+
#else
|
|
1807
|
+
#define GET_SOURCE_LOCATION(offset) 1
|
|
1808
|
+
#endif
|
|
1809
|
+
|
|
1810
|
+
template <typename T>
|
|
1811
|
+
void CheckSourceLocation(
|
|
1812
|
+
const absl::StatusOr<T>& status_or, std::vector<int> lines = {},
|
|
1813
|
+
absl::SourceLocation loc = absl::SourceLocation::current()) {
|
|
1814
|
+
ASSERT_EQ(status_or.GetSourceLocations().size(), lines.size())
|
|
1815
|
+
<< "Size check failed at " << loc.line();
|
|
1816
|
+
for (size_t i = 0; i < lines.size(); ++i) {
|
|
1817
|
+
EXPECT_EQ(absl::string_view(status_or.GetSourceLocations()[i].file_name()),
|
|
1818
|
+
absl::string_view(loc.file_name()))
|
|
1819
|
+
<< "File name check failed at " << loc.line();
|
|
1820
|
+
EXPECT_EQ(status_or.GetSourceLocations()[i].line(), lines[i])
|
|
1821
|
+
<< "Line check failed at " << loc.line();
|
|
1822
|
+
}
|
|
1823
|
+
}
|
|
1824
|
+
|
|
1825
|
+
TEST(StatusOr, AddSourceLocation) {
|
|
1826
|
+
constexpr int kMaxIter = 10;
|
|
1827
|
+
{
|
|
1828
|
+
// Status that ignores source location.
|
|
1829
|
+
absl::StatusOr<int> status_ignores_source_location[] = {
|
|
1830
|
+
123, absl::Status(absl::StatusCode::kInternal, "")};
|
|
1831
|
+
for (absl::StatusOr<int>& s : status_ignores_source_location) {
|
|
1832
|
+
for (int i = 0; i < kMaxIter; ++i) {
|
|
1833
|
+
s.AddSourceLocation(absl::SourceLocation::current());
|
|
1834
|
+
s.AddSourceLocation(absl::SourceLocation());
|
|
1835
|
+
}
|
|
1836
|
+
CheckSourceLocation(s);
|
|
1837
|
+
}
|
|
1838
|
+
}
|
|
1839
|
+
{
|
|
1840
|
+
// Default SourceLocation is not added.
|
|
1841
|
+
absl::StatusOr<int> status = absl::Status(
|
|
1842
|
+
absl::StatusCode::kInternal, "foo", absl::SourceLocation::current());
|
|
1843
|
+
int line = GET_SOURCE_LOCATION(1);
|
|
1844
|
+
for (int i = 0; i < kMaxIter; ++i) {
|
|
1845
|
+
status.AddSourceLocation(absl::SourceLocation());
|
|
1846
|
+
}
|
|
1847
|
+
CheckSourceLocation(status, {line});
|
|
1848
|
+
}
|
|
1849
|
+
{
|
|
1850
|
+
// Default SourceLocation is not added.
|
|
1851
|
+
absl::StatusOr<int> status = absl::Status(
|
|
1852
|
+
absl::StatusCode::kInternal, "foo", absl::SourceLocation::current());
|
|
1853
|
+
int line = GET_SOURCE_LOCATION(1);
|
|
1854
|
+
std::vector<int> lines = {line};
|
|
1855
|
+
lines.reserve(1 + kMaxIter);
|
|
1856
|
+
for (int i = 0; i < kMaxIter; ++i) {
|
|
1857
|
+
status.AddSourceLocation(absl::SourceLocation::current());
|
|
1858
|
+
lines.push_back(GET_SOURCE_LOCATION(1));
|
|
1859
|
+
}
|
|
1860
|
+
CheckSourceLocation(status, lines);
|
|
1861
|
+
}
|
|
1862
|
+
}
|
|
1863
|
+
|
|
1864
|
+
absl::StatusOr<int>&& IsRvalueStatus(absl::StatusOr<int>&& s) {
|
|
1865
|
+
return std::move(s);
|
|
1866
|
+
}
|
|
1867
|
+
|
|
1868
|
+
TEST(StatusOr, WithSourceLocationMove) {
|
|
1869
|
+
absl::StatusOr<int> original = absl::Status(
|
|
1870
|
+
absl::StatusCode::kInternal, "message", absl::SourceLocation::current());
|
|
1871
|
+
int line = GET_SOURCE_LOCATION(1);
|
|
1872
|
+
|
|
1873
|
+
const absl::StatusOr<int> status_or = IsRvalueStatus(
|
|
1874
|
+
std::move(original).WithSourceLocation(absl::SourceLocation::current()));
|
|
1875
|
+
int line2 = GET_SOURCE_LOCATION(1);
|
|
1876
|
+
|
|
1877
|
+
CheckSourceLocation(status_or, {line, line2});
|
|
1878
|
+
EXPECT_FALSE(status_or.ok());
|
|
1879
|
+
}
|
|
1880
|
+
|
|
1881
|
+
TEST(StatusOr, WithSourceLocationReturn) {
|
|
1882
|
+
absl::SourceLocation loc1 = absl::SourceLocation::current();
|
|
1883
|
+
int line1 = GET_SOURCE_LOCATION(1);
|
|
1884
|
+
absl::SourceLocation loc2 = absl::SourceLocation::current();
|
|
1885
|
+
int line2 = GET_SOURCE_LOCATION(1);
|
|
1886
|
+
|
|
1887
|
+
const auto return_error = [&loc1]() -> absl::StatusOr<int> {
|
|
1888
|
+
return absl::InvalidArgumentError("I am error", loc1);
|
|
1889
|
+
};
|
|
1890
|
+
const auto return_error_with_source_location =
|
|
1891
|
+
[&return_error, &loc2]() -> absl::StatusOr<int> {
|
|
1892
|
+
return return_error().WithSourceLocation(loc2);
|
|
1893
|
+
};
|
|
1894
|
+
|
|
1895
|
+
absl::StatusOr<int> status_or = return_error_with_source_location();
|
|
1896
|
+
CheckSourceLocation(status_or, {line1, line2});
|
|
1897
|
+
EXPECT_FALSE(status_or.ok());
|
|
1898
|
+
}
|
|
1899
|
+
|
|
1803
1900
|
TEST(StatusOr, SupportsReferenceTypes) {
|
|
1804
1901
|
int i = 1;
|
|
1805
1902
|
absl::StatusOr<int&> s = i;
|