re2 1.24.0 → 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 +63 -4
- package/binding.gyp +1 -2
- package/lib/addon.cc +9 -5
- package/lib/exec.cc +4 -4
- package/lib/match.cc +4 -4
- package/lib/new.cc +6 -6
- package/lib/pattern.cc +148 -1
- package/lib/replace.cc +5 -4
- package/lib/search.cc +1 -1
- package/lib/set.cc +85 -10
- package/lib/test.cc +1 -1
- package/lib/unicode_properties.h +15840 -0
- package/lib/wrapped_re2.h +40 -4
- package/lib/wrapped_re2_set.h +3 -1
- package/llms-full.txt +497 -0
- package/llms.txt +135 -0
- package/package.json +19 -11
- package/re2.d.ts +2 -0
- package/re2.js +1 -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 +53 -9
- 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 +86 -27
- 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 +183 -35
- 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 +22 -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/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
|
@@ -48,25 +48,25 @@ struct IsSpecializationImpl : std::false_type {};
|
|
|
48
48
|
template <template <typename...> class T, typename... Args>
|
|
49
49
|
struct IsSpecializationImpl<T<Args...>, T> : std::true_type {};
|
|
50
50
|
template <typename C, template <typename...> class T>
|
|
51
|
-
using IsSpecialization = IsSpecializationImpl<
|
|
51
|
+
using IsSpecialization = IsSpecializationImpl<std::decay_t<C>, T>;
|
|
52
52
|
|
|
53
53
|
template <typename C>
|
|
54
54
|
struct IsArrayImpl : std::false_type {};
|
|
55
55
|
template <template <typename, size_t> class A, typename T, size_t N>
|
|
56
56
|
struct IsArrayImpl<A<T, N>> : std::is_same<A<T, N>, std::array<T, N>> {};
|
|
57
57
|
template <typename C>
|
|
58
|
-
using IsArray = IsArrayImpl<
|
|
58
|
+
using IsArray = IsArrayImpl<std::decay_t<C>>;
|
|
59
59
|
|
|
60
60
|
template <typename C>
|
|
61
61
|
struct IsBitsetImpl : std::false_type {};
|
|
62
62
|
template <template <size_t> class B, size_t N>
|
|
63
63
|
struct IsBitsetImpl<B<N>> : std::is_same<B<N>, std::bitset<N>> {};
|
|
64
64
|
template <typename C>
|
|
65
|
-
using IsBitset = IsBitsetImpl<
|
|
65
|
+
using IsBitset = IsBitsetImpl<std::decay_t<C>>;
|
|
66
66
|
|
|
67
67
|
template <typename C>
|
|
68
68
|
struct IsSTLContainer
|
|
69
|
-
:
|
|
69
|
+
: std::disjunction<
|
|
70
70
|
IsArray<C>, IsBitset<C>, IsSpecialization<C, std::deque>,
|
|
71
71
|
IsSpecialization<C, std::forward_list>,
|
|
72
72
|
IsSpecialization<C, std::list>, IsSpecialization<C, std::map>,
|
|
@@ -85,14 +85,14 @@ struct IsBaseOfSpecializationImpl : std::false_type {};
|
|
|
85
85
|
// template.
|
|
86
86
|
template <typename C, template <typename, typename> class T>
|
|
87
87
|
struct IsBaseOfSpecializationImpl<
|
|
88
|
-
C, T,
|
|
88
|
+
C, T, std::void_t<typename C::value_type, typename C::allocator_type>>
|
|
89
89
|
: std::is_base_of<C,
|
|
90
90
|
T<typename C::value_type, typename C::allocator_type>> {};
|
|
91
91
|
template <typename C, template <typename, typename, typename> class T>
|
|
92
92
|
struct IsBaseOfSpecializationImpl<
|
|
93
93
|
C, T,
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
std::void_t<typename C::key_type, typename C::key_compare,
|
|
95
|
+
typename C::allocator_type>>
|
|
96
96
|
: std::is_base_of<C, T<typename C::key_type, typename C::key_compare,
|
|
97
97
|
typename C::allocator_type>> {};
|
|
98
98
|
template <typename C, template <typename, typename, typename, typename> class T>
|
|
@@ -116,14 +116,14 @@ template <typename C,
|
|
|
116
116
|
template <typename, typename, typename, typename, typename> class T>
|
|
117
117
|
struct IsBaseOfSpecializationImpl<
|
|
118
118
|
C, T,
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
119
|
+
std::void_t<typename C::key_type, typename C::mapped_type,
|
|
120
|
+
typename C::hasher, typename C::key_equal,
|
|
121
|
+
typename C::allocator_type>>
|
|
122
122
|
: std::is_base_of<C, T<typename C::key_type, typename C::mapped_type,
|
|
123
123
|
typename C::hasher, typename C::key_equal,
|
|
124
124
|
typename C::allocator_type>> {};
|
|
125
125
|
template <typename C, template <typename...> class T>
|
|
126
|
-
using IsBaseOfSpecialization = IsBaseOfSpecializationImpl<
|
|
126
|
+
using IsBaseOfSpecialization = IsBaseOfSpecializationImpl<std::decay_t<C>, T>;
|
|
127
127
|
|
|
128
128
|
template <typename C>
|
|
129
129
|
struct IsBaseOfArrayImpl : std::false_type {};
|
|
@@ -131,30 +131,30 @@ template <template <typename, size_t> class A, typename T, size_t N>
|
|
|
131
131
|
struct IsBaseOfArrayImpl<A<T, N>> : std::is_base_of<A<T, N>, std::array<T, N>> {
|
|
132
132
|
};
|
|
133
133
|
template <typename C>
|
|
134
|
-
using IsBaseOfArray = IsBaseOfArrayImpl<
|
|
134
|
+
using IsBaseOfArray = IsBaseOfArrayImpl<std::decay_t<C>>;
|
|
135
135
|
|
|
136
136
|
template <typename C>
|
|
137
137
|
struct IsBaseOfBitsetImpl : std::false_type {};
|
|
138
138
|
template <template <size_t> class B, size_t N>
|
|
139
139
|
struct IsBaseOfBitsetImpl<B<N>> : std::is_base_of<B<N>, std::bitset<N>> {};
|
|
140
140
|
template <typename C>
|
|
141
|
-
using IsBaseOfBitset = IsBaseOfBitsetImpl<
|
|
141
|
+
using IsBaseOfBitset = IsBaseOfBitsetImpl<std::decay_t<C>>;
|
|
142
142
|
|
|
143
143
|
template <typename C>
|
|
144
144
|
struct IsBaseOfSTLContainer
|
|
145
|
-
:
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
145
|
+
: std::disjunction<IsBaseOfArray<C>, IsBaseOfBitset<C>,
|
|
146
|
+
IsBaseOfSpecialization<C, std::deque>,
|
|
147
|
+
IsBaseOfSpecialization<C, std::forward_list>,
|
|
148
|
+
IsBaseOfSpecialization<C, std::list>,
|
|
149
|
+
IsBaseOfSpecialization<C, std::map>,
|
|
150
|
+
IsBaseOfSpecialization<C, std::multimap>,
|
|
151
|
+
IsBaseOfSpecialization<C, std::set>,
|
|
152
|
+
IsBaseOfSpecialization<C, std::multiset>,
|
|
153
|
+
IsBaseOfSpecialization<C, std::unordered_map>,
|
|
154
|
+
IsBaseOfSpecialization<C, std::unordered_multimap>,
|
|
155
|
+
IsBaseOfSpecialization<C, std::unordered_set>,
|
|
156
|
+
IsBaseOfSpecialization<C, std::unordered_multiset>,
|
|
157
|
+
IsBaseOfSpecialization<C, std::vector>> {};
|
|
158
158
|
|
|
159
159
|
template <typename C, template <typename...> class T, typename = void>
|
|
160
160
|
struct IsConvertibleToSpecializationImpl : std::false_type {};
|
|
@@ -163,14 +163,14 @@ struct IsConvertibleToSpecializationImpl : std::false_type {};
|
|
|
163
163
|
// STL template.
|
|
164
164
|
template <typename C, template <typename, typename> class T>
|
|
165
165
|
struct IsConvertibleToSpecializationImpl<
|
|
166
|
-
C, T,
|
|
166
|
+
C, T, std::void_t<typename C::value_type, typename C::allocator_type>>
|
|
167
167
|
: std::is_convertible<
|
|
168
168
|
C, T<typename C::value_type, typename C::allocator_type>> {};
|
|
169
169
|
template <typename C, template <typename, typename, typename> class T>
|
|
170
170
|
struct IsConvertibleToSpecializationImpl<
|
|
171
171
|
C, T,
|
|
172
|
-
|
|
173
|
-
|
|
172
|
+
std::void_t<typename C::key_type, typename C::key_compare,
|
|
173
|
+
typename C::allocator_type>>
|
|
174
174
|
: std::is_convertible<C, T<typename C::key_type, typename C::key_compare,
|
|
175
175
|
typename C::allocator_type>> {};
|
|
176
176
|
template <typename C, template <typename, typename, typename, typename> class T>
|
|
@@ -193,15 +193,15 @@ template <typename C,
|
|
|
193
193
|
template <typename, typename, typename, typename, typename> class T>
|
|
194
194
|
struct IsConvertibleToSpecializationImpl<
|
|
195
195
|
C, T,
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
196
|
+
std::void_t<typename C::key_type, typename C::mapped_type,
|
|
197
|
+
typename C::hasher, typename C::key_equal,
|
|
198
|
+
typename C::allocator_type>>
|
|
199
199
|
: std::is_convertible<C, T<typename C::key_type, typename C::mapped_type,
|
|
200
200
|
typename C::hasher, typename C::key_equal,
|
|
201
201
|
typename C::allocator_type>> {};
|
|
202
202
|
template <typename C, template <typename...> class T>
|
|
203
203
|
using IsConvertibleToSpecialization =
|
|
204
|
-
IsConvertibleToSpecializationImpl<
|
|
204
|
+
IsConvertibleToSpecializationImpl<std::decay_t<C>, T>;
|
|
205
205
|
|
|
206
206
|
template <typename C>
|
|
207
207
|
struct IsConvertibleToArrayImpl : std::false_type {};
|
|
@@ -209,7 +209,7 @@ template <template <typename, size_t> class A, typename T, size_t N>
|
|
|
209
209
|
struct IsConvertibleToArrayImpl<A<T, N>>
|
|
210
210
|
: std::is_convertible<A<T, N>, std::array<T, N>> {};
|
|
211
211
|
template <typename C>
|
|
212
|
-
using IsConvertibleToArray = IsConvertibleToArrayImpl<
|
|
212
|
+
using IsConvertibleToArray = IsConvertibleToArrayImpl<std::decay_t<C>>;
|
|
213
213
|
|
|
214
214
|
template <typename C>
|
|
215
215
|
struct IsConvertibleToBitsetImpl : std::false_type {};
|
|
@@ -217,11 +217,11 @@ template <template <size_t> class B, size_t N>
|
|
|
217
217
|
struct IsConvertibleToBitsetImpl<B<N>>
|
|
218
218
|
: std::is_convertible<B<N>, std::bitset<N>> {};
|
|
219
219
|
template <typename C>
|
|
220
|
-
using IsConvertibleToBitset = IsConvertibleToBitsetImpl<
|
|
220
|
+
using IsConvertibleToBitset = IsConvertibleToBitsetImpl<std::decay_t<C>>;
|
|
221
221
|
|
|
222
222
|
template <typename C>
|
|
223
223
|
struct IsConvertibleToSTLContainer
|
|
224
|
-
:
|
|
224
|
+
: std::disjunction<
|
|
225
225
|
IsConvertibleToArray<C>, IsConvertibleToBitset<C>,
|
|
226
226
|
IsConvertibleToSpecialization<C, std::deque>,
|
|
227
227
|
IsConvertibleToSpecialization<C, std::forward_list>,
|
|
@@ -238,9 +238,9 @@ struct IsConvertibleToSTLContainer
|
|
|
238
238
|
|
|
239
239
|
template <typename C>
|
|
240
240
|
struct IsStrictlyBaseOfAndConvertibleToSTLContainer
|
|
241
|
-
:
|
|
242
|
-
|
|
243
|
-
|
|
241
|
+
: std::conjunction<std::negation<IsSTLContainer<C>>,
|
|
242
|
+
IsBaseOfSTLContainer<C>,
|
|
243
|
+
IsConvertibleToSTLContainer<C>> {};
|
|
244
244
|
|
|
245
245
|
} // namespace strings_internal
|
|
246
246
|
ABSL_NAMESPACE_END
|
|
@@ -73,7 +73,7 @@ template <typename T, typename = void>
|
|
|
73
73
|
struct HasUserDefinedConvert : std::false_type {};
|
|
74
74
|
|
|
75
75
|
template <typename T>
|
|
76
|
-
struct HasUserDefinedConvert<T, void_t<decltype(AbslFormatConvert(
|
|
76
|
+
struct HasUserDefinedConvert<T, std::void_t<decltype(AbslFormatConvert(
|
|
77
77
|
std::declval<const T&>(),
|
|
78
78
|
std::declval<const FormatConversionSpec&>(),
|
|
79
79
|
std::declval<FormatSink*>()))>>
|
|
@@ -133,9 +133,8 @@ auto FormatConvertImpl(const T& v, FormatConversionSpecImpl conv,
|
|
|
133
133
|
std::declval<const FormatConversionSpec&>(),
|
|
134
134
|
std::declval<FormatSink*>())) {
|
|
135
135
|
using FormatConversionSpecT =
|
|
136
|
-
|
|
137
|
-
using FormatSinkT =
|
|
138
|
-
absl::enable_if_t<sizeof(const T& (*)()) != 0, FormatSink>;
|
|
136
|
+
std::enable_if_t<sizeof(const T& (*)()) != 0, FormatConversionSpec>;
|
|
137
|
+
using FormatSinkT = std::enable_if_t<sizeof(const T& (*)()) != 0, FormatSink>;
|
|
139
138
|
auto fcs = conv.Wrap<FormatConversionSpecT>();
|
|
140
139
|
auto fs = sink->Wrap<FormatSinkT>();
|
|
141
140
|
return AbslFormatConvert(v, fcs, &fs);
|
|
@@ -150,7 +149,7 @@ auto FormatConvertImpl(const T& v, FormatConversionSpecImpl conv,
|
|
|
150
149
|
IntegralConvertResult> {
|
|
151
150
|
if (conv.conversion_char() == FormatConversionCharInternal::v) {
|
|
152
151
|
using FormatSinkT =
|
|
153
|
-
|
|
152
|
+
std::enable_if_t<sizeof(const T& (*)()) != 0, FormatSink>;
|
|
154
153
|
auto fs = sink->Wrap<FormatSinkT>();
|
|
155
154
|
AbslStringify(fs, v);
|
|
156
155
|
return {true};
|
|
@@ -168,8 +167,7 @@ auto FormatConvertImpl(const T& v, FormatConversionSpecImpl,
|
|
|
168
167
|
std::is_void<decltype(AbslStringify(
|
|
169
168
|
std::declval<FormatSink&>(), v))>::value,
|
|
170
169
|
ArgConvertResult<FormatConversionCharSetInternal::v>> {
|
|
171
|
-
using FormatSinkT =
|
|
172
|
-
absl::enable_if_t<sizeof(const T& (*)()) != 0, FormatSink>;
|
|
170
|
+
using FormatSinkT = std::enable_if_t<sizeof(const T& (*)()) != 0, FormatSink>;
|
|
173
171
|
auto fs = sink->Wrap<FormatSinkT>();
|
|
174
172
|
AbslStringify(fs, v);
|
|
175
173
|
return {true};
|
|
@@ -214,8 +212,7 @@ ArgConvertResult<FormatConversionCharSetInternal::p> FormatConvertImpl(
|
|
|
214
212
|
|
|
215
213
|
// Strings.
|
|
216
214
|
using StringConvertResult = ArgConvertResult<FormatConversionCharSetUnion(
|
|
217
|
-
FormatConversionCharSetInternal::s,
|
|
218
|
-
FormatConversionCharSetInternal::v)>;
|
|
215
|
+
FormatConversionCharSetInternal::s, FormatConversionCharSetInternal::v)>;
|
|
219
216
|
StringConvertResult FormatConvertImpl(const std::string& v,
|
|
220
217
|
FormatConversionSpecImpl conv,
|
|
221
218
|
FormatSinkImpl* sink);
|
|
@@ -237,8 +234,7 @@ inline StringConvertResult FormatConvertImpl(std::string_view v,
|
|
|
237
234
|
#endif // !ABSL_USES_STD_STRING_VIEW
|
|
238
235
|
|
|
239
236
|
using StringPtrConvertResult = ArgConvertResult<FormatConversionCharSetUnion(
|
|
240
|
-
FormatConversionCharSetInternal::s,
|
|
241
|
-
FormatConversionCharSetInternal::p)>;
|
|
237
|
+
FormatConversionCharSetInternal::s, FormatConversionCharSetInternal::p)>;
|
|
242
238
|
StringPtrConvertResult FormatConvertImpl(const char* v,
|
|
243
239
|
FormatConversionSpecImpl conv,
|
|
244
240
|
FormatSinkImpl* sink);
|
|
@@ -303,8 +299,7 @@ FloatingConvertResult FormatConvertImpl(long double v,
|
|
|
303
299
|
// Chars.
|
|
304
300
|
CharConvertResult FormatConvertImpl(char v, FormatConversionSpecImpl conv,
|
|
305
301
|
FormatSinkImpl* sink);
|
|
306
|
-
CharConvertResult FormatConvertImpl(wchar_t v,
|
|
307
|
-
FormatConversionSpecImpl conv,
|
|
302
|
+
CharConvertResult FormatConvertImpl(wchar_t v, FormatConversionSpecImpl conv,
|
|
308
303
|
FormatSinkImpl* sink);
|
|
309
304
|
|
|
310
305
|
// Ints.
|
|
@@ -345,7 +340,7 @@ IntegralConvertResult FormatConvertImpl(uint128 v,
|
|
|
345
340
|
|
|
346
341
|
// This function needs to be a template due to ambiguity regarding type
|
|
347
342
|
// conversions.
|
|
348
|
-
template <typename T, enable_if_t<std::is_same<T, bool>::value, int> = 0>
|
|
343
|
+
template <typename T, std::enable_if_t<std::is_same<T, bool>::value, int> = 0>
|
|
349
344
|
IntegralConvertResult FormatConvertImpl(T v, FormatConversionSpecImpl conv,
|
|
350
345
|
FormatSinkImpl* sink) {
|
|
351
346
|
if (conv.conversion_char() == FormatConversionCharInternal::v) {
|
|
@@ -381,7 +376,7 @@ struct FormatCountCaptureHelper {
|
|
|
381
376
|
static ArgConvertResult<FormatConversionCharSetInternal::n> ConvertHelper(
|
|
382
377
|
const FormatCountCapture& v, FormatConversionSpecImpl conv,
|
|
383
378
|
FormatSinkImpl* sink) {
|
|
384
|
-
const
|
|
379
|
+
const std::enable_if_t<sizeof(T) != 0, FormatCountCapture>& v2 = v;
|
|
385
380
|
|
|
386
381
|
if (conv.conversion_char() !=
|
|
387
382
|
str_format_internal::FormatConversionCharInternal::n) {
|
|
@@ -484,8 +479,7 @@ class FormatArgImpl {
|
|
|
484
479
|
const wchar_t*,
|
|
485
480
|
typename std::conditional<
|
|
486
481
|
!kHasUserDefined && std::is_convertible<T, VoidPtr>::value,
|
|
487
|
-
VoidPtr,
|
|
488
|
-
const T&>::type>::type>::type;
|
|
482
|
+
VoidPtr, const T&>::type>::type>::type;
|
|
489
483
|
};
|
|
490
484
|
template <typename T>
|
|
491
485
|
struct DecayType<
|
|
@@ -598,13 +592,12 @@ class FormatArgImpl {
|
|
|
598
592
|
return ToInt<T>(arg, static_cast<int*>(out), std::is_integral<T>(),
|
|
599
593
|
std::is_enum<T>());
|
|
600
594
|
}
|
|
601
|
-
if (ABSL_PREDICT_FALSE(
|
|
602
|
-
|
|
595
|
+
if (ABSL_PREDICT_FALSE(
|
|
596
|
+
!Contains(ArgumentToConv<T>(), spec.conversion_char()))) {
|
|
603
597
|
return false;
|
|
604
598
|
}
|
|
605
599
|
return str_format_internal::FormatConvertImpl(
|
|
606
|
-
Manager<T>::Value(arg), spec,
|
|
607
|
-
static_cast<FormatSinkImpl*>(out))
|
|
600
|
+
Manager<T>::Value(arg), spec, static_cast<FormatSinkImpl*>(out))
|
|
608
601
|
.value;
|
|
609
602
|
}
|
|
610
603
|
|
|
@@ -653,7 +646,6 @@ class FormatArgImpl {
|
|
|
653
646
|
|
|
654
647
|
ABSL_INTERNAL_FORMAT_DISPATCH_OVERLOADS_EXPAND_(extern);
|
|
655
648
|
|
|
656
|
-
|
|
657
649
|
} // namespace str_format_internal
|
|
658
650
|
ABSL_NAMESPACE_END
|
|
659
651
|
} // namespace absl
|
|
@@ -116,7 +116,7 @@ class FormatSpecTemplate
|
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
template <FormatConversionCharSet... C, size_t... I>
|
|
119
|
-
static bool CheckMatches(
|
|
119
|
+
static bool CheckMatches(std::index_sequence<I...>) {
|
|
120
120
|
bool res[] = {true, CheckMatch<Args, C, I + 1>()...};
|
|
121
121
|
(void)res;
|
|
122
122
|
return true;
|
|
@@ -173,7 +173,7 @@ class FormatSpecTemplate
|
|
|
173
173
|
FormatSpecTemplate(const ExtendedParsedFormat<C...>& pc) // NOLINT
|
|
174
174
|
: Base(&pc) {
|
|
175
175
|
CheckArity<sizeof...(C), sizeof...(Args)>();
|
|
176
|
-
CheckMatches<C...>(
|
|
176
|
+
CheckMatches<C...>(std::make_index_sequence<sizeof...(C)>{});
|
|
177
177
|
}
|
|
178
178
|
};
|
|
179
179
|
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
#include <cstring>
|
|
25
25
|
#include <cwctype>
|
|
26
26
|
#include <limits>
|
|
27
|
+
#include <optional>
|
|
27
28
|
#include <set>
|
|
28
29
|
#include <sstream>
|
|
29
30
|
#include <string>
|
|
@@ -44,7 +45,6 @@
|
|
|
44
45
|
#include "absl/strings/match.h"
|
|
45
46
|
#include "absl/strings/str_format.h"
|
|
46
47
|
#include "absl/strings/string_view.h"
|
|
47
|
-
#include "absl/types/optional.h"
|
|
48
48
|
#include "absl/types/span.h"
|
|
49
49
|
|
|
50
50
|
namespace absl {
|
|
@@ -285,9 +285,6 @@ const NativePrintfTraits &VerifyNativeImplementation() {
|
|
|
285
285
|
}
|
|
286
286
|
|
|
287
287
|
bool IsNativeHexFloatConversion(char f) { return f == 'a' || f == 'A'; }
|
|
288
|
-
bool IsNativeFloatConversion(char f) {
|
|
289
|
-
return f == 'f' || f == 'F' || f == 'e' || f == 'E' || f == 'a' || f == 'A';
|
|
290
|
-
}
|
|
291
288
|
|
|
292
289
|
class FormatConvertTest : public ::testing::Test { };
|
|
293
290
|
|
|
@@ -593,11 +590,11 @@ TYPED_TEST_P(TypedFormatConvertTest, AllIntsWithFlags) {
|
|
|
593
590
|
}
|
|
594
591
|
|
|
595
592
|
template <typename T>
|
|
596
|
-
|
|
593
|
+
std::optional<std::string> StrPrintChar(T c) {
|
|
597
594
|
return StrPrint("%c", static_cast<int>(c));
|
|
598
595
|
}
|
|
599
596
|
template <>
|
|
600
|
-
|
|
597
|
+
std::optional<std::string> StrPrintChar(wchar_t c) {
|
|
601
598
|
// musl libc has a bug where ("%lc", 0) writes no characters, and Android
|
|
602
599
|
// doesn't support forcing UTF-8 via setlocale(). Hardcode the expected
|
|
603
600
|
// answers for ASCII inputs to maximize test coverage on these platforms.
|
|
@@ -611,7 +608,7 @@ absl::optional<std::string> StrPrintChar(wchar_t c) {
|
|
|
611
608
|
// call.
|
|
612
609
|
std::string old_locale = setlocale(LC_CTYPE, nullptr);
|
|
613
610
|
if (!setlocale(LC_CTYPE, "en_US.UTF-8")) {
|
|
614
|
-
return
|
|
611
|
+
return std::nullopt;
|
|
615
612
|
}
|
|
616
613
|
const std::string output = StrPrint("%lc", static_cast<wint_t>(c));
|
|
617
614
|
setlocale(LC_CTYPE, old_locale.c_str());
|
|
@@ -666,7 +663,7 @@ TYPED_TEST_P(TypedFormatConvertTest, Char) {
|
|
|
666
663
|
SCOPED_TRACE(Esc(c));
|
|
667
664
|
const FormatArgImpl args[] = {FormatArgImpl(c)};
|
|
668
665
|
UntypedFormatSpecImpl format("%c");
|
|
669
|
-
|
|
666
|
+
std::optional<std::string> result = StrPrintChar(c);
|
|
670
667
|
if (result.has_value()) {
|
|
671
668
|
EXPECT_EQ(result.value(), FormatPack(format, absl::MakeSpan(args)));
|
|
672
669
|
}
|
|
@@ -804,12 +801,6 @@ void TestWithMultipleFormatsHelper(Floating tested_float) {
|
|
|
804
801
|
'e', 'E'}) {
|
|
805
802
|
std::string fmt_str = std::string(fmt) + f;
|
|
806
803
|
|
|
807
|
-
if (fmt == absl::string_view("%.5000") && !IsNativeFloatConversion(f)) {
|
|
808
|
-
// This particular test takes way too long with snprintf.
|
|
809
|
-
// Disable for the case we are not implementing natively.
|
|
810
|
-
continue;
|
|
811
|
-
}
|
|
812
|
-
|
|
813
804
|
if (IsNativeHexFloatConversion(f) &&
|
|
814
805
|
!native_traits.hex_float_has_glibc_rounding) {
|
|
815
806
|
continue;
|
|
@@ -1074,6 +1065,13 @@ TEST_F(FormatConvertTest, DoubleRound) {
|
|
|
1074
1065
|
|
|
1075
1066
|
// Rounding large negative exponent first digit
|
|
1076
1067
|
EXPECT_EQ(format("%0.1e", -8.956e-294), "-9.0e-294");
|
|
1068
|
+
|
|
1069
|
+
// FormatGNegativeExpSlow: 2^(-77) has decomposed.exponent < -128.
|
|
1070
|
+
EXPECT_EQ(format("%.10g", std::ldexp(1.0, -77)), "6.6174449e-24");
|
|
1071
|
+
|
|
1072
|
+
// FormatGPositiveExpSlow: 2^130 has total_bits > 128.
|
|
1073
|
+
EXPECT_EQ(format("%.10g", std::ldexp(1.0, 130)),
|
|
1074
|
+
"1.361129468e+39");
|
|
1077
1075
|
}
|
|
1078
1076
|
|
|
1079
1077
|
TEST_F(FormatConvertTest, DoubleRoundA) {
|
|
@@ -1332,12 +1330,6 @@ TEST_F(FormatConvertTest, LongDouble) {
|
|
|
1332
1330
|
'e', 'E'}) {
|
|
1333
1331
|
std::string fmt_str = std::string(fmt) + 'L' + f;
|
|
1334
1332
|
|
|
1335
|
-
if (fmt == absl::string_view("%.5000") && !IsNativeFloatConversion(f)) {
|
|
1336
|
-
// This particular test takes way too long with snprintf.
|
|
1337
|
-
// Disable for the case we are not implementing natively.
|
|
1338
|
-
continue;
|
|
1339
|
-
}
|
|
1340
|
-
|
|
1341
1333
|
if (IsNativeHexFloatConversion(f)) {
|
|
1342
1334
|
if (!native_traits.hex_float_has_glibc_rounding ||
|
|
1343
1335
|
!native_traits.hex_float_optimizes_leading_digit_bit_count) {
|