From 5918f98ecbf5ace77f30fa97f7fc3e8bdac08e04 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Fri, 6 May 2022 11:31:11 -0700 Subject: [PATCH] [iwyu] Enable nosafe_headers (#29591) * Add flag * sweep1 * fixes * speedup * fixes * fix * fix * fix * Automated change: Fix sanity tests * fix * fix * fix * fix * fix * fix * fix Co-authored-by: ctiller --- BUILD | 6 ++++ .../channel_idle/channel_idle_filter.cc | 1 + .../filters/http/client/http_client_filter.cc | 1 + .../filters/http/server/http_server_filter.cc | 2 ++ .../server_load_reporting_filter.cc | 1 + .../chttp2/client/chttp2_connector.h | 1 - .../transport/chttp2/transport/bin_decoder.h | 1 - .../chttp2/transport/chttp2_transport.cc | 1 - .../transport/chttp2/transport/context_list.h | 1 - .../transport/chttp2/transport/flow_control.h | 2 -- .../ext/transport/chttp2/transport/frame.h | 4 --- .../transport/chttp2/transport/frame_data.h | 1 - .../transport/chttp2/transport/frame_goaway.h | 1 - .../chttp2/transport/hpack_encoder.h | 2 -- .../chttp2/transport/hpack_parser.cc | 2 ++ .../transport/chttp2/transport/hpack_parser.h | 3 +- .../chttp2/transport/hpack_parser_table.h | 3 -- .../chttp2/transport/http2_settings.h | 1 - .../ext/transport/chttp2/transport/internal.h | 2 -- .../ext/transport/chttp2/transport/writing.cc | 2 ++ src/core/lib/avl/avl.h | 1 - src/core/lib/channel/call_tracer.h | 2 -- src/core/lib/channel/channel_args.h | 1 - src/core/lib/channel/channel_stack.h | 3 -- src/core/lib/channel/channel_stack_builder.h | 5 --- .../lib/channel/channel_stack_builder_impl.h | 4 --- src/core/lib/channel/channel_trace.h | 3 -- src/core/lib/channel/channelz.h | 4 --- src/core/lib/channel/channelz_registry.h | 1 - src/core/lib/channel/handshaker.h | 3 -- src/core/lib/channel/promise_based_filter.h | 5 --- src/core/lib/channel/status_util.h | 3 -- src/core/lib/event_engine/memory_allocator.cc | 4 +-- src/core/lib/gprpp/bitset.h | 1 - src/core/lib/gprpp/capture.h | 1 - src/core/lib/gprpp/dual_ref_counted.h | 4 --- src/core/lib/gprpp/examine_stack.h | 1 - src/core/lib/gprpp/fork.cc | 1 - src/core/lib/gprpp/global_config.h | 6 ++-- src/core/lib/gprpp/global_config_env.h | 2 +- src/core/lib/gprpp/global_config_generic.h | 4 --- src/core/lib/gprpp/manual_constructor.h | 1 - src/core/lib/gprpp/memory.h | 5 --- src/core/lib/gprpp/orphanable.h | 4 --- src/core/lib/gprpp/ref_counted.h | 3 -- src/core/lib/gprpp/ref_counted_ptr.h | 1 - src/core/lib/gprpp/stat.h | 2 -- src/core/lib/gprpp/stat_posix.cc | 2 ++ src/core/lib/gprpp/sync.h | 5 ++- src/core/lib/gprpp/thd.h | 5 --- src/core/lib/gprpp/thd_windows.cc | 2 ++ src/core/lib/gprpp/time.h | 1 - src/core/lib/gprpp/time_util.h | 1 - src/core/lib/iomgr/tcp_windows.cc | 1 + src/core/lib/json/json.h | 2 -- src/core/lib/json/json_util.h | 1 - src/core/lib/promise/activity.h | 3 -- src/core/lib/promise/arena_promise.h | 2 -- src/core/lib/promise/context.h | 2 +- src/core/lib/promise/detail/basic_join.h | 1 - src/core/lib/promise/detail/basic_seq.h | 2 -- src/core/lib/promise/detail/promise_factory.h | 1 - src/core/lib/promise/latch.h | 1 - src/core/lib/promise/observable.h | 1 - src/core/lib/promise/pipe.h | 16 ---------- src/core/lib/promise/race.h | 1 - src/core/lib/promise/seq.h | 2 -- src/core/lib/promise/try_seq.h | 2 -- src/core/lib/resource_quota/api.h | 1 - src/core/lib/resource_quota/arena.h | 2 -- src/core/lib/resource_quota/memory_quota.h | 6 ---- .../authorization/grpc_server_authz_filter.cc | 1 + .../security/credentials/call_creds_util.cc | 2 ++ .../credentials/channel_creds_registry.h | 1 + .../lib/security/credentials/credentials.h | 1 + .../aws_external_account_credentials.cc | 2 ++ .../external/external_account_credentials.cc | 3 ++ .../url_external_account_credentials.cc | 2 ++ src/core/lib/slice/percent_encoding.h | 6 ---- src/core/lib/slice/slice.h | 5 --- src/core/lib/slice/slice_internal.h | 3 -- src/core/lib/slice/slice_refcount.h | 3 -- src/core/lib/slice/slice_refcount_base.h | 3 -- src/core/lib/slice/slice_split.h | 4 --- src/core/lib/slice/slice_string_helpers.h | 4 --- src/core/lib/surface/validate_metadata.cc | 1 + src/core/lib/transport/bdp_estimator.h | 3 -- src/core/lib/transport/byte_stream.h | 1 - src/core/lib/transport/connectivity_state.h | 3 -- src/core/lib/transport/error_utils.h | 1 - src/core/lib/transport/metadata_batch.h | 8 ----- src/core/lib/transport/parsed_metadata.h | 2 -- src/core/lib/transport/status_conversion.h | 2 -- src/core/lib/transport/timeout_encoding.h | 1 - src/core/lib/transport/transport.h | 2 -- src/core/lib/transport/transport_impl.h | 1 - src/core/lib/uri/uri_parser.h | 2 -- src/core/tsi/ssl/session_cache/ssl_session.h | 2 ++ .../session_cache/ssl_session_boringssl.cc | 2 ++ .../ssl/session_cache/ssl_session_openssl.cc | 2 ++ src/cpp/server/orca/orca_service.cc | 1 + test/core/channel/channel_stack_test.cc | 1 + .../channel/minimal_stack_is_minimal_test.cc | 1 + .../tests/retry_cancel_during_delay.cc | 1 + test/core/http/httpcli_test.cc | 1 + test/core/http/httpscli_test.cc | 1 + test/core/security/oauth2_utils.cc | 1 + test/core/slice/slice_split_test.cc | 1 + test/core/slice/slice_test.cc | 2 ++ test/core/transport/bdp_estimator_test.cc | 1 + .../transport/chttp2/context_list_test.cc | 1 + .../transport/chttp2/hpack_encoder_test.cc | 1 + .../core/transport/connectivity_state_test.cc | 1 + test/core/transport/status_conversion_test.cc | 2 ++ test/core/util/tls_utils.cc | 1 + .../xds/xds_channel_stack_modifier_test.cc | 1 + test/cpp/end2end/client_lb_end2end_test.cc | 1 + tools/dockerfile/grpc_iwyu/iwyu.sh | 32 ++++++++++++++----- 118 files changed, 94 insertions(+), 206 deletions(-) diff --git a/BUILD b/BUILD index 4fd4da5b0c3..80bce1f7f57 100644 --- a/BUILD +++ b/BUILD @@ -2651,6 +2651,7 @@ grpc_cc_library( "grpc_base", "idle_filter_state", "loop", + "promise", "single_set_ptr", "sleep", "try_seq", @@ -2785,6 +2786,7 @@ grpc_cc_library( "gpr_base", "grpc_base", "grpc_message_size_filter", + "promise", "seq", "slice", ], @@ -3390,6 +3392,7 @@ grpc_cc_library( "grpc_lb_policy_grpclb", "grpc_security_base", "grpc_sockaddr", + "promise", "seq", "slice", "uri_parser", @@ -3773,6 +3776,7 @@ grpc_cc_library( "grpc_base", "grpc_credentials_util", "grpc_trace", + "promise", "slice_refcount", "sockaddr_utils", ], @@ -4381,6 +4385,7 @@ grpc_cc_library( "src/core/tsi/ssl_transport_security.h", ], external_deps = [ + "absl/memory", "absl/strings", "libssl", "libcrypto", @@ -5075,6 +5080,7 @@ grpc_cc_library( "grpc++_codegen_base", "grpc_base", "protobuf_duration_upb", + "ref_counted", "time", "xds_orca_service_upb", "xds_orca_upb", diff --git a/src/core/ext/filters/channel_idle/channel_idle_filter.cc b/src/core/ext/filters/channel_idle/channel_idle_filter.cc index 85fbb614c76..fce00c7e53f 100644 --- a/src/core/ext/filters/channel_idle/channel_idle_filter.cc +++ b/src/core/ext/filters/channel_idle/channel_idle_filter.cc @@ -33,6 +33,7 @@ #include "src/core/lib/iomgr/timer.h" #include "src/core/lib/promise/exec_ctx_wakeup_scheduler.h" #include "src/core/lib/promise/loop.h" +#include "src/core/lib/promise/promise.h" #include "src/core/lib/promise/sleep.h" #include "src/core/lib/promise/try_seq.h" #include "src/core/lib/transport/http2_errors.h" diff --git a/src/core/ext/filters/http/client/http_client_filter.cc b/src/core/ext/filters/http/client/http_client_filter.cc index 19dcb8b5b67..47c325562e6 100644 --- a/src/core/ext/filters/http/client/http_client_filter.cc +++ b/src/core/ext/filters/http/client/http_client_filter.cc @@ -29,6 +29,7 @@ #include "absl/strings/str_format.h" #include "absl/strings/str_join.h" +#include #include #include diff --git a/src/core/ext/filters/http/server/http_server_filter.cc b/src/core/ext/filters/http/server/http_server_filter.cc index 055f91fd609..e571137fd74 100644 --- a/src/core/ext/filters/http/server/http_server_filter.cc +++ b/src/core/ext/filters/http/server/http_server_filter.cc @@ -22,6 +22,7 @@ #include +#include #include #include @@ -29,6 +30,7 @@ #include "src/core/lib/gprpp/manual_constructor.h" #include "src/core/lib/profiling/timers.h" #include "src/core/lib/promise/call_push_pull.h" +#include "src/core/lib/promise/promise.h" #include "src/core/lib/promise/seq.h" #include "src/core/lib/slice/b64.h" #include "src/core/lib/slice/percent_encoding.h" diff --git a/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc b/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc index 3bd3b6e95fe..a3f5e3faf6d 100644 --- a/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +++ b/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc @@ -43,6 +43,7 @@ #include "src/core/lib/iomgr/resolve_address.h" #include "src/core/lib/iomgr/sockaddr.h" #include "src/core/lib/iomgr/socket_utils.h" +#include "src/core/lib/promise/promise.h" #include "src/core/lib/promise/seq.h" #include "src/core/lib/security/context/security_context.h" #include "src/core/lib/slice/slice_internal.h" diff --git a/src/core/ext/transport/chttp2/client/chttp2_connector.h b/src/core/ext/transport/chttp2/client/chttp2_connector.h index 3c6f4b58546..a5e39b413b2 100644 --- a/src/core/ext/transport/chttp2/client/chttp2_connector.h +++ b/src/core/ext/transport/chttp2/client/chttp2_connector.h @@ -25,7 +25,6 @@ #include "src/core/ext/filters/client_channel/connector.h" #include "src/core/lib/channel/handshaker.h" -#include "src/core/lib/channel/handshaker_registry.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/gprpp/sync.h" #include "src/core/lib/iomgr/closure.h" diff --git a/src/core/ext/transport/chttp2/transport/bin_decoder.h b/src/core/ext/transport/chttp2/transport/bin_decoder.h index 603d53d2522..e494b46f209 100644 --- a/src/core/ext/transport/chttp2/transport/bin_decoder.h +++ b/src/core/ext/transport/chttp2/transport/bin_decoder.h @@ -21,7 +21,6 @@ #include -#include #include #include diff --git a/src/core/ext/transport/chttp2/transport/chttp2_transport.cc b/src/core/ext/transport/chttp2/transport/chttp2_transport.cc index 36f5153f819..cdaadc654d8 100644 --- a/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +++ b/src/core/ext/transport/chttp2/transport/chttp2_transport.cc @@ -63,7 +63,6 @@ #include "src/core/lib/gprpp/bitset.h" #include "src/core/lib/gprpp/debug_location.h" #include "src/core/lib/gprpp/global_config_env.h" -#include "src/core/lib/gprpp/global_config_generic.h" #include "src/core/lib/gprpp/manual_constructor.h" #include "src/core/lib/gprpp/orphanable.h" #include "src/core/lib/gprpp/ref_counted.h" diff --git a/src/core/ext/transport/chttp2/transport/context_list.h b/src/core/ext/transport/chttp2/transport/context_list.h index d4066e6462c..db8e33ae85d 100644 --- a/src/core/ext/transport/chttp2/transport/context_list.h +++ b/src/core/ext/transport/chttp2/transport/context_list.h @@ -24,7 +24,6 @@ #include #include "src/core/ext/transport/chttp2/transport/frame.h" -#include "src/core/ext/transport/chttp2/transport/internal.h" #include "src/core/lib/iomgr/buffer_list.h" #include "src/core/lib/iomgr/error.h" diff --git a/src/core/ext/transport/chttp2/transport/flow_control.h b/src/core/ext/transport/chttp2/transport/flow_control.h index e44cb878c7b..185f18b38ca 100644 --- a/src/core/ext/transport/chttp2/transport/flow_control.h +++ b/src/core/ext/transport/chttp2/transport/flow_control.h @@ -28,8 +28,6 @@ #include "src/core/ext/transport/chttp2/transport/http2_settings.h" #include "src/core/lib/debug/trace.h" -#include "src/core/lib/gpr/useful.h" -#include "src/core/lib/gprpp/manual_constructor.h" #include "src/core/lib/gprpp/time.h" #include "src/core/lib/iomgr/error.h" #include "src/core/lib/transport/bdp_estimator.h" diff --git a/src/core/ext/transport/chttp2/transport/frame.h b/src/core/ext/transport/chttp2/transport/frame.h index 083c0076e71..fa5d74a8ec3 100644 --- a/src/core/ext/transport/chttp2/transport/frame.h +++ b/src/core/ext/transport/chttp2/transport/frame.h @@ -21,10 +21,6 @@ #include -#include - -#include "src/core/lib/iomgr/error.h" - /* defined in internal.h */ typedef struct grpc_chttp2_stream grpc_chttp2_stream; typedef struct grpc_chttp2_transport grpc_chttp2_transport; diff --git a/src/core/ext/transport/chttp2/transport/frame_data.h b/src/core/ext/transport/chttp2/transport/frame_data.h index 61e20973063..d32bba83069 100644 --- a/src/core/ext/transport/chttp2/transport/frame_data.h +++ b/src/core/ext/transport/chttp2/transport/frame_data.h @@ -26,7 +26,6 @@ #include #include -#include #include "src/core/ext/transport/chttp2/transport/frame.h" #include "src/core/lib/gprpp/orphanable.h" diff --git a/src/core/ext/transport/chttp2/transport/frame_goaway.h b/src/core/ext/transport/chttp2/transport/frame_goaway.h index 96ba6fe6488..cc86146b761 100644 --- a/src/core/ext/transport/chttp2/transport/frame_goaway.h +++ b/src/core/ext/transport/chttp2/transport/frame_goaway.h @@ -24,7 +24,6 @@ #include #include -#include #include "src/core/ext/transport/chttp2/transport/frame.h" #include "src/core/lib/iomgr/error.h" diff --git a/src/core/ext/transport/chttp2/transport/hpack_encoder.h b/src/core/ext/transport/chttp2/transport/hpack_encoder.h index 5f377a46cbf..5d3b6687b80 100644 --- a/src/core/ext/transport/chttp2/transport/hpack_encoder.h +++ b/src/core/ext/transport/chttp2/transport/hpack_encoder.h @@ -32,10 +32,8 @@ #include #include -#include #include -#include "src/core/ext/transport/chttp2/transport/frame.h" #include "src/core/ext/transport/chttp2/transport/hpack_constants.h" #include "src/core/ext/transport/chttp2/transport/hpack_encoder_table.h" #include "src/core/lib/compression/compression_internal.h" diff --git a/src/core/ext/transport/chttp2/transport/hpack_parser.cc b/src/core/ext/transport/chttp2/transport/hpack_parser.cc index c0144baaa5d..261f52f91de 100644 --- a/src/core/ext/transport/chttp2/transport/hpack_parser.cc +++ b/src/core/ext/transport/chttp2/transport/hpack_parser.cc @@ -56,6 +56,8 @@ #include "src/core/lib/transport/parsed_metadata.h" #include "src/core/lib/transport/transport.h" +// IWYU pragma: no_include + #if __cplusplus > 201103L #define GRPC_HPACK_CONSTEXPR_FN constexpr #define GRPC_HPACK_CONSTEXPR_VALUE constexpr diff --git a/src/core/ext/transport/chttp2/transport/hpack_parser.h b/src/core/ext/transport/chttp2/transport/hpack_parser.h index 1903a5df942..d01b6061f5b 100644 --- a/src/core/ext/transport/chttp2/transport/hpack_parser.h +++ b/src/core/ext/transport/chttp2/transport/hpack_parser.h @@ -21,7 +21,6 @@ #include -#include #include #include @@ -33,6 +32,8 @@ #include "src/core/lib/iomgr/error.h" #include "src/core/lib/transport/metadata_batch.h" +// IWYU pragma: no_include + namespace grpc_core { // Top level interface for parsing a sequence of header, continuation frames. diff --git a/src/core/ext/transport/chttp2/transport/hpack_parser_table.h b/src/core/ext/transport/chttp2/transport/hpack_parser_table.h index 3a6146100bb..1e0d8547fdb 100644 --- a/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +++ b/src/core/ext/transport/chttp2/transport/hpack_parser_table.h @@ -25,10 +25,7 @@ #include -#include - #include "src/core/ext/transport/chttp2/transport/hpack_constants.h" -#include "src/core/lib/gprpp/memory.h" #include "src/core/lib/iomgr/error.h" #include "src/core/lib/transport/metadata_batch.h" #include "src/core/lib/transport/parsed_metadata.h" diff --git a/src/core/ext/transport/chttp2/transport/http2_settings.h b/src/core/ext/transport/chttp2/transport/http2_settings.h index 3e8ead60f44..c96391b44ad 100644 --- a/src/core/ext/transport/chttp2/transport/http2_settings.h +++ b/src/core/ext/transport/chttp2/transport/http2_settings.h @@ -23,7 +23,6 @@ #include -#include #include enum grpc_chttp2_setting_id { diff --git a/src/core/ext/transport/chttp2/transport/internal.h b/src/core/ext/transport/chttp2/transport/internal.h index ffb7738c17b..015a78eddaf 100644 --- a/src/core/ext/transport/chttp2/transport/internal.h +++ b/src/core/ext/transport/chttp2/transport/internal.h @@ -21,8 +21,6 @@ #include -#include -#include #include #include diff --git a/src/core/ext/transport/chttp2/transport/writing.cc b/src/core/ext/transport/chttp2/transport/writing.cc index 59de95e44ec..2ce3aacaee1 100644 --- a/src/core/ext/transport/chttp2/transport/writing.cc +++ b/src/core/ext/transport/chttp2/transport/writing.cc @@ -31,6 +31,8 @@ #include #include +// IWYU pragma: no_include "src/core/lib/gprpp/orphanable.h" + #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h" #include "src/core/ext/transport/chttp2/transport/context_list.h" #include "src/core/ext/transport/chttp2/transport/flow_control.h" diff --git a/src/core/lib/avl/avl.h b/src/core/lib/avl/avl.h index 5e3e2a8cca5..d00f50c0bc8 100644 --- a/src/core/lib/avl/avl.h +++ b/src/core/lib/avl/avl.h @@ -19,7 +19,6 @@ #include -#include #include #include diff --git a/src/core/lib/channel/call_tracer.h b/src/core/lib/channel/call_tracer.h index e8f6ae4cf34..58b4bd1d386 100644 --- a/src/core/lib/channel/call_tracer.h +++ b/src/core/lib/channel/call_tracer.h @@ -24,12 +24,10 @@ #include #include "absl/status/status.h" -#include "absl/strings/string_view.h" #include #include -#include "src/core/lib/channel/channel_stack.h" #include "src/core/lib/iomgr/error.h" #include "src/core/lib/transport/byte_stream.h" #include "src/core/lib/transport/metadata_batch.h" diff --git a/src/core/lib/channel/channel_args.h b/src/core/lib/channel/channel_args.h index e25da6f8f21..9116b4384ca 100644 --- a/src/core/lib/channel/channel_args.h +++ b/src/core/lib/channel/channel_args.h @@ -31,7 +31,6 @@ #include "absl/strings/string_view.h" #include "absl/types/optional.h" #include "absl/types/variant.h" -#include "absl/utility/utility.h" #include diff --git a/src/core/lib/channel/channel_stack.h b/src/core/lib/channel/channel_stack.h index 19645e6bacc..a0e3a9ad57b 100644 --- a/src/core/lib/channel/channel_stack.h +++ b/src/core/lib/channel/channel_stack.h @@ -50,13 +50,11 @@ #include -#include #include #include #include #include #include -#include #include "src/core/lib/channel/context.h" #include "src/core/lib/debug/trace.h" @@ -70,7 +68,6 @@ #include "src/core/lib/iomgr/polling_entity.h" #include "src/core/lib/promise/arena_promise.h" #include "src/core/lib/resource_quota/arena.h" -#include "src/core/lib/transport/metadata_batch.h" #include "src/core/lib/transport/transport.h" struct grpc_call_element; diff --git a/src/core/lib/channel/channel_stack_builder.h b/src/core/lib/channel/channel_stack_builder.h index 048dd226cb3..a53914f5fb8 100644 --- a/src/core/lib/channel/channel_stack_builder.h +++ b/src/core/lib/channel/channel_stack_builder.h @@ -17,9 +17,6 @@ #include -#include - -#include #include #include @@ -30,8 +27,6 @@ #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" -#include "src/core/lib/iomgr/closure.h" -#include "src/core/lib/iomgr/error.h" #include "src/core/lib/surface/channel_stack_type.h" typedef struct grpc_channel_stack grpc_channel_stack; diff --git a/src/core/lib/channel/channel_stack_builder_impl.h b/src/core/lib/channel/channel_stack_builder_impl.h index 4f8c335d8b8..a7b6641ef97 100644 --- a/src/core/lib/channel/channel_stack_builder_impl.h +++ b/src/core/lib/channel/channel_stack_builder_impl.h @@ -17,12 +17,8 @@ #include -#include - #include "absl/status/statusor.h" -#include "src/core/lib/channel/channel_args.h" -#include "src/core/lib/channel/channel_stack.h" #include "src/core/lib/channel/channel_stack_builder.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" diff --git a/src/core/lib/channel/channel_trace.h b/src/core/lib/channel/channel_trace.h index 65c89d1efae..323d7bd4a4b 100644 --- a/src/core/lib/channel/channel_trace.h +++ b/src/core/lib/channel/channel_trace.h @@ -24,14 +24,11 @@ #include #include -#include #include #include #include -#include "src/core/lib/gprpp/ref_counted.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" -#include "src/core/lib/iomgr/error.h" #include "src/core/lib/json/json.h" namespace grpc_core { diff --git a/src/core/lib/channel/channelz.h b/src/core/lib/channel/channelz.h index 3769d2492f6..d3b23a9ce31 100644 --- a/src/core/lib/channel/channelz.h +++ b/src/core/lib/channel/channelz.h @@ -34,19 +34,15 @@ #include "absl/strings/string_view.h" #include "absl/types/optional.h" -#include #include #include #include #include "src/core/lib/channel/channel_trace.h" #include "src/core/lib/gpr/time_precise.h" -#include "src/core/lib/gprpp/manual_constructor.h" #include "src/core/lib/gprpp/ref_counted.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/gprpp/sync.h" -#include "src/core/lib/iomgr/error.h" -#include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/json/json.h" // Channel arg key for channelz node. diff --git a/src/core/lib/channel/channelz_registry.h b/src/core/lib/channel/channelz_registry.h index 6e022246678..ec3e282c8fa 100644 --- a/src/core/lib/channel/channelz_registry.h +++ b/src/core/lib/channel/channelz_registry.h @@ -26,7 +26,6 @@ #include #include -#include "src/core/lib/channel/channel_trace.h" #include "src/core/lib/channel/channelz.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/gprpp/sync.h" diff --git a/src/core/lib/channel/handshaker.h b/src/core/lib/channel/handshaker.h index 652be2f7cf2..3f82a155272 100644 --- a/src/core/lib/channel/handshaker.h +++ b/src/core/lib/channel/handshaker.h @@ -27,9 +27,7 @@ #include #include -#include -#include "src/core/lib/channel/channel_args.h" #include "src/core/lib/gprpp/ref_counted.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/gprpp/sync.h" @@ -37,7 +35,6 @@ #include "src/core/lib/iomgr/closure.h" #include "src/core/lib/iomgr/endpoint.h" #include "src/core/lib/iomgr/error.h" -#include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/iomgr/tcp_server.h" #include "src/core/lib/iomgr/timer.h" diff --git a/src/core/lib/channel/promise_based_filter.h b/src/core/lib/channel/promise_based_filter.h index 1ff057ece77..7421c85b3a4 100644 --- a/src/core/lib/channel/promise_based_filter.h +++ b/src/core/lib/channel/promise_based_filter.h @@ -30,18 +30,14 @@ #include #include "absl/container/inlined_vector.h" -#include "absl/functional/function_ref.h" #include "absl/meta/type_traits.h" -#include "absl/utility/utility.h" -#include #include #include "src/core/lib/channel/call_finalization.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/channel/channel_stack.h" #include "src/core/lib/channel/context.h" -#include "src/core/lib/gprpp/debug_location.h" #include "src/core/lib/gprpp/time.h" #include "src/core/lib/iomgr/call_combiner.h" #include "src/core/lib/iomgr/closure.h" @@ -52,7 +48,6 @@ #include "src/core/lib/promise/context.h" #include "src/core/lib/promise/latch.h" #include "src/core/lib/promise/poll.h" -#include "src/core/lib/promise/promise.h" #include "src/core/lib/resource_quota/arena.h" #include "src/core/lib/transport/error_utils.h" #include "src/core/lib/transport/metadata_batch.h" diff --git a/src/core/lib/channel/status_util.h b/src/core/lib/channel/status_util.h index b9245f234e2..e7524a09189 100644 --- a/src/core/lib/channel/status_util.h +++ b/src/core/lib/channel/status_util.h @@ -21,9 +21,6 @@ #include -#include -#include - #include /// If \a status_str is a valid status string, sets \a status to the diff --git a/src/core/lib/event_engine/memory_allocator.cc b/src/core/lib/event_engine/memory_allocator.cc index afb056ecd7b..39880f6fe5c 100644 --- a/src/core/lib/event_engine/memory_allocator.cc +++ b/src/core/lib/event_engine/memory_allocator.cc @@ -41,7 +41,7 @@ class SliceRefCount : public grpc_slice_refcount { static void Destroy(grpc_slice_refcount* p) { auto* rc = static_cast(p); rc->~SliceRefCount(); - gpr_free(rc); + free(rc); } std::shared_ptr allocator_; @@ -52,7 +52,7 @@ class SliceRefCount : public grpc_slice_refcount { grpc_slice MemoryAllocator::MakeSlice(MemoryRequest request) { auto size = Reserve(request.Increase(sizeof(SliceRefCount))); - void* p = gpr_malloc(size); + void* p = malloc(size); new (p) SliceRefCount(allocator_, size); grpc_slice slice; slice.refcount = static_cast(p); diff --git a/src/core/lib/gprpp/bitset.h b/src/core/lib/gprpp/bitset.h index 29e3e9a86a6..8fcd44edcae 100644 --- a/src/core/lib/gprpp/bitset.h +++ b/src/core/lib/gprpp/bitset.h @@ -21,7 +21,6 @@ #include #include -#include #include "src/core/lib/gpr/useful.h" diff --git a/src/core/lib/gprpp/capture.h b/src/core/lib/gprpp/capture.h index 151f6062f68..2d9a724b186 100644 --- a/src/core/lib/gprpp/capture.h +++ b/src/core/lib/gprpp/capture.h @@ -19,7 +19,6 @@ #include #include -#include #include "absl/utility/utility.h" diff --git a/src/core/lib/gprpp/dual_ref_counted.h b/src/core/lib/gprpp/dual_ref_counted.h index 32fb425d15f..8d3f5825519 100644 --- a/src/core/lib/gprpp/dual_ref_counted.h +++ b/src/core/lib/gprpp/dual_ref_counted.h @@ -20,13 +20,9 @@ #include #include -#include -#include #include -#include #include -#include #include "src/core/lib/gprpp/debug_location.h" #include "src/core/lib/gprpp/orphanable.h" diff --git a/src/core/lib/gprpp/examine_stack.h b/src/core/lib/gprpp/examine_stack.h index 00ba1fc1070..3f9c5db77b7 100644 --- a/src/core/lib/gprpp/examine_stack.h +++ b/src/core/lib/gprpp/examine_stack.h @@ -21,7 +21,6 @@ #include -#include #include #include "absl/types/optional.h" diff --git a/src/core/lib/gprpp/fork.cc b/src/core/lib/gprpp/fork.cc index aa62cde5e75..31fcc77eaf9 100644 --- a/src/core/lib/gprpp/fork.cc +++ b/src/core/lib/gprpp/fork.cc @@ -26,7 +26,6 @@ #include #include "src/core/lib/gprpp/global_config_env.h" -#include "src/core/lib/gprpp/global_config_generic.h" /* * NOTE: FORKING IS NOT GENERALLY SUPPORTED, THIS IS ONLY INTENDED TO WORK diff --git a/src/core/lib/gprpp/global_config.h b/src/core/lib/gprpp/global_config.h index 150c7385638..76ad8906b1f 100644 --- a/src/core/lib/gprpp/global_config.h +++ b/src/core/lib/gprpp/global_config.h @@ -21,8 +21,6 @@ #include -#include - // -------------------------------------------------------------------- // How to use global configuration variables: // @@ -89,7 +87,7 @@ // bool gpr_global_config_get_test(); // void gpr_global_config_set_test(bool value); -#include "src/core/lib/gprpp/global_config_custom.h" -#include "src/core/lib/gprpp/global_config_env.h" +#include "src/core/lib/gprpp/global_config_custom.h" // IWYU pragma: export +#include "src/core/lib/gprpp/global_config_env.h" // IWYU pragma: export #endif /* GRPC_CORE_LIB_GPRPP_GLOBAL_CONFIG_H */ diff --git a/src/core/lib/gprpp/global_config_env.h b/src/core/lib/gprpp/global_config_env.h index 94b12586ecd..4ea8097111d 100644 --- a/src/core/lib/gprpp/global_config_env.h +++ b/src/core/lib/gprpp/global_config_env.h @@ -23,7 +23,7 @@ #include -#include "src/core/lib/gprpp/global_config_generic.h" +#include "src/core/lib/gprpp/global_config_generic.h" // IWYU pragma: export #include "src/core/lib/gprpp/memory.h" namespace grpc_core { diff --git a/src/core/lib/gprpp/global_config_generic.h b/src/core/lib/gprpp/global_config_generic.h index 6bdadb09804..8d53f17e7b5 100644 --- a/src/core/lib/gprpp/global_config_generic.h +++ b/src/core/lib/gprpp/global_config_generic.h @@ -21,10 +21,6 @@ #include -#include - -#include "src/core/lib/gprpp/memory.h" - #define GPR_GLOBAL_CONFIG_GET(name) gpr_global_config_get_##name() #define GPR_GLOBAL_CONFIG_SET(name, value) gpr_global_config_set_##name(value) diff --git a/src/core/lib/gprpp/manual_constructor.h b/src/core/lib/gprpp/manual_constructor.h index 6ef55570357..81c3031f02f 100644 --- a/src/core/lib/gprpp/manual_constructor.h +++ b/src/core/lib/gprpp/manual_constructor.h @@ -24,7 +24,6 @@ #include #include -#include #include #include diff --git a/src/core/lib/gprpp/memory.h b/src/core/lib/gprpp/memory.h index e863fe074b2..668cc0bd076 100644 --- a/src/core/lib/gprpp/memory.h +++ b/src/core/lib/gprpp/memory.h @@ -21,15 +21,10 @@ #include -#include #include #include -#include - -#include "absl/memory/memory.h" #include -#include namespace grpc_core { diff --git a/src/core/lib/gprpp/orphanable.h b/src/core/lib/gprpp/orphanable.h index a58041d8b99..26ae460afd4 100644 --- a/src/core/lib/gprpp/orphanable.h +++ b/src/core/lib/gprpp/orphanable.h @@ -25,11 +25,7 @@ #include #include -#include -#include - #include "src/core/lib/gprpp/debug_location.h" -#include "src/core/lib/gprpp/memory.h" #include "src/core/lib/gprpp/ref_counted.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" diff --git a/src/core/lib/gprpp/ref_counted.h b/src/core/lib/gprpp/ref_counted.h index 22103a19287..d5d56288cd8 100644 --- a/src/core/lib/gprpp/ref_counted.h +++ b/src/core/lib/gprpp/ref_counted.h @@ -25,13 +25,10 @@ #include #include -#include #include -#include #include "src/core/lib/gprpp/atomic_utils.h" #include "src/core/lib/gprpp/debug_location.h" -#include "src/core/lib/gprpp/memory.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" namespace grpc_core { diff --git a/src/core/lib/gprpp/ref_counted_ptr.h b/src/core/lib/gprpp/ref_counted_ptr.h index aac0ba0f421..586cb66faf4 100644 --- a/src/core/lib/gprpp/ref_counted_ptr.h +++ b/src/core/lib/gprpp/ref_counted_ptr.h @@ -26,7 +26,6 @@ #include #include "src/core/lib/gprpp/debug_location.h" -#include "src/core/lib/gprpp/memory.h" namespace grpc_core { diff --git a/src/core/lib/gprpp/stat.h b/src/core/lib/gprpp/stat.h index 9c4fcafca75..0d906fdea5a 100644 --- a/src/core/lib/gprpp/stat.h +++ b/src/core/lib/gprpp/stat.h @@ -19,11 +19,9 @@ #include -#include #include #include "absl/status/status.h" -#include "absl/strings/string_view.h" namespace grpc_core { diff --git a/src/core/lib/gprpp/stat_posix.cc b/src/core/lib/gprpp/stat_posix.cc index 91ddc2f85b9..de5828190d4 100644 --- a/src/core/lib/gprpp/stat_posix.cc +++ b/src/core/lib/gprpp/stat_posix.cc @@ -16,6 +16,8 @@ #include +// IWYU pragma: no_include + #include #include "absl/status/status.h" diff --git a/src/core/lib/gprpp/sync.h b/src/core/lib/gprpp/sync.h index 941b534af65..978c90de2ad 100644 --- a/src/core/lib/gprpp/sync.h +++ b/src/core/lib/gprpp/sync.h @@ -26,10 +26,13 @@ #include #include -#include + +#ifndef GPR_ABSEIL_SYNC #include "src/core/lib/gprpp/time_util.h" +#endif + // The core library is not accessible in C++ codegen headers, and vice versa. // Thus, we need to have duplicate headers with similar functionality. // Make sure any change to this file is also reflected in diff --git a/src/core/lib/gprpp/thd.h b/src/core/lib/gprpp/thd.h index 1e400db0c51..5990b0f17b8 100644 --- a/src/core/lib/gprpp/thd.h +++ b/src/core/lib/gprpp/thd.h @@ -26,11 +26,6 @@ #include #include -#include -#include -#include - -#include "src/core/lib/gprpp/memory.h" namespace grpc_core { namespace internal { diff --git a/src/core/lib/gprpp/thd_windows.cc b/src/core/lib/gprpp/thd_windows.cc index ce1a753995b..af5046c1a2e 100644 --- a/src/core/lib/gprpp/thd_windows.cc +++ b/src/core/lib/gprpp/thd_windows.cc @@ -26,7 +26,9 @@ #include #include +#include #include +#include #include "src/core/lib/gpr/tls.h" #include "src/core/lib/gprpp/memory.h" diff --git a/src/core/lib/gprpp/time.h b/src/core/lib/gprpp/time.h index a96caa48bdf..716798048eb 100644 --- a/src/core/lib/gprpp/time.h +++ b/src/core/lib/gprpp/time.h @@ -19,7 +19,6 @@ #include -#include #include #include #include diff --git a/src/core/lib/gprpp/time_util.h b/src/core/lib/gprpp/time_util.h index 5befa23f43e..e2621c7f2d4 100644 --- a/src/core/lib/gprpp/time_util.h +++ b/src/core/lib/gprpp/time_util.h @@ -22,7 +22,6 @@ #include "absl/time/time.h" #include -#include namespace grpc_core { diff --git a/src/core/lib/iomgr/tcp_windows.cc b/src/core/lib/iomgr/tcp_windows.cc index 367b0e37ef7..d935bb73c8d 100644 --- a/src/core/lib/iomgr/tcp_windows.cc +++ b/src/core/lib/iomgr/tcp_windows.cc @@ -31,6 +31,7 @@ #include #include "src/core/lib/address_utils/sockaddr_utils.h" +#include "src/core/lib/gpr/string.h" #include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/iocp_windows.h" #include "src/core/lib/iomgr/sockaddr.h" diff --git a/src/core/lib/json/json.h b/src/core/lib/json/json.h index 9f0e98815c4..aaca601bb60 100644 --- a/src/core/lib/json/json.h +++ b/src/core/lib/json/json.h @@ -21,8 +21,6 @@ #include -#include - #include #include #include diff --git a/src/core/lib/json/json_util.h b/src/core/lib/json/json_util.h index ae2e6aec35b..793fe2fd3bc 100644 --- a/src/core/lib/json/json_util.h +++ b/src/core/lib/json/json_util.h @@ -34,7 +34,6 @@ #include "src/core/lib/gprpp/time.h" #include "src/core/lib/iomgr/error.h" -#include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/json/json.h" namespace grpc_core { diff --git a/src/core/lib/promise/activity.h b/src/core/lib/promise/activity.h index f8b79f7cc9d..270ba37ce49 100644 --- a/src/core/lib/promise/activity.h +++ b/src/core/lib/promise/activity.h @@ -17,14 +17,11 @@ #include -#include #include #include #include -#include #include -#include #include #include "absl/base/thread_annotations.h" diff --git a/src/core/lib/promise/arena_promise.h b/src/core/lib/promise/arena_promise.h index b5bfbd91b14..da823406376 100644 --- a/src/core/lib/promise/arena_promise.h +++ b/src/core/lib/promise/arena_promise.h @@ -24,8 +24,6 @@ #include "absl/meta/type_traits.h" -#include - #include "src/core/lib/promise/context.h" #include "src/core/lib/promise/poll.h" #include "src/core/lib/resource_quota/arena.h" diff --git a/src/core/lib/promise/context.h b/src/core/lib/promise/context.h index dfee3d28a6b..1dc0525c44b 100644 --- a/src/core/lib/promise/context.h +++ b/src/core/lib/promise/context.h @@ -29,7 +29,7 @@ namespace grpc_core { // not contain any members, only exist. // The reason for avoiding this is that context types each use a thread local. template -struct ContextType; +struct ContextType; // IWYU pragma: keep namespace promise_detail { diff --git a/src/core/lib/promise/detail/basic_join.h b/src/core/lib/promise/detail/basic_join.h index 17c5e42bd15..2632b69c23b 100644 --- a/src/core/lib/promise/detail/basic_join.h +++ b/src/core/lib/promise/detail/basic_join.h @@ -30,7 +30,6 @@ #include "src/core/lib/gprpp/bitset.h" #include "src/core/lib/gprpp/construct_destruct.h" -#include "src/core/lib/promise/detail/promise_factory.h" #include "src/core/lib/promise/detail/promise_like.h" #include "src/core/lib/promise/poll.h" diff --git a/src/core/lib/promise/detail/basic_seq.h b/src/core/lib/promise/detail/basic_seq.h index 3e9ef2bce11..93c9facea3d 100644 --- a/src/core/lib/promise/detail/basic_seq.h +++ b/src/core/lib/promise/detail/basic_seq.h @@ -36,8 +36,6 @@ namespace grpc_core { namespace promise_detail { -template -class PromiseLike; // Helper for SeqState to evaluate some common types to all partial // specializations. diff --git a/src/core/lib/promise/detail/promise_factory.h b/src/core/lib/promise/detail/promise_factory.h index e37e2e696c0..473512b5bf8 100644 --- a/src/core/lib/promise/detail/promise_factory.h +++ b/src/core/lib/promise/detail/promise_factory.h @@ -23,7 +23,6 @@ #include "absl/meta/type_traits.h" #include "src/core/lib/promise/detail/promise_like.h" -#include "src/core/lib/promise/poll.h" // PromiseFactory is an adaptor class. // diff --git a/src/core/lib/promise/latch.h b/src/core/lib/promise/latch.h index e20dd5932a4..a43b92d8890 100644 --- a/src/core/lib/promise/latch.h +++ b/src/core/lib/promise/latch.h @@ -19,7 +19,6 @@ #include -#include "src/core/lib/promise/activity.h" #include "src/core/lib/promise/intra_activity_waiter.h" #include "src/core/lib/promise/poll.h" diff --git a/src/core/lib/promise/observable.h b/src/core/lib/promise/observable.h index fe3452dca4e..95a1ffb5b2d 100644 --- a/src/core/lib/promise/observable.h +++ b/src/core/lib/promise/observable.h @@ -24,7 +24,6 @@ #include #include "absl/base/thread_annotations.h" -#include "absl/synchronization/mutex.h" #include "absl/types/optional.h" #include "absl/types/variant.h" diff --git a/src/core/lib/promise/pipe.h b/src/core/lib/promise/pipe.h index 59baebb71d9..d585457e817 100644 --- a/src/core/lib/promise/pipe.h +++ b/src/core/lib/promise/pipe.h @@ -17,25 +17,13 @@ #include -#include -#include #include -#include -#include -#include - -#include "absl/container/inlined_vector.h" -#include "absl/status/status.h" -#include "absl/status/statusor.h" #include "absl/types/optional.h" -#include "absl/types/variant.h" #include -#include "src/core/lib/promise/activity.h" #include "src/core/lib/promise/context.h" -#include "src/core/lib/promise/detail/promise_factory.h" #include "src/core/lib/promise/intra_activity_waiter.h" #include "src/core/lib/promise/poll.h" #include "src/core/lib/resource_quota/arena.h" @@ -44,10 +32,6 @@ namespace grpc_core { template struct Pipe; -template -class PipeSender; -template -class PipeReceiver; namespace pipe_detail { diff --git a/src/core/lib/promise/race.h b/src/core/lib/promise/race.h index 4ecb359a82a..6c34bfb0f61 100644 --- a/src/core/lib/promise/race.h +++ b/src/core/lib/promise/race.h @@ -17,7 +17,6 @@ #include -#include #include #include "absl/types/variant.h" diff --git a/src/core/lib/promise/seq.h b/src/core/lib/promise/seq.h index 8ad2c549590..651a7aff07b 100644 --- a/src/core/lib/promise/seq.h +++ b/src/core/lib/promise/seq.h @@ -19,8 +19,6 @@ #include -#include "absl/types/variant.h" - #include "src/core/lib/promise/detail/basic_seq.h" #include "src/core/lib/promise/poll.h" diff --git a/src/core/lib/promise/try_seq.h b/src/core/lib/promise/try_seq.h index 5486461a925..fcaca8f2fe9 100644 --- a/src/core/lib/promise/try_seq.h +++ b/src/core/lib/promise/try_seq.h @@ -17,14 +17,12 @@ #include -#include #include #include #include "absl/meta/type_traits.h" #include "absl/status/status.h" #include "absl/status/statusor.h" -#include "absl/types/variant.h" #include "src/core/lib/promise/detail/basic_seq.h" #include "src/core/lib/promise/detail/status.h" diff --git a/src/core/lib/resource_quota/api.h b/src/core/lib/resource_quota/api.h index 178479049f0..c287091b952 100644 --- a/src/core/lib/resource_quota/api.h +++ b/src/core/lib/resource_quota/api.h @@ -21,7 +21,6 @@ #include -#include "src/core/lib/channel/channel_args.h" #include "src/core/lib/config/core_configuration.h" #include "src/core/lib/resource_quota/resource_quota.h" diff --git a/src/core/lib/resource_quota/arena.h b/src/core/lib/resource_quota/arena.h index b30bb6600b6..a7aec0abcf4 100644 --- a/src/core/lib/resource_quota/arena.h +++ b/src/core/lib/resource_quota/arena.h @@ -35,8 +35,6 @@ #include #include -#include -#include #include "src/core/lib/gpr/alloc.h" #include "src/core/lib/promise/context.h" diff --git a/src/core/lib/resource_quota/memory_quota.h b/src/core/lib/resource_quota/memory_quota.h index 681bd7ad8ef..a74b813c26c 100644 --- a/src/core/lib/resource_quota/memory_quota.h +++ b/src/core/lib/resource_quota/memory_quota.h @@ -19,15 +19,12 @@ #include -#include #include #include #include #include -#include #include #include -#include #include "absl/base/thread_annotations.h" #include "absl/strings/string_view.h" @@ -35,16 +32,13 @@ #include #include -#include #include #include "src/core/lib/gprpp/orphanable.h" #include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/gprpp/sync.h" -#include "src/core/lib/gprpp/time.h" #include "src/core/lib/promise/activity.h" #include "src/core/lib/promise/poll.h" -#include "src/core/lib/resource_quota/trace.h" namespace grpc_core { diff --git a/src/core/lib/security/authorization/grpc_server_authz_filter.cc b/src/core/lib/security/authorization/grpc_server_authz_filter.cc index 5397d093f97..96469436e85 100644 --- a/src/core/lib/security/authorization/grpc_server_authz_filter.cc +++ b/src/core/lib/security/authorization/grpc_server_authz_filter.cc @@ -19,6 +19,7 @@ #include "absl/strings/str_join.h" #include "src/core/lib/channel/promise_based_filter.h" +#include "src/core/lib/promise/promise.h" #include "src/core/lib/security/authorization/evaluate_args.h" #include "src/core/lib/transport/transport.h" diff --git a/src/core/lib/security/credentials/call_creds_util.cc b/src/core/lib/security/credentials/call_creds_util.cc index c04a52f072a..1842375c1c4 100644 --- a/src/core/lib/security/credentials/call_creds_util.cc +++ b/src/core/lib/security/credentials/call_creds_util.cc @@ -21,6 +21,8 @@ #include "absl/strings/str_cat.h" #include "absl/strings/string_view.h" +#include + namespace grpc_core { namespace { diff --git a/src/core/lib/security/credentials/channel_creds_registry.h b/src/core/lib/security/credentials/channel_creds_registry.h index 241c5853919..bd96f67e1c9 100644 --- a/src/core/lib/security/credentials/channel_creds_registry.h +++ b/src/core/lib/security/credentials/channel_creds_registry.h @@ -21,6 +21,7 @@ #include +#include "src/core/lib/gprpp/ref_counted_ptr.h" #include "src/core/lib/json/json.h" struct grpc_channel_credentials; diff --git a/src/core/lib/security/credentials/credentials.h b/src/core/lib/security/credentials/credentials.h index 24abad30bb0..536c00c90d0 100644 --- a/src/core/lib/security/credentials/credentials.h +++ b/src/core/lib/security/credentials/credentials.h @@ -29,6 +29,7 @@ #include #include +#include "src/core/lib/channel/channel_args.h" #include "src/core/lib/gprpp/ref_counted.h" #include "src/core/lib/iomgr/polling_entity.h" #include "src/core/lib/promise/arena_promise.h" diff --git a/src/core/lib/security/credentials/external/aws_external_account_credentials.cc b/src/core/lib/security/credentials/external/aws_external_account_credentials.cc index 612857c2fd1..6ad77a2d8d6 100644 --- a/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +++ b/src/core/lib/security/credentials/external/aws_external_account_credentials.cc @@ -21,6 +21,8 @@ #include "absl/strings/str_join.h" #include "absl/strings/str_replace.h" +#include + #include "src/core/lib/gpr/env.h" #include "src/core/lib/http/httpcli_ssl_credentials.h" diff --git a/src/core/lib/security/credentials/external/external_account_credentials.cc b/src/core/lib/security/credentials/external/external_account_credentials.cc index cc5165ebbc2..1d8936ad109 100644 --- a/src/core/lib/security/credentials/external/external_account_credentials.cc +++ b/src/core/lib/security/credentials/external/external_account_credentials.cc @@ -13,6 +13,7 @@ // See the License for the specific language governing permissions and // limitations under the License. // + #include #include "src/core/lib/security/credentials/external/external_account_credentials.h" @@ -25,6 +26,8 @@ #include "absl/time/clock.h" #include "absl/time/time.h" +#include + #include "src/core/lib/http/httpcli_ssl_credentials.h" #include "src/core/lib/http/parser.h" #include "src/core/lib/security/credentials/external/aws_external_account_credentials.h" diff --git a/src/core/lib/security/credentials/external/url_external_account_credentials.cc b/src/core/lib/security/credentials/external/url_external_account_credentials.cc index b1a0512a01e..880206f8045 100644 --- a/src/core/lib/security/credentials/external/url_external_account_credentials.cc +++ b/src/core/lib/security/credentials/external/url_external_account_credentials.cc @@ -21,6 +21,8 @@ #include "absl/strings/str_format.h" #include "absl/strings/str_split.h" +#include + #include "src/core/lib/http/httpcli_ssl_credentials.h" #include "src/core/lib/transport/error_utils.h" diff --git a/src/core/lib/slice/percent_encoding.h b/src/core/lib/slice/percent_encoding.h index 830ef025c43..736b7274caf 100644 --- a/src/core/lib/slice/percent_encoding.h +++ b/src/core/lib/slice/percent_encoding.h @@ -28,12 +28,6 @@ #include -#include - -#include "absl/types/optional.h" - -#include - #include "src/core/lib/slice/slice.h" namespace grpc_core { diff --git a/src/core/lib/slice/slice.h b/src/core/lib/slice/slice.h index 52ddcc6c980..fc560c714a1 100644 --- a/src/core/lib/slice/slice.h +++ b/src/core/lib/slice/slice.h @@ -48,11 +48,6 @@ namespace grpc_core { -// Forward declarations -class Slice; -class StaticSlice; -class MutableSlice; - namespace slice_detail { // Returns an empty slice. diff --git a/src/core/lib/slice/slice_internal.h b/src/core/lib/slice/slice_internal.h index 4db61ae3d02..492acc5cfdc 100644 --- a/src/core/lib/slice/slice_internal.h +++ b/src/core/lib/slice/slice_internal.h @@ -22,7 +22,6 @@ #include #include -#include #include #include @@ -30,12 +29,10 @@ #include "absl/strings/string_view.h" #include -#include #include #include "src/core/lib/gpr/murmur_hash.h" #include "src/core/lib/gprpp/memory.h" -#include "src/core/lib/gprpp/ref_counted.h" #include "src/core/lib/slice/slice_refcount.h" void grpc_slice_buffer_reset_and_unref_internal(grpc_slice_buffer* sb); diff --git a/src/core/lib/slice/slice_refcount.h b/src/core/lib/slice/slice_refcount.h index 4062e7180d1..4c7cf8a3e0f 100644 --- a/src/core/lib/slice/slice_refcount.h +++ b/src/core/lib/slice/slice_refcount.h @@ -18,12 +18,9 @@ #include #include -#include #include -#include -#include "src/core/lib/gpr/murmur_hash.h" #include "src/core/lib/slice/slice_refcount_base.h" namespace grpc_core { diff --git a/src/core/lib/slice/slice_refcount_base.h b/src/core/lib/slice/slice_refcount_base.h index dae994198eb..7f352ef1a0f 100644 --- a/src/core/lib/slice/slice_refcount_base.h +++ b/src/core/lib/slice/slice_refcount_base.h @@ -21,9 +21,6 @@ #include -#include -#include - // grpc_slice_refcount : A reference count for grpc_slice. struct grpc_slice_refcount { public: diff --git a/src/core/lib/slice/slice_split.h b/src/core/lib/slice/slice_split.h index 835b16a85d2..6ad47ad8758 100644 --- a/src/core/lib/slice/slice_split.h +++ b/src/core/lib/slice/slice_split.h @@ -21,11 +21,7 @@ #include -#include -#include - #include -#include /** Split \a str by the separator \a sep. Results are stored in \a dst, which * should be a properly initialized instance. */ diff --git a/src/core/lib/slice/slice_string_helpers.h b/src/core/lib/slice/slice_string_helpers.h index a4ac647b0b0..12a501e9aef 100644 --- a/src/core/lib/slice/slice_string_helpers.h +++ b/src/core/lib/slice/slice_string_helpers.h @@ -21,14 +21,10 @@ #include -#include -#include #include #include -#include "src/core/lib/gpr/string.h" - /* Calls gpr_dump on a slice. */ char* grpc_dump_slice(const grpc_slice& slice, uint32_t flags); /* Calls gpr_dump on a slice and returns the result as a slice. */ diff --git a/src/core/lib/surface/validate_metadata.cc b/src/core/lib/surface/validate_metadata.cc index 76df4df052d..20609fe90c6 100644 --- a/src/core/lib/surface/validate_metadata.cc +++ b/src/core/lib/surface/validate_metadata.cc @@ -26,6 +26,7 @@ #include #include +#include "src/core/lib/gpr/string.h" #include "src/core/lib/gprpp/bitset.h" #include "src/core/lib/gprpp/memory.h" #include "src/core/lib/iomgr/error.h" diff --git a/src/core/lib/transport/bdp_estimator.h b/src/core/lib/transport/bdp_estimator.h index 7796197ba5c..dc08387acb7 100644 --- a/src/core/lib/transport/bdp_estimator.h +++ b/src/core/lib/transport/bdp_estimator.h @@ -22,8 +22,6 @@ #include #include -#include -#include #include #include @@ -31,7 +29,6 @@ #include "src/core/lib/debug/trace.h" #include "src/core/lib/gprpp/time.h" -#include "src/core/lib/iomgr/exec_ctx.h" extern grpc_core::TraceFlag grpc_bdp_estimator_trace; diff --git a/src/core/lib/transport/byte_stream.h b/src/core/lib/transport/byte_stream.h index 0f7674422a2..6c5d6e4d23b 100644 --- a/src/core/lib/transport/byte_stream.h +++ b/src/core/lib/transport/byte_stream.h @@ -25,7 +25,6 @@ #include #include -#include #include "src/core/lib/gprpp/orphanable.h" #include "src/core/lib/iomgr/closure.h" diff --git a/src/core/lib/transport/connectivity_state.h b/src/core/lib/transport/connectivity_state.h index 5efb3b4529e..528c615f1b7 100644 --- a/src/core/lib/transport/connectivity_state.h +++ b/src/core/lib/transport/connectivity_state.h @@ -28,13 +28,10 @@ #include "absl/status/status.h" -#include #include #include "src/core/lib/debug/trace.h" #include "src/core/lib/gprpp/orphanable.h" -#include "src/core/lib/iomgr/closure.h" -#include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/iomgr/work_serializer.h" namespace grpc_core { diff --git a/src/core/lib/transport/error_utils.h b/src/core/lib/transport/error_utils.h index 4248eca0484..ccaffce0e2c 100644 --- a/src/core/lib/transport/error_utils.h +++ b/src/core/lib/transport/error_utils.h @@ -29,7 +29,6 @@ #include "src/core/lib/gprpp/time.h" #include "src/core/lib/iomgr/error.h" -#include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/transport/http2_errors.h" /// A utility function to get the status code and message to be returned diff --git a/src/core/lib/transport/metadata_batch.h b/src/core/lib/transport/metadata_batch.h index 266a8b73fdf..529d8283ec7 100644 --- a/src/core/lib/transport/metadata_batch.h +++ b/src/core/lib/transport/metadata_batch.h @@ -21,13 +21,11 @@ #include -#include #include #include #include #include -#include #include #include #include @@ -41,12 +39,9 @@ #include "absl/strings/string_view.h" #include "absl/types/optional.h" -#include #include -#include #include #include -#include #include "src/core/lib/compression/compression_internal.h" #include "src/core/lib/gprpp/chunked_vector.h" @@ -55,12 +50,9 @@ #include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/resource_quota/arena.h" #include "src/core/lib/slice/slice.h" -#include "src/core/lib/surface/validate_metadata.h" #include "src/core/lib/transport/parsed_metadata.h" #include "src/core/lib/transport/timeout_encoding.h" -struct grpc_call_final_info; - namespace grpc_core { // grpc-timeout metadata trait. diff --git a/src/core/lib/transport/parsed_metadata.h b/src/core/lib/transport/parsed_metadata.h index d7d6ee260eb..efc45087aa3 100644 --- a/src/core/lib/transport/parsed_metadata.h +++ b/src/core/lib/transport/parsed_metadata.h @@ -33,9 +33,7 @@ #include #include "src/core/lib/gprpp/time.h" -#include "src/core/lib/iomgr/error.h" #include "src/core/lib/slice/slice.h" -#include "src/core/lib/surface/validate_metadata.h" namespace grpc_core { diff --git a/src/core/lib/transport/status_conversion.h b/src/core/lib/transport/status_conversion.h index 8f58ab70f2f..1a1681a461b 100644 --- a/src/core/lib/transport/status_conversion.h +++ b/src/core/lib/transport/status_conversion.h @@ -21,11 +21,9 @@ #include -#include #include #include "src/core/lib/gprpp/time.h" -#include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/transport/http2_errors.h" /* Conversion of grpc status codes to http2 error codes (for RST_STREAM) */ diff --git a/src/core/lib/transport/timeout_encoding.h b/src/core/lib/transport/timeout_encoding.h index 247de6f7b99..7c66ae0db4d 100644 --- a/src/core/lib/transport/timeout_encoding.h +++ b/src/core/lib/transport/timeout_encoding.h @@ -26,7 +26,6 @@ #include "absl/types/optional.h" #include "src/core/lib/gprpp/time.h" -#include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/slice/slice.h" namespace grpc_core { diff --git a/src/core/lib/transport/transport.h b/src/core/lib/transport/transport.h index 691920e0504..ec468b9e5cb 100644 --- a/src/core/lib/transport/transport.h +++ b/src/core/lib/transport/transport.h @@ -50,13 +50,11 @@ #include "src/core/lib/iomgr/iomgr_fwd.h" #include "src/core/lib/iomgr/polling_entity.h" #include "src/core/lib/iomgr/pollset.h" -#include "src/core/lib/iomgr/pollset_set.h" #include "src/core/lib/promise/arena_promise.h" #include "src/core/lib/promise/context.h" #include "src/core/lib/promise/latch.h" #include "src/core/lib/resource_quota/arena.h" #include "src/core/lib/slice/slice.h" -#include "src/core/lib/slice/slice_internal.h" #include "src/core/lib/transport/byte_stream.h" #include "src/core/lib/transport/connectivity_state.h" #include "src/core/lib/transport/metadata_batch.h" diff --git a/src/core/lib/transport/transport_impl.h b/src/core/lib/transport/transport_impl.h index c183b151c7d..8a6bf80e7aa 100644 --- a/src/core/lib/transport/transport_impl.h +++ b/src/core/lib/transport/transport_impl.h @@ -29,7 +29,6 @@ #include "src/core/lib/iomgr/endpoint.h" #include "src/core/lib/iomgr/iomgr_fwd.h" #include "src/core/lib/iomgr/pollset.h" -#include "src/core/lib/iomgr/pollset_set.h" #include "src/core/lib/promise/arena_promise.h" #include "src/core/lib/resource_quota/arena.h" #include "src/core/lib/transport/transport.h" diff --git a/src/core/lib/uri/uri_parser.h b/src/core/lib/uri/uri_parser.h index 91c1b488b27..092355eae30 100644 --- a/src/core/lib/uri/uri_parser.h +++ b/src/core/lib/uri/uri_parser.h @@ -19,8 +19,6 @@ #include -#include - #include #include #include diff --git a/src/core/tsi/ssl/session_cache/ssl_session.h b/src/core/tsi/ssl/session_cache/ssl_session.h index adf31aebd3b..80dedfa9b3f 100644 --- a/src/core/tsi/ssl/session_cache/ssl_session.h +++ b/src/core/tsi/ssl/session_cache/ssl_session.h @@ -21,6 +21,8 @@ #include +#include + #include #include diff --git a/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc b/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc index dcfff00cb9a..b30dea03ec5 100644 --- a/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +++ b/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc @@ -22,6 +22,8 @@ #ifdef OPENSSL_IS_BORINGSSL +#include "absl/memory/memory.h" + // BoringSSL allows SSL_SESSION to outlive SSL and SSL_CTX objects which are // re-created by gRPC on every certificate rotation or subchannel creation. // BoringSSL guarantees that SSL_SESSION is immutable so it's safe to share diff --git a/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc b/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc index 60675d2dbae..1fbfbb72da7 100644 --- a/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +++ b/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc @@ -24,6 +24,8 @@ #ifndef OPENSSL_IS_BORINGSSL +#include "absl/memory/memory.h" + // OpenSSL invalidates SSL_SESSION on SSL destruction making it pointless // to cache sessions. The workaround is to serialize (relatively expensive) // session into binary blob and re-create it from blob on every handshake. diff --git a/src/cpp/server/orca/orca_service.cc b/src/cpp/server/orca/orca_service.cc index 55bc14d7266..ff76427575d 100644 --- a/src/cpp/server/orca/orca_service.cc +++ b/src/cpp/server/orca/orca_service.cc @@ -22,6 +22,7 @@ #include #include +#include "src/core/lib/gprpp/ref_counted.h" #include "src/core/lib/gprpp/time.h" #include "src/core/lib/iomgr/timer.h" diff --git a/test/core/channel/channel_stack_test.cc b/test/core/channel/channel_stack_test.cc index 5768ee36ba8..c7ff54fa27c 100644 --- a/test/core/channel/channel_stack_test.cc +++ b/test/core/channel/channel_stack_test.cc @@ -20,6 +20,7 @@ #include +#include #include #include #include diff --git a/test/core/channel/minimal_stack_is_minimal_test.cc b/test/core/channel/minimal_stack_is_minimal_test.cc index faedb1bebc6..517a75877e9 100644 --- a/test/core/channel/minimal_stack_is_minimal_test.cc +++ b/test/core/channel/minimal_stack_is_minimal_test.cc @@ -39,6 +39,7 @@ #include #include +#include "src/core/lib/channel/channel_stack.h" #include "src/core/lib/channel/channel_stack_builder_impl.h" #include "src/core/lib/config/core_configuration.h" #include "src/core/lib/gpr/string.h" diff --git a/test/core/end2end/tests/retry_cancel_during_delay.cc b/test/core/end2end/tests/retry_cancel_during_delay.cc index 700a5aec515..2c676dfd150 100644 --- a/test/core/end2end/tests/retry_cancel_during_delay.cc +++ b/test/core/end2end/tests/retry_cancel_during_delay.cc @@ -31,6 +31,7 @@ #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/gpr/string.h" #include "src/core/lib/gpr/useful.h" +#include "src/core/lib/gprpp/time_util.h" #include "src/core/lib/iomgr/exec_ctx.h" #include "test/core/end2end/cq_verifier.h" #include "test/core/end2end/end2end_tests.h" diff --git a/test/core/http/httpcli_test.cc b/test/core/http/httpcli_test.cc index 983c05d9a92..25d8364760b 100644 --- a/test/core/http/httpcli_test.cc +++ b/test/core/http/httpcli_test.cc @@ -33,6 +33,7 @@ #include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h" #include "src/core/lib/gprpp/time.h" +#include "src/core/lib/gprpp/time_util.h" #include "src/core/lib/iomgr/iomgr.h" #include "test/core/http/httpcli_test_util.h" #include "test/core/util/fake_udp_and_tcp_server.h" diff --git a/test/core/http/httpscli_test.cc b/test/core/http/httpscli_test.cc index 272627bdd01..15a07381b4f 100644 --- a/test/core/http/httpscli_test.cc +++ b/test/core/http/httpscli_test.cc @@ -32,6 +32,7 @@ #include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h" #include "src/core/lib/gpr/env.h" #include "src/core/lib/gprpp/time.h" +#include "src/core/lib/gprpp/time_util.h" #include "src/core/lib/http/httpcli.h" #include "src/core/lib/http/httpcli_ssl_credentials.h" #include "src/core/lib/iomgr/iomgr.h" diff --git a/test/core/security/oauth2_utils.cc b/test/core/security/oauth2_utils.cc index 183580156bc..19903702da8 100644 --- a/test/core/security/oauth2_utils.cc +++ b/test/core/security/oauth2_utils.cc @@ -25,6 +25,7 @@ #include #include #include +#include #include #include "src/core/lib/iomgr/exec_ctx.h" diff --git a/test/core/slice/slice_split_test.cc b/test/core/slice/slice_split_test.cc index 3e1a6df97bc..70fb036a4c1 100644 --- a/test/core/slice/slice_split_test.cc +++ b/test/core/slice/slice_split_test.cc @@ -23,6 +23,7 @@ #include #include +#include #include #include #include diff --git a/test/core/slice/slice_test.cc b/test/core/slice/slice_test.cc index 1bf2de65d12..7babbbcd132 100644 --- a/test/core/slice/slice_test.cc +++ b/test/core/slice/slice_test.cc @@ -27,6 +27,8 @@ #include +#include "absl/memory/memory.h" + #include #include #include diff --git a/test/core/transport/bdp_estimator_test.cc b/test/core/transport/bdp_estimator_test.cc index 2c10d057976..f839723c09c 100644 --- a/test/core/transport/bdp_estimator_test.cc +++ b/test/core/transport/bdp_estimator_test.cc @@ -29,6 +29,7 @@ #include "src/core/lib/gpr/string.h" #include "src/core/lib/gpr/useful.h" +#include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/iomgr/timer_manager.h" #include "test/core/util/test_config.h" diff --git a/test/core/transport/chttp2/context_list_test.cc b/test/core/transport/chttp2/context_list_test.cc index 7e4f3c030d0..ecd4201bd92 100644 --- a/test/core/transport/chttp2/context_list_test.cc +++ b/test/core/transport/chttp2/context_list_test.cc @@ -26,6 +26,7 @@ #include #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h" +#include "src/core/ext/transport/chttp2/transport/internal.h" #include "src/core/lib/iomgr/port.h" #include "src/core/lib/resource_quota/api.h" #include "src/core/lib/transport/transport.h" diff --git a/test/core/transport/chttp2/hpack_encoder_test.cc b/test/core/transport/chttp2/hpack_encoder_test.cc index 0228dc38b42..f75f282bb11 100644 --- a/test/core/transport/chttp2/hpack_encoder_test.cc +++ b/test/core/transport/chttp2/hpack_encoder_test.cc @@ -26,6 +26,7 @@ #include "absl/strings/str_cat.h" #include "absl/strings/str_format.h" +#include #include #include diff --git a/test/core/transport/connectivity_state_test.cc b/test/core/transport/connectivity_state_test.cc index e73424958fc..2ca9ea54bde 100644 --- a/test/core/transport/connectivity_state_test.cc +++ b/test/core/transport/connectivity_state_test.cc @@ -22,6 +22,7 @@ #include +#include #include #include "src/core/lib/iomgr/exec_ctx.h" diff --git a/test/core/transport/status_conversion_test.cc b/test/core/transport/status_conversion_test.cc index 3e01f592e9f..715edfcb68d 100644 --- a/test/core/transport/status_conversion_test.cc +++ b/test/core/transport/status_conversion_test.cc @@ -18,8 +18,10 @@ #include "src/core/lib/transport/status_conversion.h" +#include #include +#include "src/core/lib/iomgr/exec_ctx.h" #include "test/core/util/test_config.h" #define GRPC_STATUS_TO_HTTP2_ERROR(a, b) \ diff --git a/test/core/util/tls_utils.cc b/test/core/util/tls_utils.cc index 20177db3ccf..eb1ff894895 100644 --- a/test/core/util/tls_utils.cc +++ b/test/core/util/tls_utils.cc @@ -17,6 +17,7 @@ #include "test/core/util/tls_utils.h" #include +#include #include "src/core/lib/gpr/tmpfile.h" #include "src/core/lib/iomgr/load_file.h" diff --git a/test/core/xds/xds_channel_stack_modifier_test.cc b/test/core/xds/xds_channel_stack_modifier_test.cc index e50bf38ac14..781def47044 100644 --- a/test/core/xds/xds_channel_stack_modifier_test.cc +++ b/test/core/xds/xds_channel_stack_modifier_test.cc @@ -20,6 +20,7 @@ #include +#include #include #include "src/core/lib/channel/channel_stack_builder_impl.h" diff --git a/test/cpp/end2end/client_lb_end2end_test.cc b/test/cpp/end2end/client_lb_end2end_test.cc index 35ddfd972d4..adbca7ac62c 100644 --- a/test/cpp/end2end/client_lb_end2end_test.cc +++ b/test/cpp/end2end/client_lb_end2end_test.cc @@ -13,6 +13,7 @@ // limitations under the License. #include +#include #include #include #include diff --git a/tools/dockerfile/grpc_iwyu/iwyu.sh b/tools/dockerfile/grpc_iwyu/iwyu.sh index 3d986c9d357..5abdefb9786 100755 --- a/tools/dockerfile/grpc_iwyu/iwyu.sh +++ b/tools/dockerfile/grpc_iwyu/iwyu.sh @@ -24,11 +24,19 @@ CPU_COUNT=`nproc` rm -rf iwyu || true git clone https://github.com/include-what-you-use/include-what-you-use.git iwyu -# latest commit on the clang 11 branch -cd ${IWYU_ROOT}/iwyu && git checkout fbd921d6640bf1b18fe5a8a895636215367eb6b9 -mkdir -p ${IWYU_ROOT}/iwyu_build && cd ${IWYU_ROOT}/iwyu_build && cmake -G "Unix Makefiles" ${IWYU_ROOT}/iwyu && make +# latest commit on the clang 13 branch +cd ${IWYU_ROOT}/iwyu +git checkout fbd921d6640bf1b18fe5a8a895636215367eb6b9 +mkdir -p ${IWYU_ROOT}/iwyu_build +cd ${IWYU_ROOT}/iwyu_build +cmake -G "Unix Makefiles" -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DLLVM_ROOT_DIR=/usr/lib/llvm-13 ${IWYU_ROOT}/iwyu +make -j $CPU_COUNT cd ${IWYU_ROOT} +# patch python shebang for our environment (we need python3, not python) +sed -i 's,^#!/usr/bin/env python,#!/usr/bin/env python3,g' ${IWYU_ROOT}/iwyu/iwyu_tool.py +sed -i 's,^#!/usr/bin/env python,#!/usr/bin/env python3,g' ${IWYU_ROOT}/iwyu/fix_includes.py + cat compile_commands.json | sed "s,\"file\": \",\"file\": \"${IWYU_ROOT}/,g" > compile_commands_for_iwyu.json export ENABLED_MODULES=' @@ -52,15 +60,23 @@ cat compile_commands.json | jq -r '.[].file' \ | grep -E $INCLUSION_REGEX \ | grep -v -E "/upb-generated/|/upbdefs-generated/" \ | sort \ - | tee iwyu_files.txt + > iwyu_files.txt -# run iwyu, filtering out changes to port_platform.h -xargs -a iwyu_files.txt -I FILES ${IWYU_ROOT}/iwyu/iwyu_tool.py -p compile_commands_for_iwyu.json -j $CPU_COUNT FILES -- -Xiwyu --no_fwd_decls \ +echo '#!/bin/sh +${IWYU_ROOT}/iwyu/iwyu_tool.py -p compile_commands_for_iwyu.json $1 -- -Xiwyu --no_fwd_decls -Xiwyu --update_comments \ | grep -v -E "port_platform.h" \ - | tee iwyu.out + | grep -v -E "^(- )?namespace " \ + > iwyu/iwyu.`echo $1 | sha1sum`.out +' > iwyu/run_iwyu_on.sh +chmod +x iwyu/run_iwyu_on.sh + +# run iwyu, filtering out changes to port_platform.h +xargs -n 1 -P $CPU_COUNT -a iwyu_files.txt ${IWYU_ROOT}/iwyu/run_iwyu_on.sh + +cat iwyu/iwyu.*.out > iwyu.out # apply the suggested changes -${IWYU_ROOT}/iwyu/fix_includes.py --nocomments < iwyu.out || true +${IWYU_ROOT}/iwyu/fix_includes.py --nocomments --nosafe_headers < iwyu.out || true # reformat sources, since iwyu gets this wrong xargs -a iwyu_files.txt ${CLANG_FORMAT:-clang-format} -i