re2 1.22.2 → 1.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -4
- package/binding.gyp +5 -1
- package/lib/addon.cc +4 -0
- package/lib/new.cc +1 -246
- package/lib/pattern.cc +252 -0
- package/lib/pattern.h +10 -0
- package/lib/set.cc +777 -0
- package/lib/wrapped_re2_set.h +42 -0
- package/package.json +21 -9
- package/re2.d.ts +46 -9
- package/vendor/abseil-cpp/CMake/AbseilDll.cmake +14 -24
- package/vendor/abseil-cpp/CMake/AbseilHelpers.cmake +3 -3
- package/vendor/abseil-cpp/CMake/README.md +2 -2
- package/vendor/abseil-cpp/CMakeLists.txt +3 -3
- package/vendor/abseil-cpp/MODULE.bazel +6 -9
- package/vendor/abseil-cpp/README.md +6 -8
- package/vendor/abseil-cpp/absl/abseil.podspec.gen.py +6 -4
- package/vendor/abseil-cpp/absl/algorithm/BUILD.bazel +3 -0
- package/vendor/abseil-cpp/absl/algorithm/CMakeLists.txt +1 -0
- package/vendor/abseil-cpp/absl/algorithm/container.h +2 -19
- package/vendor/abseil-cpp/absl/algorithm/container_test.cc +4 -11
- package/vendor/abseil-cpp/absl/base/BUILD.bazel +60 -45
- package/vendor/abseil-cpp/absl/base/CMakeLists.txt +57 -38
- package/vendor/abseil-cpp/absl/base/attributes.h +76 -7
- package/vendor/abseil-cpp/absl/base/attributes_test.cc +43 -0
- package/vendor/abseil-cpp/absl/base/call_once.h +11 -12
- package/vendor/abseil-cpp/absl/base/config.h +22 -129
- package/vendor/abseil-cpp/absl/base/exception_safety_testing_test.cc +0 -4
- package/vendor/abseil-cpp/absl/base/{internal/fast_type_id.h → fast_type_id.h} +11 -16
- package/vendor/abseil-cpp/absl/base/{internal/fast_type_id_test.cc → fast_type_id_test.cc} +34 -30
- package/vendor/abseil-cpp/absl/base/internal/cycleclock.cc +0 -5
- package/vendor/abseil-cpp/absl/base/internal/cycleclock_config.h +7 -7
- package/vendor/abseil-cpp/absl/base/internal/endian.h +34 -38
- package/vendor/abseil-cpp/absl/base/internal/iterator_traits.h +71 -0
- package/vendor/abseil-cpp/absl/base/internal/iterator_traits_test.cc +85 -0
- package/vendor/abseil-cpp/absl/base/internal/iterator_traits_test_helper.h +97 -0
- package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.cc +39 -9
- package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.h +6 -0
- package/vendor/abseil-cpp/absl/base/internal/poison.cc +7 -6
- package/vendor/abseil-cpp/absl/base/internal/spinlock.cc +15 -28
- package/vendor/abseil-cpp/absl/base/internal/spinlock.h +65 -35
- package/vendor/abseil-cpp/absl/base/internal/spinlock_benchmark.cc +2 -2
- package/vendor/abseil-cpp/absl/base/internal/sysinfo_test.cc +2 -2
- package/vendor/abseil-cpp/absl/base/internal/thread_identity_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/base/internal/thread_identity_test.cc +4 -4
- package/vendor/abseil-cpp/absl/base/internal/unaligned_access.h +6 -6
- package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +4 -0
- package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.h +8 -3
- package/vendor/abseil-cpp/absl/base/no_destructor.h +11 -32
- package/vendor/abseil-cpp/absl/base/no_destructor_test.cc +0 -4
- package/vendor/abseil-cpp/absl/base/nullability.h +83 -72
- package/vendor/abseil-cpp/absl/base/nullability_test.cc +25 -64
- package/vendor/abseil-cpp/absl/base/options.h +3 -80
- package/vendor/abseil-cpp/absl/base/policy_checks.h +7 -7
- package/vendor/abseil-cpp/absl/base/raw_logging_test.cc +15 -0
- package/vendor/abseil-cpp/absl/base/spinlock_test_common.cc +50 -30
- package/vendor/abseil-cpp/absl/cleanup/BUILD.bazel +2 -1
- package/vendor/abseil-cpp/absl/cleanup/CMakeLists.txt +0 -1
- package/vendor/abseil-cpp/absl/cleanup/cleanup.h +1 -3
- package/vendor/abseil-cpp/absl/cleanup/cleanup_test.cc +0 -2
- package/vendor/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -4
- package/vendor/abseil-cpp/absl/container/BUILD.bazel +74 -1
- package/vendor/abseil-cpp/absl/container/CMakeLists.txt +73 -0
- package/vendor/abseil-cpp/absl/container/btree_benchmark.cc +51 -9
- package/vendor/abseil-cpp/absl/container/btree_map.h +8 -6
- package/vendor/abseil-cpp/absl/container/btree_set.h +8 -6
- package/vendor/abseil-cpp/absl/container/btree_test.cc +89 -4
- package/vendor/abseil-cpp/absl/container/fixed_array.h +7 -15
- package/vendor/abseil-cpp/absl/container/fixed_array_test.cc +17 -0
- package/vendor/abseil-cpp/absl/container/flat_hash_map.h +20 -15
- package/vendor/abseil-cpp/absl/container/flat_hash_map_test.cc +8 -14
- package/vendor/abseil-cpp/absl/container/flat_hash_set.h +19 -14
- package/vendor/abseil-cpp/absl/container/flat_hash_set_test.cc +46 -0
- package/vendor/abseil-cpp/absl/container/inlined_vector.h +7 -6
- package/vendor/abseil-cpp/absl/container/inlined_vector_test.cc +28 -0
- package/vendor/abseil-cpp/absl/container/internal/btree.h +132 -29
- package/vendor/abseil-cpp/absl/container/internal/btree_container.h +175 -71
- package/vendor/abseil-cpp/absl/container/internal/common.h +43 -0
- package/vendor/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -2
- package/vendor/abseil-cpp/absl/container/internal/compressed_tuple.h +28 -24
- package/vendor/abseil-cpp/absl/container/internal/compressed_tuple_test.cc +4 -17
- package/vendor/abseil-cpp/absl/container/internal/container_memory.h +80 -17
- package/vendor/abseil-cpp/absl/container/internal/container_memory_test.cc +32 -2
- package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults.h +13 -8
- package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults_test.cc +1 -52
- package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.cc +9 -31
- package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.h +23 -32
- package/vendor/abseil-cpp/absl/container/internal/hash_policy_testing.h +5 -1
- package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits.h +11 -23
- package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits_test.cc +14 -9
- package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +516 -0
- package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes_test.cc +259 -0
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +23 -6
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.h +32 -13
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +8 -8
- package/vendor/abseil-cpp/absl/container/internal/inlined_vector.h +2 -7
- package/vendor/abseil-cpp/absl/container/internal/layout.h +26 -42
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_map.h +199 -68
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc +1506 -213
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.h +1095 -1658
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_allocator_test.cc +3 -2
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +31 -29
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +51 -20
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +79 -0
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl_test.cc +66 -0
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +707 -363
- package/vendor/abseil-cpp/absl/container/node_hash_map.h +20 -15
- package/vendor/abseil-cpp/absl/container/node_hash_map_test.cc +0 -3
- package/vendor/abseil-cpp/absl/container/node_hash_set.h +18 -13
- package/vendor/abseil-cpp/absl/container/sample_element_size_test.cc +3 -8
- package/vendor/abseil-cpp/absl/copts/AbseilConfigureCopts.cmake +1 -1
- package/vendor/abseil-cpp/absl/copts/GENERATED_AbseilCopts.cmake +9 -20
- package/vendor/abseil-cpp/absl/copts/GENERATED_copts.bzl +9 -20
- package/vendor/abseil-cpp/absl/copts/copts.py +24 -15
- package/vendor/abseil-cpp/absl/crc/BUILD.bazel +3 -0
- package/vendor/abseil-cpp/absl/crc/crc32c.cc +0 -4
- package/vendor/abseil-cpp/absl/crc/crc32c.h +7 -5
- package/vendor/abseil-cpp/absl/crc/crc32c_benchmark.cc +17 -4
- package/vendor/abseil-cpp/absl/crc/crc32c_test.cc +30 -0
- package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.cc +17 -0
- package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.h +7 -1
- package/vendor/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +0 -22
- package/vendor/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +5 -0
- package/vendor/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +136 -165
- package/vendor/abseil-cpp/absl/crc/internal/gen_crc32c_consts.py +90 -0
- package/vendor/abseil-cpp/absl/debugging/BUILD.bazel +7 -0
- package/vendor/abseil-cpp/absl/debugging/CMakeLists.txt +4 -0
- package/vendor/abseil-cpp/absl/debugging/internal/addresses.h +57 -0
- package/vendor/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +1 -1
- package/vendor/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +5 -5
- package/vendor/abseil-cpp/absl/debugging/internal/demangle.cc +8 -35
- package/vendor/abseil-cpp/absl/debugging/internal/demangle_rust.cc +16 -16
- package/vendor/abseil-cpp/absl/debugging/internal/demangle_test.cc +11 -10
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +40 -37
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +16 -7
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_config.h +6 -5
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +14 -5
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +10 -4
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +27 -16
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +13 -4
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +4 -3
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +15 -28
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +25 -14
- package/vendor/abseil-cpp/absl/debugging/internal/vdso_support.cc +4 -0
- package/vendor/abseil-cpp/absl/debugging/stacktrace.cc +161 -27
- package/vendor/abseil-cpp/absl/debugging/stacktrace.h +73 -5
- package/vendor/abseil-cpp/absl/debugging/stacktrace_test.cc +435 -1
- package/vendor/abseil-cpp/absl/debugging/symbolize_elf.inc +55 -63
- package/vendor/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -2
- package/vendor/abseil-cpp/absl/debugging/symbolize_win32.inc +25 -6
- package/vendor/abseil-cpp/absl/flags/BUILD.bazel +6 -0
- package/vendor/abseil-cpp/absl/flags/CMakeLists.txt +3 -0
- package/vendor/abseil-cpp/absl/flags/commandlineflag.h +2 -2
- package/vendor/abseil-cpp/absl/flags/flag.h +4 -3
- package/vendor/abseil-cpp/absl/flags/internal/commandlineflag.h +2 -2
- package/vendor/abseil-cpp/absl/flags/internal/flag.cc +14 -13
- package/vendor/abseil-cpp/absl/flags/internal/flag.h +34 -34
- package/vendor/abseil-cpp/absl/flags/internal/program_name.cc +2 -2
- package/vendor/abseil-cpp/absl/flags/internal/registry.h +4 -3
- package/vendor/abseil-cpp/absl/flags/internal/usage.cc +2 -2
- package/vendor/abseil-cpp/absl/flags/parse.cc +10 -6
- package/vendor/abseil-cpp/absl/flags/reflection.cc +9 -7
- package/vendor/abseil-cpp/absl/flags/usage.cc +2 -2
- package/vendor/abseil-cpp/absl/flags/usage_config.cc +2 -2
- package/vendor/abseil-cpp/absl/functional/BUILD.bazel +7 -6
- package/vendor/abseil-cpp/absl/functional/CMakeLists.txt +2 -4
- package/vendor/abseil-cpp/absl/functional/any_invocable.h +15 -15
- package/vendor/abseil-cpp/absl/functional/any_invocable_test.cc +10 -42
- package/vendor/abseil-cpp/absl/functional/function_ref.h +2 -9
- package/vendor/abseil-cpp/absl/functional/function_ref_test.cc +10 -0
- package/vendor/abseil-cpp/absl/functional/function_type_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/functional/internal/any_invocable.h +112 -227
- package/vendor/abseil-cpp/absl/functional/internal/front_binder.h +10 -12
- package/vendor/abseil-cpp/absl/functional/internal/function_ref.h +2 -5
- package/vendor/abseil-cpp/absl/functional/overload.h +0 -20
- package/vendor/abseil-cpp/absl/functional/overload_test.cc +1 -7
- package/vendor/abseil-cpp/absl/hash/BUILD.bazel +16 -9
- package/vendor/abseil-cpp/absl/hash/CMakeLists.txt +6 -9
- package/vendor/abseil-cpp/absl/hash/hash.h +18 -0
- package/vendor/abseil-cpp/absl/hash/hash_benchmark.cc +3 -0
- package/vendor/abseil-cpp/absl/hash/hash_instantiated_test.cc +1 -1
- package/vendor/abseil-cpp/absl/hash/hash_test.cc +131 -30
- package/vendor/abseil-cpp/absl/hash/hash_testing.h +20 -20
- package/vendor/abseil-cpp/absl/hash/internal/hash.cc +129 -17
- package/vendor/abseil-cpp/absl/hash/internal/hash.h +326 -362
- package/vendor/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +54 -151
- package/vendor/abseil-cpp/absl/hash/internal/spy_hash_state.h +14 -2
- package/vendor/abseil-cpp/absl/{strings/cord_buffer.cc → hash/internal/weakly_mixed_integer.h} +14 -6
- package/vendor/abseil-cpp/absl/log/BUILD.bazel +4 -0
- package/vendor/abseil-cpp/absl/log/CMakeLists.txt +7 -0
- package/vendor/abseil-cpp/absl/log/check.h +2 -1
- package/vendor/abseil-cpp/absl/log/check_test_impl.inc +308 -14
- package/vendor/abseil-cpp/absl/log/die_if_null.h +2 -2
- package/vendor/abseil-cpp/absl/log/flags_test.cc +7 -0
- package/vendor/abseil-cpp/absl/log/globals.h +4 -5
- package/vendor/abseil-cpp/absl/log/internal/BUILD.bazel +13 -9
- package/vendor/abseil-cpp/absl/log/internal/append_truncated.h +28 -0
- package/vendor/abseil-cpp/absl/log/internal/check_op.cc +24 -22
- package/vendor/abseil-cpp/absl/log/internal/check_op.h +149 -94
- package/vendor/abseil-cpp/absl/log/internal/conditions.cc +5 -3
- package/vendor/abseil-cpp/absl/log/internal/conditions.h +7 -2
- package/vendor/abseil-cpp/absl/log/internal/fnmatch_test.cc +1 -0
- package/vendor/abseil-cpp/absl/log/internal/log_message.cc +85 -43
- package/vendor/abseil-cpp/absl/log/internal/log_message.h +84 -59
- package/vendor/abseil-cpp/absl/log/internal/log_sink_set.cc +4 -4
- package/vendor/abseil-cpp/absl/log/internal/nullstream.h +1 -0
- package/vendor/abseil-cpp/absl/log/internal/proto.cc +3 -2
- package/vendor/abseil-cpp/absl/log/internal/proto.h +3 -3
- package/vendor/abseil-cpp/absl/log/internal/strip.h +4 -12
- package/vendor/abseil-cpp/absl/log/internal/structured.h +3 -7
- package/vendor/abseil-cpp/absl/log/internal/vlog_config.cc +9 -9
- package/vendor/abseil-cpp/absl/log/internal/vlog_config.h +8 -6
- package/vendor/abseil-cpp/absl/log/internal/voidify.h +10 -4
- package/vendor/abseil-cpp/absl/log/log.h +48 -35
- package/vendor/abseil-cpp/absl/log/log_basic_test_impl.inc +45 -0
- package/vendor/abseil-cpp/absl/log/log_entry.cc +241 -19
- package/vendor/abseil-cpp/absl/log/log_entry.h +2 -0
- package/vendor/abseil-cpp/absl/log/log_format_test.cc +412 -6
- package/vendor/abseil-cpp/absl/log/log_modifier_methods_test.cc +20 -0
- package/vendor/abseil-cpp/absl/log/log_sink_registry.h +2 -2
- package/vendor/abseil-cpp/absl/log/log_streamer_test.cc +15 -2
- package/vendor/abseil-cpp/absl/log/scoped_mock_log.h +7 -1
- package/vendor/abseil-cpp/absl/log/structured_test.cc +1 -0
- package/vendor/abseil-cpp/absl/memory/BUILD.bazel +2 -0
- package/vendor/abseil-cpp/absl/meta/BUILD.bazel +2 -0
- package/vendor/abseil-cpp/absl/meta/type_traits.h +46 -175
- package/vendor/abseil-cpp/absl/meta/type_traits_test.cc +1 -478
- package/vendor/abseil-cpp/absl/numeric/BUILD.bazel +7 -3
- package/vendor/abseil-cpp/absl/numeric/CMakeLists.txt +2 -0
- package/vendor/abseil-cpp/absl/numeric/bits.h +68 -2
- package/vendor/abseil-cpp/absl/numeric/bits_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/numeric/bits_test.cc +83 -0
- package/vendor/abseil-cpp/absl/numeric/int128.cc +0 -52
- package/vendor/abseil-cpp/absl/numeric/int128_benchmark.cc +14 -15
- package/vendor/abseil-cpp/absl/numeric/int128_test.cc +13 -8
- package/vendor/abseil-cpp/absl/numeric/internal/bits.h +39 -7
- package/vendor/abseil-cpp/absl/profiling/BUILD.bazel +47 -0
- package/vendor/abseil-cpp/absl/profiling/CMakeLists.txt +38 -0
- package/vendor/abseil-cpp/absl/profiling/hashtable.cc +124 -0
- package/vendor/abseil-cpp/absl/profiling/hashtable.h +40 -0
- package/vendor/abseil-cpp/absl/profiling/internal/exponential_biased.cc +1 -1
- package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.cc +462 -0
- package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.h +138 -0
- package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder.h +9 -9
- package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder_test.cc +7 -3
- package/vendor/abseil-cpp/absl/random/BUILD.bazel +6 -4
- package/vendor/abseil-cpp/absl/random/CMakeLists.txt +20 -19
- package/vendor/abseil-cpp/absl/random/benchmarks.cc +16 -23
- package/vendor/abseil-cpp/absl/random/bit_gen_ref.h +10 -11
- package/vendor/abseil-cpp/absl/random/bit_gen_ref_test.cc +7 -2
- package/vendor/abseil-cpp/absl/random/distributions.h +6 -8
- package/vendor/abseil-cpp/absl/random/gaussian_distribution.h +1 -1
- package/vendor/abseil-cpp/absl/random/internal/BUILD.bazel +19 -20
- package/vendor/abseil-cpp/absl/random/internal/distribution_caller.h +5 -6
- package/vendor/abseil-cpp/absl/random/internal/{pool_urbg.cc → entropy_pool.cc} +24 -92
- package/vendor/abseil-cpp/absl/{base/inline_variable_test_b.cc → random/internal/entropy_pool.h} +14 -6
- package/vendor/abseil-cpp/absl/random/internal/entropy_pool_test.cc +119 -0
- package/vendor/abseil-cpp/absl/random/internal/mock_helpers.h +6 -7
- package/vendor/abseil-cpp/absl/random/internal/nonsecure_base.h +5 -6
- package/vendor/abseil-cpp/absl/random/internal/nonsecure_base_test.cc +39 -0
- package/vendor/abseil-cpp/absl/random/internal/randen_benchmarks.cc +8 -6
- package/vendor/abseil-cpp/absl/random/internal/randen_detect.cc +1 -1
- package/vendor/abseil-cpp/absl/random/internal/seed_material.cc +20 -12
- package/vendor/abseil-cpp/absl/random/internal/seed_material.h +5 -5
- package/vendor/abseil-cpp/absl/random/internal/seed_material_test.cc +3 -0
- package/vendor/abseil-cpp/absl/random/mock_distributions_test.cc +5 -4
- package/vendor/abseil-cpp/absl/random/mocking_bit_gen.h +8 -10
- package/vendor/abseil-cpp/absl/random/random.h +88 -53
- package/vendor/abseil-cpp/absl/random/seed_sequences.cc +6 -2
- package/vendor/abseil-cpp/absl/status/BUILD.bazel +26 -0
- package/vendor/abseil-cpp/absl/status/internal/status_internal.cc +3 -4
- package/vendor/abseil-cpp/absl/status/internal/status_internal.h +3 -4
- package/vendor/abseil-cpp/absl/status/internal/status_matchers.cc +4 -3
- package/vendor/abseil-cpp/absl/status/internal/statusor_internal.h +194 -32
- package/vendor/abseil-cpp/absl/status/status.cc +4 -8
- package/vendor/abseil-cpp/absl/status/status.h +8 -8
- package/vendor/abseil-cpp/absl/{base/inline_variable_test_a.cc → status/status_benchmark.cc} +20 -10
- package/vendor/abseil-cpp/absl/status/status_matchers_test.cc +65 -0
- package/vendor/abseil-cpp/absl/status/status_payload_printer.h +2 -2
- package/vendor/abseil-cpp/absl/status/statusor.cc +2 -2
- package/vendor/abseil-cpp/absl/status/statusor.h +49 -102
- package/vendor/abseil-cpp/absl/status/statusor_benchmark.cc +480 -0
- package/vendor/abseil-cpp/absl/status/statusor_test.cc +323 -1
- package/vendor/abseil-cpp/absl/strings/BUILD.bazel +70 -34
- package/vendor/abseil-cpp/absl/strings/CMakeLists.txt +6 -3
- package/vendor/abseil-cpp/absl/strings/ascii.cc +9 -9
- package/vendor/abseil-cpp/absl/strings/ascii.h +18 -18
- package/vendor/abseil-cpp/absl/strings/ascii_benchmark.cc +5 -8
- package/vendor/abseil-cpp/absl/strings/charconv.cc +21 -22
- package/vendor/abseil-cpp/absl/strings/charconv.h +5 -5
- package/vendor/abseil-cpp/absl/strings/charconv_benchmark.cc +1 -2
- package/vendor/abseil-cpp/absl/strings/charset_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/cord.cc +54 -58
- package/vendor/abseil-cpp/absl/strings/cord.h +94 -84
- package/vendor/abseil-cpp/absl/strings/cord_analysis.cc +11 -11
- package/vendor/abseil-cpp/absl/strings/cord_analysis.h +3 -3
- package/vendor/abseil-cpp/absl/strings/cord_test.cc +23 -0
- package/vendor/abseil-cpp/absl/strings/cordz_test_helpers.h +4 -5
- package/vendor/abseil-cpp/absl/strings/escaping.cc +130 -149
- package/vendor/abseil-cpp/absl/strings/escaping.h +9 -10
- package/vendor/abseil-cpp/absl/strings/escaping_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/escaping_test.cc +19 -9
- package/vendor/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/internal/charconv_bigint_test.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/internal/cord_internal.h +6 -10
- package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +0 -4
- package/vendor/abseil-cpp/absl/strings/internal/cordz_handle.cc +6 -6
- package/vendor/abseil-cpp/absl/strings/internal/cordz_info.cc +5 -9
- package/vendor/abseil-cpp/absl/strings/internal/cordz_info.h +2 -4
- package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance_benchmark.cc +56 -0
- package/vendor/abseil-cpp/absl/strings/internal/memutil_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/internal/ostringstream_benchmark.cc +1 -2
- package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.cc +7 -63
- package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -11
- package/vendor/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +1 -6
- package/vendor/abseil-cpp/absl/strings/internal/str_format/extension.cc +0 -22
- package/vendor/abseil-cpp/absl/strings/internal/str_format/extension_test.cc +3 -2
- package/vendor/abseil-cpp/absl/strings/internal/str_format/output.cc +5 -3
- package/vendor/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
- package/vendor/abseil-cpp/absl/strings/internal/str_join_internal.h +3 -3
- package/vendor/abseil-cpp/absl/strings/internal/str_split_internal.h +7 -2
- package/vendor/abseil-cpp/absl/strings/internal/string_constant.h +0 -5
- package/vendor/abseil-cpp/absl/strings/internal/utf8.cc +96 -1
- package/vendor/abseil-cpp/absl/strings/internal/utf8.h +15 -1
- package/vendor/abseil-cpp/absl/strings/internal/utf8_test.cc +196 -3
- package/vendor/abseil-cpp/absl/strings/numbers.cc +53 -32
- package/vendor/abseil-cpp/absl/strings/numbers.h +87 -58
- package/vendor/abseil-cpp/absl/strings/numbers_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/numbers_test.cc +634 -120
- package/vendor/abseil-cpp/absl/strings/str_cat.cc +6 -7
- package/vendor/abseil-cpp/absl/strings/str_cat.h +32 -32
- package/vendor/abseil-cpp/absl/strings/str_cat_benchmark.cc +25 -1
- package/vendor/abseil-cpp/absl/strings/str_cat_test.cc +2 -7
- package/vendor/abseil-cpp/absl/strings/str_format.h +18 -18
- package/vendor/abseil-cpp/absl/strings/str_format_test.cc +8 -14
- package/vendor/abseil-cpp/absl/strings/str_join_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/str_replace.cc +3 -3
- package/vendor/abseil-cpp/absl/strings/str_replace.h +6 -6
- package/vendor/abseil-cpp/absl/strings/str_replace_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/str_split.h +2 -2
- package/vendor/abseil-cpp/absl/strings/str_split_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/string_view.cc +4 -9
- package/vendor/abseil-cpp/absl/strings/string_view.h +38 -39
- package/vendor/abseil-cpp/absl/strings/string_view_benchmark.cc +4 -6
- package/vendor/abseil-cpp/absl/strings/string_view_test.cc +2 -50
- package/vendor/abseil-cpp/absl/strings/strip.h +4 -4
- package/vendor/abseil-cpp/absl/strings/substitute.cc +5 -4
- package/vendor/abseil-cpp/absl/strings/substitute.h +66 -64
- package/vendor/abseil-cpp/absl/strings/substitute_benchmark.cc +158 -0
- package/vendor/abseil-cpp/absl/synchronization/BUILD.bazel +6 -1
- package/vendor/abseil-cpp/absl/synchronization/CMakeLists.txt +2 -1
- package/vendor/abseil-cpp/absl/synchronization/barrier.cc +1 -1
- package/vendor/abseil-cpp/absl/synchronization/barrier_test.cc +3 -3
- package/vendor/abseil-cpp/absl/synchronization/blocking_counter.cc +2 -2
- package/vendor/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +3 -3
- package/vendor/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles.cc +30 -33
- package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles_test.cc +6 -5
- package/vendor/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +0 -5
- package/vendor/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/thread_pool.h +3 -3
- package/vendor/abseil-cpp/absl/synchronization/internal/waiter_base.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/waiter_test.cc +12 -3
- package/vendor/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/lifetime_test.cc +4 -4
- package/vendor/abseil-cpp/absl/synchronization/mutex.cc +27 -29
- package/vendor/abseil-cpp/absl/synchronization/mutex.h +205 -126
- package/vendor/abseil-cpp/absl/synchronization/mutex_benchmark.cc +13 -31
- package/vendor/abseil-cpp/absl/synchronization/mutex_test.cc +183 -169
- package/vendor/abseil-cpp/absl/synchronization/notification.cc +5 -5
- package/vendor/abseil-cpp/absl/synchronization/notification.h +1 -1
- package/vendor/abseil-cpp/absl/synchronization/notification_test.cc +3 -3
- package/vendor/abseil-cpp/absl/time/BUILD.bazel +9 -1
- package/vendor/abseil-cpp/absl/time/CMakeLists.txt +3 -1
- package/vendor/abseil-cpp/absl/time/civil_time.cc +1 -0
- package/vendor/abseil-cpp/absl/time/civil_time_test.cc +134 -0
- package/vendor/abseil-cpp/absl/time/clock.cc +11 -14
- package/vendor/abseil-cpp/absl/time/duration.cc +14 -9
- package/vendor/abseil-cpp/absl/time/duration_test.cc +6 -7
- package/vendor/abseil-cpp/absl/time/internal/cctz/BUILD.bazel +14 -3
- package/vendor/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +12 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/cctz_benchmark.cc +4 -490
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.cc +515 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.h +33 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +41 -4
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format_test.cc +22 -23
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +90 -111
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup_test.cc +1 -488
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Coyhaique +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tehran +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Iran +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +2 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +1 -1
- package/vendor/abseil-cpp/absl/time/time.h +24 -18
- package/vendor/abseil-cpp/absl/time/time_test.cc +26 -0
- package/vendor/abseil-cpp/absl/types/BUILD.bazel +11 -164
- package/vendor/abseil-cpp/absl/types/CMakeLists.txt +23 -167
- package/vendor/abseil-cpp/absl/types/any.h +9 -484
- package/vendor/abseil-cpp/absl/types/optional.h +7 -747
- package/vendor/abseil-cpp/absl/types/span.h +46 -19
- package/vendor/abseil-cpp/absl/types/span_test.cc +27 -0
- package/vendor/abseil-cpp/absl/types/variant.h +5 -784
- package/vendor/abseil-cpp/absl/types/variant_test.cc +43 -2597
- package/vendor/abseil-cpp/absl/utility/BUILD.bazel +1 -41
- package/vendor/abseil-cpp/absl/utility/CMakeLists.txt +0 -40
- package/vendor/abseil-cpp/absl/utility/utility.h +10 -185
- package/vendor/abseil-cpp/ci/absl_alternate_options.h +2 -3
- package/vendor/abseil-cpp/ci/cmake_common.sh +2 -2
- package/vendor/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +12 -13
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +24 -21
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +12 -12
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +23 -22
- package/vendor/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +20 -19
- package/vendor/abseil-cpp/ci/linux_docker_containers.sh +4 -4
- package/vendor/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +17 -17
- package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +10 -10
- package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_cmake.sh +1 -1
- package/vendor/abseil-cpp/ci/linux_gcc_alpine_cmake.sh +1 -1
- package/vendor/abseil-cpp/ci/macos_xcode_bazel.sh +9 -10
- package/vendor/abseil-cpp/ci/macos_xcode_cmake.sh +9 -1
- package/vendor/abseil-cpp/ci/windows_clangcl_bazel.bat +14 -6
- package/vendor/abseil-cpp/ci/windows_msvc_bazel.bat +14 -6
- package/vendor/abseil-cpp/ci/windows_msvc_cmake.bat +1 -1
- package/vendor/re2/.bazelrc +4 -4
- package/vendor/re2/.bcr/metadata.template.json +16 -0
- package/vendor/re2/.bcr/presubmit.yml +57 -0
- package/vendor/re2/.bcr/source.template.json +5 -0
- package/vendor/re2/.github/bazel.sh +1 -7
- package/vendor/re2/.github/workflows/ci-bazel.yml +5 -5
- package/vendor/re2/.github/workflows/ci-cmake.yml +4 -4
- package/vendor/re2/.github/workflows/ci.yml +5 -6
- package/vendor/re2/.github/workflows/pages.yml +3 -3
- package/vendor/re2/.github/workflows/python.yml +29 -24
- package/vendor/re2/.github/workflows/release-bazel.yml +42 -0
- package/vendor/re2/.github/workflows/release.yml +15 -4
- package/vendor/re2/BUILD.bazel +25 -0
- package/vendor/re2/CMakeLists.txt +100 -85
- package/vendor/re2/CONTRIBUTING.md +0 -1
- package/vendor/re2/MODULE.bazel +10 -10
- package/vendor/re2/Makefile +1 -1
- package/vendor/re2/README.md +259 -0
- package/vendor/re2/python/BUILD.bazel +8 -0
- package/vendor/re2/python/re2.py +1 -1
- package/vendor/re2/python/re2_test.py +6 -0
- package/vendor/re2/python/setup.py +3 -3
- package/vendor/re2/re2/bitmap256.cc +3 -4
- package/vendor/re2/re2/bitstate.cc +15 -10
- package/vendor/re2/re2/dfa.cc +1 -2
- package/vendor/re2/re2/parse.cc +3 -4
- package/vendor/re2/re2/prog.cc +1 -2
- package/vendor/re2/re2/prog.h +1 -0
- package/vendor/re2/re2/re2.cc +5 -0
- package/vendor/re2/re2/re2.h +9 -9
- package/vendor/re2/re2/set.cc +6 -0
- package/vendor/re2/re2/set.h +5 -0
- package/vendor/re2/re2/testing/re2_arg_test.cc +3 -3
- package/vendor/re2/re2/testing/re2_test.cc +8 -0
- package/vendor/re2/re2/testing/set_test.cc +5 -0
- package/vendor/re2/re2/walker-inl.h +1 -1
- package/vendor/abseil-cpp/WORKSPACE +0 -76
- package/vendor/abseil-cpp/WORKSPACE.bzlmod +0 -19
- package/vendor/abseil-cpp/absl/base/inline_variable_test.cc +0 -64
- package/vendor/abseil-cpp/absl/base/internal/inline_variable.h +0 -108
- package/vendor/abseil-cpp/absl/base/internal/inline_variable_testing.h +0 -46
- package/vendor/abseil-cpp/absl/base/internal/invoke.h +0 -241
- package/vendor/abseil-cpp/absl/base/internal/nullability_impl.h +0 -69
- package/vendor/abseil-cpp/absl/base/invoke_test.cc +0 -331
- package/vendor/abseil-cpp/absl/hash/internal/low_level_hash.cc +0 -148
- package/vendor/abseil-cpp/absl/hash/internal/low_level_hash.h +0 -54
- package/vendor/abseil-cpp/absl/random/internal/pool_urbg.h +0 -131
- package/vendor/abseil-cpp/absl/random/internal/pool_urbg_test.cc +0 -182
- package/vendor/abseil-cpp/absl/types/any_exception_safety_test.cc +0 -173
- package/vendor/abseil-cpp/absl/types/any_test.cc +0 -778
- package/vendor/abseil-cpp/absl/types/bad_any_cast.cc +0 -64
- package/vendor/abseil-cpp/absl/types/bad_any_cast.h +0 -75
- package/vendor/abseil-cpp/absl/types/bad_optional_access.cc +0 -66
- package/vendor/abseil-cpp/absl/types/bad_optional_access.h +0 -78
- package/vendor/abseil-cpp/absl/types/bad_variant_access.cc +0 -82
- package/vendor/abseil-cpp/absl/types/bad_variant_access.h +0 -82
- package/vendor/abseil-cpp/absl/types/internal/optional.h +0 -352
- package/vendor/abseil-cpp/absl/types/internal/variant.h +0 -1622
- package/vendor/abseil-cpp/absl/types/optional_exception_safety_test.cc +0 -292
- package/vendor/abseil-cpp/absl/types/optional_test.cc +0 -1615
- package/vendor/abseil-cpp/absl/types/variant_benchmark.cc +0 -222
- package/vendor/abseil-cpp/absl/types/variant_exception_safety_test.cc +0 -532
- package/vendor/abseil-cpp/absl/utility/internal/if_constexpr.h +0 -70
- package/vendor/abseil-cpp/absl/utility/internal/if_constexpr_test.cc +0 -79
- package/vendor/abseil-cpp/absl/utility/utility_test.cc +0 -239
- package/vendor/re2/.github/workflows/pr.yml +0 -34
- package/vendor/re2/README +0 -47
|
@@ -16,21 +16,21 @@
|
|
|
16
16
|
// File: nullability.h
|
|
17
17
|
// -----------------------------------------------------------------------------
|
|
18
18
|
//
|
|
19
|
-
// This header file defines a set of
|
|
20
|
-
//
|
|
21
|
-
//
|
|
19
|
+
// This header file defines a set of annotations for designating the expected
|
|
20
|
+
// nullability of pointers. These annotations allow you to designate pointers in
|
|
21
|
+
// one of three classification states:
|
|
22
22
|
//
|
|
23
|
-
// * "Non-null" (for pointers annotated `
|
|
23
|
+
// * "Non-null" (for pointers annotated `absl_nonnull`), indicating that it is
|
|
24
24
|
// invalid for the given pointer to ever be null.
|
|
25
|
-
// * "Nullable" (for pointers annotated `
|
|
25
|
+
// * "Nullable" (for pointers annotated `absl_nullable`), indicating that it is
|
|
26
26
|
// valid for the given pointer to be null.
|
|
27
|
-
// * "Unknown" (for pointers annotated `
|
|
28
|
-
// that the given pointer has not been
|
|
27
|
+
// * "Unknown" (for pointers annotated `absl_nullability_unknown`), indicating
|
|
28
|
+
// that the given pointer has not yet been classified as either nullable or
|
|
29
29
|
// non-null. This is the default state of unannotated pointers.
|
|
30
30
|
//
|
|
31
|
-
// NOTE:
|
|
32
|
-
// `
|
|
33
|
-
// in the codebase explicitly.
|
|
31
|
+
// NOTE: Unannotated pointers implicitly bear the annotation
|
|
32
|
+
// `absl_nullability_unknown`; you should rarely, if ever, see this annotation
|
|
33
|
+
// used in the codebase explicitly.
|
|
34
34
|
//
|
|
35
35
|
// -----------------------------------------------------------------------------
|
|
36
36
|
// Nullability and Contracts
|
|
@@ -64,16 +64,49 @@
|
|
|
64
64
|
// formalize those contracts within the codebase.
|
|
65
65
|
//
|
|
66
66
|
// -----------------------------------------------------------------------------
|
|
67
|
+
// Annotation Syntax
|
|
68
|
+
// -----------------------------------------------------------------------------
|
|
69
|
+
//
|
|
70
|
+
// The annotations should be positioned as a qualifier for the pointer type. For
|
|
71
|
+
// example, the position of `const` when declaring a const pointer (not a
|
|
72
|
+
// pointer to a const type) is the position you should also use for these
|
|
73
|
+
// annotations.
|
|
74
|
+
//
|
|
75
|
+
// Example:
|
|
76
|
+
//
|
|
77
|
+
// // A const non-null pointer to an `Employee`.
|
|
78
|
+
// Employee* absl_nonnull const e;
|
|
79
|
+
//
|
|
80
|
+
// // A non-null pointer to a const `Employee`.
|
|
81
|
+
// const Employee* absl_nonnull e;
|
|
82
|
+
//
|
|
83
|
+
// // A non-null pointer to a const nullable pointer to an `Employee`.
|
|
84
|
+
// Employee* absl_nullable const* absl_nonnull e = nullptr;
|
|
85
|
+
//
|
|
86
|
+
// // A non-null function pointer.
|
|
87
|
+
// void (*absl_nonnull func)(int, double);
|
|
88
|
+
//
|
|
89
|
+
// // A non-null array of `Employee`s as a parameter.
|
|
90
|
+
// void func(Employee employees[absl_nonnull]);
|
|
91
|
+
//
|
|
92
|
+
// // A non-null std::unique_ptr to an `Employee`.
|
|
93
|
+
// // As with `const`, it is possible to place the annotation on either side of
|
|
94
|
+
// // a named type not ending in `*`, but placing it before the type it
|
|
95
|
+
// // describes is preferred, unless inconsistent with surrounding code.
|
|
96
|
+
// absl_nonnull std::unique_ptr<Employee> employee;
|
|
97
|
+
//
|
|
98
|
+
// // Invalid annotation usage – this attempts to declare a pointer to a
|
|
99
|
+
// // nullable `Employee`, which is meaningless.
|
|
100
|
+
// absl_nullable Employee* e;
|
|
101
|
+
//
|
|
102
|
+
// -----------------------------------------------------------------------------
|
|
67
103
|
// Using Nullability Annotations
|
|
68
104
|
// -----------------------------------------------------------------------------
|
|
69
105
|
//
|
|
70
|
-
//
|
|
71
|
-
//
|
|
72
|
-
//
|
|
73
|
-
//
|
|
74
|
-
// the contract for the given pointer. Each annotation requires providers or
|
|
75
|
-
// consumers of these pointers across API boundaries to take appropriate steps
|
|
76
|
-
// when setting or using these pointers:
|
|
106
|
+
// Each annotation acts as a form of documentation about the contract for the
|
|
107
|
+
// given pointer. Each annotation requires providers or consumers of these
|
|
108
|
+
// pointers across API boundaries to take appropriate steps when setting or
|
|
109
|
+
// using these pointers:
|
|
77
110
|
//
|
|
78
111
|
// * "Non-null" pointers should never be null. It is the responsibility of the
|
|
79
112
|
// provider of this pointer to ensure that the pointer may never be set to
|
|
@@ -91,20 +124,20 @@
|
|
|
91
124
|
// Example:
|
|
92
125
|
//
|
|
93
126
|
// // PaySalary() requires the passed pointer to an `Employee` to be non-null.
|
|
94
|
-
// void PaySalary(
|
|
127
|
+
// void PaySalary(Employee* absl_nonnull e) {
|
|
95
128
|
// pay(e->salary); // OK to dereference
|
|
96
129
|
// }
|
|
97
130
|
//
|
|
98
131
|
// // CompleteTransaction() guarantees the returned pointer to an `Account` to
|
|
99
132
|
// // be non-null.
|
|
100
|
-
//
|
|
133
|
+
// Account* absl_nonnull balance CompleteTransaction(double fee) {
|
|
101
134
|
// ...
|
|
102
135
|
// }
|
|
103
136
|
//
|
|
104
137
|
// // Note that specifying a nullability annotation does not prevent someone
|
|
105
138
|
// // from violating the contract:
|
|
106
139
|
//
|
|
107
|
-
//
|
|
140
|
+
// Employee* absl_nullable find(Map& employees, std::string_view name);
|
|
108
141
|
//
|
|
109
142
|
// void g(Map& employees) {
|
|
110
143
|
// Employee *e = find(employees, "Pat");
|
|
@@ -144,14 +177,13 @@
|
|
|
144
177
|
// These nullability annotations are primarily a human readable signal about the
|
|
145
178
|
// intended contract of the pointer. They are not *types* and do not currently
|
|
146
179
|
// provide any correctness guarantees. For example, a pointer annotated as
|
|
147
|
-
// `
|
|
148
|
-
// alert or prevent assignment of a `
|
|
180
|
+
// `absl_nonnull` is *not guaranteed* to be non-null, and the compiler won't
|
|
181
|
+
// alert or prevent assignment of a `T* absl_nullable` to a `T* absl_nonnull`.
|
|
149
182
|
// ===========================================================================
|
|
150
183
|
#ifndef ABSL_BASE_NULLABILITY_H_
|
|
151
184
|
#define ABSL_BASE_NULLABILITY_H_
|
|
152
185
|
|
|
153
186
|
#include "absl/base/config.h"
|
|
154
|
-
#include "absl/base/internal/nullability_impl.h"
|
|
155
187
|
|
|
156
188
|
// ABSL_POINTERS_DEFAULT_NONNULL
|
|
157
189
|
//
|
|
@@ -168,14 +200,14 @@
|
|
|
168
200
|
// ABSL_POINTERS_DEFAULT_NONNULL
|
|
169
201
|
//
|
|
170
202
|
// void FillMessage(Message *m); // implicitly non-null
|
|
171
|
-
//
|
|
172
|
-
//
|
|
203
|
+
// T* absl_nullable GetNullablePtr(); // explicitly nullable
|
|
204
|
+
// T* absl_nullability_unknown GetUnknownPtr(); // explicitly unknown
|
|
173
205
|
//
|
|
174
|
-
// The macro can be safely used in header files
|
|
206
|
+
// The macro can be safely used in header files – it will not affect any files
|
|
175
207
|
// that include it.
|
|
176
208
|
//
|
|
177
|
-
// In files with the macro, plain `T*` syntax means `
|
|
178
|
-
// exceptions (`
|
|
209
|
+
// In files with the macro, plain `T*` syntax means `T* absl_nonnull`, and the
|
|
210
|
+
// exceptions (`absl_nullable` and `absl_nullability_unknown`) must be marked
|
|
179
211
|
// explicitly. The same holds, correspondingly, for smart pointer types.
|
|
180
212
|
//
|
|
181
213
|
// For comparison, without the macro, all unannotated pointers would default to
|
|
@@ -183,17 +215,16 @@
|
|
|
183
215
|
//
|
|
184
216
|
// #include "absl/base/nullability.h"
|
|
185
217
|
//
|
|
186
|
-
// void FillMessage(
|
|
187
|
-
//
|
|
218
|
+
// void FillMessage(Message* absl_nonnull m); // explicitly non-null
|
|
219
|
+
// T* absl_nullable GetNullablePtr(); // explicitly nullable
|
|
188
220
|
// T* GetUnknownPtr(); // implicitly unknown
|
|
189
221
|
//
|
|
190
222
|
// No-op except for being a human readable signal.
|
|
191
223
|
#define ABSL_POINTERS_DEFAULT_NONNULL
|
|
192
224
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
// absl::Nonnull (default with `ABSL_POINTERS_DEFAULT_NONNULL`)
|
|
225
|
+
#if defined(__clang__) && !defined(__OBJC__) && \
|
|
226
|
+
ABSL_HAVE_FEATURE(nullability_on_classes)
|
|
227
|
+
// absl_nonnull (default with `ABSL_POINTERS_DEFAULT_NONNULL`)
|
|
197
228
|
//
|
|
198
229
|
// The indicated pointer is never null. It is the responsibility of the provider
|
|
199
230
|
// of this pointer across an API boundary to ensure that the pointer is never
|
|
@@ -203,13 +234,12 @@ ABSL_NAMESPACE_BEGIN
|
|
|
203
234
|
// Example:
|
|
204
235
|
//
|
|
205
236
|
// // `employee` is designated as not null.
|
|
206
|
-
// void PaySalary(
|
|
237
|
+
// void PaySalary(Employee* absl_nonnull employee) {
|
|
207
238
|
// pay(*employee); // OK to dereference
|
|
208
239
|
// }
|
|
209
|
-
|
|
210
|
-
using Nonnull = nullability_internal::NonnullImpl<T>;
|
|
240
|
+
#define absl_nonnull _Nonnull
|
|
211
241
|
|
|
212
|
-
//
|
|
242
|
+
// absl_nullable
|
|
213
243
|
//
|
|
214
244
|
// The indicated pointer may, by design, be either null or non-null. Consumers
|
|
215
245
|
// of this pointer across an API boundary should perform a `nullptr` check
|
|
@@ -218,15 +248,14 @@ using Nonnull = nullability_internal::NonnullImpl<T>;
|
|
|
218
248
|
// Example:
|
|
219
249
|
//
|
|
220
250
|
// // `employee` may be null.
|
|
221
|
-
// void PaySalary(
|
|
251
|
+
// void PaySalary(Employee* absl_nullable employee) {
|
|
222
252
|
// if (employee != nullptr) {
|
|
223
253
|
// Pay(*employee); // OK to dereference
|
|
224
254
|
// }
|
|
225
255
|
// }
|
|
226
|
-
|
|
227
|
-
using Nullable = nullability_internal::NullableImpl<T>;
|
|
256
|
+
#define absl_nullable _Nullable
|
|
228
257
|
|
|
229
|
-
//
|
|
258
|
+
// absl_nullability_unknown (default without `ABSL_POINTERS_DEFAULT_NONNULL`)
|
|
230
259
|
//
|
|
231
260
|
// The indicated pointer has not yet been determined to be definitively
|
|
232
261
|
// "non-null" or "nullable." Providers of such pointers across API boundaries
|
|
@@ -234,8 +263,8 @@ using Nullable = nullability_internal::NullableImpl<T>;
|
|
|
234
263
|
// Consumers of these pointers across an API boundary should treat such pointers
|
|
235
264
|
// with the same caution they treat currently unannotated pointers. Most
|
|
236
265
|
// existing code will have "unknown" pointers, which should eventually be
|
|
237
|
-
// migrated into one of the above two nullability states: `
|
|
238
|
-
// `
|
|
266
|
+
// migrated into one of the above two nullability states: `absl_nonnull` or
|
|
267
|
+
// `absl_nullable`.
|
|
239
268
|
//
|
|
240
269
|
// NOTE: For files that do not specify `ABSL_POINTERS_DEFAULT_NONNULL`,
|
|
241
270
|
// because this annotation is the global default state, unannotated pointers are
|
|
@@ -245,7 +274,7 @@ using Nullable = nullability_internal::NullableImpl<T>;
|
|
|
245
274
|
// Example:
|
|
246
275
|
//
|
|
247
276
|
// // `employee`s nullability state is unknown.
|
|
248
|
-
// void PaySalary(
|
|
277
|
+
// void PaySalary(Employee* absl_nullability_unknown employee) {
|
|
249
278
|
// Pay(*employee); // Potentially dangerous. API provider should investigate.
|
|
250
279
|
// }
|
|
251
280
|
//
|
|
@@ -256,11 +285,15 @@ using Nullable = nullability_internal::NullableImpl<T>;
|
|
|
256
285
|
// void PaySalary(Employee* employee) {
|
|
257
286
|
// Pay(*employee); // Potentially dangerous. API provider should investigate.
|
|
258
287
|
// }
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
288
|
+
#define absl_nullability_unknown _Null_unspecified
|
|
289
|
+
#else
|
|
290
|
+
// No-op for non-Clang compilers or Objective-C.
|
|
291
|
+
#define absl_nonnull
|
|
292
|
+
// No-op for non-Clang compilers or Objective-C.
|
|
293
|
+
#define absl_nullable
|
|
294
|
+
// No-op for non-Clang compilers or Objective-C.
|
|
295
|
+
#define absl_nullability_unknown
|
|
296
|
+
#endif
|
|
264
297
|
|
|
265
298
|
// ABSL_NULLABILITY_COMPATIBLE
|
|
266
299
|
//
|
|
@@ -281,26 +314,4 @@ ABSL_NAMESPACE_END
|
|
|
281
314
|
#define ABSL_NULLABILITY_COMPATIBLE
|
|
282
315
|
#endif
|
|
283
316
|
|
|
284
|
-
// ABSL_NONNULL
|
|
285
|
-
// ABSL_NULLABLE
|
|
286
|
-
// ABSL_NULLABILITY_UNKNOWN
|
|
287
|
-
//
|
|
288
|
-
// These macros are analogues of the alias template nullability annotations
|
|
289
|
-
// above.
|
|
290
|
-
//
|
|
291
|
-
// Example:
|
|
292
|
-
// int* ABSL_NULLABLE foo;
|
|
293
|
-
// Is equivalent to:
|
|
294
|
-
// absl::Nullable<int*> foo;
|
|
295
|
-
#if defined(__clang__) && !defined(__OBJC__) && \
|
|
296
|
-
ABSL_HAVE_FEATURE(nullability_on_classes)
|
|
297
|
-
#define ABSL_NONNULL _Nonnull
|
|
298
|
-
#define ABSL_NULLABLE _Nullable
|
|
299
|
-
#define ABSL_NULLABILITY_UNKNOWN _Null_unspecified
|
|
300
|
-
#else
|
|
301
|
-
#define ABSL_NONNULL
|
|
302
|
-
#define ABSL_NULLABLE
|
|
303
|
-
#define ABSL_NULLABILITY_UNKNOWN
|
|
304
|
-
#endif
|
|
305
|
-
|
|
306
317
|
#endif // ABSL_BASE_NULLABILITY_H_
|
|
@@ -14,21 +14,16 @@
|
|
|
14
14
|
|
|
15
15
|
#include "absl/base/nullability.h"
|
|
16
16
|
|
|
17
|
-
#include <cassert>
|
|
18
17
|
#include <memory>
|
|
18
|
+
#include <type_traits>
|
|
19
19
|
#include <utility>
|
|
20
20
|
|
|
21
21
|
#include "gtest/gtest.h"
|
|
22
|
-
#include "absl/base/attributes.h"
|
|
23
22
|
|
|
24
23
|
namespace {
|
|
25
|
-
|
|
26
|
-
using ::absl::NullabilityUnknown;
|
|
27
|
-
using ::absl::Nullable;
|
|
28
|
-
|
|
29
|
-
void funcWithNonnullArg(Nonnull<int*> /*arg*/) {}
|
|
24
|
+
void funcWithNonnullArg(int* absl_nonnull /*arg*/) {}
|
|
30
25
|
template <typename T>
|
|
31
|
-
void funcWithDeducedNonnullArg(
|
|
26
|
+
void funcWithDeducedNonnullArg(T* absl_nonnull /*arg*/) {}
|
|
32
27
|
|
|
33
28
|
TEST(NonnullTest, NonnullArgument) {
|
|
34
29
|
int var = 0;
|
|
@@ -36,7 +31,7 @@ TEST(NonnullTest, NonnullArgument) {
|
|
|
36
31
|
funcWithDeducedNonnullArg(&var);
|
|
37
32
|
}
|
|
38
33
|
|
|
39
|
-
|
|
34
|
+
int* absl_nonnull funcWithNonnullReturn() {
|
|
40
35
|
static int var = 0;
|
|
41
36
|
return &var;
|
|
42
37
|
}
|
|
@@ -47,83 +42,49 @@ TEST(NonnullTest, NonnullReturn) {
|
|
|
47
42
|
}
|
|
48
43
|
|
|
49
44
|
TEST(PassThroughTest, PassesThroughRawPointerToInt) {
|
|
50
|
-
EXPECT_TRUE((std::is_same<
|
|
51
|
-
EXPECT_TRUE((std::is_same<
|
|
52
|
-
EXPECT_TRUE((std::is_same<
|
|
45
|
+
EXPECT_TRUE((std::is_same<int* absl_nonnull, int*>::value));
|
|
46
|
+
EXPECT_TRUE((std::is_same<int* absl_nullable, int*>::value));
|
|
47
|
+
EXPECT_TRUE((std::is_same<int* absl_nullability_unknown, int*>::value));
|
|
53
48
|
}
|
|
54
49
|
|
|
55
50
|
TEST(PassThroughTest, PassesThroughRawPointerToVoid) {
|
|
56
|
-
EXPECT_TRUE((std::is_same<
|
|
57
|
-
EXPECT_TRUE((std::is_same<
|
|
58
|
-
EXPECT_TRUE((std::is_same<
|
|
51
|
+
EXPECT_TRUE((std::is_same<void* absl_nonnull, void*>::value));
|
|
52
|
+
EXPECT_TRUE((std::is_same<void* absl_nullable, void*>::value));
|
|
53
|
+
EXPECT_TRUE((std::is_same<void* absl_nullability_unknown, void*>::value));
|
|
59
54
|
}
|
|
60
55
|
|
|
61
56
|
TEST(PassThroughTest, PassesThroughUniquePointerToInt) {
|
|
62
57
|
using T = std::unique_ptr<int>;
|
|
63
|
-
EXPECT_TRUE((std::is_same<
|
|
64
|
-
EXPECT_TRUE((std::is_same<
|
|
65
|
-
EXPECT_TRUE((std::is_same<
|
|
58
|
+
EXPECT_TRUE((std::is_same<absl_nonnull T, T>::value));
|
|
59
|
+
EXPECT_TRUE((std::is_same<absl_nullable T, T>::value));
|
|
60
|
+
EXPECT_TRUE((std::is_same<absl_nullability_unknown T, T>::value));
|
|
66
61
|
}
|
|
67
62
|
|
|
68
63
|
TEST(PassThroughTest, PassesThroughSharedPointerToInt) {
|
|
69
64
|
using T = std::shared_ptr<int>;
|
|
70
|
-
EXPECT_TRUE((std::is_same<
|
|
71
|
-
EXPECT_TRUE((std::is_same<
|
|
72
|
-
EXPECT_TRUE((std::is_same<
|
|
65
|
+
EXPECT_TRUE((std::is_same<absl_nonnull T, T>::value));
|
|
66
|
+
EXPECT_TRUE((std::is_same<absl_nullable T, T>::value));
|
|
67
|
+
EXPECT_TRUE((std::is_same<absl_nullability_unknown T, T>::value));
|
|
73
68
|
}
|
|
74
69
|
|
|
75
70
|
TEST(PassThroughTest, PassesThroughSharedPointerToVoid) {
|
|
76
71
|
using T = std::shared_ptr<void>;
|
|
77
|
-
EXPECT_TRUE((std::is_same<
|
|
78
|
-
EXPECT_TRUE((std::is_same<
|
|
79
|
-
EXPECT_TRUE((std::is_same<
|
|
72
|
+
EXPECT_TRUE((std::is_same<absl_nonnull T, T>::value));
|
|
73
|
+
EXPECT_TRUE((std::is_same<absl_nullable T, T>::value));
|
|
74
|
+
EXPECT_TRUE((std::is_same<absl_nullability_unknown T, T>::value));
|
|
80
75
|
}
|
|
81
76
|
|
|
82
77
|
TEST(PassThroughTest, PassesThroughPointerToMemberObject) {
|
|
83
78
|
using T = decltype(&std::pair<int, int>::first);
|
|
84
|
-
EXPECT_TRUE((std::is_same<
|
|
85
|
-
EXPECT_TRUE((std::is_same<
|
|
86
|
-
EXPECT_TRUE((std::is_same<
|
|
79
|
+
EXPECT_TRUE((std::is_same<absl_nonnull T, T>::value));
|
|
80
|
+
EXPECT_TRUE((std::is_same<absl_nullable T, T>::value));
|
|
81
|
+
EXPECT_TRUE((std::is_same<absl_nullability_unknown T, T>::value));
|
|
87
82
|
}
|
|
88
83
|
|
|
89
84
|
TEST(PassThroughTest, PassesThroughPointerToMemberFunction) {
|
|
90
85
|
using T = decltype(&std::unique_ptr<int>::reset);
|
|
91
|
-
EXPECT_TRUE((std::is_same<
|
|
92
|
-
EXPECT_TRUE((std::is_same<
|
|
93
|
-
EXPECT_TRUE((std::is_same<
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
} // namespace
|
|
97
|
-
|
|
98
|
-
// Nullable ADL lookup test
|
|
99
|
-
namespace util {
|
|
100
|
-
// Helper for NullableAdlTest. Returns true, denoting that argument-dependent
|
|
101
|
-
// lookup found this implementation of DidAdlWin. Must be in namespace
|
|
102
|
-
// util itself, not a nested anonymous namespace.
|
|
103
|
-
template <typename T>
|
|
104
|
-
bool DidAdlWin(T*) {
|
|
105
|
-
return true;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
// Because this type is defined in namespace util, an unqualified call to
|
|
109
|
-
// DidAdlWin with a pointer to MakeAdlWin will find the above implementation.
|
|
110
|
-
struct MakeAdlWin {};
|
|
111
|
-
} // namespace util
|
|
112
|
-
|
|
113
|
-
namespace {
|
|
114
|
-
// Returns false, denoting that ADL did not inspect namespace util. If it
|
|
115
|
-
// had, the better match (T*) above would have won out over the (...) here.
|
|
116
|
-
bool DidAdlWin(...) { return false; }
|
|
117
|
-
|
|
118
|
-
TEST(NullableAdlTest, NullableAddsNothingToArgumentDependentLookup) {
|
|
119
|
-
// Treatment: util::Nullable<int*> contributes nothing to ADL because
|
|
120
|
-
// int* itself doesn't.
|
|
121
|
-
EXPECT_FALSE(DidAdlWin((int*)nullptr));
|
|
122
|
-
EXPECT_FALSE(DidAdlWin((Nullable<int*>)nullptr));
|
|
123
|
-
|
|
124
|
-
// Control: Argument-dependent lookup does find the implementation in
|
|
125
|
-
// namespace util when the underlying pointee type resides there.
|
|
126
|
-
EXPECT_TRUE(DidAdlWin((util::MakeAdlWin*)nullptr));
|
|
127
|
-
EXPECT_TRUE(DidAdlWin((Nullable<util::MakeAdlWin*>)nullptr));
|
|
86
|
+
EXPECT_TRUE((std::is_same<absl_nonnull T, T>::value));
|
|
87
|
+
EXPECT_TRUE((std::is_same<absl_nullable T, T>::value));
|
|
88
|
+
EXPECT_TRUE((std::is_same<absl_nullability_unknown T, T>::value));
|
|
128
89
|
}
|
|
129
90
|
} // namespace
|
|
@@ -64,65 +64,14 @@
|
|
|
64
64
|
// proper Abseil implementation at compile-time, which will not be sufficient
|
|
65
65
|
// to guarantee ABI stability to package managers.
|
|
66
66
|
|
|
67
|
+
// SKIP_ABSL_INLINE_NAMESPACE_CHECK
|
|
68
|
+
|
|
67
69
|
#ifndef ABSL_BASE_OPTIONS_H_
|
|
68
70
|
#define ABSL_BASE_OPTIONS_H_
|
|
69
71
|
|
|
70
72
|
// -----------------------------------------------------------------------------
|
|
71
73
|
// Type Compatibility Options
|
|
72
74
|
// -----------------------------------------------------------------------------
|
|
73
|
-
//
|
|
74
|
-
// ABSL_OPTION_USE_STD_ANY
|
|
75
|
-
//
|
|
76
|
-
// This option controls whether absl::any is implemented as an alias to
|
|
77
|
-
// std::any, or as an independent implementation.
|
|
78
|
-
//
|
|
79
|
-
// A value of 0 means to use Abseil's implementation. This requires only C++11
|
|
80
|
-
// support, and is expected to work on every toolchain we support.
|
|
81
|
-
//
|
|
82
|
-
// A value of 1 means to use an alias to std::any. This requires that all code
|
|
83
|
-
// using Abseil is built in C++17 mode or later.
|
|
84
|
-
//
|
|
85
|
-
// A value of 2 means to detect the C++ version being used to compile Abseil,
|
|
86
|
-
// and use an alias only if a working std::any is available. This option is
|
|
87
|
-
// useful when you are building your entire program, including all of its
|
|
88
|
-
// dependencies, from source. It should not be used otherwise -- for example,
|
|
89
|
-
// if you are distributing Abseil in a binary package manager -- since in
|
|
90
|
-
// mode 2, absl::any will name a different type, with a different mangled name
|
|
91
|
-
// and binary layout, depending on the compiler flags passed by the end user.
|
|
92
|
-
// For more info, see https://abseil.io/about/design/dropin-types.
|
|
93
|
-
//
|
|
94
|
-
// User code should not inspect this macro. To check in the preprocessor if
|
|
95
|
-
// absl::any is a typedef of std::any, use the feature macro ABSL_USES_STD_ANY.
|
|
96
|
-
|
|
97
|
-
#define ABSL_OPTION_USE_STD_ANY 2
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
// ABSL_OPTION_USE_STD_OPTIONAL
|
|
101
|
-
//
|
|
102
|
-
// This option controls whether absl::optional is implemented as an alias to
|
|
103
|
-
// std::optional, or as an independent implementation.
|
|
104
|
-
//
|
|
105
|
-
// A value of 0 means to use Abseil's implementation. This requires only C++11
|
|
106
|
-
// support, and is expected to work on every toolchain we support.
|
|
107
|
-
//
|
|
108
|
-
// A value of 1 means to use an alias to std::optional. This requires that all
|
|
109
|
-
// code using Abseil is built in C++17 mode or later.
|
|
110
|
-
//
|
|
111
|
-
// A value of 2 means to detect the C++ version being used to compile Abseil,
|
|
112
|
-
// and use an alias only if a working std::optional is available. This option
|
|
113
|
-
// is useful when you are building your program from source. It should not be
|
|
114
|
-
// used otherwise -- for example, if you are distributing Abseil in a binary
|
|
115
|
-
// package manager -- since in mode 2, absl::optional will name a different
|
|
116
|
-
// type, with a different mangled name and binary layout, depending on the
|
|
117
|
-
// compiler flags passed by the end user. For more info, see
|
|
118
|
-
// https://abseil.io/about/design/dropin-types.
|
|
119
|
-
|
|
120
|
-
// User code should not inspect this macro. To check in the preprocessor if
|
|
121
|
-
// absl::optional is a typedef of std::optional, use the feature macro
|
|
122
|
-
// ABSL_USES_STD_OPTIONAL.
|
|
123
|
-
|
|
124
|
-
#define ABSL_OPTION_USE_STD_OPTIONAL 2
|
|
125
|
-
|
|
126
75
|
|
|
127
76
|
// ABSL_OPTION_USE_STD_STRING_VIEW
|
|
128
77
|
//
|
|
@@ -150,32 +99,6 @@
|
|
|
150
99
|
|
|
151
100
|
#define ABSL_OPTION_USE_STD_STRING_VIEW 2
|
|
152
101
|
|
|
153
|
-
// ABSL_OPTION_USE_STD_VARIANT
|
|
154
|
-
//
|
|
155
|
-
// This option controls whether absl::variant is implemented as an alias to
|
|
156
|
-
// std::variant, or as an independent implementation.
|
|
157
|
-
//
|
|
158
|
-
// A value of 0 means to use Abseil's implementation. This requires only C++11
|
|
159
|
-
// support, and is expected to work on every toolchain we support.
|
|
160
|
-
//
|
|
161
|
-
// A value of 1 means to use an alias to std::variant. This requires that all
|
|
162
|
-
// code using Abseil is built in C++17 mode or later.
|
|
163
|
-
//
|
|
164
|
-
// A value of 2 means to detect the C++ version being used to compile Abseil,
|
|
165
|
-
// and use an alias only if a working std::variant is available. This option
|
|
166
|
-
// is useful when you are building your program from source. It should not be
|
|
167
|
-
// used otherwise -- for example, if you are distributing Abseil in a binary
|
|
168
|
-
// package manager -- since in mode 2, absl::variant will name a different
|
|
169
|
-
// type, with a different mangled name and binary layout, depending on the
|
|
170
|
-
// compiler flags passed by the end user. For more info, see
|
|
171
|
-
// https://abseil.io/about/design/dropin-types.
|
|
172
|
-
//
|
|
173
|
-
// User code should not inspect this macro. To check in the preprocessor if
|
|
174
|
-
// absl::variant is a typedef of std::variant, use the feature macro
|
|
175
|
-
// ABSL_USES_STD_VARIANT.
|
|
176
|
-
|
|
177
|
-
#define ABSL_OPTION_USE_STD_VARIANT 2
|
|
178
|
-
|
|
179
102
|
// ABSL_OPTION_USE_STD_ORDERING
|
|
180
103
|
//
|
|
181
104
|
// This option controls whether absl::{partial,weak,strong}_ordering are
|
|
@@ -226,7 +149,7 @@
|
|
|
226
149
|
// allowed.
|
|
227
150
|
|
|
228
151
|
#define ABSL_OPTION_USE_INLINE_NAMESPACE 1
|
|
229
|
-
#define ABSL_OPTION_INLINE_NAMESPACE_NAME
|
|
152
|
+
#define ABSL_OPTION_INLINE_NAMESPACE_NAME lts_20250814
|
|
230
153
|
|
|
231
154
|
// ABSL_OPTION_HARDENED
|
|
232
155
|
//
|
|
@@ -71,15 +71,15 @@
|
|
|
71
71
|
// C++ Version Check
|
|
72
72
|
// -----------------------------------------------------------------------------
|
|
73
73
|
|
|
74
|
-
// Enforce C++
|
|
74
|
+
// Enforce C++17 as the minimum.
|
|
75
75
|
#if defined(_MSVC_LANG)
|
|
76
|
-
#if _MSVC_LANG <
|
|
77
|
-
#error "C++ versions less than C++
|
|
78
|
-
#endif // _MSVC_LANG <
|
|
76
|
+
#if _MSVC_LANG < 201703L
|
|
77
|
+
#error "C++ versions less than C++17 are not supported."
|
|
78
|
+
#endif // _MSVC_LANG < 201703L
|
|
79
79
|
#elif defined(__cplusplus)
|
|
80
|
-
#if __cplusplus <
|
|
81
|
-
#error "C++ versions less than C++
|
|
82
|
-
#endif // __cplusplus <
|
|
80
|
+
#if __cplusplus < 201703L
|
|
81
|
+
#error "C++ versions less than C++17 are not supported."
|
|
82
|
+
#endif // __cplusplus < 201703L
|
|
83
83
|
#endif
|
|
84
84
|
|
|
85
85
|
// -----------------------------------------------------------------------------
|
|
@@ -43,12 +43,27 @@ TEST(RawLoggingCompilationTest, PassingCheck) {
|
|
|
43
43
|
ABSL_RAW_CHECK(true, "RAW CHECK");
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
TEST(RawLoggingCompilationTest, DebugLog) {
|
|
47
|
+
ABSL_RAW_DLOG(INFO, "RAW DLOG: %d", 1);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
TEST(RawLoggingCompilationTest, PassingDebugCheck) {
|
|
51
|
+
ABSL_RAW_DCHECK(true, "failure message");
|
|
52
|
+
}
|
|
53
|
+
|
|
46
54
|
// Not all platforms support output from raw log, so we don't verify any
|
|
47
55
|
// particular output for RAW check failures (expecting the empty string
|
|
48
56
|
// accomplishes this). This test is primarily a compilation test, but we
|
|
49
57
|
// are verifying process death when EXPECT_DEATH works for a platform.
|
|
50
58
|
const char kExpectedDeathOutput[] = "";
|
|
51
59
|
|
|
60
|
+
#if !defined(NDEBUG) // if debug build
|
|
61
|
+
TEST(RawLoggingDeathTest, FailingDebugCheck) {
|
|
62
|
+
EXPECT_DEATH_IF_SUPPORTED(ABSL_RAW_DCHECK(1 == 0, "explanation"),
|
|
63
|
+
kExpectedDeathOutput);
|
|
64
|
+
}
|
|
65
|
+
#endif // if debug build
|
|
66
|
+
|
|
52
67
|
TEST(RawLoggingDeathTest, FailingCheck) {
|
|
53
68
|
EXPECT_DEATH_IF_SUPPORTED(ABSL_RAW_CHECK(1 == 0, "explanation"),
|
|
54
69
|
kExpectedDeathOutput);
|