include-what-you-use 0.25 fixes#797
Conversation
WalkthroughThis PR removes or adjusts many IWYU pragma/include annotations across sources and headers and adds forward declarations and public ART inode class templates, an Changes
Sequence Diagram(s)(omitted — changes are header/pragma edits and type-forwarding additions; no runtime control-flow change to diagram) Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes
Possibly related PRs
Poem
Pre-merge checks and finishing touches✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro 📒 Files selected for processing (49)
💤 Files with no reviewable changes (5)
🧰 Additional context used🧬 Code graph analysis (2)benchmark/micro_benchmark_node_utils.hpp (3)
test_heap.hpp (3)
🔇 Additional comments (49)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
6b850f0 to
213ee35
Compare
There was a problem hiding this comment.
Actionable comments posted: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
benchmark/micro_benchmark_node_utils.hpp (1)
8-18: Restore required standard headersThis translation unit still uses
std::ranges::generate,std::ranges::shuffle,std::numeric_limits,std::cerr, andstd::string, but the<algorithm>,<limits>,<iostream>, and<string>headers were just removed. That leaves the file relying on transitive inclusions and breaks the build with any compiler that enforces include hygiene.(cppreference.net)#include <array> #include <cstddef> #include <cstdint> +#include <algorithm> +#include <iostream> +#include <limits> #include <random> #include <tuple> #include <vector> +#include <string>
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (49)
art.hpp(2 hunks)art_common.hpp(1 hunks)art_internal.cpp(1 hunks)art_internal.hpp(1 hunks)art_internal_impl.hpp(1 hunks)benchmark/micro_benchmark.cpp(1 hunks)benchmark/micro_benchmark_concurrency.hpp(1 hunks)benchmark/micro_benchmark_key_prefix.cpp(1 hunks)benchmark/micro_benchmark_mutex.cpp(0 hunks)benchmark/micro_benchmark_n16.cpp(0 hunks)benchmark/micro_benchmark_n256.cpp(0 hunks)benchmark/micro_benchmark_n4.cpp(1 hunks)benchmark/micro_benchmark_n48.cpp(0 hunks)benchmark/micro_benchmark_node_utils.hpp(1 hunks)benchmark/micro_benchmark_utils.cpp(1 hunks)benchmark/micro_benchmark_utils.hpp(1 hunks)examples/example_art.cpp(1 hunks)examples/example_art_stats.cpp(1 hunks)examples/example_olc_art.cpp(1 hunks)fuzz_deepstate/test_art_fuzz_deepstate.cpp(1 hunks)heap.hpp(1 hunks)in_fake_critical_section.hpp(1 hunks)mutex_art.hpp(1 hunks)olc_art.hpp(1 hunks)optimistic_lock.hpp(1 hunks)portability_builtins.hpp(1 hunks)qsbr.cpp(2 hunks)qsbr.hpp(2 hunks)qsbr_ptr.hpp(1 hunks)test/db_test_utils.cpp(1 hunks)test/db_test_utils.hpp(2 hunks)test/gtest_utils.hpp(1 hunks)test/qsbr_gtest_utils.cpp(1 hunks)test/qsbr_gtest_utils.hpp(1 hunks)test/qsbr_test_utils.cpp(1 hunks)test/test_art.cpp(1 hunks)test/test_art_concurrency.cpp(2 hunks)test/test_art_iter.cpp(0 hunks)test/test_art_key_view.cpp(1 hunks)test/test_art_oom.cpp(1 hunks)test/test_art_scan.cpp(2 hunks)test/test_key_encode_decode.cpp(1 hunks)test/test_qsbr.cpp(1 hunks)test/test_qsbr_oom.cpp(1 hunks)test/test_qsbr_ptr.cpp(1 hunks)test/test_utils.hpp(1 hunks)test_heap.cpp(2 hunks)test_heap.hpp(1 hunks)thread_sync.hpp(1 hunks)
💤 Files with no reviewable changes (5)
- benchmark/micro_benchmark_mutex.cpp
- test/test_art_iter.cpp
- benchmark/micro_benchmark_n256.cpp
- benchmark/micro_benchmark_n48.cpp
- benchmark/micro_benchmark_n16.cpp
🧰 Additional context used
🧬 Code graph analysis (1)
test_heap.hpp (3)
optimistic_lock.hpp (3)
NDEBUG(403-414)NDEBUG(822-826)NDEBUG(829-835)qsbr.hpp (1)
NDEBUG(1065-1081)qsbr_ptr.hpp (2)
NDEBUG(154-163)NDEBUG(176-185)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (20)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 11 Release, Release, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 11 Release, Release, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 11 Release, Release, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 11 Release, Release, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 11 Release, Release, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 11 Release, Release, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 11 Release, Release, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 11 Release, Release, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 11 Release, Release, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 11 Release, Release, clang, 11)
🔇 Additional comments (35)
optimistic_lock.hpp (1)
214-214: LGTM - Clean include hygiene update.The removal of the IWYU pragma and unused includes is correct. All remaining includes are actually used in the implementation.
test/test_key_encode_decode.cpp (3)
4-10: LGTM - Standard IWYU pragma cleanup.The removal of the keep pragma from global.hpp and the addition of no_include pragmas for internal headers are standard IWYU practices.
15-15: LGTM - cstddef is used throughout.The IWYU keep pragma is correct since
std::byteis used extensively in this file.
25-25: LGTM - vector is used.The IWYU keep pragma is correct since
std::vectoris used in thekey_factoryclass (line 669).thread_sync.hpp (1)
9-9: LGTM: IWYU pragma cleanup.The removal of the IWYU pragma is consistent with the broader cleanup effort across the codebase.
test/gtest_utils.hpp (1)
15-15: LGTM: Consistent IWYU pragma cleanup.Aligns with the IWYU 0.25 migration across the codebase.
benchmark/micro_benchmark_utils.cpp (1)
6-6: LGTM: IWYU pragma formatting improvement.Moving the pragma comments to the same line as the includes improves readability.
Also applies to: 10-10
test_heap.hpp (1)
15-15: LGTM: Appropriate IWYU pragma additions.The pragmas correctly exclude implementation headers while retaining
<new>forstd::bad_allocused at line 75.Also applies to: 23-23
in_fake_critical_section.hpp (1)
20-20: LGTM: IWYU pragma cleanup.Consistent with the IWYU 0.25 fixes applied across the codebase.
portability_builtins.hpp (1)
11-11: LGTM: IWYU pragma cleanup.Aligns with the broader IWYU 0.25 migration.
test/test_qsbr_ptr.cpp (1)
4-4: LGTM: IWYU pragma cleanup.Removes the pragma from
global.hppwhile appropriately retaining other IWYU directives.examples/example_olc_art.cpp (1)
7-7: LGTM: IWYU pragma cleanup.Simplifies the include by removing the pragma directive, consistent with the IWYU 0.25 fixes across the codebase.
examples/example_art_stats.cpp (1)
7-7: LGTM - IWYU pragma cleanup.The removal of IWYU directives is consistent with the broader IWYU 0.25 hygiene effort.
benchmark/micro_benchmark_key_prefix.cpp (1)
6-10: LGTM - Vector include pragma adjustment.The shift from
<string>to<__vector/vector.h>in the no_include directive aligns with the repository-wide IWYU cleanup pattern.qsbr_ptr.hpp (1)
14-16: LGTM - IWYU pragma refinement.Removing the keep directive and adding the no_include for the internal byte header is a standard IWYU refinement.
heap.hpp (1)
9-9: LGTM - Pragma cleanup.Simple removal of unnecessary IWYU keep directive.
benchmark/micro_benchmark_n4.cpp (1)
7-12: LGTM - Consistent vector pragma pattern.Matches the IWYU adjustments in other benchmark files.
art_internal_impl.hpp (1)
6-6: LGTM - Pragma removal.Consistent with the project-wide IWYU cleanup.
examples/example_art.cpp (1)
7-7: LGTM - IWYU pragma cleanup.Straightforward removal of unnecessary IWYU directives.
benchmark/micro_benchmark.cpp (1)
6-12: LGTM—IWYU pragma cleanup.These pragma adjustments align with IWYU 0.25's analysis. No functional impact.
art_internal.hpp (1)
6-8: LGTM—IWYU pragma adjustments.Removing
keepfrom global.hpp and excluding platform-specific byte header is consistent with the PR's cleanup pattern.benchmark/micro_benchmark_concurrency.hpp (1)
6-6: LGTM—IWYU pragma cleanup.Removing
keeppragma from global.hpp is consistent with the PR pattern.art_internal.cpp (1)
4-4: LGTM—IWYU pragma cleanup.Removing
keeppragma from global.hpp matches the consistent pattern across all modified files.qsbr.cpp (1)
12-24: LGTM—IWYU pragma adjustments.Removing
keepfrom global.hpp, excluding platform-specific new header, and explicitly keeping<new>are appropriate IWYU directives.qsbr.hpp (1)
25-46: LGTM—IWYU pragma adjustments.The pattern of excluding platform-specific vector headers while keeping the standard
<vector>include is correct.test_heap.cpp (1)
19-30: LGTM—IWYU pragma adjustments.Excluding platform-specific new_handler header while keeping
<new>follows the established pattern in this PR.benchmark/micro_benchmark_utils.hpp (1)
6-12: LGTM—IWYU pragma adjustments.Excluding platform-specific byte header while keeping standard
<cstddef>completes the consistent IWYU cleanup pattern across all files in this PR.test/test_art_scan.cpp (1)
7-7: LGTM! Standard IWYU hygiene.The pragmas correctly suppress the internal vector implementation header while ensuring the public
<vector>header is retained.Also applies to: 16-16
test/test_art_oom.cpp (1)
8-8: LGTM! Consistent IWYU pattern.Suppresses internal
<__new/exceptions.h>while keeping the public<new>header. The reordering of gtest after standard library headers is reasonable.Also applies to: 13-15
test/qsbr_test_utils.cpp (1)
6-7: LGTM! Pragma-only adjustment.No include changes, just IWYU guidance adjustments.
test/test_qsbr.cpp (1)
9-11: LGTM! Adds missing include.The
<cmath>include was added (not just reordered), which is correct since the file usesstd::isnanat line 877.test/test_art_key_view.cpp (1)
6-7: LGTM! Proper IWYU annotations.Suppresses internal headers while keeping
<cstddef>which providesstd::byteused at line 41.Also applies to: 12-12
test/test_art.cpp (1)
6-10: LGTM! Standard IWYU pattern.Suppresses internal and unused headers while keeping
<cstddef>forstd::byteusage.test/test_art_concurrency.cpp (1)
4-4: LGTM! Include reordering.Removes the IWYU keep pragma from
global.hpp(consistent with other files) and adjustsqsbr.hppposition.Also applies to: 22-22
test/db_test_utils.cpp (1)
4-6: LGTM! Proper header ordering.Moves
db_test_utils.hppto be included immediately afterglobal.hppwith an IWYU keep pragma, following the common pattern of including a source file's corresponding header first.
c010294 to
b2cfd29
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (49)
art.hpp(2 hunks)art_common.hpp(1 hunks)art_internal.cpp(1 hunks)art_internal.hpp(1 hunks)art_internal_impl.hpp(1 hunks)benchmark/micro_benchmark.cpp(1 hunks)benchmark/micro_benchmark_concurrency.hpp(1 hunks)benchmark/micro_benchmark_key_prefix.cpp(1 hunks)benchmark/micro_benchmark_mutex.cpp(0 hunks)benchmark/micro_benchmark_n16.cpp(0 hunks)benchmark/micro_benchmark_n256.cpp(0 hunks)benchmark/micro_benchmark_n4.cpp(1 hunks)benchmark/micro_benchmark_n48.cpp(0 hunks)benchmark/micro_benchmark_node_utils.hpp(1 hunks)benchmark/micro_benchmark_utils.cpp(1 hunks)benchmark/micro_benchmark_utils.hpp(1 hunks)examples/example_art.cpp(1 hunks)examples/example_art_stats.cpp(1 hunks)examples/example_olc_art.cpp(1 hunks)fuzz_deepstate/test_art_fuzz_deepstate.cpp(1 hunks)heap.hpp(1 hunks)in_fake_critical_section.hpp(1 hunks)mutex_art.hpp(1 hunks)olc_art.hpp(1 hunks)optimistic_lock.hpp(1 hunks)portability_builtins.hpp(1 hunks)qsbr.cpp(2 hunks)qsbr.hpp(2 hunks)qsbr_ptr.hpp(1 hunks)test/db_test_utils.cpp(1 hunks)test/db_test_utils.hpp(2 hunks)test/gtest_utils.hpp(1 hunks)test/qsbr_gtest_utils.cpp(1 hunks)test/qsbr_gtest_utils.hpp(1 hunks)test/qsbr_test_utils.cpp(1 hunks)test/test_art.cpp(1 hunks)test/test_art_concurrency.cpp(2 hunks)test/test_art_iter.cpp(0 hunks)test/test_art_key_view.cpp(1 hunks)test/test_art_oom.cpp(1 hunks)test/test_art_scan.cpp(2 hunks)test/test_key_encode_decode.cpp(2 hunks)test/test_qsbr.cpp(1 hunks)test/test_qsbr_oom.cpp(1 hunks)test/test_qsbr_ptr.cpp(1 hunks)test/test_utils.hpp(1 hunks)test_heap.cpp(2 hunks)test_heap.hpp(1 hunks)thread_sync.hpp(1 hunks)
💤 Files with no reviewable changes (5)
- benchmark/micro_benchmark_n48.cpp
- test/test_art_iter.cpp
- benchmark/micro_benchmark_n256.cpp
- benchmark/micro_benchmark_n16.cpp
- benchmark/micro_benchmark_mutex.cpp
🧰 Additional context used
🧬 Code graph analysis (1)
benchmark/micro_benchmark_node_utils.hpp (3)
optimistic_lock.hpp (3)
NDEBUG(403-414)NDEBUG(822-826)NDEBUG(829-835)qsbr.hpp (1)
NDEBUG(1065-1081)qsbr_ptr.hpp (2)
NDEBUG(154-163)NDEBUG(176-185)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (40)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 12 Debug with ASan, Debug, ON, clang, 12)
- GitHub Check: build (clang 11 Debug with UBSan, Debug, ON, clang, 11)
- GitHub Check: build (clang 11 Release, Release, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 12 Debug with ASan, Debug, ON, clang, 12)
- GitHub Check: build (clang 11 Debug with UBSan, Debug, ON, clang, 11)
- GitHub Check: build (clang 11 Release, Release, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 12 Debug with ASan, Debug, ON, clang, 12)
- GitHub Check: build (clang 11 Debug with UBSan, Debug, ON, clang, 11)
- GitHub Check: build (clang 11 Release, Release, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 12 Debug with ASan, Debug, ON, clang, 12)
- GitHub Check: build (clang 11 Debug with UBSan, Debug, ON, clang, 11)
- GitHub Check: build (clang 11 Release, Release, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 12 Debug with ASan, Debug, ON, clang, 12)
- GitHub Check: build (clang 11 Debug with UBSan, Debug, ON, clang, 11)
- GitHub Check: build (clang 11 Release, Release, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 12 Debug with ASan, Debug, ON, clang, 12)
- GitHub Check: build (clang 11 Debug with UBSan, Debug, ON, clang, 11)
- GitHub Check: build (clang 11 Release, Release, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 12 Debug with ASan, Debug, ON, clang, 12)
- GitHub Check: build (clang 11 Debug with UBSan, Debug, ON, clang, 11)
- GitHub Check: build (clang 11 Release, Release, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 12 Debug with ASan, Debug, ON, clang, 12)
- GitHub Check: build (clang 11 Debug with UBSan, Debug, ON, clang, 11)
- GitHub Check: build (clang 11 Release, Release, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 12 Debug with ASan, Debug, ON, clang, 12)
- GitHub Check: build (clang 11 Debug with UBSan, Debug, ON, clang, 11)
- GitHub Check: build (clang 11 Release, Release, clang, 11)
- GitHub Check: Codacy Static Code Analysis
- GitHub Check: build (clang 12 Debug with ASan, Debug, ON, clang, 12)
- GitHub Check: build (clang 11 Debug with UBSan, Debug, ON, clang, 11)
- GitHub Check: build (clang 11 Release, Release, clang, 11)
🔇 Additional comments (46)
test/qsbr_test_utils.cpp (1)
6-7: Pragma cleanup looks fine.The reordering and duplicate removal are reasonable. If IWYU 0.25 actually requires this specific format, then you're good. If not, it's harmless cleanup anyway.
benchmark/micro_benchmark_node_utils.hpp (2)
6-6: LGTM - IWYU pragma removed.Removal aligns with IWYU 0.25 compatibility.
18-20: Good optimization - iostream only needed for debug builds.The move is correct since
std::cerr(line 455) is only used within NDEBUG blocks.examples/example_art_stats.cpp (1)
7-7: LGTM - IWYU pragma cleanup.The removal of IWYU directives is consistent with upgrading to include-what-you-use 0.25.
thread_sync.hpp (1)
9-9: LGTM - IWYU pragma removed.Correct cleanup for IWYU 0.25 compatibility.
test/test_utils.hpp (1)
13-13: LGTM - IWYU pragma cleanup.Consistent with the broader IWYU 0.25 migration.
test/gtest_utils.hpp (1)
15-15: LGTM - IWYU pragma removed.Correct adaptation to IWYU 0.25.
portability_builtins.hpp (1)
11-11: LGTM - IWYU pragma cleanup.Consistent with IWYU 0.25 requirements.
in_fake_critical_section.hpp (1)
20-20: LGTM - IWYU pragma removed.Correct cleanup for IWYU 0.25.
art_common.hpp (2)
6-6: LGTM - IWYU pragma cleanup.Correct removal of IWYU pragma: keep for IWYU 0.25.
12-12: LGTM - IWYU pragma cleanup.Simplified iosfwd include by removing obsolete IWYU directives.
examples/example_olc_art.cpp (1)
7-7: LGTM - IWYU pragma cleanup.Correct removal of multiple IWYU directives for IWYU 0.25 compatibility.
heap.hpp (1)
9-9: LGTM - IWYU pragma cleanupRemoval of the
keeppragma is consistent with IWYU 0.25's improved include analysis.benchmark/micro_benchmark_key_prefix.cpp (1)
6-10: LGTM - Proper vector header managementExcluding the implementation detail header
<__vector/vector.h>while keeping the public<vector>header is the correct approach.test/test_art_scan.cpp (1)
7-16: LGTM - Consistent vector header handlingSame pattern as the benchmark file - correctly managing the vector header includes.
mutex_art.hpp (1)
6-6: LGTM - IWYU pragma cleanupConsistent with the pattern across the PR. The previous review concern about
<type_traits>has been addressed (line 10).optimistic_lock.hpp (1)
214-214: LGTM - IWYU pragma cleanupConsistent pragma removal. The AI summary indicates
<iterator>and<optional>includes were also removed, which is appropriate if they're unused.qsbr.cpp (1)
12-24: LGTM - Proper exception header managementCorrectly excludes the implementation header while keeping the public
<new>header needed forstd::bad_alloc(line 56).art_internal.hpp (1)
6-8: LGTM - Proper cstddef header managementExcluding the implementation detail header is correct since the file already includes the public
<cstddef>header (line 13) which providesstd::byte.test_heap.hpp (1)
15-23: LGTM - Exception header managementSame pattern as
qsbr.cpp- correctly managing the<new>header includes forstd::bad_allocusage (line 75).test/test_key_encode_decode.cpp (1)
4-28: LGTM! IWYU pragma adjustments are appropriate.The IWYU pragmas have been correctly updated. The conditional inclusion of
<iostream>within the#ifndef NDEBUGblock (lines 26-28) properly reflects thatstd::cerris only used in debug-only code paths.art.hpp (3)
6-6: LGTM! Simplified IWYU pragma is appropriate.Removing the
IWYU pragma: keepfrom the first include aligns with the project-wide IWYU hygiene improvements.
27-53: LGTM! Forward declarations and inode_defs alias are correctly defined.The forward declarations for all inode specializations and the
inode_defsalias correctly bundle the five inode types for use in the ART policy.
718-802: LGTM! Test types and size assertions add valuable compile-time validation.The test type aliases and
static_asserts for inode sizes provide compile-time verification of memory layout stability across platforms. The platform-specific size differences (MSVC padding, AVX2 alignment) are appropriately documented and conditionally checked.benchmark/micro_benchmark_n4.cpp (1)
7-12: LGTM! IWYU pragmas correctly guide include analysis.The
no_includefor the internal<__vector/vector.h>implementation header and thekeepfor the public<vector>header are appropriate IWYU guidance.test/test_qsbr_ptr.cpp (1)
4-4: LGTM! Simplified IWYU pragma is consistent with project-wide changes.Removing the
IWYU pragma: keepfrom the first include aligns with the PR's IWYU hygiene improvements.benchmark/micro_benchmark_utils.cpp (1)
6-12: LGTM! IWYU keep pragmas prevent unintended header removal.The added
IWYU pragma: keepcomments ensure these headers aren't removed by automated tools, even if their usage isn't immediately apparent to static analysis.test/qsbr_gtest_utils.cpp (1)
4-10: LGTM! IWYU pragma adjustments are consistent with project patterns.Moving the
IWYU pragma: keepfromglobal.hpptoqsbr_gtest_utils.hppaligns with the project-wide pattern of ensuring header/implementation file pairs keep their corresponding header includes.fuzz_deepstate/test_art_fuzz_deepstate.cpp (1)
5-22: No action required—transitive includes are validated.Your transitive includes are working correctly. The grep results confirm that:
std::optionalcomes fromart.hpp(includes<optional>)std::numeric_limitscomes fromart_internal_impl.hpp(includes<limits>)std::stringstreamis available through the included headersThe IWYU pragma validates this strategy. The original concern is resolved.
benchmark/micro_benchmark_utils.hpp (1)
6-12: LGTM - IWYU 0.25 hygiene updates.The changes follow the consistent pattern across this PR: removing the
keeppragma from the first include (global.hpp), addingno_includefor internal implementation headers, and movingkeepannotations inline where needed. No functional impact.benchmark/micro_benchmark.cpp (1)
6-12: LGTM - IWYU-driven include adjustments.Pragmas updated for IWYU 0.25, and the shift from
<array>to<tuple>is correct since the code usesstd::ignore(line 149) which requires<tuple>. The forward declaration removal aligns with cleaner IWYU practices.test/db_test_utils.cpp (1)
4-6: LGTM - Include reordering with proper pragma placement.The reordering maintains
global.hppas the first include while properly markingdb_test_utils.hppwithpragma: keepfor its implementation file. Consistent with IWYU 0.25 hygiene.benchmark/micro_benchmark_concurrency.hpp (1)
6-6: LGTM - Consistent IWYU pragma cleanup.Removing the
keeppragma from the first include is part of the consistent IWYU 0.25 hygiene pattern applied across the codebase.qsbr.hpp (1)
25-46: LGTM - Standard IWYU pattern applied.The changes suppress the internal implementation header
<__vector/vector.h>while explicitly keeping the public<vector>header. This is the correct IWYU 0.25 pattern for handling transitive includes.test/test_qsbr.cpp (1)
9-12: LGTM - Required include added.Adding
<cmath>is correct sincestd::isnanis used at line 877. Theno_includepragma for<gtest/gtest.h>is appropriate as it's transitively available throughgtest_utils.hppat line 16.test/db_test_utils.hpp (1)
6-26: LGTM - Comprehensive IWYU pragma updates.All changes follow the established pattern: removing
keepfromglobal.hpp, suppressing internal implementation headers (__cstddef/byte.h,__vector/vector.h), and explicitly keeping the public<vector>header. Correctly applied.test/test_art_concurrency.cpp (1)
4-22: LGTM - Include ordering refinement.The pragma removal is consistent with the broader pattern. Moving
qsbr.hppto line 22 (aftergtest_utils.hpp) aligns with the revised include sequencing described in the PR. No functional impact.test/test_art_key_view.cpp (1)
6-7: LGTM - IWYU pragma updates are appropriate.These directives control IWYU 0.25's header analysis without affecting functionality. The
no_includepragmas suppress suggestions for internal/unused headers, and thekeeppragma on<cstddef>preserves a header likely needed forstd::byte.Also applies to: 12-12
test/test_art.cpp (1)
6-8: LGTM - IWYU pragma updates are consistent.Header hygiene directives for IWYU 0.25 compatibility. The suppressions prevent unnecessary header suggestions, and the
keepensures<cstddef>isn't removed despite indirect usage.Also applies to: 10-10
examples/example_art.cpp (1)
7-7: Include cleanup looks goodglobal.hpp remains first; dropping IWYU keep is fine here.
test_heap.cpp (1)
19-20: Pragmas are appropriate for IWYU 0.25
- no_include on internal <__new/new_handler.h> avoids spurious adds.
- keep on prevents removal while using std::get_new_handler/bad_alloc.
Also applies to: 30-30
test/test_art_oom.cpp (1)
8-8: IWYU hints are consistent for OOM testsno_include for __new/exceptions.h and keep on make sense; gtest include order is fine.
Also applies to: 13-16
qsbr_ptr.hpp (1)
14-17: Good IWYU hygiene for std::byteDropping keep on global.hpp and suppressing libc++’s __cstddef/byte.h while keeping is correct.
art_internal_impl.hpp (1)
6-6: LGTM on include pragma removalglobal.hpp stays first; no functional impact.
olc_art.hpp (1)
9-9: Include pragma removal is fineglobal.hpp remains first; rest untouched.
art_internal.cpp (1)
4-4: LGTM on IWYU cleanupPlain include is fine; existing no_include/keep pragmas remain correctly placed.
b2cfd29 to
2918f45
Compare
2918f45 to
ce8594e
Compare
|



Summary by CodeRabbit
New Features
Chores