-------------------------------------------------------------------------------- Profile data file 'results/clgout-nightly-2026-08-15-serde-1.0.219-threads4-Clippy-Full-Threads1' (creator: callgrind-3.25.1) -------------------------------------------------------------------------------- I1 cache: D1 cache: LL cache: Timerange: Basic block 0 - 1285939122 Trigger: Program termination Profiled target: /home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver --crate-name serde --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 --cfg feature="default" --cfg feature="std" --check-cfg cfg(docsrs,test) --check-cfg cfg(feature, values("alloc", "default", "derive", "rc", "serde_derive", "std", "unstable")) -C metadata=e1f98a0381728faf -C extra-filename=-377a2a6a6754c4d7 --out-dir /tmp/.tmphIgbh9/target/debug/deps -L dependency=/tmp/.tmphIgbh9/target/debug/deps -Zthreads=4 -Wclippy::all -Adeprecated -Aunknown-lints -Zincremental-verify-ich (PID 303622, part 1) Events recorded: Ir Events shown: Ir Event sort order: Ir Thresholds: 99 Include dirs: User annotated: Auto-annotation: on -------------------------------------------------------------------------------- Ir -------------------------------------------------------------------------------- 7,372,084,766 (100.0%) PROGRAM TOTALS -------------------------------------------------------------------------------- Ir file:function -------------------------------------------------------------------------------- 677,216,793 ( 9.19%) ???:rustc_borrowck::type_check::liveness::generate [???] 183,693,331 ( 2.49%) ???:::process_obligation [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 149,087,146 ( 2.02%) ???:::intern_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 149,066,579 ( 2.02%) ???:0x0000000000173dc0 [/usr/lib/libc.so.6] 146,525,399 ( 1.99%) ???:>::process_obligations:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 118,797,436 ( 1.61%) ???:rustc_borrowck::borrowck_check_region_constraints [???] 116,835,344 ( 1.58%) ???:::visit_body [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 111,943,952 ( 1.52%) ???:::intern_predicate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 92,308,999 ( 1.25%) ???:rustc_borrowck::get_flow_results [???] 88,180,892 ( 1.20%) include/jemalloc/internal/rtree.h:free 74,646,147 ( 1.01%) ???:rustc_mir_transform::simplify::simplify_cfg [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 69,356,260 ( 0.94%) ???:rustc_mir_dataflow::drop_flag_effects::on_all_children_bits::on_all_children_bits::::apply_primary_statement_effect::{closure#0}>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 62,095,196 ( 0.84%) ???:rustc_mir_transform::liveness::check_liveness::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 53,358,628 ( 0.72%) ???:::fully_expand_fragment [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,103,391 ( 0.71%) ???:>::compress::<>::process_obligations::{closure#1}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,743,140 ( 0.70%) /rustc/84b36a78a28a63f134171c670be1932ffa2485f8/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/build/tikv-jemalloc-sys/80122c672fbe49ef/out/build/src/jemalloc.c:free 50,407,306 ( 0.68%) ???:::candidate_from_obligation_no_cache [???] 50,349,330 ( 0.68%) ???:>::super_fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 48,116,469 ( 0.65%) include/jemalloc/internal/jemalloc_internal_inlines_c.h:malloc [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 47,909,728 ( 0.65%) ???:rustc_trait_selection::traits::project::normalize_projection_term [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 47,826,355 ( 0.65%) ???:::normalize_and_prove_instantiated_clauses [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 46,799,242 ( 0.63%) ???:>::fold_predicate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 42,796,531 ( 0.58%) ???:::instantiate_into'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 41,332,037 ( 0.56%) ???: as rustc_type_ir::fold::TypeFolder>::fold_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 39,472,866 ( 0.54%) ???: as rustc_type_ir::fold::TypeFolder>::fold_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 38,571,002 ( 0.52%) ???:, rustc_borrowck::handle_placeholders::SccAnnotations>>::construct [???] 38,370,024 ( 0.52%) ???:::short_write_process_buffer::<8> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 38,184,000 ( 0.52%) site/frontend/rust-clippy/clippy_lints/src/combined_late_pass.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 35,421,155 ( 0.48%) ???:::do_mir_borrowck [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,788,001 ( 0.47%) ???:::resolve_path [???] 34,133,161 ( 0.46%) include/jemalloc/internal/cache_bin.h:malloc 33,245,206 ( 0.45%) ???:::is_imported [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 32,112,442 ( 0.44%) ???:::visit_node_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 31,676,761 ( 0.43%) ???:::resolve_ident_in_scope_set_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 31,004,154 ( 0.42%) include/jemalloc/internal/cache_bin.h:free 30,702,700 ( 0.42%) ???:>::tys [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 29,828,749 ( 0.40%) ???:::lint_level_spec_at_node [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 28,489,357 ( 0.39%) ???:::instantiate_value_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 27,968,003 ( 0.38%) ???:>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 27,955,050 ( 0.38%) ???:::lower_qpath [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 26,840,071 ( 0.36%) ???:0x00000000001747c0 [/usr/lib/libc.so.6] 26,602,097 ( 0.36%) ???:::to [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 26,109,113 ( 0.35%) ???:::match_impl::{closure#0} [???] 25,838,737 ( 0.35%) ???:::clone [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 24,097,045 ( 0.33%) ???:::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 24,067,510 ( 0.33%) include/jemalloc/internal/sz.h:malloc 23,494,103 ( 0.32%) ???:::fully_perform_op::<(), rustc_middle::ty::ParamEnvAnd> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,805,110 ( 0.31%) ???:::encode_def_ids'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 20,788,983 ( 0.28%) ???:::assemble_candidates [???] 20,646,567 ( 0.28%) ???:::rollback_to [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 20,178,136 ( 0.27%) ???:::poly_select::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 19,794,743 ( 0.27%) include/jemalloc/internal/rtree.h:tcache_bin_flush_small 19,648,373 ( 0.27%) ???:>::fold_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 19,350,997 ( 0.26%) ???:>::with::<::with::outer_expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 19,146,638 ( 0.26%) include/jemalloc/internal/sz.h:realloc 18,657,991 ( 0.25%) ???:::confirm'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 18,560,220 ( 0.25%) ???:::check_expr_call'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 18,353,850 ( 0.25%) ???:::check_expr_with_expectation_and_args'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 18,321,524 ( 0.25%) ???:>::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 18,214,455 ( 0.25%) ???:::expr_into_dest'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 17,525,675 ( 0.24%) ???:rustc_borrowck::type_check::type_check [???] 17,368,372 ( 0.24%) ???:::stable_hash_span'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 17,353,902 ( 0.24%) ???:rustc_query_impl::execution::try_execute_query::>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 17,318,386 ( 0.23%) ???:rustc_trait_selection::traits::outlives_bounds::implied_outlives_bounds [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 17,285,998 ( 0.23%) ???:::resolve_ident_in_scope_set_inner'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 16,974,847 ( 0.23%) ???:::stable_hash::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 16,392,719 ( 0.22%) /rustc/84b36a78a28a63f134171c670be1932ffa2485f8/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/build/tikv-jemalloc-sys/80122c672fbe49ef/out/build/src/tcache.c:tcache_bin_flush_small [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 16,299,589 ( 0.22%) ???:::add_implied_bounds [???] 16,237,508 ( 0.22%) ???:::check_expr [???] 16,188,427 ( 0.22%) ???:::build [???] 16,034,517 ( 0.22%) ???: as rustc_type_ir::fold::TypeFolder>::fold_clauses'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 16,003,337 ( 0.22%) ???:>::union [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 15,817,096 ( 0.21%) ???:>, &mut rustc_infer::infer::snapshot::undo_log::InferCtxtUndoLogs>>>::uninlined_get_root_key [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 15,788,701 ( 0.21%) ???:>::super_fold_with::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 15,781,763 ( 0.21%) ???:rustc_pattern_analysis::usefulness::compute_exhaustiveness_and_usefulness::::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 15,401,444 ( 0.21%) ???:::advance_token [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 15,318,408 ( 0.21%) ???:::smart_resolve_path_fragment [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 15,160,832 ( 0.21%) ???:rustc_type_ir::relate::structurally_relate_tys::::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 14,825,734 ( 0.20%) ???:>::tys'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 14,817,871 ( 0.20%) ???:rustc_mir_dataflow::drop_flag_effects::on_all_children_bits::on_all_children_bits::::apply_primary_statement_effect::{closure#0}>::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 14,804,602 ( 0.20%) ???:::traits_in_scope'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 14,707,252 ( 0.20%) ???:::end_point [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 14,406,296 ( 0.20%) include/jemalloc/internal/thread_event.h:malloc 14,136,489 ( 0.19%) ???:rustc_type_ir::relate::structurally_relate_tys::::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 14,078,203 ( 0.19%) ???:::instantiate_into [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 14,074,536 ( 0.19%) ???:>::regions [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 13,880,338 ( 0.19%) ???:>::fill_item::<::fresh_args_for_item::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 13,693,529 ( 0.19%) ???:::parse_path_segment [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 13,667,352 ( 0.19%) ???:rustc_hir_typeck::typeck_with_inspect::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 13,538,422 ( 0.18%) ???:rustc_trait_selection::traits::query::type_op::implied_outlives_bounds::compute_implied_outlives_bounds_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 13,491,532 ( 0.18%) ???:::next_token_from_cursor [???] 13,420,860 ( 0.18%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 13,149,549 ( 0.18%) /rustc/84b36a78a28a63f134171c670be1932ffa2485f8/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/build/tikv-jemalloc-sys/80122c672fbe49ef/out/build/src/jemalloc.c:realloc [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 13,063,721 ( 0.18%) ???:>::tys::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 13,029,716 ( 0.18%) ???:>::fold_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 12,838,077 ( 0.17%) ???:::stable_hash::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 12,831,408 ( 0.17%) ???:, ())>>::reserve_rehash::, (), rustc_hash::FxBuildHasher>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 12,597,609 ( 0.17%) src/arena.c:realloc 12,566,988 ( 0.17%) ???:::coerce'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 12,231,951 ( 0.17%) ???:::parent_hir_node [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 12,018,317 ( 0.16%) ???:>::super_fold_with::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 11,992,644 ( 0.16%) ???:>::apply_rewrites [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 11,846,906 ( 0.16%) ???:>::find_cycles_from_node:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 11,827,443 ( 0.16%) ???:::coerce [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 11,821,744 ( 0.16%) ???:, usize)>>::reserve_rehash::, usize, rustc_hash::FxBuildHasher>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 11,779,773 ( 0.16%) ???:::mirror_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 11,679,488 ( 0.16%) ???:::collect_tokens_for_expr::<::parse_expr_dot_or_call::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 11,644,629 ( 0.16%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 11,641,917 ( 0.16%) ???:::confirm_candidate [???] 11,256,074 ( 0.15%) ???:>::compress::<>::to_errors::{closure#2}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 11,179,214 ( 0.15%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::first_node_in_macro:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 10,639,219 ( 0.14%) ???:::fully_perform_op::>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 10,600,089 ( 0.14%) ???:>::drop_slow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 10,554,704 ( 0.14%) ???:::run_pass [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 10,533,245 ( 0.14%) ???:::fully_perform_op::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 10,519,296 ( 0.14%) ???:>::fold_predicate'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 10,490,469 ( 0.14%) ???:>::fold_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 10,444,707 ( 0.14%) ???:::impl_or_trait_obligations'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 10,367,656 ( 0.14%) include/jemalloc/internal/sz.h:free 10,219,067 ( 0.14%) ???:::hir_attrs [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 10,152,085 ( 0.14%) ???:::compute_drop_data [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 10,147,054 ( 0.14%) ???:rustc_mir_dataflow::drop_flag_effects::on_all_children_bits::on_all_children_bits::::apply_switch_int_edge_effect::{closure#0}>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 10,105,469 ( 0.14%) ???:::call_once_force::<>>::initialize<>>::get_or_init<::reverse_postorder::{closure#0}>::{closure#0}, !>::{closure#0}>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 10,091,597 ( 0.14%) /rustc/84b36a78a28a63f134171c670be1932ffa2485f8/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/build/tikv-jemalloc-sys/80122c672fbe49ef/out/build/src/jemalloc.c:calloc [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 10,086,006 ( 0.14%) ???:>::tys::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 10,022,736 ( 0.14%) ???:>::fold_region [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 9,882,216 ( 0.13%) ???:::select [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 9,875,334 ( 0.13%) ???:::take [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 9,765,938 ( 0.13%) ???:::encode_crate_root'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 9,761,803 ( 0.13%) ???:>::fold_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 9,619,111 ( 0.13%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 9,570,395 ( 0.13%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 9,432,020 ( 0.13%) ???:::stable_hash_span [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 9,291,877 ( 0.13%) ???:::fold_infer_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 9,272,909 ( 0.13%) ???:rustc_hir_analysis::collect::clauses_of::gather_explicit_clauses_of [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 9,150,751 ( 0.12%) ???:>> as rustc_trait_selection::traits::query::type_op::TypeOp>::fully_perform [???] 9,018,689 ( 0.12%) ???:::in_external_macro [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 8,942,523 ( 0.12%) ???:>::super_fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 8,888,682 ( 0.12%) ???:::lower_expr_mut'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 8,886,703 ( 0.12%) include/jemalloc/internal/rtree.h:realloc 8,836,346 ( 0.12%) ???:rustc_hir_analysis::check::wfcheck::check_where_clauses'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 8,820,192 ( 0.12%) ???:rustc_mir_dataflow::drop_flag_effects::on_all_children_bits::on_all_children_bits::<&mut rustc_mir_dataflow::drop_flag_effects::drop_flag_effects_for_location<::apply_primary_statement_effect::{closure#0}>::{closure#2}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 8,780,372 ( 0.12%) ???:::resolve_regions_with_outlives_env [???] 8,779,944 ( 0.12%) ???:rustc_trait_selection::traits::normalize_param_env_or_error [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 8,732,099 ( 0.12%) ???:::hash_expn::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 8,548,573 ( 0.12%) ???:::resolve_pattern_inner::{closure#0} [???] 8,423,875 ( 0.11%) src/arena.c:malloc_default 8,329,938 ( 0.11%) ???:>::fold_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 8,234,668 ( 0.11%) include/jemalloc/internal/emap.h:tcache_bin_flush_small 8,171,833 ( 0.11%) ???:::hir_node [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 8,168,532 ( 0.11%) ???:::solve [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 8,114,869 ( 0.11%) ???:::make_owner_info [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 8,058,472 ( 0.11%) ???:::desugaring_kind'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 7,965,667 ( 0.11%) ???: as rustc_ast::visit::Visitor>::visit_id [???] 7,833,216 ( 0.11%) ???:rustc_traits::implied_outlives_bounds::implied_outlives_bounds [???] 7,744,421 ( 0.11%) ???:::super_body_preserves_cfg [???] 7,654,994 ( 0.10%) ???:>::instantiate_supertrait [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 7,521,740 ( 0.10%) ???:::encode_span [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 7,469,917 ( 0.10%) include/jemalloc/internal/edata.h:tcache_bin_flush_small 7,455,718 ( 0.10%) ???:> as rustc_middle::query::caches::QueryCache>::for_each [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 7,432,794 ( 0.10%) ???:::build_exit_tree [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 7,396,105 ( 0.10%) ???:::render [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 7,313,735 ( 0.10%) ???:rustc_query_impl::execution::try_execute_query::>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 7,222,078 ( 0.10%) ???:::as_temp::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 7,119,406 ( 0.10%) ???:rustc_query_impl::execution::try_execute_query::>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 7,074,165 ( 0.10%) ???:::hir_span [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 7,045,235 ( 0.10%) ???:::parse_path_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,903,530 ( 0.09%) ???:::hir_span_with_body [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,891,295 ( 0.09%) ???:::apply_primary_statement_effect [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,885,696 ( 0.09%) ???:>::tys'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,879,980 ( 0.09%) ???:::has_trivial_sizedness [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,837,429 ( 0.09%) ???:>, ())>>::reserve_rehash::>, (), rustc_hash::FxBuildHasher>::{closure#0}> [???] 6,749,457 ( 0.09%) ???:>::push [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,715,699 ( 0.09%) ???:rustc_query_impl::execution::try_execute_query::, rustc_middle::dep_graph::graph::DepNodeIndex>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,702,115 ( 0.09%) ???:rustc_hir_analysis::check::region::resolve_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,628,766 ( 0.09%) ???:::visit_item::{closure#0}::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,591,371 ( 0.09%) ???:rustc_span::edit_distance::edit_distance [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,560,598 ( 0.09%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,518,676 ( 0.09%) ???:>::tys [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,498,985 ( 0.09%) ???:rustc_query_impl::execution::try_execute_query::, rustc_middle::dep_graph::graph::DepNodeIndex>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,459,880 ( 0.09%) ???:::mk_canonical_var_kinds [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,447,632 ( 0.09%) ???:rustc_trait_selection::traits::wf::clause_obligations [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,426,611 ( 0.09%) ???:::opt_associated_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,393,986 ( 0.09%) ???:> as rustc_type_ir::interner::CollectAndApply>>::collect_and_apply::>, core::iter::adapters::copied::Copied>>, rustc_type_ir::relate::relate_args_invariantly::{closure#0}>, ::mk_args_from_iter>, core::iter::adapters::copied::Copied>>, rustc_type_ir::relate::relate_args_invariantly::{closure#0}>, core::result::Result>>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,383,960 ( 0.09%) ???:::mk_args'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,380,646 ( 0.09%) ???:::run_lint [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,351,931 ( 0.09%) ???:> as rustc_trait_selection::traits::query::type_op::TypeOp>::fully_perform [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,318,975 ( 0.09%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,308,852 ( 0.09%) ???:>::get_attrs [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,296,923 ( 0.09%) ???:::lower_generic_args_of_path::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,252,324 ( 0.08%) ???:::add_required_obligations_for_hir'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,186,834 ( 0.08%) ???:>::fold_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,150,847 ( 0.08%) ???:rustc_type_ir::relate::structurally_relate_tys::::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,127,888 ( 0.08%) ???:::pop_scope [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,099,021 ( 0.08%) ???:rustc_mir_build::builder::build_mir_inner_impl'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,094,701 ( 0.08%) ???:rustc_query_impl::execution::try_execute_query::, rustc_middle::dep_graph::graph::DepNodeIndex>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,088,951 ( 0.08%) ???:::add_wf_preds_for_trait_pred [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,074,404 ( 0.08%) ???:::break_scope [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,063,568 ( 0.08%) ???:rustc_query_impl::execution::try_execute_query::, rustc_middle::dep_graph::graph::DepNodeIndex>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,038,604 ( 0.08%) ???:>::super_fold_with::::handle_term::outer_exclusive_binder, ::new_error>::{closure#0}>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,031,723 ( 0.08%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,983,310 ( 0.08%) ???:::run_lint [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,960,173 ( 0.08%) ???: as rustc_data_structures::stable_hash::StableHash>::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,952,893 ( 0.08%) ???:::check_attributes [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,923,105 ( 0.08%) ???:>::with::<::with::outer_expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,824,424 ( 0.08%) ???:::check_expr_method_call [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,812,717 ( 0.08%) ???:core::fmt::write [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,762,358 ( 0.08%) ???:::stable_hash::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,758,773 ( 0.08%) ???:::trait_ref_and_own_args_for_alias [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,739,360 ( 0.08%) ???:::lower_qpath'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,697,797 ( 0.08%) ???:rustc_pattern_analysis::usefulness::compute_exhaustiveness_and_usefulness::::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,692,768 ( 0.08%) ???:::try_fold_free_or_assoc [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,633,163 ( 0.08%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,583,477 ( 0.08%) ???:::short_write_process_buffer::<1> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,547,696 ( 0.08%) ???:::is_mutable [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,541,722 ( 0.08%) ???: as rustc_ast::visit::Visitor>::visit_expr'2 [???] 5,537,121 ( 0.08%) ???:thin_vec::drop_non_singleton::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,515,905 ( 0.07%) ???:::make_canonicalized_query_response::<()> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,508,405 ( 0.07%) ???:::parse_item_kind'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,453,668 ( 0.07%) include/jemalloc/internal/thread_event.h:realloc 5,388,218 ( 0.07%) ???: as alloc::vec::spec_extend::SpecExtend>>::spec_extend'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,364,847 ( 0.07%) ???:>, rustc_middle::query::erase::ErasedData<[u8; 2]>> as rustc_middle::query::caches::QueryCache>::for_each'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,294,445 ( 0.07%) ???:::parse_item_kind [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,256,561 ( 0.07%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,250,642 ( 0.07%) ???:pthread_mutex_unlock [/usr/lib/libc.so.6] 5,244,321 ( 0.07%) ???:rustc_ast_lowering::lower_to_hir [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,199,528 ( 0.07%) include/jemalloc/internal/arena_inlines_b.h:tcache_bin_flush_small 5,193,268 ( 0.07%) ???:::hir_body_const_context [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,190,481 ( 0.07%) ???:rustc_trait_selection::traits::project::confirm_candidate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,187,319 ( 0.07%) include/jemalloc/internal/tsd_tls.h:free [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 5,187,314 ( 0.07%) include/jemalloc/internal/atomic.h:free 5,151,036 ( 0.07%) ???:::normalize::<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,136,789 ( 0.07%) ???:::check_expr [???] 5,111,315 ( 0.07%) ???:>::assumed_wf_types_and_report_errors [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,110,444 ( 0.07%) include/jemalloc/internal/arena_inlines_b.h:realloc 5,093,283 ( 0.07%) ???:::apply_primary_terminator_effect [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,071,165 ( 0.07%) ???:::run_lint'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,065,193 ( 0.07%) ???:::canonicalize_free_region [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,063,222 ( 0.07%) ???:rustc_mir_transform::mir_promoted [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,018,883 ( 0.07%) ???: as rustc_type_ir::visit::TypeVisitor>::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,996,604 ( 0.07%) ???:core::ptr::drop_glue::> [???] 4,990,610 ( 0.07%) ???:rustc_traits::type_op::type_op_prove_predicate'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,967,508 ( 0.07%) ???:md5::compress::soft::compress [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,947,121 ( 0.07%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,921,503 ( 0.07%) ???:::fn_sig [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,898,616 ( 0.07%) ???:rustc_query_impl::execution::try_execute_query::>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,861,528 ( 0.07%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,788,553 ( 0.06%) ???:::build_drop_trees [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,779,292 ( 0.06%) /rustc/84b36a78a28a63f134171c670be1932ffa2485f8/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/build/tikv-jemalloc-sys/80122c672fbe49ef/out/build/src/jemalloc.c:malloc 4,763,815 ( 0.06%) ???:rustc_hir_analysis::check::compare_impl_item::compare_impl_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,752,981 ( 0.06%) ???:rustc_hir_analysis::check::wfcheck::enter_wf_checking_ctxt::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,751,486 ( 0.06%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,740,481 ( 0.06%) ???:rustc_type_ir::relate::structurally_relate_tys::::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,717,945 ( 0.06%) ???:::lower_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,701,665 ( 0.06%) ???:::mk_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,699,846 ( 0.06%) ???:::param_or_placeholder_bound [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,688,842 ( 0.06%) include/jemalloc/internal/tcache_inlines.h:realloc 4,624,037 ( 0.06%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,550,156 ( 0.06%) ???:pthread_mutex_trylock [/usr/lib/libc.so.6] 4,518,437 ( 0.06%) ???:>::instantiate_supertrait'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,499,065 ( 0.06%) ???:::is_diagnostic_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,477,223 ( 0.06%) ???:::visit_qpath [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,458,101 ( 0.06%) ???:::lex_token_trees'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,443,937 ( 0.06%) ???:::type_is_copy_modulo_regions [???] 4,428,371 ( 0.06%) ???:::putc [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,397,674 ( 0.06%) ???: as rustc_mir_transform::pass_manager::MirPass>::run_pass [???] 4,387,977 ( 0.06%) ???:::parse_ty_common [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,379,601 ( 0.06%) ???:> as rustc_type_ir::interner::CollectAndApply>>::collect_and_apply::>, core::iter::adapters::copied::Copied>>, rustc_type_ir::relate::relate_args_invariantly::{closure#0}>, ::mk_args_from_iter>, core::iter::adapters::copied::Copied>>, rustc_type_ir::relate::relate_args_invariantly::{closure#0}>, core::result::Result>>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,372,269 ( 0.06%) ???: as core::ops::drop::Drop>::drop::drop_non_singleton::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,370,328 ( 0.06%) include/jemalloc/internal/thread_event.h:calloc 4,298,269 ( 0.06%) ???:::fn_sig'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,287,978 ( 0.06%) ???:rustc_pattern_analysis::rustc::analyze_match [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,280,847 ( 0.06%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,258,880 ( 0.06%) ???:::parse_token_tree [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,252,120 ( 0.06%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,244,824 ( 0.06%) ???: as rustc_hir::intravisit::Visitor>::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,237,776 ( 0.06%) ???:::trait_ref_and_own_args_for_alias'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,211,845 ( 0.06%) ???:::expr_as_place'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,172,366 ( 0.06%) ???:>, &mut rustc_infer::infer::snapshot::undo_log::InferCtxtUndoLogs>>>::uninlined_get_root_key [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,146,715 ( 0.06%) ???:rustc_privacy::check_mod_privacy [???] 4,135,438 ( 0.06%) ???:::shallow_resolve [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,125,177 ( 0.06%) include/jemalloc/internal/cache_bin.h:realloc 4,086,996 ( 0.06%) ???:>::relate:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,067,602 ( 0.06%) ???:::short_write_process_buffer::<4> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,060,027 ( 0.06%) ???: as rustc_type_ir::visit::TypeVisitor>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,032,781 ( 0.05%) ???:rustc_query_impl::execution::try_execute_query::>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,023,953 ( 0.05%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,021,325 ( 0.05%) ???:>::union'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,018,818 ( 0.05%) site/frontend/rust-clippy/clippy_lints/src/doc/mod.rs:::check_attributes [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 3,996,641 ( 0.05%) ???:::hash_owner_nodes::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,974,920 ( 0.05%) ???:::visit_generic_params [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,961,542 ( 0.05%) ???:::test_candidates [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,937,312 ( 0.05%) include/jemalloc/internal/bitmap.h:tcache_bin_flush_small 3,905,574 ( 0.05%) ???:::candidate_from_obligation [???] 3,895,631 ( 0.05%) ???: as rustc_type_ir::fold::TypeFolder>::fold_clauses [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,878,529 ( 0.05%) ???:rustc_type_ir::relate::combine::combine_ty_args::>::relate_ty_args::{closure#0}::{closure#0}>::{closure#0}>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,877,486 ( 0.05%) ???:rustc_hir_typeck::check::check_fn'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,873,379 ( 0.05%) ???:::create_def'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,868,001 ( 0.05%) ???:::resolve_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,864,551 ( 0.05%) include/jemalloc/internal/cache_bin.h:calloc 3,854,200 ( 0.05%) ???:::bump_minimal [???] 3,832,662 ( 0.05%) ???:>::super_fold_with::::handle_term::outer_exclusive_binder, ::new_error>::{closure#0}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,831,071 ( 0.05%) ???:rustc_query_impl::execution::try_execute_query::>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,828,673 ( 0.05%) ???:::lower_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,821,820 ( 0.05%) ???:rustc_hir_analysis::check::check::check_item_type [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,733,602 ( 0.05%) ???:rustc_trait_selection::traits::project::normalize_projection_term'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,725,271 ( 0.05%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,713,466 ( 0.05%) ???:::bump [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,657,105 ( 0.05%) ???: as rustc_type_ir::visit::TypeVisitor>::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,654,678 ( 0.05%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,589,934 ( 0.05%) ???:::as_operand'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,577,713 ( 0.05%) ???:::traits_in_scope [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,562,582 ( 0.05%) ???:::desugaring_kind [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,552,301 ( 0.05%) ???:::check_pat_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,518,924 ( 0.05%) ???:rustc_traits::evaluate_obligation::evaluate_obligation'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,512,730 ( 0.05%) ???:rustc_query_impl::execution::try_execute_query::, rustc_middle::dep_graph::graph::DepNodeIndex>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,498,470 ( 0.05%) ???:>, rustc_middle::query::erase::ErasedData<[u8; 8]>> as rustc_middle::query::caches::QueryCache>::for_each'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,497,374 ( 0.05%) ???:::xform_self_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,468,837 ( 0.05%) ???:::stable_hash::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,441,488 ( 0.05%) ???:0x000000000000fb40 [/usr/lib/ld-linux-x86-64.so.2] 3,436,972 ( 0.05%) /rust/deps/scoped-tls-1.0.1/src/lib.rs:>::with::<::with::expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 3,434,800 ( 0.05%) ???:rustc_trait_selection::traits::normalize::normalize_with_depth_to::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,426,099 ( 0.05%) ???:>::fold_predicate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,414,011 ( 0.05%) ???:::check_false_global_bounds [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,412,937 ( 0.05%) ???:rustc_query_impl::plumbing::verify_query_key_hashes_inner::>, bool), rustc_middle::query::erase::ErasedData<[u8; 8]>>>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,409,520 ( 0.05%) ???: as core::iter::traits::iterator::Iterator>::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,404,815 ( 0.05%) ???:::parse_ty_common'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,364,875 ( 0.05%) ???: as rustc_hir::intravisit::Visitor>::visit_expr'2 [???] 3,359,185 ( 0.05%) ???:>::normalize::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,356,580 ( 0.05%) ???:rust_psm_stack_pointer [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,341,649 ( 0.05%) ???:::normalize::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,335,144 ( 0.05%) ???:rustc_trait_selection::traits::project::confirm_candidate'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,317,109 ( 0.04%) include/jemalloc/internal/sz.h:calloc 3,304,743 ( 0.04%) ???:::as_call_operand [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,294,967 ( 0.04%) ???:>::fold_with::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,293,772 ( 0.04%) ???:::normalize:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,285,168 ( 0.04%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:clippy_utils::macros::first_node_in_macro:: 3,275,653 ( 0.04%) ???:::typeck_body [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,246,452 ( 0.04%) ???:>::find_cycles_from_node::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,241,258 ( 0.04%) ???:::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,204,279 ( 0.04%) ???:::parse_fn_params [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,200,848 ( 0.04%) ???:rustc_hir_analysis::collect::generics_of::generics_of [???] 3,193,855 ( 0.04%) ???:::lower_pat_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,173,179 ( 0.04%) ???:::check_args_compatible_inner'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,153,172 ( 0.04%) ???:> as rustc_data_structures::stable_hash::StableHash>::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,137,437 ( 0.04%) ???: as rustc_hir::intravisit::Visitor>::visit_expr::{closure#0}::{closure#0}'2 [???] 3,132,797 ( 0.04%) ???:::evaluate_trait_predicate_recursively [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,129,635 ( 0.04%) ???:0x0000000000173660 [/usr/lib/libc.so.6] 3,125,144 ( 0.04%) ???:> as rustc_type_ir::interner::CollectAndApply>>::collect_and_apply::>, core::iter::adapters::copied::Copied>>, rustc_type_ir::relate::relate_args_invariantly::{closure#0}>, ::mk_args_from_iter>, core::iter::adapters::copied::Copied>>, rustc_type_ir::relate::relate_args_invariantly::{closure#0}>, core::result::Result>>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,102,405 ( 0.04%) ???:::consider_probe::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,098,895 ( 0.04%) ???:::expn_data [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,096,769 ( 0.04%) ???:)>>::reserve_rehash::, rustc_hash::FxBuildHasher>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,079,761 ( 0.04%) ???:::type_op_method [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,076,483 ( 0.04%) ???:::is_impl_trait_in_trait [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,071,992 ( 0.04%) site/frontend/rust-clippy/clippy_lints/src/combined_early_pass.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 3,069,133 ( 0.04%) ???:::mk_type_list'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,059,369 ( 0.04%) ???:::check_stability_allow_unstable [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,055,085 ( 0.04%) ???:rustc_hir_analysis::check::wfcheck::check_fn_or_method'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,054,207 ( 0.04%) ???:::visit_node_id'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,048,303 ( 0.04%) ???:rustc_middle::ty::codec::encode_with_shorthand::::type_shorthands> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,028,523 ( 0.04%) include/jemalloc/internal/ph.h:pa_alloc 3,028,178 ( 0.04%) ???:::resolve_type_vars_in_body [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,027,114 ( 0.04%) ???:> as rustc_type_ir::interner::CollectAndApply>>::collect_and_apply::>, core::iter::adapters::copied::Copied>>, rustc_type_ir::relate::relate_args_invariantly::{closure#0}>, ::mk_args_from_iter>, core::iter::adapters::copied::Copied>>, rustc_type_ir::relate::relate_args_invariantly::{closure#0}>, core::result::Result>>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,023,584 ( 0.04%) ???:rustc_query_impl::execution::try_execute_query::>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,999,629 ( 0.04%) ???:rustc_query_impl::execution::try_execute_query::>, rustc_middle::query::erase::ErasedData<[u8; 2]>>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,997,186 ( 0.04%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,991,432 ( 0.04%) include/jemalloc/internal/rtree.h:pa_alloc 2,980,372 ( 0.04%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/pattern.rs:::next_match [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 2,972,640 ( 0.04%) ???:thin_vec::drop_non_singleton:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,964,272 ( 0.04%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:clippy_utils::macros::root_macro_call 2,952,984 ( 0.04%) include/jemalloc/internal/div.h:tcache_bin_flush_small 2,952,936 ( 0.04%) ???:::check_stability_allow_unstable'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,952,738 ( 0.04%) ???:::add_required_obligations_for_hir [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,923,250 ( 0.04%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::root_macro_call [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 2,920,787 ( 0.04%) ???:, rustc_middle::dep_graph::graph::DepNodeIndex> as rustc_middle::query::caches::QueryCache>::for_each [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,895,701 ( 0.04%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,895,670 ( 0.04%) ???:::check_args_compatible_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,893,351 ( 0.04%) ???:::start_new_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,892,666 ( 0.04%) ???:rustc_codegen_ssa::codegen_attrs::codegen_fn_attrs [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,891,675 ( 0.04%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs: as core::iter::traits::iterator::Iterator>::try_fold::<(), core::iter::traits::iterator::Iterator::find_map::check<(rustc_span::hygiene::ExpnId, rustc_span::hygiene::ExpnData), clippy_utils::macros::MacroCall, &mut clippy_utils::macros::macro_backtrace::{closure#0}>::{closure#0}, core::ops::control_flow::ControlFlow> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 2,890,051 ( 0.04%) ???:::lower_generic_args_of_path::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,869,979 ( 0.04%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,868,037 ( 0.04%) ???:rustc_type_ir::relate::relate_args_with_variances:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,864,260 ( 0.04%) ???:::as_temp::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,863,488 ( 0.04%) ???:, rustc_middle::dep_graph::graph::DepNodeIndex> as rustc_middle::query::caches::QueryCache>::for_each [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,863,038 ( 0.04%) ???:rustc_query_impl::execution::try_execute_query::>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,853,373 ( 0.04%) ???:>::fold_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,848,785 ( 0.04%) ???:>::fold_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,840,172 ( 0.04%) ???:rustc_mir_dataflow::drop_flag_effects::on_all_children_bits::on_all_children_bits::::apply_switch_int_edge_effect::{closure#0}>::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,835,352 ( 0.04%) ???:rustc_query_impl::execution::try_execute_query::>, bool), rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,831,564 ( 0.04%) ???:rustc_hir_analysis::hir_ty_lowering::generics::check_generic_arg_count_for_value_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,825,517 ( 0.04%) ???:::lower_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,812,068 ( 0.04%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/hygiene.rs:>::with::<::with::expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 2,801,120 ( 0.04%) ???:::resolve_macro_invocation'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,782,024 ( 0.04%) ???:>>::walk_ref [???] 2,777,664 ( 0.04%) ???: as alloc::vec::spec_from_iter_nested::SpecFromIterNested>::from_iter [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,775,999 ( 0.04%) ???: as alloc::vec::spec_extend::SpecExtend>>::spec_extend [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,772,186 ( 0.04%) ???:<[rustc_hir::hir::PathSegment] as rustc_data_structures::stable_hash::StableHash>::stable_hash::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,770,696 ( 0.04%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,763,926 ( 0.04%) ???:rustc_mir_build::thir::pattern::check_match::check_match [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,752,030 ( 0.04%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,728,431 ( 0.04%) ???:, rustc_middle::dep_graph::graph::DepNodeIndex> as rustc_middle::query::caches::QueryCache>::for_each [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,716,527 ( 0.04%) ???:>::types_may_unify_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,715,761 ( 0.04%) ???:::collect_tokens_for_expr::<::parse_expr_dot_or_call::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,714,834 ( 0.04%) ???:>::types_may_unify_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,712,748 ( 0.04%) ???:::stable_hash::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,711,591 ( 0.04%) ???:, rustc_middle::query::erase::ErasedData<[u8; 1]>> as rustc_middle::query::caches::QueryCache>::for_each'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,709,530 ( 0.04%) ???:, rustc_middle::dep_graph::graph::DepNodeIndex> as rustc_middle::query::caches::QueryCache>::for_each [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,706,414 ( 0.04%) ???:::lower_pattern [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,699,329 ( 0.04%) ???:::slice_write_process_buffer [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,692,928 ( 0.04%) /rust/deps/scoped-tls-1.0.1/src/lib.rs:>::with::<::with::outer_expn::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnId> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 2,687,947 ( 0.04%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,686,092 ( 0.04%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,642,709 ( 0.04%) ???:::hir_body_owner_def_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,634,315 ( 0.04%) ???:rustc_trait_selection::traits::project::opt_normalize_projection_term [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,627,538 ( 0.04%) ???:> as rustc_middle::query::caches::QueryCache>::for_each [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,610,051 ( 0.04%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,608,579 ( 0.04%) ???:>::fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,604,034 ( 0.04%) ???:rustc_mir_transform::mir_built'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,601,310 ( 0.04%) ???:::lookup_char_pos [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,588,028 ( 0.04%) site/frontend/rust-clippy/clippy_lints/src/misc.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 2,587,179 ( 0.04%) ???:::compute_object_lifetime_defaults [???] 2,573,839 ( 0.03%) ???:>::fold_with::>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,567,561 ( 0.03%) site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs:::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 2,559,712 ( 0.03%) include/jemalloc/internal/tsd.h:calloc 2,559,304 ( 0.03%) ???:> as rustc_middle::query::caches::QueryCache>::for_each [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,544,351 ( 0.03%) ???:::get_diagnostic_name [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,540,529 ( 0.03%) ???:::hir_maybe_body_owned_by [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,534,600 ( 0.03%) ???:::confirm [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,526,800 ( 0.03%) site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 2,519,574 ( 0.03%) ???:::adjust_ident_and_get_scope'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,512,587 ( 0.03%) ???:::pick_all_method'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,484,839 ( 0.03%) ???:rustc_hir::intravisit::walk_expr::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,478,123 ( 0.03%) ???:::lookup_probe [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,475,996 ( 0.03%) ???:>::super_visit_with::<::any_free_region_meets::RegionVisitor<::all_free_regions_meet::{closure#0}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,471,614 ( 0.03%) ???:::encode_crate_root [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,459,366 ( 0.03%) ???:::update_decl_chain [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,456,834 ( 0.03%) ???:::eq_trace::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,453,124 ( 0.03%) ???:::instantiate_identity_into [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,445,332 ( 0.03%) ???:::as_operand [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,443,206 ( 0.03%) ???:rustc_hir::intravisit::walk_expr::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,442,023 ( 0.03%) include/jemalloc/internal/bit_util.h:malloc_default 2,430,155 ( 0.03%) ???:::is_conditionally_const:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,429,755 ( 0.03%) ???:>::fold_predicate'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,423,827 ( 0.03%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,420,544 ( 0.03%) ???: as rustc_type_ir::visit::TypeVisitor>::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,417,126 ( 0.03%) ???:::find_by_ident_and_namespace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,417,068 ( 0.03%) ???:rustc_mir_build::thir::cx::thir_body [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,412,664 ( 0.03%) ???:::finish [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,400,036 ( 0.03%) ???:>::fold_clauses'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,380,927 ( 0.03%) ???:::expect_hir_owner_nodes [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,371,544 ( 0.03%) ???:::lookup_byte_offset [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,363,758 ( 0.03%) ???:rustc_mir_dataflow::drop_flag_effects::on_all_children_bits::on_all_children_bits::<&mut rustc_mir_dataflow::drop_flag_effects::drop_flag_effects_for_location<::apply_primary_statement_effect::{closure#0}>::{closure#2}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,361,238 ( 0.03%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,348,013 ( 0.03%) ???:::stable_hash::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,347,357 ( 0.03%) ???:::resolve_path_with_ribs'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,345,009 ( 0.03%) ???:::parse_pat_with_range_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,339,480 ( 0.03%) include/jemalloc/internal/tsd.h:realloc 2,337,473 ( 0.03%) ???:::mark_live_symbols'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,326,260 ( 0.03%) ???:::bind_and_guard_matched_candidate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,318,397 ( 0.03%) ???:::visit_fn [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,306,451 ( 0.03%) ???:::leaf_def [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,301,186 ( 0.03%) ???:>::relate:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,286,328 ( 0.03%) ???:::lower_path_segment [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,282,073 ( 0.03%) ???:::lower_match_arms [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,270,541 ( 0.03%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,259,254 ( 0.03%) ???: as rustc_type_ir::fold::TypeFolder>::fold_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,257,469 ( 0.03%) ???:::create_def [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,249,104 ( 0.03%) ???:::parse_item_common [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,245,528 ( 0.03%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,242,701 ( 0.03%) ???: as rustc_hir::intravisit::Visitor>::visit_path [???] 2,232,204 ( 0.03%) ???:::run_lint'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,231,539 ( 0.03%) include/jemalloc/internal/sz.h:pa_alloc 2,227,818 ( 0.03%) ???:::write_char [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,227,165 ( 0.03%) ???:>>::drop_slow'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,216,403 ( 0.03%) ???: as rustc_data_structures::stable_hash::StableHash>::stable_hash::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,215,295 ( 0.03%) include/jemalloc/internal/edata.h:pa_alloc 2,212,563 ( 0.03%) ???:::parse_path_segment'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,211,457 ( 0.03%) ???:rustc_hir_analysis::variance::crate_variances [???] 2,209,555 ( 0.03%) ???:::visit_primary_bindings_special::<::declare_bindings::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,196,810 ( 0.03%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,192,171 ( 0.03%) ???:::visit_def_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,186,449 ( 0.03%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,182,494 ( 0.03%) ???:::get_terminator_edges [???] 2,176,779 ( 0.03%) ???:>::types_may_unify_inner'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,175,325 ( 0.03%) site/frontend/rust-clippy/clippy_utils/src/macros.rs: as core::iter::traits::iterator::Iterator>::try_fold::<(), core::iter::traits::iterator::Iterator::find_map::check<(rustc_span::hygiene::ExpnId, rustc_span::hygiene::ExpnData), clippy_utils::macros::MacroCall, &mut clippy_utils::macros::macro_backtrace::{closure#0}>::{closure#0}, core::ops::control_flow::ControlFlow> 2,155,061 ( 0.03%) ???:>::get_attrs [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,147,454 ( 0.03%) ???:::demand_eqtype_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,137,820 ( 0.03%) ???:::is_trivially_wf [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,120,422 ( 0.03%) ???:::visit_def_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,118,352 ( 0.03%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,116,419 ( 0.03%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,110,171 ( 0.03%) ???:::mk_type_list [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,109,240 ( 0.03%) ???:stacker::remaining_stack [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,107,660 ( 0.03%) ???:::run_lint [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,101,678 ( 0.03%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:clippy_utils::in_automatically_derived 2,096,298 ( 0.03%) ???:::trait_impl_of_assoc [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,083,357 ( 0.03%) ???:::decode_span [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,075,531 ( 0.03%) ???: as rustc_type_ir::visit::TypeVisitor>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,074,471 ( 0.03%) ???:core::slice::sort::stable::quicksort::quicksort::<(rustc_mir_build::builder::scope::DropIdx, rustc_middle::mir::BasicBlock), <(rustc_mir_build::builder::scope::DropIdx, rustc_middle::mir::BasicBlock) as core::cmp::PartialOrd>::lt>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,065,228 ( 0.03%) ???:::lower_method_sig [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,059,845 ( 0.03%) ???:::def_key'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,043,230 ( 0.03%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,040,913 ( 0.03%) src/base.c:pa_alloc 2,027,153 ( 0.03%) ???:>::super_fold_with::::renumber_regions::visit_ty::{closure#0}>::{closure#0}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,020,524 ( 0.03%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,018,603 ( 0.03%) ???:::consider_probe::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,001,296 ( 0.03%) ???:::make_all_regions_live::{closure#0}> as rustc_type_ir::visit::TypeVisitor>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,001,140 ( 0.03%) site/frontend/rust-clippy/clippy_lints/src/casts/mod.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,988,344 ( 0.03%) ???:>::fill_item::<>::identity_for_item::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,984,644 ( 0.03%) ???:<&mut serde_json::ser::Serializer<&mut alloc::boxed::Box> as serde_core::ser::Serializer>::serialize_str [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,978,678 ( 0.03%) ???:rustc_metadata::rmeta::decoder::cstore_impl::provide_extern::associated_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,977,342 ( 0.03%) ???:::coerce [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,976,609 ( 0.03%) ???:::lower_lifetime [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,976,504 ( 0.03%) ???:::collect_tokens::::parse_stmt_without_recovery::{closure#4}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,968,656 ( 0.03%) include/jemalloc/internal/util.h:tcache_bin_flush_small 1,944,920 ( 0.03%) ???:::var_for_def [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,934,618 ( 0.03%) ???:rustc_query_impl::execution::try_execute_query::>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,934,258 ( 0.03%) include/jemalloc/internal/ph.h:tcache_bin_flush_small 1,932,973 ( 0.03%) ???:> as rustc_middle::query::caches::QueryCache>::for_each [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,929,456 ( 0.03%) src/hook.c:realloc 1,922,837 ( 0.03%) ???:>>::walk_ref'2 [???] 1,919,931 ( 0.03%) ???:::impl_or_trait_obligations [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,914,179 ( 0.03%) ???:::unresolved_root_variables [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,911,677 ( 0.03%) ???:::check_def_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,908,938 ( 0.03%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,908,828 ( 0.03%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,879,102 ( 0.03%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,875,879 ( 0.03%) ???:::visit_lifetime [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,875,036 ( 0.03%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,871,824 ( 0.03%) site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,869,904 ( 0.03%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,864,153 ( 0.03%) ???:rustc_mir_transform::mir_promoted'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,863,123 ( 0.03%) ???:::visit_operand [???] 1,863,039 ( 0.03%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,858,376 ( 0.03%) ???:>::try_fold_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,855,309 ( 0.03%) ???:rustc_query_impl::execution::try_execute_query::>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,848,935 ( 0.03%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,846,169 ( 0.03%) ???:::parse_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,843,472 ( 0.03%) ???:::universe_canonicalized_var_kinds [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,832,872 ( 0.02%) ???:::pick_all_method [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,820,447 ( 0.02%) ???:::check_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,817,381 ( 0.02%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,793,163 ( 0.02%) ???:::record_use'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,793,059 ( 0.02%) ???:::next_nll_region_var [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,787,779 ( 0.02%) ???:rustc_passes::reachable::reachable_set'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,786,418 ( 0.02%) src/arena.c:calloc 1,783,134 ( 0.02%) ???:::run_lint [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,775,982 ( 0.02%) site/frontend/rust-clippy/clippy_lints/src/casts/cast_slice_different_sizes.rs:clippy_lints::casts::cast_slice_different_sizes::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,773,285 ( 0.02%) include/jemalloc/internal/tcache_inlines.h:calloc 1,768,557 ( 0.02%) ???:::qpath_res [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,767,120 ( 0.02%) ???:::decode_span'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,764,684 ( 0.02%) ???:rustc_type_ir::relate::structurally_relate_tys::::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,762,204 ( 0.02%) ???:::check_expr_method_call'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,752,818 ( 0.02%) ???:core::slice::memchr::memchr_aligned [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,745,364 ( 0.02%) ???:::visit_qpath'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,738,018 ( 0.02%) ???:rustc_type_ir::relate::structurally_relate_tys::::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,736,729 ( 0.02%) ???:::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,718,546 ( 0.02%) ???:::visit_assoc_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,717,522 ( 0.02%) src/eset.c:pa_alloc 1,716,259 ( 0.02%) ???:>::components_must_outlive [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,705,804 ( 0.02%) ???:> as rustc_type_ir::interner::CollectAndApply>>::collect_and_apply::>, core::iter::adapters::copied::Copied>>, rustc_type_ir::relate::relate_args_invariantly::{closure#0}>, ::mk_args_from_iter>, core::iter::adapters::copied::Copied>>, rustc_type_ir::relate::relate_args_invariantly::{closure#0}>, core::result::Result>>::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,705,081 ( 0.02%) ???:rustc_hir::intravisit::walk_expr::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,704,890 ( 0.02%) ???:rustc_metadata::rmeta::decoder::cstore_impl::provide_extern::attrs_for_def'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,702,511 ( 0.02%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,701,118 ( 0.02%) ???:::opt_rpitit_info [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,696,169 ( 0.02%) ???:::resolve_crate::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,695,598 ( 0.02%) /rustc/84b36a78a28a63f134171c670be1932ffa2485f8/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/build/tikv-jemalloc-sys/80122c672fbe49ef/out/build/src/tcache.c:tcache_bin_flush_stashed [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,693,739 ( 0.02%) ???:rustc_hir_typeck::check::check_fn [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,693,428 ( 0.02%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,690,432 ( 0.02%) ???:0x000000000000ba80 [/usr/lib/ld-linux-x86-64.so.2] 1,690,145 ( 0.02%) ???:rustc_ty_utils::needs_drop::needs_drop_raw [???] 1,686,169 ( 0.02%) ???:::visit_ast_fragment_with_placeholders [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,682,856 ( 0.02%) ???:::clone [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,678,080 ( 0.02%) ???:::get_str [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,677,184 ( 0.02%) ???:>::super_fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,668,714 ( 0.02%) ???:::evaluate_root_obligation [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,668,433 ( 0.02%) ???:rustc_lint::impl_trait_overcaptures::check_fn [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,665,809 ( 0.02%) ???:::xform_self_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,660,554 ( 0.02%) ???:::lower_poly_trait_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,650,957 ( 0.02%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,650,233 ( 0.02%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,649,213 ( 0.02%) ???:::check_expr_match [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,644,090 ( 0.02%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,642,103 ( 0.02%) ???:::assemble_extension_candidates_for_trait'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,642,058 ( 0.02%) ???:::deeply_normalize:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,638,469 ( 0.02%) ???:::record_use [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,633,334 ( 0.02%) ???:rustc_ty_utils::implied_bounds::assumed_wf_types [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,630,421 ( 0.02%) ???:>::super_fold_with::::renumber_regions::visit_ty::{closure#0}>::{closure#0}>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,629,527 ( 0.02%) ???:::mark_live_symbols [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,629,011 ( 0.02%) ???:rustc_traits::dropck_outlives::dropck_outlives'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,624,239 ( 0.02%) ???:rustc_middle::ty::trait_def::trait_impls_of_provider'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,616,294 ( 0.02%) ???:rustc_ty_walk::walk_types:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,615,932 ( 0.02%) ???:::sub_concrete_regions [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,614,005 ( 0.02%) ???:::check_expr_call [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,611,798 ( 0.02%) ???:::opt_associated_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,608,012 ( 0.02%) ???:>::reserve_rehash::>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,600,305 ( 0.02%) ???:>::walk_mut'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,594,548 ( 0.02%) ???:> as rustc_type_ir::interner::CollectAndApply>>::collect_and_apply::>, core::iter::adapters::copied::Copied>>, rustc_type_ir::relate::relate_args_invariantly::{closure#0}>, ::mk_args_from_iter>, core::iter::adapters::copied::Copied>>, rustc_type_ir::relate::relate_args_invariantly::{closure#0}>, core::result::Result>>::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,586,668 ( 0.02%) ???:::expr_as_place [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,585,362 ( 0.02%) ???: as core::clone::Clone>::clone'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,583,657 ( 0.02%) ???:::lower_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,583,206 ( 0.02%) ???:::parse_expr_assoc_with'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,583,109 ( 0.02%) ???:rustc_query_impl::query_impl::lookup_deprecation_entry::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,582,760 ( 0.02%) ???:rustc_hir_analysis::check::region::region_scope_tree [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,577,270 ( 0.02%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,567,650 ( 0.02%) site/frontend/rust-clippy/clippy_lints/src/combined_late_pass.rs:::check_attributes [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,564,335 ( 0.02%) ???:::run_pass'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,559,818 ( 0.02%) ???:::lower_thir_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,558,823 ( 0.02%) ???:::new_with_implied_bounds_compat::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,556,286 ( 0.02%) ???:<[rustc_ast::tokenstream::TokenTree] as rustc_data_structures::stable_hash::StableHash>::stable_hash::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,554,859 ( 0.02%) ???:>::normalize:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,552,149 ( 0.02%) include/jemalloc/internal/atomic.h:realloc 1,546,652 ( 0.02%) include/jemalloc/internal/jemalloc_internal_inlines_a.h:realloc 1,544,757 ( 0.02%) ???:rustc_query_impl::execution::try_execute_query::>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,543,888 ( 0.02%) ???:::check_impl_or_impl_item_live [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,542,155 ( 0.02%) ???:rustc_type_ir::relate::relate_args_with_variances::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,541,341 ( 0.02%) ???:rustc_query_impl::execution::try_execute_query::, rustc_middle::query::erase::ErasedData<[u8; 1]>>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,533,680 ( 0.02%) ???:::check_expr_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,533,003 ( 0.02%) ???:::parse_item_impl'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,529,596 ( 0.02%) ???:rustc_resolve::rustdoc::unindent_doc_fragments [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,528,357 ( 0.02%) ???:::instantiate_identity_into'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,527,278 ( 0.02%) ???:::assemble_inherent_impl_candidates_for_type'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,526,888 ( 0.02%) ???:::ast_block [???] 1,524,690 ( 0.02%) site/frontend/rust-clippy/clippy_lints/src/matches/mod.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,523,852 ( 0.02%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,521,710 ( 0.02%) ???:::parse_outer_attributes [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,518,128 ( 0.02%) ???:::ensure_lines [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,517,339 ( 0.02%) ???:::visit_impl_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,512,246 ( 0.02%) ???:::lower_match_tree [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,505,603 ( 0.02%) site/frontend/rust-clippy/clippy_lints/src/attrs/mod.rs:::check_attributes [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,505,560 ( 0.02%) ???:::lower_attrs_vec [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,503,869 ( 0.02%) ???:::finish128_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,502,321 ( 0.02%) ???:::instantiate_bound_regions::, ::instantiate_bound_regions_with_erased>::{closure#0}>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,501,170 ( 0.02%) ???:::get_lint_level_spec [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,500,849 ( 0.02%) ???:::make [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,494,272 ( 0.02%) ???:> as rustc_type_ir::interner::CollectAndApply>>::collect_and_apply::>, core::iter::adapters::copied::Copied>>, rustc_type_ir::relate::relate_args_invariantly::{closure#0}>, ::mk_args_from_iter>, core::iter::adapters::copied::Copied>>, rustc_type_ir::relate::relate_args_invariantly::{closure#0}>, core::result::Result>>::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,492,234 ( 0.02%) ???:>::walk_mut'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,487,275 ( 0.02%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,486,405 ( 0.02%) ???:rustc_hir::intravisit::walk_expr::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,482,672 ( 0.02%) ???:::ascribe_user_type [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,481,894 ( 0.02%) ???:::stable_hash::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,481,684 ( 0.02%) ???:rustc_hir::intravisit::walk_expr::<::collect_taits_declared_in_body::TaitInBodyFinder>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,478,795 ( 0.02%) ???: as core::io::write::Write>::write_all [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,477,105 ( 0.02%) ???:>::rebase_onto [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,476,696 ( 0.02%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,476,145 ( 0.02%) ???:::parse_path_inner'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,475,634 ( 0.02%) ???: as rustc_infer::traits::engine::TraitEngine>::register_predicate_obligation [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,473,524 ( 0.02%) ???:, rustc_middle::dep_graph::graph::DepNodeIndex> as rustc_middle::query::caches::QueryCache>::for_each [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,471,347 ( 0.02%) ???:> as rustc_middle::query::caches::QueryCache>::for_each [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,469,199 ( 0.02%) ???: as core::iter::traits::collect::Extend>::extend::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,461,315 ( 0.02%) site/frontend/rust-clippy/clippy_utils/src/msrvs.rs:::meets [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,455,423 ( 0.02%) ???:::assemble_candidates_from_impls [???] 1,454,421 ( 0.02%) ???:::try_find_coercion_lub [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,442,553 ( 0.02%) ???:::span [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,441,936 ( 0.02%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,433,859 ( 0.02%) ???:> as rustc_type_ir::interner::CollectAndApply>>::collect_and_apply::>, core::iter::adapters::copied::Copied>>, rustc_type_ir::relate::relate_args_invariantly::{closure#0}>, ::mk_args_from_iter>, core::iter::adapters::copied::Copied>>, rustc_type_ir::relate::relate_args_invariantly::{closure#0}>, core::result::Result>>::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,432,293 ( 0.02%) ???:::check_pat_inner'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,432,040 ( 0.02%) ???:rustc_hir::intravisit::walk_ty:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,427,301 ( 0.02%) ???:::expr_into_dest [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,423,617 ( 0.02%) ???:::visit_poly_trait_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,417,418 ( 0.02%) ???:rustc_mir_transform::ffi_unwind_calls::has_ffi_unwind_calls [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,412,005 ( 0.02%) ???:rustc_traits::type_op::type_op_normalize_fn_sig'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,406,805 ( 0.02%) ???:rustc_trait_selection::traits::type_known_to_meet_bound_modulo_regions [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,393,276 ( 0.02%) ???:::range_span [???] 1,391,097 ( 0.02%) ???:> as rustc_middle::query::caches::QueryCache>::for_each'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,387,254 ( 0.02%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::in_automatically_derived [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,382,893 ( 0.02%) ???:::visit_node:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,382,651 ( 0.02%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,374,464 ( 0.02%) ???:::eq_trace::>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,373,408 ( 0.02%) ???:::visit_assoc_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,366,082 ( 0.02%) ???:::subtype_predicate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,365,699 ( 0.02%) ???:rustc_traits::normalize_projection_ty::normalize_canonicalized_projection'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,361,526 ( 0.02%) ???:::hash_owner_nodes::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,357,220 ( 0.02%) ???:::parse_fn [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,356,591 ( 0.02%) ???:>, &mut rustc_infer::infer::snapshot::undo_log::InferCtxtUndoLogs>>>::uninlined_get_root_key [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,353,009 ( 0.02%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,347,082 ( 0.02%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,346,835 ( 0.02%) ???:rustc_middle::ty::util::needs_drop_components_with_async [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,346,293 ( 0.02%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,341,036 ( 0.02%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,341,036 ( 0.02%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,341,036 ( 0.02%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,340,722 ( 0.02%) ???:rustc_mir_dataflow::drop_flag_effects::on_all_children_bits::on_all_children_bits::<&mut rustc_mir_dataflow::drop_flag_effects::drop_flag_effects_for_location<::apply_primary_statement_effect::{closure#0}>::{closure#2}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,340,530 ( 0.02%) site/frontend/rust-clippy/clippy_lints/src/strings.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,338,528 ( 0.02%) ???:>::visit_ty::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,335,714 ( 0.02%) ???:::lower_generic_param [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,334,346 ( 0.02%) ???:::opt_item_name:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,329,432 ( 0.02%) ???:::expr_guaranteed_to_constitute_read_for_never [???] 1,323,745 ( 0.02%) include/jemalloc/internal/atomic.h:tcache_bin_flush_small 1,320,912 ( 0.02%) site/frontend/rust-clippy/clippy_lints/src/redundant_async_block.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,320,725 ( 0.02%) site/frontend/rust-clippy/clippy_lints/src/operators/mod.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,320,026 ( 0.02%) ???:::lower_expr_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,315,903 ( 0.02%) ???:::lower_thir_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,309,916 ( 0.02%) ???:>::walk_mut'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,309,220 ( 0.02%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:::check_attributes 1,308,391 ( 0.02%) ???:rustc_metadata::rmeta::decoder::cstore_impl::provide_extern::implementations_of_trait [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,307,832 ( 0.02%) include/jemalloc/internal/fb.h:pa_alloc 1,304,294 ( 0.02%) ???:::lower_item_kind [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,300,936 ( 0.02%) ???:::expr_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,299,842 ( 0.02%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,295,413 ( 0.02%) ???:::hir_body_owned_by [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,294,606 ( 0.02%) ???:rustc_query_impl::query_impl::def_ident_span::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,287,226 ( 0.02%) ???:rustc_ty_utils::ty::param_env [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,284,967 ( 0.02%) ???:::add_constraints_from_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,283,802 ( 0.02%) ???:rustc_query_impl::execution::try_execute_query::, rustc_middle::query::erase::ErasedData<[u8; 1]>>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,280,749 ( 0.02%) ???: as core::clone::Clone>::clone::clone_non_singleton::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,280,092 ( 0.02%) ???:::parse_pat_ident [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,280,004 ( 0.02%) ???:>::get_attrs'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,278,630 ( 0.02%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,274,346 ( 0.02%) ???:::leak_check [???] 1,266,212 ( 0.02%) ???:::to_attr_token_stream [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,264,208 ( 0.02%) ???:rustc_passes::dead::live_symbols_and_ignored_derived_traits'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,260,695 ( 0.02%) ???:::trait_of_assoc [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,257,767 ( 0.02%) ???:::late_bound_vars [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,254,121 ( 0.02%) ???:rustc_resolve::rustdoc::unindent_doc_fragments'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,249,808 ( 0.02%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_data_structures/src/sync/lock.rs:>::with::<::with::expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 1,247,494 ( 0.02%) ???:::project_deeper [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,244,698 ( 0.02%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,243,759 ( 0.02%) site/frontend/rust-clippy/clippy_lints/src/combined_early_pass.rs:::check_attributes [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,243,759 ( 0.02%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:::check_attributes_post 1,243,719 ( 0.02%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir_id/src/lib.rs:clippy_utils::macros::first_node_in_macro:: 1,241,825 ( 0.02%) site/frontend/rust-clippy/clippy_lints/src/combined_late_pass.rs:::check_path [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,235,100 ( 0.02%) ???:::lang_items [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,234,025 ( 0.02%) ???:::visit_nested_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,233,644 ( 0.02%) ???:::with_lifetime_rib::<(), ::visit_where_predicate::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,233,487 ( 0.02%) site/frontend/rust-clippy/clippy_lints/src/loops/mod.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,230,950 ( 0.02%) ???:thin_vec::drop_non_singleton:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,224,803 ( 0.02%) ???:::lower_pattern'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,224,624 ( 0.02%) include/jemalloc/internal/arena_inlines_b.h:calloc 1,223,729 ( 0.02%) ???:rustc_query_impl::execution::try_execute_query::, rustc_middle::dep_graph::graph::DepNodeIndex>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,220,904 ( 0.02%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,216,154 ( 0.02%) ???:::assemble_inherent_candidates'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,216,001 ( 0.02%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,206,133 ( 0.02%) ???:::is_suggestable_infer_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,197,497 ( 0.02%) site/frontend/rust-clippy/clippy_lints/src/combined_late_pass.rs:::check_ty [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,194,822 ( 0.02%) ???:>>,)>>::call_once [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,191,475 ( 0.02%) ???:::prohibit_generic_args::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,189,780 ( 0.02%) site/frontend/rust-clippy/clippy_lints/src/legacy_numeric_constants.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,187,042 ( 0.02%) site/frontend/rust-clippy/clippy_lints/src/question_mark.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,185,465 ( 0.02%) ???:rustc_mir_build::builder::build_mir_inner_impl [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,185,288 ( 0.02%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,184,290 ( 0.02%) ???:::parse_stmt_without_recovery [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,182,651 ( 0.02%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_expr::'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,176,928 ( 0.02%) site/frontend/rust-clippy/clippy_lints/src/macro_metavars_in_unsafe.rs:::visit_expr'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,176,518 ( 0.02%) ???: as core::iter::traits::collect::Extend<(rustc_middle::ty::predicate::Clause, rustc_span::span_encoding::Span)>>::extend::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,176,143 ( 0.02%) ???:::evaluate_trait_predicate_recursively'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,175,065 ( 0.02%) ???:> as rustc_middle::query::caches::QueryCache>::for_each [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,172,070 ( 0.02%) ???:::fork'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,169,608 ( 0.02%) ???:::parse_line [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,168,317 ( 0.02%) site/frontend/rust-clippy/clippy_lints/src/regex.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,165,552 ( 0.02%) ???:>::reserve_rehash::, rustc_type_ir::sty::Region>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,160,049 ( 0.02%) include/jemalloc/internal/tsd_tls.h:realloc 1,157,664 ( 0.02%) ???:>::fill_item::<>::identity_for_item::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,156,966 ( 0.02%) site/frontend/rust-clippy/clippy_lints/src/ranges.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,155,736 ( 0.02%) ???:::visit_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,155,379 ( 0.02%) ???:rustc_hir_analysis::check::compare_impl_item::compare_impl_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,154,071 ( 0.02%) ???:::check_stability [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,152,660 ( 0.02%) ???:::is_exported [???] 1,152,299 ( 0.02%) site/frontend/rust-clippy/clippy_lints/src/repeat_vec_with_capacity.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,143,719 ( 0.02%) site/frontend/rust-clippy/clippy_lints/src/dereference.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,142,655 ( 0.02%) ???:>::encode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,142,449 ( 0.02%) ???:::eval_stability'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,142,146 ( 0.02%) ???:::lower_where_predicate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,133,650 ( 0.02%) ???:::parse_where_clause_common [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,132,178 ( 0.02%) ???:::resolve_lifetime_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,128,764 ( 0.02%) site/frontend/rust-clippy/clippy_utils/src/attrs.rs:clippy_utils::attrs::parse_attrs::<::pop_attrs::{closure#0}, rustc_hir::hir::Attribute> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,128,764 ( 0.02%) site/frontend/rust-clippy/clippy_utils/src/attrs.rs:clippy_utils::attrs::parse_attrs::<::push_attrs::{closure#0}, rustc_hir::hir::Attribute> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,125,853 ( 0.02%) ???:::resolve_type_relative_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,125,218 ( 0.02%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_expr::>'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,123,585 ( 0.02%) ???:>::insert_full [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,121,949 ( 0.02%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,116,401 ( 0.02%) ???:::instantiate_bound_regions::, ::visit_terminator::{closure#0}>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,116,289 ( 0.02%) ???:::check_stability'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,108,232 ( 0.02%) ???:::parse_expr_prefix'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,105,406 ( 0.01%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,105,264 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/redundant_closure_call.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,101,813 ( 0.01%) ???:::make_all_regions_live::{closure#0}> as rustc_type_ir::visit::TypeVisitor>::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,100,223 ( 0.01%) ???:::def_key [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,100,071 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/manual_is_ascii_check.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,098,548 ( 0.01%) ???:core::ptr::drop_glue::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,096,744 ( 0.01%) ???:::write_str [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,096,600 ( 0.01%) ???:::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,093,582 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:>::with::<::with::expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 1,092,117 ( 0.01%) include/jemalloc/internal/tsd_tls.h:calloc 1,091,241 ( 0.01%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,089,124 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/raw_vec/mod.rs:::check_attributes 1,088,916 ( 0.01%) ???: as core::clone::Clone>::clone [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,087,669 ( 0.01%) include/jemalloc/internal/cache_bin.h:malloc_default 1,087,447 ( 0.01%) ???:0x000000000000aec0 [/usr/lib/ld-linux-x86-64.so.2] 1,087,357 ( 0.01%) ???:::mirror_expr_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,086,389 ( 0.01%) ???:::from_token_lit [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,084,876 ( 0.01%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,079,163 ( 0.01%) ???:::def_id_partial_cmp [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,078,024 ( 0.01%) ???:::parse_generic_bounds_common'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,076,823 ( 0.01%) ???: as rustc_hir::intravisit::Visitor>::visit_nested_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,074,106 ( 0.01%) site/frontend/rust-clippy/clippy_utils/src/msrvs.rs:clippy_utils::msrvs::check_attrs:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,071,639 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/non_copy_const.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,070,898 ( 0.01%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,070,773 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,067,613 ( 0.01%) ???:::parse_expr_force_collect [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,066,434 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/if_let_mutex.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,066,002 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs: as alloc::vec::spec_from_iter_nested::SpecFromIterNested<(rustc_span::span_encoding::Span, alloc::string::String), core::iter::adapters::filter_map::FilterMap, clippy_lints::doc::suspicious_doc_comments::collect_doc_replacements::{closure#0}>>>::from_iter [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,066,002 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/doc/suspicious_doc_comments.rs:clippy_lints::doc::suspicious_doc_comments::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,065,600 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/combined_late_pass.rs:::check_expr_post [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,065,600 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/format.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,062,257 ( 0.01%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,061,298 ( 0.01%) ???:::visit_fn [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,060,163 ( 0.01%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,055,927 ( 0.01%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,055,566 ( 0.01%) ???:::parse_arm::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,055,440 ( 0.01%) ???:::is_path_start_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,054,886 ( 0.01%) ???:::parse_pat_with_range_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,054,197 ( 0.01%) ???:::resolve_crate_root'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,047,802 ( 0.01%) ???:>::consts::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,047,559 ( 0.01%) ???:rustc_middle::ty::codec::encode_with_shorthand::::type_shorthands>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,047,142 ( 0.01%) ???:::lower_pat_mut'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,043,730 ( 0.01%) ???:>>::drop_slow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,039,161 ( 0.01%) ???:::parse_generic_params'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,038,391 ( 0.01%) ???:::check_expr_match'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,038,390 ( 0.01%) ???:rustc_mir_build::check_unsafety::check_unsafety [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,035,160 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/useless_conversion.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,031,605 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/needless_nonzero_get.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,031,201 ( 0.01%) ???:::normalize::>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,030,254 ( 0.01%) src/extent.c:pa_alloc 1,029,453 ( 0.01%) ???:::visit_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,029,058 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/unit_types/unit_arg.rs:clippy_lints::unit_types::unit_arg::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,028,568 ( 0.01%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::matching_root_macro_call [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,027,500 ( 0.01%) ???:rustc_hir_analysis::check::check::check_coroutine_obligations'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,025,347 ( 0.01%) ???:::collect_tokens_no_attrs::::parse_attribute::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,023,903 ( 0.01%) ???:::make_canonicalized_query_response:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,023,215 ( 0.01%) ???:::fmt'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,022,406 ( 0.01%) ???:>::visit_clauses [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,019,233 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/bit_width.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,018,510 ( 0.01%) ???:::lower_pat [???] 1,018,015 ( 0.01%) ???:rustc_hir::intravisit::walk_ty::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,016,597 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/len_zero.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 1,015,514 ( 0.01%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,015,182 ( 0.01%) ???:::append [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,013,219 ( 0.01%) ???:::parse_block_common [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,012,466 ( 0.01%) ???:::as_call_operand'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,012,231 ( 0.01%) ???:>>::walk_ref [???] 1,003,434 ( 0.01%) ???:)>>::reserve_rehash::, rustc_hash::FxBuildHasher>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,002,748 ( 0.01%) ???:rustc_hir_analysis::collect::type_of::type_of::{closure#0}::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,002,120 ( 0.01%) ???:> as rustc_type_ir::relate::Relate>::relate:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 999,335 ( 0.01%) ???:>::super_fold_with::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 996,719 ( 0.01%) ???: as rustc_type_ir::visit::TypeVisitor>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 996,490 ( 0.01%) ???:::renumber_regions::visit_const_operand::{closure#0}>::{closure#0}> as rustc_type_ir::fold::TypeFolder>::fold_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 993,142 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/minmax.rs:clippy_lints::minmax::min_max [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 992,752 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/char/methods.rs:::trim_start_matches::<::is_whitespace> 988,535 ( 0.01%) ???:::parse_expr_paren_seq [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 987,140 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/manual_main_separator_str.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 985,119 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/disallowed_fields.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 982,410 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/combined_late_pass.rs:::check_pat [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 982,234 ( 0.01%) ???:::evaluate_predicate_recursively [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 982,089 ( 0.01%) ???:::nominal_obligations [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 981,915 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/doc/mod.rs:::check_attributes [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 980,704 ( 0.01%) ???:rustc_expand::mbe::transcribe::lockstep_iter_size'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 980,238 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/byte_char_slices.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 979,259 ( 0.01%) ???:>::normalize::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 978,311 ( 0.01%) ???:>::fold_predicate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 977,901 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/match_result_ok.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 977,855 ( 0.01%) ???:>::rebase_onto'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 976,062 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/infinite_iter.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 975,435 ( 0.01%) ???:>::try_fold_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 975,176 ( 0.01%) ???: as rustc_type_ir::visit::TypeVisitor>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 974,547 ( 0.01%) ???:rustc_hir_analysis::collect::resolve_bound_vars::object_lifetime_default [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 973,245 ( 0.01%) ???:rustc_query_impl::plumbing::verify_query_key_hashes_inner::>, rustc_middle::query::erase::ErasedData<[u8; 8]>>>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 969,813 ( 0.01%) ???:::resolve_ty_and_res_fully_qualified_call [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 967,868 ( 0.01%) ???:::lower_fn_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 965,687 ( 0.01%) ???:::next_region_var_in_universe [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 963,788 ( 0.01%) ???:rustc_ast::mut_visit::walk_fn:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 963,406 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/formatting.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 962,778 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/thread_local/native/mod.rs:clippy_utils::macros::first_node_in_macro:: 961,715 ( 0.01%) ???:::cmp [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 958,819 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/manual_option_as_slice.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 957,039 ( 0.01%) ???:::visit_place [???] 953,726 ( 0.01%) ???:), rustc_middle::traits::cache::WithDepNode, rustc_middle::traits::SelectionError>>)>>::reserve_rehash::), rustc_middle::traits::cache::WithDepNode, rustc_middle::traits::SelectionError>>, rustc_hash::FxBuildHasher>::{closure#0}> [???] 949,486 ( 0.01%) ???:::get_or_insert'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 949,143 ( 0.01%) ???:::encode_span'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 944,674 ( 0.01%) ???:::visit_impl_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 943,451 ( 0.01%) ???:::check_match [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 942,368 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/manual_clamp.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 941,741 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_ast/src/visit.rs:>::walk_ref'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 938,952 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 937,524 ( 0.01%) include/jemalloc/internal/rtree.h:ecache_evict 937,285 ( 0.01%) ???:rustc_query_impl::execution::try_execute_query::, rustc_middle::dep_graph::graph::DepNodeIndex>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 935,737 ( 0.01%) ???:::bind_and_guard_matched_candidate'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 935,598 ( 0.01%) ???:::intern_region [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 935,522 ( 0.01%) ???: as core::ops::drop::Drop>::drop::drop_non_singleton:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 935,255 ( 0.01%) ???:::new_named_lifetime [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 933,276 ( 0.01%) ???:rustc_query_impl::execution::try_execute_query::>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 932,966 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/unit_return_expecting_ord.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 932,866 ( 0.01%) ???:::check_false_global_bounds'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 932,608 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/operators/eq_op.rs:clippy_lints::operators::eq_op::check_assert [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 932,412 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/utils/author.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 932,412 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/utils/dump_hir.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 932,400 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/useless_vec.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 929,997 ( 0.01%) ???:::parse_pat_tuple_struct [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 929,522 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/size_of_in_element_count.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 927,293 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 926,789 ( 0.01%) ???:::consume_operand [???] 925,024 ( 0.01%) ???:::insert [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 921,205 ( 0.01%) ???:rustc_traits::type_op::type_op_normalize_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 919,289 ( 0.01%) ???:::visit_assoc_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 917,301 ( 0.01%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 917,219 ( 0.01%) ???: as rustc_type_ir::visit::TypeVisitor>::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 915,367 ( 0.01%) ???:::span_to_snippet [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 912,947 ( 0.01%) ???:::check_def_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 912,736 ( 0.01%) ???:::add_constraints_from_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 912,091 ( 0.01%) ???:::evaluate_obligation_no_overflow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 909,532 ( 0.01%) ???: as rustc_hir::intravisit::Visitor>::visit_nested_item'2 [???] 906,678 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/bool_comparison.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 905,658 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/suspicious_operation_groupings.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 903,090 ( 0.01%) ???:>::visit_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 897,715 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/double_parens.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 895,908 ( 0.01%) ???:rustc_hir::intravisit::walk_pat:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 895,367 ( 0.01%) ???:::access_place [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 892,213 ( 0.01%) ???:::hir_body [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 892,020 ( 0.01%) ???:::parse_constness_ [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 891,491 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/raw_strings.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 891,216 ( 0.01%) ???:::resolve_ident_in_lexical_scope [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 890,714 ( 0.01%) ???: as core::clone::Clone>::clone::clone_non_singleton:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 890,648 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/ifs/mod.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 889,968 ( 0.01%) ???:::canonicalize_user_type_annotation:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 889,521 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/zombie_processes.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 887,824 ( 0.01%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::Ty> as rustc_type_ir::fold::TypeFoldable>::fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 887,443 ( 0.01%) ???:::call_once_force::<>, rustc_hash::FxBuildHasher>>>::initialize<>, rustc_hash::FxBuildHasher>>>::get_or_init<::resolutions::{closure#0}>::{closure#0}, !>::{closure#0}>::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 887,432 ( 0.01%) ???:rustc_passes::dead::has_allow_dead_code_or_lang_attr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 885,852 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/useless_concat.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 885,572 ( 0.01%) ???:rustc_privacy::effective_visibilities'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 884,223 ( 0.01%) ???:::lookup_method_for_operator'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 884,010 ( 0.01%) ???:rustc_mir_build::builder::matches::traverse_candidate::, alloc::vec::into_iter::IntoIter, ::from_candidate::{closure#0}, ::from_candidate::{closure#1}, ::from_candidate::{closure#2}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 881,729 ( 0.01%) ???:::liberate_late_bound_regions::>::{closure#0} [???] 877,712 ( 0.01%) ???:::try_plant_decl_into_local_module'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 877,301 ( 0.01%) ???:::instantiate_binder_with_fresh_vars::ToFreshVars> as rustc_type_ir::fold::TypeFolder>::fold_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 876,229 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/strlen_on_c_strings.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 874,958 ( 0.01%) ???:::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 873,453 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 872,874 ( 0.01%) ???:::resolve_macro_invocation [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 870,541 ( 0.01%) ???:::break_and_eat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 869,608 ( 0.01%) ???:::alloc_ctxt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 869,478 ( 0.01%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 869,383 ( 0.01%) ???:::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 867,758 ( 0.01%) ???:::find_by_ident_and_namespace'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 867,507 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/nonnull_unchecked_on_box_ptr.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 864,638 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/unit_types/unit_cmp.rs:clippy_lints::unit_types::unit_cmp::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 863,966 ( 0.01%) ???:rustc_hir::intravisit::walk_pat:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 863,667 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/redundant_slicing.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 862,862 ( 0.01%) ???:>, &mut rustc_infer::infer::snapshot::undo_log::InferCtxtUndoLogs>>>::uninlined_get_root_key'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 858,995 ( 0.01%) ???:::normalize:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 858,604 ( 0.01%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 855,016 ( 0.01%) ???:::without_first_quote'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 853,066 ( 0.01%) ???:rustc_mir_build::builder::matches::match_pair::squash_inter_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 852,738 ( 0.01%) ???:>>::walk_ref [???] 851,276 ( 0.01%) ???:rustc_query_impl::execution::try_execute_query::>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 850,993 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/combined_early_pass.rs:::check_attributes_post [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 850,899 ( 0.01%) ???:::create_def [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 850,213 ( 0.01%) ???:::mirror_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 849,674 ( 0.01%) ???:annotate_snippets::renderer::render::normalize_whitespace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 848,824 ( 0.01%) ???:::par_hir_body_owners::::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 848,560 ( 0.01%) ???:::visit_generics [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 845,590 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/single_range_in_vec_init.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 845,119 ( 0.01%) ???:rustc_query_impl::query_impl::clauses_of::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 843,929 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/needless_bool.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 843,762 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/manual_pop_if.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 842,964 ( 0.01%) ???:::relate_bound [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 841,540 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_data_structures/src/sync/lock.rs:>::with::<::with::outer_expn::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnId> 841,540 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/hygiene.rs:>::with::<::with::outer_expn::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnId> 841,540 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:>::with::<::with::outer_expn::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnId> 841,043 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/transmute/mod.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 840,847 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/drop_forget_ref.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 840,498 ( 0.01%) ???:rustc_query_impl::query_impl::explicit_clauses_of::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 836,923 ( 0.01%) ???:::lookup_source_file [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 835,643 ( 0.01%) ???:::probe_assoc_item_unchecked [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 833,930 ( 0.01%) ???: as rustc_type_ir::fold::TypeFolder>::fold_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 832,419 ( 0.01%) ???:::hir_get_parent_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 831,871 ( 0.01%) ???:rustc_trait_selection::traits::query::dropck_outlives::compute_dropck_outlives_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 830,926 ( 0.01%) ???:> as rustc_middle::query::caches::QueryCache>::for_each [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 829,808 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/casts/cast_slice_different_sizes.rs:clippy_lints::casts::cast_slice_different_sizes::expr_cast_chain_tys [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 827,343 ( 0.01%) ???:::intern_str'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 827,147 ( 0.01%) ???:::encode_info_for_mod [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 826,581 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/partialeq_to_none.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 826,387 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/unnecessary_map_on_constructor.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 826,347 ( 0.01%) ???:::lower_variant_or_leaf [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 825,743 ( 0.01%) ???:::parse_stmt_without_recovery'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 823,903 ( 0.01%) /rustc/84b36a78a28a63f134171c670be1932ffa2485f8/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/build/tikv-jemalloc-sys/80122c672fbe49ef/out/build/src/jemalloc.c:malloc_default [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 823,745 ( 0.01%) ???:rustc_query_impl::plumbing::verify_query_key_hashes_inner::>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 821,913 ( 0.01%) ???:>::fold_predicate'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 820,836 ( 0.01%) ???:::check_fn_for_external_abi_fnptr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 819,389 ( 0.01%) ???:> as rustc_middle::query::caches::QueryCache>::for_each'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 817,231 ( 0.01%) ???:rustc_hir_analysis::check::compare_impl_item::check_method_is_structurally_compatible [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 817,202 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/swap_ptr_to_ref.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 816,882 ( 0.01%) ???:rustc_hir_analysis::check::region::resolve_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 814,905 ( 0.01%) ???:rustc_hir::hir::is_range_literal [???] 814,890 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/block_scrutinee.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 813,298 ( 0.01%) ???:::visit_assoc_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 811,343 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/default.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 810,646 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/unnecessary_mut_passed.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 810,237 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/format_impl.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 808,905 ( 0.01%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_expn_of [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 808,871 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/needless_borrows_for_generic_args.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 804,627 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/format_args.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 804,406 ( 0.01%) ???:::lower_fn_decl [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 803,151 ( 0.01%) ???:rustc_hir_analysis::check::wfcheck::check_fn_or_method [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 802,611 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/write/mod.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 802,447 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/assertions_on_constants.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 802,435 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/blocks_in_conditions.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 802,100 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:, clippy_utils::macros::first_node_macro_backtrace::{closure#0}> as core::iter::traits::iterator::Iterator>::try_fold::<(), >::iter_try_fold::flatten, clippy_utils::macros::macro_backtrace::{closure#0}>, clippy_utils::macros::first_node_macro_backtrace::{closure#0}::{closure#0}>, (), core::ops::control_flow::ControlFlow, as core::iter::traits::iterator::Iterator>::try_fold::flatten, clippy_utils::macros::macro_backtrace::{closure#0}>, clippy_utils::macros::first_node_macro_backtrace::{closure#0}::{closure#0}>, (), core::ops::control_flow::ControlFlow, core::iter::traits::iterator::Iterator::find::check::{closure#0}>::{closure#0}>::{closure#0}, core::ops::control_flow::ControlFlow> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 801,864 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/manual_take.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 801,424 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/manual_ignore_case_cmp.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 800,346 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/reserve_after_initialization.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 800,327 ( 0.01%) ???:rustc_hir_analysis::check::wfcheck::check_where_clauses [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 799,712 ( 0.01%) ???:::visit_poly_trait_ref_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 799,556 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/manual_abs_diff.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 799,548 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/entry.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 799,384 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/implicit_saturating_sub.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 799,313 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/zero_repeat_side_effects.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 799,242 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/await_holding_invalid.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 797,614 ( 0.01%) ???:::resolve_arm [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 797,182 ( 0.01%) ???:::visit_expr::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 794,672 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 794,144 ( 0.01%) ???:::canonicalize_free_region [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 791,459 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/arc_with_non_send_sync.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 790,921 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/box_default.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 790,411 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/from_raw_with_void_ptr.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 789,044 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/mem_replace.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 788,331 ( 0.01%) ???:::visit_where_predicate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 785,844 ( 0.01%) ???:::lookup_line [???] 782,480 ( 0.01%) ???: as rustc_ast::visit::Visitor>::visit_pat [???] 782,331 ( 0.01%) ???:rustc_query_impl::query_impl::inferred_outlives_of::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 779,496 ( 0.01%) ???:::find_by_ident_and_kind [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 779,128 ( 0.01%) ???:::lower_node_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 776,059 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/default_constructed_unit_structs.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 776,033 ( 0.01%) ???:::visit_expr::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 775,664 ( 0.01%) ???:::visit_nested_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 775,409 ( 0.01%) ???:::check_ident [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 774,676 ( 0.01%) ???:core::ptr::drop_glue::]>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 774,171 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/literal_representation.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 773,182 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/from_str_radix_10.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 771,181 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/default_instead_of_iter_empty.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 769,995 ( 0.01%) ???:::par_items::::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 768,979 ( 0.01%) ???:), rustc_middle::traits::cache::WithDepNode, rustc_middle::traits::SelectionError>>)>>::reserve_rehash::), rustc_middle::traits::cache::WithDepNode, rustc_middle::traits::SelectionError>>, rustc_hash::FxBuildHasher>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 768,233 ( 0.01%) ???:> as rustc_middle::query::caches::QueryCache>::for_each [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 766,303 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/unnecessary_owned_empty_strings.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 765,134 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/to_digit_is_some.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 765,115 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/explicit_write.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 765,050 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/strings.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 764,453 ( 0.01%) ???:rustc_lint::levels::shallow_lint_levels_on [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 764,110 ( 0.01%) ???:::register_predicates::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 763,651 ( 0.01%) ???:::resolve_path_with_ribs [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 762,676 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/cloned_ref_to_slice_refs.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 762,098 ( 0.01%) ???:rustc_query_impl::query_impl::hir_owner::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 760,817 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/float_literal.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 759,390 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/lib.rs:clippy_utils::macros::root_macro_call 758,885 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/bool_assert_comparison.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 758,602 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/implicit_saturating_add.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 758,563 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/panicking_overflow_checks.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 758,417 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/indexing_slicing.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 758,355 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/manual_checked_ops.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 757,604 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/collapsible_if.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 757,332 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/manual_rotate.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 757,125 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/manual_float_methods.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 756,519 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/rc_clone_in_vec_init.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 756,364 ( 0.01%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 755,675 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/manual_bits.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 755,283 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/replace_box.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 755,240 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/manual_slice_size_calculation.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 755,219 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/manual_rem_euclid.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 755,117 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/neg_cmp_op_on_partial_ord.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 754,965 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/functions/result.rs:clippy_lints::functions::result::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 754,904 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/operators/float_cmp.rs:clippy_lints::operators::float_cmp::check_assert [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 754,842 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/async_yields_async.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 754,800 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/minmax.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 754,621 ( 0.01%) ???:)>>::reserve_rehash::, rustc_hash::FxBuildHasher>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 753,627 ( 0.01%) ???:::parse_item_common'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 753,278 ( 0.01%) include/jemalloc/internal/cache_bin.h:tcache_bin_flush_small 753,106 ( 0.01%) ???:rustc_hir_analysis::check::wfcheck::receiver_is_valid [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 752,229 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/only_used_in_recursion.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 749,051 ( 0.01%) ???:::defaultness [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 748,917 ( 0.01%) ???:rustc_hir_analysis::check::compare_impl_item::check_type_bounds'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 748,740 ( 0.01%) ???:rustc_resolve::rustdoc::span_of_fragments [???] 748,661 ( 0.01%) ???:::trait_may_define_assoc_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 748,574 ( 0.01%) include/jemalloc/internal/arena_inlines_b.h:malloc_default 748,332 ( 0.01%) ???:rustc_query_impl::execution::try_execute_query::, rustc_middle::dep_graph::graph::DepNodeIndex>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 743,782 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 742,998 ( 0.01%) ???:::parse_generic_params [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 741,819 ( 0.01%) ???:::lower_param [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 739,750 ( 0.01%) ???:>>::walk_ref [???] 739,253 ( 0.01%) ???:::hir_ty_param_owner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 739,039 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/misc_early/mod.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 737,201 ( 0.01%) ???:::get_module_children::{closure#0}, core::result::Result::Ok>, core::result::Result> as core::iter::traits::iterator::Iterator>::next'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 732,875 ( 0.01%) ???:rustc_borrowck::mir_borrowck [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 732,732 ( 0.01%) ???:>::reserve_rehash::<::intern_inner::{closure#0}::{closure#1}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 729,361 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 728,741 ( 0.01%) ???:>>::walk_ref [???] 727,899 ( 0.01%) ???:::visit_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 726,378 ( 0.01%) ???:>::register_obligation [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 725,388 ( 0.01%) ???:::parse_dot_suffix_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 723,123 ( 0.01%) ???:rustc_ty_utils::opaque_types::opaque_types_defined_by [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 722,561 ( 0.01%) ???:rustc_ast::visit::visit_generic_params::> [???] 722,304 ( 0.01%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 722,010 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/octal_escapes.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 721,419 ( 0.01%) ???:::check_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 721,197 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/precedence.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 718,624 ( 0.01%) ???:>::normalize:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 718,086 ( 0.01%) ???:::visit_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 717,825 ( 0.01%) ???:rustc_ty_utils::common_traits::is_copy_raw'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 717,406 ( 0.01%) ???:::parse_expr_paren_seq'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 716,475 ( 0.01%) ???:::typing_env [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 715,208 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/non_octal_unix_permissions.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 713,992 ( 0.01%) ???:::typeck_root_def_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 712,513 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/unused_rounding.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 712,381 ( 0.01%) ???: as rustc_hir::intravisit::Visitor>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 711,775 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/init_numbered_fields.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 711,708 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/manual_strip.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 710,550 ( 0.01%) ???:::features [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 710,413 ( 0.01%) ???:rustc_trait_selection::traits::normalize_param_env_or_error'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 709,066 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/literal_representation.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 708,946 ( 0.01%) ???:>::fill_item::<::xform_method_sig::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 707,993 ( 0.01%) /rustc/84b36a78a28a63f134171c670be1932ffa2485f8/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/build/tikv-jemalloc-sys/80122c672fbe49ef/out/build/src/pa.c:pa_alloc [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 707,656 ( 0.01%) ???:>::fold_clauses [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 705,080 ( 0.01%) ???:::is_suggestable_infer_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 698,193 ( 0.01%) ???:>::walk_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 697,966 ( 0.01%) ???: as rustc_ast::visit::Visitor>::visit_expr [???] 697,698 ( 0.01%) ???:::check_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 697,696 ( 0.01%) ???:rustc_trait_selection::traits::wf::object_region_bounds'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 697,464 ( 0.01%) ???:::expect [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 695,723 ( 0.01%) ???:rustc_passes::dead::mark_live_symbols_and_ignored_derived_traits'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 694,614 ( 0.01%) ???: as rustc_data_structures::flat_map_in_place::FlatMapInPlace>::flat_map_in_place::::{closure#0}, smallvec::SmallVec<[rustc_ast::ast::Stmt; 1]>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 693,478 ( 0.01%) ???:rustc_query_impl::execution::try_execute_query::>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 692,906 ( 0.01%) ???:::convert_place_derefs_to_mutable [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 688,795 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/string_patterns.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 688,329 ( 0.01%) ???:>>::walk_ref'2 [???] 688,071 ( 0.01%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 686,085 ( 0.01%) site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 685,381 ( 0.01%) ???:> as rustc_middle::query::caches::QueryCache>::for_each'2 [???] 684,944 ( 0.01%) ???:::walk_::<::walk_always<::lower_pattern::{closure#0}>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 684,755 ( 0.01%) ???:core::slice::sort::stable::quicksort::quicksort::<(rustc_mir_build::builder::scope::DropIdx, rustc_middle::mir::BasicBlock), <(rustc_mir_build::builder::scope::DropIdx, rustc_middle::mir::BasicBlock) as core::cmp::PartialOrd>::lt> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 684,249 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/reference.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 682,271 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/utils/format_args_collector.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 682,007 ( 0.01%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 681,648 ( 0.01%) ???:::node [???] 681,174 ( 0.01%) ???:::assemble_inherent_candidates [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 680,704 ( 0.01%) ???:>, (rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<>, (rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [???] 680,651 ( 0.01%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 680,529 ( 0.01%) ???:::apply_adjustments [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 680,362 ( 0.01%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 680,102 ( 0.01%) ???:::hir_owner_parent'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 679,719 ( 0.01%) ???:::visit_fn'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 679,175 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/borrow_deref_ref.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 677,590 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/casts/ptr_cast_constness.rs:clippy_lints::casts::ptr_cast_constness::check_null_ptr_cast_method [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 676,724 ( 0.01%) ???:>::super_visit_with::<::any_free_region_meets::RegionVisitor<::all_free_regions_meet::{closure#0}>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 676,524 ( 0.01%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 674,796 ( 0.01%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 673,232 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs:>::with::<::with::outer_expn::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnId> 673,002 ( 0.01%) ???:::trait_of_assoc'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 672,515 ( 0.01%) ???:rustc_mir_build::thir::pattern::pat_from_hir::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 671,106 ( 0.01%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 670,565 ( 0.01%) ???:::get_locales [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 670,484 ( 0.01%) site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 669,321 ( 0.01%) ???:rustc_passes::stability::check_mod_unstable_api_usage [???] 668,860 ( 0.01%) ???:::resolve_vars_with_obligations:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 668,517 ( 0.01%) ???:rustc_hir_analysis::collect::clauses_of::type_param_clauses [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 667,245 ( 0.01%) ???:dladdr [/usr/lib/libc.so.6] 666,464 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/zero_div_zero.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 664,374 ( 0.01%) ???:rustc_query_impl::query_impl::def_span::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 664,212 ( 0.01%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 664,113 ( 0.01%) ???:::source_callsite'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 662,712 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 662,094 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/lib.rs: as core::iter::traits::iterator::Iterator>::try_fold::<(), core::iter::traits::iterator::Iterator::find_map::check<(rustc_span::hygiene::ExpnId, rustc_span::hygiene::ExpnData), clippy_utils::macros::MacroCall, &mut clippy_utils::macros::macro_backtrace::{closure#0}>::{closure#0}, core::ops::control_flow::ControlFlow> 661,662 ( 0.01%) ???: as rustc_hir::intravisit::Visitor>::visit_ty [???] 661,587 ( 0.01%) ???:>::fill_item::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 660,752 ( 0.01%) ???:rustc_hir::intravisit::walk_qpath::> [???] 659,853 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 659,486 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 656,296 ( 0.01%) ???:<&char as core::fmt::Display>::fmt [???] 655,758 ( 0.01%) ???:rustc_mir_dataflow::drop_flag_effects::on_all_children_bits::on_all_children_bits::<::apply_call_return_effect::{closure#0}::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 655,718 ( 0.01%) ???: as rustc_hir::intravisit::Visitor>::visit_nested_body [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 652,872 ( 0.01%) ???:rustc_ty_utils::assoc::associated_items'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 651,107 ( 0.01%) ???:rustc_ty_utils::ty::param_env'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 651,066 ( 0.01%) ???:rustc_query_impl::query_impl::resolve_bound_vars::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 651,061 ( 0.01%) include/jemalloc/internal/rtree.h:pa_dalloc 650,617 ( 0.01%) ???:::visit_generics [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 650,372 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 650,150 ( 0.01%) ???:>::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 650,080 ( 0.01%) ???:rustc_query_impl::execution::try_execute_query::, rustc_middle::dep_graph::graph::DepNodeIndex>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 649,541 ( 0.01%) ???:::check_expr_block'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 649,529 ( 0.01%) ???:>::call_once [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 647,177 ( 0.01%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 647,155 ( 0.01%) ???:::encode_symbol [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 645,742 ( 0.01%) ???:::match_candidates'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 644,420 ( 0.01%) ???:::parse_param_general::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 644,144 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/validations.rs:::trim_start_matches::<::is_whitespace> 642,584 ( 0.01%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 642,364 ( 0.01%) ???:rustc_query_impl::execution::try_execute_query::>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 641,852 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:clippy_utils::macros::first_node_in_macro:: 641,499 ( 0.01%) ???: as rustc_type_ir::relate::Relate>::relate:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 640,366 ( 0.01%) ???:, (), rustc_hash::FxBuildHasher>>::insert_full [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 640,177 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 638,569 ( 0.01%) ???:rustc_hir_analysis::collect::type_of::type_of [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 636,992 ( 0.01%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 636,597 ( 0.01%) ???:::pick_method [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 636,314 ( 0.01%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 636,269 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/control_flow.rs: as core::iter::traits::iterator::Iterator>::try_fold::<(), core::iter::traits::iterator::Iterator::find_map::check<(rustc_span::hygiene::ExpnId, rustc_span::hygiene::ExpnData), clippy_utils::macros::MacroCall, &mut clippy_utils::macros::macro_backtrace::{closure#0}>::{closure#0}, core::ops::control_flow::ControlFlow> 636,158 ( 0.01%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 635,913 ( 0.01%) ???:::find [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 635,237 ( 0.01%) ???:>::reserve_rehash::, alloc::vec::Vec>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 633,876 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 632,696 ( 0.01%) ???:>::fill_item::<::xform_method_sig::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 630,592 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs:>::with::<::with::expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 630,417 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:::next_match 630,329 ( 0.01%) ???:::check_expr_with_expectation_and_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 629,233 ( 0.01%) ???:::eval_stability [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 628,076 ( 0.01%) ???:>::visit_ty::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 627,060 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/mod.rs:clippy_lints::doc::suspicious_doc_comments::check 625,393 ( 0.01%) ???:::normalize::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 625,345 ( 0.01%) ???:rustc_query_impl::execution::try_execute_query::, rustc_middle::dep_graph::graph::DepNodeIndex>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 625,283 ( 0.01%) ???: as core::iter::traits::iterator::Iterator>::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 624,694 ( 0.01%) include/jemalloc/internal/cache_bin.h:tcache_bin_flush_stashed 623,992 ( 0.01%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 623,666 ( 0.01%) ???:::adjust_ident_and_get_scope [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 623,462 ( 0.01%) ???:::flat_map_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 622,349 ( 0.01%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 622,349 ( 0.01%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 620,613 ( 0.01%) ???:::convert_all [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 617,487 ( 0.01%) ???:rustc_query_impl::execution::try_execute_query::>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 616,924 ( 0.01%) ???:>::reserve_rehash::>::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 616,469 ( 0.01%) ???:::ast_block'2 [???] 613,323 ( 0.01%) ???:>::walk::::{closure#0}::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 613,083 ( 0.01%) ???:::lower_stmts [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 610,934 ( 0.01%) ???:::run_pass [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 610,579 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_resolve/src/rustdoc.rs:::check_attributes 610,317 ( 0.01%) ???:::apply_switch_int_edge_effect [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 609,228 ( 0.01%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 609,158 ( 0.01%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 607,778 ( 0.01%) ???:::resolve_doc_links'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 607,514 ( 0.01%) ???:<::any_free_region_meets::RegionVisitor<::for_each_free_region::record_regions_live_at::{closure#0}>::{closure#0}> as rustc_type_ir::visit::TypeVisitor>::visit_region [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 607,360 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/hygiene.rs:>::with::<::with::outer_expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 606,808 ( 0.01%) ???:rustc_hir_analysis::check::region::resolve_block'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 601,787 ( 0.01%) ???:rustc_mir_build::builder::matches::match_pair::squash_inter_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 601,324 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/int_plus_one.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 600,446 ( 0.01%) ???:::instantiate_binder_with_fresh_vars::ToFreshVars> as rustc_type_ir::fold::TypeFolder>::fold_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 600,313 ( 0.01%) ???:> as rustc_middle::query::caches::QueryCache>::for_each [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 595,709 ( 0.01%) ???:::flat_map_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 595,687 ( 0.01%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with::::renumber_regions::visit_ty::{closure#0}>::{closure#0}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 593,574 ( 0.01%) ???:::visit_generic_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 593,297 ( 0.01%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 592,057 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:::check_attributes 591,965 ( 0.01%) ???:::check_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 591,868 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/combined_late_pass.rs:::check_fn [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 590,625 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/main_recursion.rs:::check_expr_post [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 590,504 ( 0.01%) ???:::renumber_regions::visit_const_operand::{closure#0}>::{closure#0}> as rustc_type_ir::fold::TypeFolder>::fold_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 588,880 ( 0.01%) ???:::construct [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 588,119 ( 0.01%) ???:::lower_variant_or_leaf'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 588,037 ( 0.01%) ???:>::fold_const [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 587,906 ( 0.01%) ???:rustc_hir_analysis::check::region::resolve_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 587,752 ( 0.01%) ???:::check_for_ambiguity::, rustc_expand::mbe::macro_rules::NoopTracker> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 587,450 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/casts/cast_ptr_alignment.rs:clippy_lints::casts::cast_ptr_alignment::check_cast_method [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 586,867 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 586,788 ( 0.01%) ???:::build_constraints_for_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 585,920 ( 0.01%) ???:annotate_snippets::renderer::render::draw_line [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 585,560 ( 0.01%) ???:rustc_query_impl::execution::try_execute_query::>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 585,088 ( 0.01%) ???: as rustc_data_structures::flat_map_in_place::FlatMapInPlace>::flat_map_in_place::::{closure#0}, smallvec::SmallVec<[rustc_ast::ast::Arm; 1]>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 584,656 ( 0.01%) ???:::deeply_normalize::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 584,526 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_ast/src/attr/version.rs:::meets 584,518 ( 0.01%) ???:rustc_hir_analysis::check::wfcheck::check_impl'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 583,738 ( 0.01%) ???:::parse_visibility [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 583,436 ( 0.01%) ???:::to_uppercase [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 581,724 ( 0.01%) ???:::find_ancestor_inside [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 581,696 ( 0.01%) ???:>::super_fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 580,692 ( 0.01%) ???:::parse_generic_bounds_common [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 580,502 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 580,267 ( 0.01%) include/jemalloc/internal/sz.h:malloc_default 579,342 ( 0.01%) ???:alloc::fmt::format::format_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 579,292 ( 0.01%) ???:>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 578,654 ( 0.01%) ???:>::super_visit_with::<::any_free_region_meets::RegionVisitor<::for_each_free_region::record_regions_live_at::{closure#0}>::{closure#0}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 578,392 ( 0.01%) ???:::next'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 577,989 ( 0.01%) ???:>::evaluate_obligations_error_on_ambiguity [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 577,498 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/needless_update.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 577,362 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/manual_retain.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 576,147 ( 0.01%) ???:::flat_map_arm [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 574,156 ( 0.01%) ???:>::extend_desugared::>, rustc_trait_selection::traits::fulfill::args_infer_vars::{closure#0}>, core::iter::adapters::map::Map, std::collections::hash::map::IntoIter>, fn((rustc_middle::ty::generic_args::GenericArg, ())) -> rustc_middle::ty::generic_args::GenericArg>, rustc_trait_selection::traits::fulfill::args_infer_vars::{closure#1}>, ::maybe_from_generic_arg>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 573,570 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 572,441 ( 0.01%) ???:::visit_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 570,550 ( 0.01%) ???:rustc_query_impl::query_impl::def_ident_span::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 570,230 ( 0.01%) ???:>::with_lint_attrs::< as rustc_ast::visit::Visitor>::visit_param::{closure#0}>::{closure#0} [???] 569,984 ( 0.01%) ???:>::grow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 569,942 ( 0.01%) include/jemalloc/internal/mutex.h:pa_alloc 568,629 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:::check_attributes 568,629 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:::check_attributes_post 567,707 ( 0.01%) ???:::visit_generic_arg [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 567,622 ( 0.01%) ???:::walk_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 565,965 ( 0.01%) ???:rustc_hir_analysis::constrained_generic_params::parameters_for_impl [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 565,953 ( 0.01%) ???:rustc_resolve::rustdoc::prepare_to_doc_link_resolution'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 565,646 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/control_flow.rs:clippy_utils::macros::first_node_in_macro:: 564,820 ( 0.01%) ???:::clone [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 564,354 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/combined_late_pass.rs:::check_attributes_post [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 563,477 ( 0.01%) ???:rustc_resolve::rustdoc::add_doc_fragment [???] 562,482 ( 0.01%) include/jemalloc/internal/tcache_inlines.h:malloc_default 561,802 ( 0.01%) ???:::add_implicit_sizedness_bounds [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 561,232 ( 0.01%) ???:::get_line [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 561,140 ( 0.01%) ???:rustc_span::normalize_src [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 560,827 ( 0.01%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 559,114 ( 0.01%) ???:::check_expr_pat_type [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 558,060 ( 0.01%) src/tcache.c:free_default 558,044 ( 0.01%) ???: as rustc_data_structures::flat_map_in_place::FlatMapInPlace>::flat_map_in_place::::{closure#0}, smallvec::SmallVec<[rustc_ast::ast::Stmt; 1]>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 557,720 ( 0.01%) ???:>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 556,792 ( 0.01%) ???:::handle_res [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 556,374 ( 0.01%) ???:::demand_suptype_diag [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 556,126 ( 0.01%) ???:::flat_map_stmt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 553,764 ( 0.01%) ???:::visit_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 551,016 ( 0.01%) ???:::require_lang_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 550,423 ( 0.01%) ???:>>::walk_ref [???] 550,250 ( 0.01%) ???:::new [???] 549,491 ( 0.01%) src/sz.c:pa_alloc 549,214 ( 0.01%) ???:::check_item [???] 545,766 ( 0.01%) ???:::resolve_doc_links [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 545,557 ( 0.01%) include/jemalloc/internal/edata.h:ecache_evict 544,468 ( 0.01%) ???:::iterate_to_fixpoint::{closure#1} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 544,399 ( 0.01%) ???:rustc_hir::intravisit::walk_pat:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 543,619 ( 0.01%) ???:>::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 542,622 ( 0.01%) ???:rustc_type_ir::elaborate::elaborate:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 541,584 ( 0.01%) ???:::lower_type_relative_path::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 541,307 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:::visit_qpath [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 540,695 ( 0.01%) include/jemalloc/internal/bit_util.h:pa_alloc 540,543 ( 0.01%) ???:::apply_inner::::apply_revealing_opaque<::ctors_for_ty::{closure#2}>::{closure#0}, ::ctors_for_ty::{closure#2}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 540,444 ( 0.01%) ???:::resolve_imports'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 539,965 ( 0.01%) ???:::pad [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 539,067 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 538,271 ( 0.01%) ???:<[rustc_ast::tokenstream::TokenTree] as rustc_serialize::serialize::Encodable>::encode'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 537,878 ( 0.01%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_parent_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 536,200 ( 0.01%) ???:::evaluate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 535,586 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 534,159 ( 0.01%) ???:::check_decl [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 533,900 ( 0.01%) ???:::parse_assoc_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 532,800 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/disallowed_methods.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 530,222 ( 0.01%) ???:::resolve_crate::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 530,171 ( 0.01%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 529,910 ( 0.01%) ???:rustc_ast::visit::visit_assoc_items::> [???] 529,593 ( 0.01%) ???:::visit_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 529,037 ( 0.01%) ???:::qpath_res [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 527,208 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 526,649 ( 0.01%) ???:> as rustc_middle::query::caches::QueryCache>::for_each'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 525,742 ( 0.01%) ???:rustc_query_impl::query_impl::hir_owner::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 523,781 ( 0.01%) ???:::hir_expect_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 523,335 ( 0.01%) ???:>, bool), (rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<>, bool), (rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 523,088 ( 0.01%) ???:::try_resolve [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 522,271 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/size_of_ref.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 519,876 ( 0.01%) ???:rustc_query_impl::execution::try_execute_query::, rustc_middle::dep_graph::graph::DepNodeIndex>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 519,061 ( 0.01%) ???:::as_constant [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 517,819 ( 0.01%) ???: as rustc_hir::intravisit::Visitor>::visit_nested_body [???] 517,500 ( 0.01%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 516,627 ( 0.01%) ???:>::decode'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 516,256 ( 0.01%) /rust/deps/scoped-tls-1.0.1/src/lib.rs:>::with::<::with::outer_expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 514,923 ( 0.01%) ???:::check_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 513,311 ( 0.01%) include/jemalloc/internal/bit_util.h:calloc 512,898 ( 0.01%) ???: as rustc_hir::intravisit::Visitor>::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 512,500 ( 0.01%) ???:rustc_query_impl::query_impl::explicit_clauses_of::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 512,488 ( 0.01%) ???:)>>::reserve_rehash::, rustc_hash::FxBuildHasher>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 511,100 ( 0.01%) include/jemalloc/internal/edata.h:pa_dalloc 511,051 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 510,564 ( 0.01%) ???:, >::skip_norm_wip>, ::probe_single_ty_param_bound_for_assoc_item::{closure#0}::{closure#0}::{closure#0}>>::{closure#0}> as core::iter::traits::iterator::Iterator>::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 509,978 ( 0.01%) ???:::visit_primary_bindings_special::<::declare_bindings::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 509,753 ( 0.01%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 509,273 ( 0.01%) ???:>::tys [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 509,249 ( 0.01%) ???:::new'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 508,134 ( 0.01%) ???:> as rustc_middle::query::caches::QueryCache>::for_each'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 507,757 ( 0.01%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 507,757 ( 0.01%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 506,822 ( 0.01%) ???:::lex_token_trees [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 505,101 ( 0.01%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 505,011 ( 0.01%) ???:::resolve_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 504,924 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/const_ptr.rs:>::with::<::with::outer_expn::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnId> 504,924 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:>::with::<::with::outer_expn::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnId> 504,206 ( 0.01%) ???:::next_ty_var [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 503,883 ( 0.01%) ???:<::any_free_region_meets::RegionVisitor<::for_each_free_region::visit_const_operand::{closure#0}>::{closure#0}> as rustc_type_ir::visit::TypeVisitor>::visit_region [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 503,006 ( 0.01%) ???:::parse_expr_dot_or_call_with::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 502,631 ( 0.01%) ???:, rustc_middle::dep_graph::graph::DepNodeIndex> as rustc_middle::query::caches::QueryCache>::for_each [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 502,246 ( 0.01%) ???:rustc_query_impl::plumbing::verify_query_key_hashes_inner::>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 501,312 ( 0.01%) ???:rustc_query_impl::query_impl::def_span::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 499,538 ( 0.01%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 498,883 ( 0.01%) ???:>::new'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 498,690 ( 0.01%) ???:rustc_query_impl::query_impl::lower_to_hir::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 498,679 ( 0.01%) ???:>::register_obligations::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 498,500 ( 0.01%) ???:::stable_hash::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 498,190 ( 0.01%) ???:::ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 498,177 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/unicode.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 497,762 ( 0.01%) ???:::alias_term_kind_from_def_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 497,545 ( 0.01%) include/jemalloc/internal/sz.h:tcache_bin_flush_small 497,174 ( 0.01%) ???:rustc_query_impl::execution::try_execute_query::>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 497,135 ( 0.01%) ???:::lower_poly_trait_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 496,547 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:::trim_matches::<::is_whitespace> 496,461 ( 0.01%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::Ty> as rustc_data_structures::stable_hash::StableHash>::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 496,160 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:clippy_utils::macros::root_macro_call 495,768 ( 0.01%) ???:::lower_arm [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 494,354 ( 0.01%) ???:::normalize [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 494,262 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 494,128 ( 0.01%) ???:::parse_block_common'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 493,622 ( 0.01%) ???:::insert [???] 493,617 ( 0.01%) ???:>::decode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 493,206 ( 0.01%) ???:>::encode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 492,711 ( 0.01%) ???:rustc_const_eval::const_eval::fn_queries::constness [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 490,992 ( 0.01%) ???:rustc_query_impl::query_impl::inferred_outlives_of::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 490,938 ( 0.01%) ???:::visit_generic_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 490,089 ( 0.01%) ???: as rustc_hir::intravisit::Visitor>::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 489,510 ( 0.01%) ???:rustc_hir_analysis::collect::fn_sig [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 488,408 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/flatten.rs:clippy_lints::operators::eq_op::check_assert 486,420 ( 0.01%) ???:>::drop_slow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 486,063 ( 0.01%) ???:rustc_query_impl::query_impl::generics_of::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 483,592 ( 0.01%) ???:rustc_ty_utils::assoc::associated_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 482,592 ( 0.01%) ???:, (rustc_middle::query::erase::ErasedData<[u8; 1]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<, (rustc_middle::query::erase::ErasedData<[u8; 1]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [???] 482,489 ( 0.01%) ???:::hir_owner_parent [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 481,267 ( 0.01%) ???:rustc_query_impl::query_impl::sanitizer_settings_for::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 481,023 ( 0.01%) ???:::next'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 480,729 ( 0.01%) ???:rustc_hir::intravisit::walk_pat::> [???] 480,274 ( 0.01%) ???:>::regions [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 479,883 ( 0.01%) ???:::eval_verify_bound [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 478,717 ( 0.01%) ???:rustc_expand::mbe::quoted::parse'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 477,118 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/char/methods.rs:::trim_matches::<::is_whitespace> 476,407 ( 0.01%) ???:::mirror_expr_inner'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 474,546 ( 0.01%) ???:>>::walk_ref'2 [???] 474,261 ( 0.01%) ???:::lower_maybe_coroutine_body [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 472,560 ( 0.01%) ???:rustc_query_impl::execution::try_execute_query::>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 472,235 ( 0.01%) ???:<::check_type_for_external_abi_fnptr::FnPtrFinder as rustc_hir::intravisit::Visitor>::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 471,753 ( 0.01%) ???:__rustc::__rust_alloc [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 471,212 ( 0.01%) ???:::parse_match_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 470,289 ( 0.01%) ???:::instantiate_opt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 470,154 ( 0.01%) ???:<::check_type_for_external_abi_fnptr::FnPtrFinder as rustc_type_ir::visit::TypeVisitor>::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 469,976 ( 0.01%) site/frontend/rust-clippy/clippy_utils/src/res.rs:::check_expr 469,922 ( 0.01%) ???: as rustc_ast::visit::Visitor>::visit_generic_param::{closure#0} [???] 469,780 ( 0.01%) ???:>>::add [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 468,909 ( 0.01%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 468,678 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/const_ptr.rs:>::with::<::with::expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 468,678 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:>::with::<::with::expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 466,900 ( 0.01%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 465,504 ( 0.01%) ???:rustc_query_impl::query_impl::generics_of::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 464,722 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/disallowed_types.rs:::check_res_emit [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 463,019 ( 0.01%) site/frontend/rust-clippy/clippy_utils/src/msrvs.rs:::check_attributes 463,019 ( 0.01%) site/frontend/rust-clippy/clippy_utils/src/msrvs.rs:::check_attributes_post 461,941 ( 0.01%) ???:::type_dependent_def_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 461,051 ( 0.01%) ???:rustc_query_impl::query_impl::defaultness::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 460,542 ( 0.01%) ???: as rustc_data_structures::flat_map_in_place::FlatMapInPlace>::flat_map_in_place::::{closure#0}, smallvec::SmallVec<[rustc_ast::ast::WherePredicate; 1]>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 460,371 ( 0.01%) ???:rustc_ty_utils::assoc::associated_types_for_impl_traits_in_trait_or_impl [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 458,565 ( 0.01%) ???: as rustc_hir::intravisit::Visitor>::visit_ty'2 [???] 457,880 ( 0.01%) ???:::flat_map_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 457,273 ( 0.01%) ???:> as rustc_data_structures::stable_hash::StableHash>::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 456,579 ( 0.01%) ???:::resolve_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 456,557 ( 0.01%) ???:>::uninlined_mark_dependents_as_waiting [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 456,276 ( 0.01%) ???:::parent_hir_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 456,210 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/ineffective_open_options.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 456,106 ( 0.01%) ???:memchr::arch::x86_64::memchr::memchr_raw::find_avx2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 455,942 ( 0.01%) ???:>::get_identifier [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 455,406 ( 0.01%) ???:rustc_query_impl::query_impl::check_tail_calls::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 455,133 ( 0.01%) ???:>::fill_item:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 455,000 ( 0.01%) include/jemalloc/internal/atomic.h:pa_alloc 454,980 ( 0.01%) ???:::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 454,124 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 453,227 ( 0.01%) ???:::visit_path'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 451,712 ( 0.01%) ???:>, (rustc_middle::query::erase::ErasedData<[u8; 2]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<>, (rustc_middle::query::erase::ErasedData<[u8; 2]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [???] 451,561 ( 0.01%) ???:>::walk_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 451,179 ( 0.01%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 450,505 ( 0.01%) ???:::clauses [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 449,740 ( 0.01%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 449,676 ( 0.01%) ???:::parent_module [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 449,560 ( 0.01%) ???:::parse_pat_no_top_guard_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 447,904 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/doc/mod.rs:clippy_lints::doc::check_doc::> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 447,304 ( 0.01%) src/tcache.c:malloc_default 447,038 ( 0.01%) ???:::fmt_to [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 447,011 ( 0.01%) ???:>, &mut rustc_infer::infer::snapshot::undo_log::InferCtxtUndoLogs>>>::unify_var_var:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 447,002 ( 0.01%) ???:::check_fn [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 446,968 ( 0.01%) ???:>::relate::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 446,792 ( 0.01%) ???:::check_expr_return [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 446,436 ( 0.01%) ???:>::fold_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 445,055 ( 0.01%) ???:::walk_::<::pat_error_reported::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 444,792 ( 0.01%) ???:rustc_metadata::rmeta::decoder::cstore_impl::provide_extern::associated_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 442,091 ( 0.01%) ???:rustc_query_impl::plumbing::verify_query_key_hashes_inner::>>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 441,193 ( 0.01%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::Ty> as rustc_type_ir::fold::TypeFoldable>::fold_with::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 441,176 ( 0.01%) ???:rustc_query_impl::execution::try_execute_query::>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 441,164 ( 0.01%) ???:::parse_expr_assoc_with [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 440,889 ( 0.01%) ???:, rustc_hash::FxBuildHasher>>::insert_full [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 440,871 ( 0.01%) ???:rustc_query_impl::query_impl::variances_of::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 440,639 ( 0.01%) ???:llvm::cl::Option::addArgument() [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/libLLVM.so.23.1-rust-1.99.0-nightly] 440,412 ( 0.01%) ???: as rustc_infer::traits::engine::TraitEngine>::evaluate_obligations_error_on_ambiguity [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 439,350 ( 0.01%) ???:::ancestors [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 439,331 ( 0.01%) ???:rustc_hir_analysis::check::wfcheck::lint_redundant_lifetimes [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 439,217 ( 0.01%) ???:>::walk_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 438,727 ( 0.01%) ???:::mk_clauses'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 437,996 ( 0.01%) ???:::span_data_to_lines_and_cols [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 437,717 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 437,479 ( 0.01%) ???:::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 437,479 ( 0.01%) ???:::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 436,100 ( 0.01%) ???:rustc_query_impl::query_impl::lookup_deprecation_entry::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 436,006 ( 0.01%) ???:>::tys'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 433,709 ( 0.01%) ???:::register_wf_obligation [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 433,618 ( 0.01%) ???:rustc_query_impl::execution::try_execute_query::>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 433,486 ( 0.01%) ???:::check_assoc_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 433,311 ( 0.01%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with::::replace_free_regions_with_nll_infer_vars::{closure#0}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 432,515 ( 0.01%) ???:rustc_hir::intravisit::walk_pat:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 432,059 ( 0.01%) ???:rustc_hir::intravisit::walk_pat:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 432,059 ( 0.01%) ???:rustc_hir::intravisit::walk_pat:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 432,059 ( 0.01%) ???:rustc_hir::intravisit::walk_pat:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 431,300 ( 0.01%) ???:rustc_query_impl::execution::try_execute_query::>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 430,823 ( 0.01%) ???:::check_assoc_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 430,238 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/redundant_async_block.rs:clippy_lints::redundant_async_block::desugar_async_block [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 429,846 ( 0.01%) ???:rustc_ty_utils::assoc::associated_items [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 429,704 ( 0.01%) ???:::visit_generics [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 429,336 ( 0.01%) ???:::impl_method_has_trait_impl_trait_tys [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 429,226 ( 0.01%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 429,064 ( 0.01%) ???:::visit_expr'2 [???] 428,780 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:clippy_utils::macros::first_node_in_macro:: 428,352 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/mod.rs:::trim_matches::<::is_whitespace> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 428,037 ( 0.01%) ???:::parse_param_general::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 427,544 ( 0.01%) ???:rustc_ast::visit::visit_stmts::> [???] 427,539 ( 0.01%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 427,300 ( 0.01%) ???:::expect_one_of [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 425,285 ( 0.01%) ???: as rustc_hir::intravisit::Visitor>::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 422,706 ( 0.01%) ???:rustc_middle::query::inner::query_feed::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 422,705 ( 0.01%) ???:rustc_errors::formatting::format_fluent_str [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 421,094 ( 0.01%) ???:::canonical_var [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 419,702 ( 0.01%) ???:rustc_expand::mbe::transcribe::lockstep_iter_size [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 419,241 ( 0.01%) ???:)>>::reserve_rehash::, rustc_hash::FxBuildHasher>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 418,792 ( 0.01%) ???:::stmt_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 418,760 ( 0.01%) ???:>::fold_clauses [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 417,878 ( 0.01%) ???:>::fill_item::<>::extend_to<::confirm::{closure#0}>::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 417,868 ( 0.01%) ???:, rustc_middle::dep_graph::graph::DepNodeIndex> as rustc_middle::query::caches::QueryCache>::for_each [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 417,367 ( 0.01%) ???:rustc_hir::intravisit::walk_pat:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 417,296 ( 0.01%) ???:rustc_interface::passes::emit_delayed_lints [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 416,426 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/permissions_set_readonly_false.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 415,551 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:::trim_start_matches::<::is_whitespace> 415,372 ( 0.01%) ???:>::try_fold_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 415,126 ( 0.01%) ???:::eval_verify_bound'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 415,006 ( 0.01%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 414,477 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_expr::'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 414,243 ( 0.01%) ???:::make_eqregion [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 413,281 ( 0.01%) ???:annotate_snippets::renderer::render::char_width [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 413,179 ( 0.01%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 412,349 ( 0.01%) ???: as rustc_data_structures::flat_map_in_place::FlatMapInPlace>::flat_map_in_place::::{closure#0}, smallvec::SmallVec<[rustc_ast::ast::Param; 1]>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 412,152 ( 0.01%) ???:rustc_ast::visit::visit_arms::> [???] 412,145 ( 0.01%) ???:rustc_trait_selection::traits::query::dropck_outlives::dtorck_constraint_for_ty_inner'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 411,650 ( 0.01%) ???:rustc_query_impl::query_impl::associated_item::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 408,976 ( 0.01%) ???:)>, rustc_middle::query::erase::ErasedData<[u8; 32]>> as rustc_middle::query::caches::QueryCache>::for_each'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 407,790 ( 0.01%) include/jemalloc/internal/rtree.h:free_default 406,858 ( 0.01%) ???:> as rustc_middle::query::caches::QueryCache>::for_each'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 406,665 ( 0.01%) ???:::fmt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 405,187 ( 0.01%) ???:> as rustc_middle::query::caches::QueryCache>::for_each'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 404,861 ( 0.01%) ???:::confirm_builtin_candidate::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 404,366 ( 0.01%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with::::renumber_regions::visit_ty::{closure#0}>::{closure#0}>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 404,351 ( 0.01%) ???:::walk:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 404,168 ( 0.01%) ???:::check_case'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 404,051 ( 0.01%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 404,047 ( 0.01%) ???:::check_if_path_or_subpath_is_moved [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 403,702 ( 0.01%) ???:::check_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 403,632 ( 0.01%) ???:::hash_expn:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 402,580 ( 0.01%) src/thread_event.c:free_default 402,528 ( 0.01%) src/thread_event.c:malloc_default 402,019 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:::check_attributes [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 402,019 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:::check_attributes_post [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 401,570 ( 0.01%) ???:::visit_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 401,435 ( 0.01%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 400,820 ( 0.01%) ???:::ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 399,215 ( 0.01%) ???:::mut_visit_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 398,597 ( 0.01%) ???:> as rustc_type_ir::interner::CollectAndApply>::collect_and_apply::>, core::iter::adapters::copied::Copied>>, rustc_type_ir::relate::structurally_relate_tys::{closure#0}::{closure#1}>, ::new_tup_from_iter>, core::iter::adapters::copied::Copied>>, rustc_type_ir::relate::structurally_relate_tys::{closure#0}::{closure#1}>, core::result::Result>>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 397,585 ( 0.01%) ???:>::walk_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 397,076 ( 0.01%) ???:>::fill_item::<>::extend_to<::confirm::{closure#0}>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 396,304 ( 0.01%) ???:rustc_mir_dataflow::move_paths::builder::new_move_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 395,224 ( 0.01%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 395,224 ( 0.01%) include/jemalloc/internal/ph.h:pa_dalloc 394,695 ( 0.01%) ???:rustc_query_impl::execution::try_execute_query::>, bool), rustc_middle::query::erase::ErasedData<[u8; 8]>>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 394,588 ( 0.01%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 394,462 ( 0.01%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 393,425 ( 0.01%) ???:::get_or_insert [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 393,131 ( 0.01%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 392,538 ( 0.01%) ???:rustc_hir::intravisit::walk_pat:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 392,226 ( 0.01%) ???:>::fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 392,208 ( 0.01%) ???:::evaluate_obligations_error_on_ambiguity [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 392,115 ( 0.01%) ???:::hir_ty_param_name [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 392,088 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_pat:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 391,510 ( 0.01%) ???:rustc_query_impl::execution::try_execute_query::, rustc_middle::dep_graph::graph::DepNodeIndex>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 391,385 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/cmp.rs:clippy_utils::macros::first_node_in_macro:: 391,115 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 391,068 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 390,891 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 390,794 ( 0.01%) ???:::stmt_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 390,711 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 390,711 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 390,711 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 390,711 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 390,711 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 390,711 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 390,711 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 390,711 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 390,711 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 390,711 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 390,711 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 390,711 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:clippy_lints::unit_types::unit_arg::check 390,602 ( 0.01%) ???:thin_vec::drop_non_singleton::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 390,135 ( 0.01%) ???:>>::or_default [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 389,895 ( 0.01%) include/jemalloc/internal/mutex.h:tcache_bin_flush_small 389,855 ( 0.01%) ???:>::relate:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 389,654 ( 0.01%) ???:::visit_node::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 389,363 ( 0.01%) ???:rustc_ast::util::comments::beautify_doc_string [???] 388,069 ( 0.01%) ???:>>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 388,014 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/validations.rs:::trim_matches::<::is_whitespace> 386,684 ( 0.01%) ???:rustc_infer::infer::canonical::instantiate::instantiate_value:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 386,376 ( 0.01%) ???:>::get_pattern [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 385,900 ( 0.01%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 385,592 ( 0.01%) ???:::lower_type_relative_ty_path::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 384,534 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/combined_late_pass.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 384,219 ( 0.01%) ???:<::check_type_for_external_abi_fnptr::FnPtrFinder as rustc_hir::intravisit::Visitor>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 384,124 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/misc_early/mod.rs:::check_pat [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 384,006 ( 0.01%) ???:::collect_tokens::, ::collect_tokens_for_expr<::parse_expr_prefix::{closure#8}>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 383,956 ( 0.01%) ???:::assemble_inherent_impl_candidates_for_type [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 382,952 ( 0.01%) ???:::hash_one::<&rustc_thread_pool::job::JobRefId> [???] 382,385 ( 0.01%) ???:>>>>::complete::>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 381,957 ( 0.01%) ???:::flat_map_assoc_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 381,353 ( 0.01%) ???:thin_vec::drop_non_singleton:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 381,292 ( 0.01%) ???:::insert_term [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 380,718 ( 0.01%) ???:rustc_hir_analysis::check::compare_impl_item::compare_generic_param_kinds [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 380,590 ( 0.01%) ???:::desugar_doc_comments::desugar_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 380,529 ( 0.01%) ???:>::walk_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 379,713 ( 0.01%) ???:::expect_variant_res [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 379,377 ( 0.01%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 379,137 ( 0.01%) ???:>::components_must_outlive [???] 379,092 ( 0.01%) ???:, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 379,029 ( 0.01%) ???: as rustc_data_structures::flat_map_in_place::FlatMapInPlace>::flat_map_in_place::::{closure#0}, smallvec::SmallVec<[rustc_ast::ast::GenericParam; 1]>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 378,782 ( 0.01%) ???:>::fill_item::<::instantiate_method_args::{closure#0}::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 377,479 ( 0.01%) include/jemalloc/internal/ph.h:ecache_evict 377,375 ( 0.01%) ???:rustc_ty_utils::instance::resolve_instance_raw [???] 377,193 ( 0.01%) ???: as rustc_hir::intravisit::Visitor>::visit_path'2 [???] 376,196 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 376,152 ( 0.01%) /rust/deps/thin-vec-0.2.19/src/lib.rs:::check_attributes 376,008 ( 0.01%) ???:rustc_type_ir::relate::structurally_relate_tys::::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 375,861 ( 0.01%) ???:::try_to_place [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 375,147 ( 0.01%) ???:>::reserve_rehash::, ()>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 375,048 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/functions/too_many_lines.rs:::check_fn 373,492 ( 0.01%) ???:>), rustc_middle::traits::cache::WithDepNode)>>::reserve_rehash::>), rustc_middle::traits::cache::WithDepNode, rustc_hash::FxBuildHasher>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 373,038 ( 0.01%) ???:::check_snake_case'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 372,894 ( 0.01%) ???:::poly_select::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 372,802 ( 0.01%) ???:>::walk_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 372,332 ( 0.01%) ???:::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 371,893 ( 0.01%) ???:rustc_middle::ty::util::reveal_opaque_types_in_bounds [???] 371,626 ( 0.01%) /rustc/84b36a78a28a63f134171c670be1932ffa2485f8/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/build/tikv-jemalloc-sys/80122c672fbe49ef/out/build/src/jemalloc.c:free_default [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 371,584 ( 0.01%) ???:rustc_hir_analysis::collect::item_bounds::impl_super_outlives [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 371,486 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/context.rs:::def_key:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 370,718 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 370,633 ( 0.01%) include/jemalloc/internal/thread_event.h:malloc_default 370,479 ( 0.01%) ???:::hygienic_eq [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 370,367 ( 0.01%) ???:>::super_visit_with::<::any_free_region_meets::RegionVisitor<::for_each_free_region::visit_const_operand::{closure#0}>::{closure#0}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 370,348 ( 0.01%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 369,936 ( 0.01%) ???:rustc_hir_analysis::collect::generics_of::generics_of'2 [???] 369,601 ( 0.01%) ???:rustc_ast::visit::walk_item_inner::> [???] 368,649 ( 0.01%) ???:::relate_universal_regions [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 368,502 ( 0.00%) include/jemalloc/internal/edata.h:malloc_default 367,219 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 366,578 ( 0.00%) ???:0x0000000000029600 [/usr/lib/ld-linux-x86-64.so.2] 365,668 ( 0.00%) ???:::intern_str [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 364,164 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/disallowed_types.rs:::check_ty 364,089 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr_post 363,849 ( 0.00%) ???: as core::hash::Hash>::hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 362,436 ( 0.00%) ???:rustc_hir::intravisit::walk_pat:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 361,504 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 360,466 ( 0.00%) ???:<&rustc_middle::ty::list::RawList as rustc_data_structures::stable_hash::StableHash>::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 360,144 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/multi_assignments.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 359,327 ( 0.00%) ???:::assemble_extension_candidates_for_trait [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 359,060 ( 0.00%) ???:rustc_hir_typeck::method::probe::method_autoderef_steps'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 358,843 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/filter.rs:clippy_utils::in_automatically_derived 357,691 ( 0.00%) ???:rustc_hir_analysis::collect::resolve_bound_vars::is_late_bound_map [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 357,602 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 357,492 ( 0.00%) ???:>::reserve_rehash::>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 357,402 ( 0.00%) ???:::walk::<::resolve_pattern_inner::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 357,097 ( 0.00%) ???:::flat_map_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 357,053 ( 0.00%) ???:>::reserve_rehash::>>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 357,022 ( 0.00%) ???:rustc_traits::type_op::type_op_normalize_clause'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 356,859 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/mod.rs:::check_expr 356,485 ( 0.00%) ???:rustc_hir::intravisit::walk_ty::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 356,459 ( 0.00%) ???:::check_let [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 356,192 ( 0.00%) ???:::resolve:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 355,956 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 355,648 ( 0.00%) ???:::parse_expr_prefix [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 355,268 ( 0.00%) ???:::is_desugaring'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 355,264 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/combined_late_pass.rs:::check_block [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 355,200 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 355,200 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 355,200 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:clippy_lints::unit_types::unit_cmp::check 355,176 ( 0.00%) include/jemalloc/internal/ph.h:eset_remove 354,573 ( 0.00%) ???:>>>>::encode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 354,404 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_data_structures/src/sharded.rs:, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::get:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 354,345 ( 0.00%) ???:rustc_arena::outline::<::alloc_from_iter, ::lower_angle_bracketed_parameter_data::{closure#2}>>::{closure#0}, &mut [rustc_hir::hir::AssocItemConstraint]> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 354,247 ( 0.00%) ???:rustc_hir_analysis::check::compare_impl_item::compare_number_of_generics [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 354,177 ( 0.00%) ???:::lifetime_res_to_generic_param [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 353,992 ( 0.00%) ???:>>::upcast_from [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 353,851 ( 0.00%) ???:>, ::add_wf_preds_for_trait_pred::{closure#0}> as core::iter::traits::iterator::Iterator>::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 353,828 ( 0.00%) ???:::is_intrinsic'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 353,784 ( 0.00%) ???:rustc_hir_analysis::collect::item_bounds::impl_super_outlives'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 353,723 ( 0.00%) ???:rustc_metadata::rmeta::decoder::cstore_impl::provide_extern::generics_of [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 353,079 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:clippy_utils::is_expn_of 351,513 ( 0.00%) ???:::check_impl_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 351,085 ( 0.00%) ???:::fill_well_known'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 350,909 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 350,156 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with::>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 349,719 ( 0.00%) ???:::fold_to_region_vids>>::{closure#0}> as rustc_type_ir::fold::TypeFolder>::fold_region [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 348,982 ( 0.00%) ???:rustc_mir_transform::mir_built [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 348,378 ( 0.00%) ???:::get_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 348,002 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 347,636 ( 0.00%) ???:std::exception::~exception() [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 347,269 ( 0.00%) ???:::walk_::<::necessary_variants::{closure#0}> [???] 346,452 ( 0.00%) ???: as rustc_type_ir::fold::TypeFolder>::fold_region [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 346,311 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 344,824 ( 0.00%) ???:::parse_self_param [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 344,612 ( 0.00%) src/emap.c:pa_alloc 344,048 ( 0.00%) ???:<[rustc_hir::hir::GenericBound] as rustc_data_structures::stable_hash::StableHash>::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 342,980 ( 0.00%) ???:rustc_mir_transform::mir_keys'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 342,322 ( 0.00%) ???:>::reserve_rehash::>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 342,068 ( 0.00%) ???:rustc_hir::intravisit::walk_pat::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 341,638 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 341,218 ( 0.00%) ???:::resolve_and_cache_rustdoc_path'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 340,485 ( 0.00%) ???:::try_plant_decl_into_local_module [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 338,043 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 336,616 ( 0.00%) /rust/deps/parking_lot-0.12.5/src/raw_mutex.rs:>::with::<::with::outer_expn::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnId> 336,600 ( 0.00%) ???:::path_matches [???] 336,396 ( 0.00%) /rust/deps/pulldown-cmark-0.11.3/src/parse.rs: as core::iter::traits::iterator::Iterator>::next [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 335,842 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::, rustc_middle::query::erase::ErasedData<[u8; 8]>>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 335,722 ( 0.00%) ???:>>::extend_deduped::>, >::new>, >::skip_norm_wip>>, >>::elaborate::{closure#1}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 335,616 ( 0.00%) ???:::get_str'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 335,553 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 335,553 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 335,553 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 335,160 ( 0.00%) ???:::has_dtor'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 334,860 ( 0.00%) ???:rustc_hir_typeck::intrinsicck::check_transmutes [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 334,464 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 333,420 ( 0.00%) ???:::field_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 333,278 ( 0.00%) ???:<::expand_abstract_consts::Expander as rustc_type_ir::fold::TypeFolder>::fold_const [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 332,746 ( 0.00%) ???:::evaluate'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 332,618 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/combined_late_pass.rs:::check_impl_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 331,320 ( 0.00%) ???:::prepare_to_combine [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 330,968 ( 0.00%) ???:<::check_type_for_external_abi_fnptr::FnPtrFinder as rustc_type_ir::visit::TypeVisitor>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 330,479 ( 0.00%) ???:::call_once_force::<>>>::initialize<>>>::get_or_init<::predecessors::{closure#0}>::{closure#0}, !>::{closure#0}>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 329,853 ( 0.00%) ???:::visit_generic_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 329,820 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_expr::>'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 328,981 ( 0.00%) ???:::add_wf_preds_for_trait_pred'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 328,878 ( 0.00%) ???:::walk::<::check_consistent_bindings::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 328,872 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_generics [???] 328,864 ( 0.00%) ???:::new_with_implied_bounds_compat::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 327,973 ( 0.00%) ???:::check_expr_addr_of [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 327,695 ( 0.00%) ???:::check_ident'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 327,384 ( 0.00%) ???:, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 326,644 ( 0.00%) ???:rustc_hir_analysis::check::check::check_coroutine_obligations [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 325,811 ( 0.00%) ???:>::apply_constructor [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 325,514 ( 0.00%) ???:>>>>>::complete::>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 325,121 ( 0.00%) ???:::is_intrinsic [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 325,060 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/misc_early/redundant_pattern.rs:clippy_lints::misc_early::redundant_pattern::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 325,012 ( 0.00%) ???:::mk_place_elems [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 324,164 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 323,949 ( 0.00%) ???:::is_mutable'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 322,598 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::)>, rustc_middle::query::erase::ErasedData<[u8; 32]>>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 322,374 ( 0.00%) ???:::is_lang_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 321,580 ( 0.00%) ???: as rustc_type_ir::visit::TypeVisitor>::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 321,197 ( 0.00%) ???:rustc_middle::hir::map::crate_hash [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 320,986 ( 0.00%) ???:::walk_::<::is_never_pattern::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 320,926 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/cell.rs:clippy_utils::macros::first_node_in_macro:: 320,868 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::trait_ref_of_method [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 320,600 ( 0.00%) ???:rustc_query_impl::query_impl::clauses_of::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 320,095 ( 0.00%) ???:rustc_query_impl::query_impl::asyncness::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 319,459 ( 0.00%) ???:rustc_trait_selection::traits::query::dropck_outlives::dtorck_constraint_for_ty_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 319,168 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/unnested_or_patterns.rs:::check_expr 318,539 ( 0.00%) /rustc/84b36a78a28a63f134171c670be1932ffa2485f8/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/build/tikv-jemalloc-sys/80122c672fbe49ef/out/build/src/extent.c:ecache_evict [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 318,528 ( 0.00%) ???:>::with_capacity_in [???] 318,465 ( 0.00%) ???:::visit_assoc_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 318,157 ( 0.00%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 318,157 ( 0.00%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 318,079 ( 0.00%) ???:>::walk_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 318,079 ( 0.00%) ???:>::walk_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 318,079 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 318,079 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 317,281 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 317,243 ( 0.00%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 316,680 ( 0.00%) ???:::visit_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 316,400 ( 0.00%) ???:rustc_trait_selection::traits::normalize::normalize_with_depth_to::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 316,119 ( 0.00%) ???:::apply_inner::::apply_revealing_opaque<::apply::{closure#0}>::{closure#0}, ::apply::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 316,092 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_data_structures/src/vec_cache.rs:clippy_utils::trait_ref_of_method 315,620 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 315,328 ( 0.00%) src/extent.c:tcache_bin_flush_small 315,139 ( 0.00%) ???:::get_module_children::{closure#0}, core::result::Result::Ok>, core::result::Result> as core::iter::traits::iterator::Iterator>::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 314,934 ( 0.00%) ???:::visit_param_bound [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 314,706 ( 0.00%) ???:>>::upcast_from [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 314,017 ( 0.00%) ???:::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 313,874 ( 0.00%) ???:::visit_ty_common [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 313,663 ( 0.00%) ???:::smart_resolve_path_fragment'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 313,530 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/attrs.rs:::check_attributes 312,880 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs:::check_expr 312,768 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_ast/src/attr/version.rs:::meets 312,768 ( 0.00%) /rust/deps/smallvec-1.15.1/src/lib.rs:::meets [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 312,768 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/msrvs.rs:::meets 312,697 ( 0.00%) ???:::hygienic_eq'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 312,644 ( 0.00%) ???:>>::walk_ref [???] 312,452 ( 0.00%) /rust/deps/parking_lot-0.12.5/src/raw_mutex.rs:>::with::<::with::expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 312,308 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/pattern.rs:::check_fn 312,292 ( 0.00%) ???:::alloc_ctxt'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 311,640 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 311,024 ( 0.00%) ???:::add_constraints_from_invariant_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 310,937 ( 0.00%) ???:::par_hir_body_owners::::{closure#0} [???] 310,800 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 310,800 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/regex.rs:::check_expr_post 310,522 ( 0.00%) ???:thin_vec::drop_non_singleton::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 310,180 ( 0.00%) ???:rustc_arena::outline::<::alloc_from_iter, core::iter::adapters::chain::Chain, core::iter::adapters::copied::Copied>>>, rustc_ty_utils::assoc::associated_item_def_ids::{closure#1}>>::{closure#0}, &mut [rustc_span::def_id::DefId]> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 309,800 ( 0.00%) ???:>::consts [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 309,015 ( 0.00%) ???:rustc_type_ir::relate::combine::super_combine_consts:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 308,666 ( 0.00%) ???:::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 307,653 ( 0.00%) ???:::is_automatically_derived [???] 307,566 ( 0.00%) ???:::hash_one::<&unicase::UniCase> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 306,035 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/non_expressive_names.rs:::visit_pat [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 305,366 ( 0.00%) ???:::into_outputs [???] 305,230 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_type_ir::binder::Binder>> as rustc_type_ir::relate::Relate>::relate:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 305,029 ( 0.00%) ???:rustc_trait_selection::traits::query::dropck_outlives::trivial_dropck_outlives [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 304,921 ( 0.00%) ???:::probe_for_name [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 304,603 ( 0.00%) ???:rustc_query_impl::query_impl::impl_item_implementor_ids::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 303,991 ( 0.00%) ???:rustc_type_ir::elaborate::supertrait_def_ids:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 303,871 ( 0.00%) ???:rustc_hir_analysis::check::wfcheck::lint_redundant_lifetimes'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 303,817 ( 0.00%) ???:rustc_ast::visit::walk_fn::> [???] 303,709 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 303,634 ( 0.00%) ???:::confirm_builtin_candidate::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 303,013 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:::check_attributes 301,499 ( 0.00%) ???:::resolve_block'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 301,293 ( 0.00%) ???:rustc_query_impl::query_impl::lookup_stability::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 301,211 ( 0.00%) ???:rustc_hir::intravisit::walk_ty:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 300,394 ( 0.00%) ???:>::seek_after [???] 300,274 ( 0.00%) ???:::make_all_regions_live::{closure#0}> as rustc_type_ir::visit::TypeVisitor>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 300,261 ( 0.00%) ???:::walk_::<::walk_always<::lower_pattern::{closure#0}>::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 300,208 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 299,404 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:clippy_utils::macros::matching_root_macro_call 298,891 ( 0.00%) ???:::anonymize_bound_vars::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 298,762 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_type_ir::canonical::CanonicalVarKind> as rustc_data_structures::stable_hash::StableHash>::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 298,700 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 298,213 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:::trim_matches::<::is_whitespace> 297,790 ( 0.00%) ???:::to_token_trees [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 297,631 ( 0.00%) ???:rustc_span::edit_distance::find_best_match_for_name_impl [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 297,578 ( 0.00%) ???:::intern_const [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 297,552 ( 0.00%) ???:::lower_pat'2 [???] 296,836 ( 0.00%) ???:rustc_mir_build::builder::matches::traverse_candidate::<&mut rustc_mir_build::builder::matches::Candidate, (), core::iter::adapters::rev::Rev>, ::visit_leaves_rev<::lower_match_tree::{closure#1}>::{closure#0}, ::visit_leaves_rev<::lower_match_tree::{closure#1}>::{closure#1}, ::visit_leaves_rev<::lower_match_tree::{closure#1}>::{closure#2}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 296,810 ( 0.00%) ???:rustc_query_impl::query_impl::coroutine_kind::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 296,514 ( 0.00%) ???:annotate_snippets::renderer::render::render [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 296,423 ( 0.00%) ???:::from_tokens [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 295,904 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs: as core::iter::traits::iterator::Iterator>::try_fold::<(), core::iter::traits::iterator::Iterator::find_map::check<(rustc_span::hygiene::ExpnId, rustc_span::hygiene::ExpnData), clippy_utils::macros::MacroCall, &mut clippy_utils::macros::macro_backtrace::{closure#0}>::{closure#0}, core::ops::control_flow::ControlFlow> 295,536 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/pattern.rs:::trim_start_matches::<::is_whitespace> 295,529 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_type_ir::binder::Binder>> as rustc_type_ir::relate::Relate>::relate:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 295,477 ( 0.00%) ???:::check_arm [???] 295,016 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_generic_args [???] 294,975 ( 0.00%) ???:rustc_type_ir::relate::combine::combine_ty_args::>::relate_ty_args::{closure#0}::{closure#0}>::{closure#0}>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 294,515 ( 0.00%) ???:rustc_lint::levels::skippable_lints'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 294,145 ( 0.00%) ???: as rustc_mir_transform::pass_manager::MirPass>::run_pass [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 293,953 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 293,591 ( 0.00%) ???:::decode_syntax_context'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 293,389 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/dereference.rs:::check_pat [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 292,321 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:::check_attributes 292,263 ( 0.00%) ???:::generics [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 292,241 ( 0.00%) ???:rustc_ast::visit::walk_fn:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 292,241 ( 0.00%) ???:rustc_ast::visit::walk_fn:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 289,154 ( 0.00%) ???:::make_all_regions_live::{closure#0}> as rustc_type_ir::visit::TypeVisitor>::visit_region [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 288,918 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/source.rs:clippy_utils::source::get_source_range [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 288,698 ( 0.00%) include/jemalloc/internal/bit_util.h:realloc 288,463 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/eta_reduction.rs:clippy_lints::eta_reduction::check_closure [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 288,077 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 287,928 ( 0.00%) include/jemalloc/internal/sz.h:eset_remove 287,894 ( 0.00%) src/arena.c:tcache_bin_flush_small 287,818 ( 0.00%) ???:core::str::converts::from_utf8 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 287,413 ( 0.00%) ???:>::extend_deduped::>, >::new>, >::skip_norm_wip>>, >::elaborate::{closure#1}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 287,284 ( 0.00%) ???:::ident [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 287,113 ( 0.00%) ???:>::walk_mut'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 287,077 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::visit_expr'2 286,897 ( 0.00%) include/jemalloc/internal/edata.h:eset_remove 286,260 ( 0.00%) ???:rustc_hir_typeck::used_trait_imports [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 285,732 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 285,137 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 284,311 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 284,296 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 284,294 ( 0.00%) ???:>::reserve_rehash::>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 284,248 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 283,894 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 283,477 ( 0.00%) ???:::eq [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 283,122 ( 0.00%) ???:::unify_raw [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 283,028 ( 0.00%) ???:::body_codegen_attrs [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 282,979 ( 0.00%) ???:rustc_lint::expect::lint_expectations [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 282,959 ( 0.00%) ???:::inhabited_predicate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 282,684 ( 0.00%) ???:::source_callee [???] 282,453 ( 0.00%) ???:::visit:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 281,363 ( 0.00%) ???:rustc_hir::intravisit::walk_pat::<::collect_taits_declared_in_body::TaitInBodyFinder> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 280,261 ( 0.00%) ???:rustc_hir_analysis::check::wfcheck::check_well_formed [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 280,052 ( 0.00%) ???:rustc_hir::intravisit::walk_expr:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 279,358 ( 0.00%) ???:>::visit_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 278,477 ( 0.00%) ???:rustc_query_impl::plumbing::verify_query_key_hashes_inner::>, rustc_middle::query::erase::ErasedData<[u8; 32]>>>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 278,251 ( 0.00%) ???:>::insert_from_slice [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 278,055 ( 0.00%) ???:>::fill_item::<::instantiate_method_args::{closure#0}::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 277,687 ( 0.00%) ???: as rustc_type_ir::fold::TypeFolder>::fold_const [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 277,603 ( 0.00%) ???:>::get_attrs [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 277,180 ( 0.00%) include/jemalloc/internal/jemalloc_internal_inlines_b.h:malloc_default 277,179 ( 0.00%) ???:, rustc_middle::query::erase::ErasedData<[u8; 8]>> as rustc_middle::query::caches::QueryCache>::for_each'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 275,683 ( 0.00%) ???:::lower_attrs_with_extra [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 275,660 ( 0.00%) ???:rustc_query_impl::query_impl::implied_outlives_bounds::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 273,928 ( 0.00%) ???:>::add_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 273,408 ( 0.00%) ???:rustc_hir_analysis::outlives::inferred_outlives_crate'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 273,098 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/disallowed_fields.rs:::check_pat [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 272,975 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/unused_unit.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 272,743 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 272,217 ( 0.00%) ???:::multi_projection_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 271,931 ( 0.00%) ???:::visit_pat [???] 271,881 ( 0.00%) ???:rustc_thread_pool::scope::scope::::par_items::{closure#0}>::{closure#0}::{closure#0}>::{closure#1}, ()>::{closure#0} [???] 271,384 ( 0.00%) ???: as rustc_data_structures::flat_map_in_place::FlatMapInPlace>::flat_map_in_place::::{closure#0}, smallvec::SmallVec<[rustc_ast::ast::Stmt; 1]>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 271,244 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 269,751 ( 0.00%) ???:::mk_clauses [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 269,671 ( 0.00%) ???:::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 269,540 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 269,387 ( 0.00%) ???:<[rustc_hir::hir::PathSegment] as rustc_data_structures::stable_hash::StableHash>::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 269,063 ( 0.00%) ???: as rustc_ast::visit::Visitor>::visit_arm::{closure#0} [???] 268,801 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 268,772 ( 0.00%) ???:>::drop_slow'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 268,312 ( 0.00%) ???:rustc_query_impl::query_impl::type_op_prove_predicate::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 267,954 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/manual_range_patterns.rs:::check_pat [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 267,312 ( 0.00%) ???:rustc_query_impl::query_impl::type_of::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 266,866 ( 0.00%) ???:::normalize_to_macros_2_0 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 266,666 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 266,400 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 266,400 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 266,400 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/unit_types/mod.rs:::check_expr 266,302 ( 0.00%) ???:>::insert [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 265,932 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/misc_early/unneeded_field_pattern.rs:clippy_lints::misc_early::unneeded_field_pattern::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 264,134 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_nested_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 264,015 ( 0.00%) ???:::lower_bounds::<&[rustc_hir::hir::GenericBound]> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 263,825 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 263,760 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_block [???] 263,589 ( 0.00%) ???:::visit_fn'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 263,123 ( 0.00%) ???:rustc_mir_dataflow::drop_flag_effects::on_all_children_bits::on_all_children_bits::<::apply_call_return_effect::{closure#0}::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 263,040 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 262,978 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 262,312 ( 0.00%) ???:::param_def_id_to_index [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 261,844 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/collections/hash/map.rs:::check_attributes 261,844 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/attrs/mod.rs:::check_attributes_post 261,572 ( 0.00%) ???: as rustc_ast::visit::Visitor>::visit_stmt::{closure#0} [???] 261,525 ( 0.00%) ???:rustc_hir::intravisit::walk_generic_args:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 261,290 ( 0.00%) ???:>::regions [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 261,174 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 260,674 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/unneeded_struct_pattern.rs:::check_pat [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 260,148 ( 0.00%) ???:::resolve_anonymous_lifetime [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 260,103 ( 0.00%) ???:::flat_map_stmt'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 259,951 ( 0.00%) ???:::parse_attr_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 259,697 ( 0.00%) ???:::instantiate_bound_regions::<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::Ty>, ::replace_bound_regions_with_nll_infer_vars<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::Ty>>::{closure#0}>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 259,641 ( 0.00%) ???:::hir_impl_item [???] 259,511 ( 0.00%) ???:>::walk_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 258,890 ( 0.00%) ???:::demand_suptype_diag'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 258,464 ( 0.00%) ???:>::drop_slow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 258,135 ( 0.00%) ???:>::super_fold_with::::fold_to_region_vids>>::{closure#0}>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 258,131 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/matches/rest_pat_in_fully_bound_struct.rs:clippy_lints::matches::rest_pat_in_fully_bound_struct::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 258,048 ( 0.00%) ???:rustc_query_impl::query_impl::param_env::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 257,994 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with::::renumber_regions<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg>, ::visit_args::{closure#0}>::{closure#0}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 257,804 ( 0.00%) ???: as rustc_ast::visit::Visitor>::visit_pat'2 [???] 257,626 ( 0.00%) ???:rustc_hir::intravisit::walk_qpath:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 257,289 ( 0.00%) ???:::explicit_super_clauses_of [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 257,171 ( 0.00%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 256,718 ( 0.00%) ???:::evaluate_predicate_recursively'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 256,601 ( 0.00%) include/jemalloc/internal/thread_event.h:free_default 256,257 ( 0.00%) ???:::check_tokens'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 255,811 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with::::fold_to_region_vids>>::{closure#0}>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 255,702 ( 0.00%) ???:::eq_trace::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 255,590 ( 0.00%) ???:::check_param_uses_if_mcg:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 255,036 ( 0.00%) ???:rustc_query_impl::plumbing::verify_query_key_hashes_inner::>>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 254,619 ( 0.00%) ???:::add_drop_live_facts_for [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 254,428 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/res.rs:::check_expr 253,670 ( 0.00%) ???:)>>::reserve_rehash::, rustc_hash::FxBuildHasher>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 253,121 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/needless_borrowed_ref.rs:::check_pat [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 253,113 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_expr::'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 252,696 ( 0.00%) ???:rustc_query_impl::plumbing::verify_query_key_hashes_inner::>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 252,617 ( 0.00%) ???:rustc_query_impl::query_impl::trivial_const::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 252,315 ( 0.00%) ???:::finish_grow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 252,205 ( 0.00%) ???:::typeck_root_def_id_local [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 252,084 ( 0.00%) include/jemalloc/internal/mutex.h:malloc_default 252,080 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 251,579 ( 0.00%) ???:::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 250,824 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs: as alloc::vec::spec_from_iter_nested::SpecFromIterNested<(rustc_span::span_encoding::Span, alloc::string::String), core::iter::adapters::filter_map::FilterMap, clippy_lints::doc::suspicious_doc_comments::collect_doc_replacements::{closure#0}>>>::from_iter 250,824 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/attrs.rs:::check_attributes_post 249,617 ( 0.00%) ???:::with::<::visit_nested_body::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 249,422 ( 0.00%) ???:::visit_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 248,976 ( 0.00%) ???:::hir_body_owner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 248,899 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/unwrap.rs:::visit_expr'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 248,884 ( 0.00%) ???:::expect_variant_res'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 248,681 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 248,125 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_ty::> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 248,003 ( 0.00%) ???:rustc_trait_selection::traits::do_normalize_clauses'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 247,946 ( 0.00%) ???:>::super_visit_with::<::any_free_region_meets::RegionVisitor<::for_each_free_region::record_regions_live_at::{closure#0}>::{closure#0}>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 247,626 ( 0.00%) ???:rustc_ast::visit::visit_stmts::>'2 [???] 247,416 ( 0.00%) ???:rustc_hir_analysis::impl_wf_check::enforce_impl_non_lifetime_params_are_constrained [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 246,960 ( 0.00%) ???:::edition'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 246,932 ( 0.00%) ???:> as rustc_type_ir::visit::TypeVisitor>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 246,925 ( 0.00%) ???:::without_first_quote [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 246,650 ( 0.00%) ???:rustc_query_impl::query_impl::lookup_stability::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 246,441 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/mixed_read_write_in_expression.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 246,400 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/manual_non_exhaustive.rs:::check_expr 246,075 ( 0.00%) ???:core::ptr::drop_glue::<[rustc_expand::mbe::macro_parser::NamedMatch]> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 245,652 ( 0.00%) ???:>::reserve_rehash::>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 245,635 ( 0.00%) ???:>, (), rustc_hash::FxBuildHasher>>::insert [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 245,469 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_generic_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 245,469 ( 0.00%) ???:::visit_generic_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 245,469 ( 0.00%) ???:::visit_generic_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 245,469 ( 0.00%) ???:::visit_generic_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 245,341 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/eta_reduction.rs:::check_expr 245,070 ( 0.00%) ???:, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 244,978 ( 0.00%) ???:)>>::call_once'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 244,722 ( 0.00%) ???:rustc_query_impl::query_impl::hir_attr_map::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 243,911 ( 0.00%) ???:::apply_inner::::apply_revealing_opaque<::apply::{closure#0}>::{closure#0}, ::apply::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 243,785 ( 0.00%) ???:rustc_ast::visit::walk_item_inner::>'2 [???] 243,504 ( 0.00%) ???:::check_expr_field [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 243,338 ( 0.00%) ???:::insert [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 243,206 ( 0.00%) ???:::trait_impl_of_assoc'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 243,017 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/hir.rs:clippy_lints::casts::cast_slice_different_sizes::expr_cast_chain_tys 242,944 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_data_structures/src/sync/lock.rs:>::with::<::with::outer_expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 242,906 ( 0.00%) ???:rustc_metadata::rmeta::decoder::cstore_impl::provide_extern::associated_item_def_ids [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 242,798 ( 0.00%) ???:>::initialize::<>::get_or_init<::create_global_ctxt, rustc_interface::passes::create_and_enter_global_ctxt, rustc_driver_impl::run_compiler::{closure#0}::{closure#1}>::{closure#2}>::{closure#1}>::{closure#0}, !> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 242,754 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/hygiene.rs:clippy_utils::macros::first_node_in_macro:: 242,686 ( 0.00%) ???:<::any_free_region_meets::RegionVisitor<::for_each_free_region<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg>, ::record_regions_live_at<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg>>::{closure#0}>::{closure#0}> as rustc_type_ir::visit::TypeVisitor>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 242,320 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_type_ir::binder::Binder>> as rustc_type_ir::relate::Relate>::relate::::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 242,220 ( 0.00%) ???:::apply_mark [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 241,326 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:clippy_lints::doc::doc_suspicious_footnotes::check 241,246 ( 0.00%) ???: as rustc_type_ir::visit::TypeVisitor>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 241,035 ( 0.00%) ???:::match_candidates [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 240,948 ( 0.00%) ???:::lint_level_spec_at_node [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 240,706 ( 0.00%) ???:rustc_span::edit_distance::sort_by_words'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 240,088 ( 0.00%) ???:::find_ancestor_inside'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 239,565 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 239,536 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:clippy_utils::in_automatically_derived 239,277 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 239,172 ( 0.00%) ???:::from_self [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 238,900 ( 0.00%) ???: as core::iter::traits::iterator::Iterator>::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 237,444 ( 0.00%) ???:core::slice::sort::shared::smallsort::bidirectional_merge::::sort_by_key<&core::option::Option, , rustc_middle::ty::assoc::AssocItem> as core::iter::traits::collect::FromIterator<(core::option::Option, rustc_middle::ty::assoc::AssocItem)>>::from_iter, rustc_ty_utils::assoc::associated_items::{closure#0}>, ::new, rustc_ty_utils::assoc::associated_items::{closure#0}>>::{closure#0}>>::{closure#0}>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 237,315 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::fn_def_id_with_node_args [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 237,118 ( 0.00%) ???:::record_partial_res [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 236,992 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::peel_hir_expr_refs [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 236,407 ( 0.00%) ???:rustc_ast::visit::visit_items::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 235,622 ( 0.00%) ???:__cxa_finalize [/usr/lib/libc.so.6] 235,158 ( 0.00%) ???:>, &mut rustc_infer::infer::snapshot::undo_log::InferCtxtUndoLogs>>>::uninlined_get_root_key'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 235,084 ( 0.00%) ???:>::visit_with::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 234,478 ( 0.00%) ???:::probe_ty_param_bounds_in_generics [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 234,162 ( 0.00%) ???:::lower [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 234,099 ( 0.00%) ???:::lower_lifetime'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 233,718 ( 0.00%) ???:rustc_hir::intravisit::walk_expr:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 233,511 ( 0.00%) ???:::brg_visit_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 233,463 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::Ty> as rustc_type_ir::fold::TypeFoldable>::fold_with::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 233,415 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 233,308 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:::init_default_impl_for_type_if_needed 232,370 ( 0.00%) ???:::new'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 231,732 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 231,381 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/unconditional_recursion.rs:::init_default_impl_for_type_if_needed [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 231,279 ( 0.00%) ???:rustc_lint::lifetime_syntax::check_fn_like [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 231,144 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 230,624 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/hir.rs:::check_expr 230,622 ( 0.00%) ???:rustc_query_impl::query_impl::evaluate_obligation::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 230,304 ( 0.00%) ???:::break_for_else [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 230,230 ( 0.00%) src/thread_event.c:realloc 230,126 ( 0.00%) ???:>, 9>, core::iter::adapters::map::Map>, core::iter::adapters::copied::Copied>>>, rustc_type_ir::relate::relate_args_with_variances::{closure#0}>>, core::result::Result>> as core::iter::traits::iterator::Iterator>::try_fold::<(), core::iter::traits::iterator::Iterator::try_for_each::call, core::ops::control_flow::ControlFlow::Break>::{closure#0}, core::ops::control_flow::ControlFlow> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 230,113 ( 0.00%) ???:::clone [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 229,699 ( 0.00%) ???:::parse_qpath [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 229,558 ( 0.00%) ???:>>::walk_ref'2 [???] 229,492 ( 0.00%) ???:::field_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 229,477 ( 0.00%) ???:rustc_attr_parsing::attributes::cfg::parse_name_value::{closure#2} [???] 229,348 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/useless_conversion.rs:::check_expr_post 228,590 ( 0.00%) ???:>, &mut rustc_infer::infer::snapshot::undo_log::InferCtxtUndoLogs>>>::uninlined_get_root_key'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 228,200 ( 0.00%) ???:::write_str [???] 228,107 ( 0.00%) ???: as core::iter::traits::iterator::Iterator>::next'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 227,884 ( 0.00%) ???:rustc_hir::intravisit::walk_qpath::>'2 [???] 227,817 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:clippy_utils::macros::root_macro_call 227,808 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/flatten.rs:clippy_lints::operators::float_cmp::check_assert 227,278 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 227,230 ( 0.00%) ???:rustc_ty_utils::ty::impl_self_is_guaranteed_unsized'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 226,803 ( 0.00%) ???:::get_diagnostic_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 226,159 ( 0.00%) src/decay.c:tcache_bin_flush_small 225,668 ( 0.00%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 225,668 ( 0.00%) ???:rustc_middle::thir::visit::walk_pat:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 225,665 ( 0.00%) ???:::check_target [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 225,616 ( 0.00%) ???:::parse_local [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 224,864 ( 0.00%) ???:::mk_fn_sig::, rustc_middle::ty::Ty> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 224,843 ( 0.00%) ???: as rustc_infer::traits::engine::TraitEngine>::register_predicate_obligations [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 224,465 ( 0.00%) ???:rustc_passes::check_attr::check_mod_attrs [???] 223,922 ( 0.00%) ???:::schedule_expn_data_for_encoding'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 223,737 ( 0.00%) ???:::walk::<::could_be_never_pattern::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 223,547 ( 0.00%) ???:> as rustc_middle::query::caches::QueryCache>::for_each'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 223,532 ( 0.00%) ???:::lower_block_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 223,373 ( 0.00%) src/tcache.c:realloc 222,874 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_block'2 [???] 222,739 ( 0.00%) ???:>::visit_const [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 222,635 ( 0.00%) ???: as rustc_data_structures::flat_map_in_place::FlatMapInPlace>::flat_map_in_place::::{closure#0}, smallvec::SmallVec<[rustc_ast::ast::Stmt; 1]>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 222,580 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/sync.rs:::check_expr 222,288 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/needless_parens_on_range_literals.rs:::check_expr 222,000 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/sync.rs:::check_expr 222,000 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/sync.rs:::check_expr 222,000 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/sync.rs:::check_expr 222,000 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/sync.rs:::check_expr 222,000 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/sync.rs:::check_expr 222,000 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/functions/mod.rs:::check_expr 221,821 ( 0.00%) ???:rustc_hir_analysis::collect::clauses_of::implied_clauses_with_filter [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 221,610 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/almost_complete_range.rs:::check_pat [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 221,610 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/combined_early_pass.rs:::check_pat [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 221,540 ( 0.00%) ???:>), rustc_middle::traits::cache::WithDepNode)>>::reserve_rehash::>), rustc_middle::traits::cache::WithDepNode, rustc_hash::FxBuildHasher>::{closure#0}> [???] 221,477 ( 0.00%) ???:::match_projection_projections [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 221,097 ( 0.00%) ???:rustc_hir_analysis::coherence::coherent_trait [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 220,698 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs: as core::iter::traits::iterator::Iterator>::try_fold::<(), core::iter::traits::iterator::Iterator::find_map::check<(rustc_span::hygiene::ExpnId, rustc_span::hygiene::ExpnData), clippy_utils::macros::MacroCall, &mut clippy_utils::macros::macro_backtrace::{closure#0}>::{closure#0}, core::ops::control_flow::ControlFlow> 220,661 ( 0.00%) ???:::from_tokens'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 220,637 ( 0.00%) ???:::filter_map_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 220,495 ( 0.00%) ???:rustc_mir_dataflow::drop_flag_effects::on_all_children_bits::on_all_children_bits::::initialize_start_block::{closure#0}>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 219,832 ( 0.00%) ???:core::ptr::drop_glue::>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 219,819 ( 0.00%) ???:>::relate_with_variance::::{closure#0}::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 219,592 ( 0.00%) ???:>>::walk_ref [???] 219,021 ( 0.00%) ???:>::super_fold_with::::fold_to_region_vids>>::{closure#0}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 218,670 ( 0.00%) ???:::flat_map_assoc_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 218,450 ( 0.00%) src/emap.c:tcache_bin_flush_small 218,383 ( 0.00%) ???:::trait_may_define_assoc_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 218,360 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/combined_late_pass.rs:::check_stmt [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 218,107 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/filter_map.rs:clippy_utils::macros::root_macro_call 217,962 ( 0.00%) ???:>::drop_slow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 217,874 ( 0.00%) ???:>::try_super_fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 217,265 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 217,152 ( 0.00%) /rust/deps/indexmap-2.14.0/src/map.rs:>::swap_remove:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 215,493 ( 0.00%) ???:> as rustc_data_structures::flat_map_in_place::FlatMapInPlace>>::flat_map_in_place::::{closure#0}, core::option::Option>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 215,407 ( 0.00%) ???:::walk::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 214,965 ( 0.00%) ???:::recover_vcs_conflict_marker [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 214,283 ( 0.00%) ???:::register_lints [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 213,932 ( 0.00%) ???:::add_import::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 213,641 ( 0.00%) ???:core::slice::sort::stable::drift::sort::<(rustc_mir_build::builder::scope::DropIdx, rustc_middle::mir::BasicBlock), <(rustc_mir_build::builder::scope::DropIdx, rustc_middle::mir::BasicBlock) as core::cmp::PartialOrd>::lt> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 213,436 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 213,371 ( 0.00%) ???:rustc_query_impl::query_impl::clauses_of::invoke_provider_fn::__rust_begin_short_backtrace'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 213,300 ( 0.00%) src/emap.c:ecache_evict 213,183 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/filter_map.rs:clippy_utils::macros::first_node_in_macro:: 213,165 ( 0.00%) ???:rustc_query_impl::query_impl::hir_attr_map::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 213,165 ( 0.00%) ???:rustc_query_impl::query_impl::shallow_lint_levels_on::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 213,109 ( 0.00%) include/jemalloc/internal/cache_bin.h:free_default 212,652 ( 0.00%) ???:::mk_fn_sig::, rustc_middle::ty::Ty>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 212,576 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:>::with::<::with::outer_expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 212,434 ( 0.00%) include/jemalloc/internal/tsd.h:pa_alloc 212,421 ( 0.00%) ???:pulldown_cmark::linklabel::scan_link_label_rest [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 212,332 ( 0.00%) ???:rustc_middle::lint::emit_lint_base::emit_lint_base_impl [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 212,274 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_qpath:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 212,214 ( 0.00%) ???:::reduce_and [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 211,689 ( 0.00%) ???:rustc_passes::dead::check_mod_deathness'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 211,445 ( 0.00%) ???:>, alloc::vec::into_iter::IntoIter>>, rustc_trait_selection::traits::predicates_for_generics<::lookup_method_for_operator::{closure#1}, ::lookup_method_for_operator::{closure#2}>::{closure#0}> as core::iter::traits::iterator::Iterator>::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 211,351 ( 0.00%) ???:>::reserve::do_reserve_and_handle:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 211,328 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 211,182 ( 0.00%) ???:>::fill_item::<>::identity_for_item::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 211,060 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 211,059 ( 0.00%) ???:::walk_::<::walk_always<::each_binding<::contains_explicit_ref_binding::{closure#0}>::{closure#0}>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 210,949 ( 0.00%) ???:::fallible_with_capacity:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 210,719 ( 0.00%) ???:::push_candidate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 210,078 ( 0.00%) ???:>::drop_and_maybe_poison'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 210,025 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/mod.rs:::check_fn 209,526 ( 0.00%) ???: as rustc_ast::visit::Visitor>::visit_item'2 [???] 209,097 ( 0.00%) ???:llvm::DenseMapBase, llvm::detail::DenseMapPair >, llvm::StringRef, llvm::cl::Option*, llvm::DenseMapInfo, llvm::detail::DenseMapPair >::moveFrom(llvm::DenseMap, llvm::detail::DenseMapPair >&) [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/libLLVM.so.23.1-rust-1.99.0-nightly] 209,070 ( 0.00%) ???:rustc_hir_analysis::check::wfcheck::receiver_is_valid'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 209,033 ( 0.00%) /rustc/84b36a78a28a63f134171c670be1932ffa2485f8/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/build/tikv-jemalloc-sys/80122c672fbe49ef/out/build/src/eset.c:eset_remove [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 208,842 ( 0.00%) ???:annotate_snippets::renderer::render::render_title [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 208,584 ( 0.00%) ???:::start_point [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 208,306 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/functions/mod.rs:::check_fn [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 207,903 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::span_matches_pat [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 207,828 ( 0.00%) ???:::normalize:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 207,710 ( 0.00%) ???:<[rustc_middle::ty::generic_args::GenericArg] as rustc_serialize::serialize::Encodable>::encode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 207,480 ( 0.00%) ???:::set_bindings_effective_visibilities [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 207,450 ( 0.00%) ???:rustc_hir::intravisit::walk_pat::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 207,142 ( 0.00%) ???:::decode_syntax_context [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 206,788 ( 0.00%) ???:rustc_query_impl::query_impl::type_of::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 206,280 ( 0.00%) ???:rustc_type_ir::relate::structurally_relate_tys::::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 205,913 ( 0.00%) ???:)>>::reserve_rehash::, rustc_hash::FxBuildHasher>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 205,453 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/res.rs:::check_expr 205,286 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:::check_impl_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 205,240 ( 0.00%) ???:core::ptr::drop_glue::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 205,070 ( 0.00%) ???:::type_dependent_def [???] 205,040 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 205,037 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 204,975 ( 0.00%) ???:rustc_query_impl::query_impl::defaultness::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 204,966 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_span::def_id::LocalDefId> as rustc_data_structures::stable_hash::StableHash>::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 204,694 ( 0.00%) ???:, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 204,108 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 203,813 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 203,606 ( 0.00%) ???:::check_overloaded_binop [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 203,343 ( 0.00%) include/jemalloc/internal/ticker.h:malloc_default 203,298 ( 0.00%) ???:>::reserve_rehash::>, false>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 202,960 ( 0.00%) ???:rustc_trait_selection::traits::wf::object_region_bounds [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 202,581 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 202,214 ( 0.00%) ???:::check_expr_post [???] 201,571 ( 0.00%) ???:, >::skip_norm_wip>, ::probe_single_ty_param_bound_for_assoc_item::{closure#0}::{closure#0}::{closure#0}>>::{closure#0}> as core::iter::traits::iterator::Iterator>::next'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 201,500 ( 0.00%) ???:::pat_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 201,192 ( 0.00%) ???:core::ptr::drop_glue::<[rustc_infer::infer::region_constraints::VerifyBound]> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 201,132 ( 0.00%) ???:, ::candidate_from_obligation_no_cache::{closure#1}>, core::option::Option>, , rustc_middle::traits::SelectionError>>::transpose>, core::result::Result> as core::iter::traits::iterator::Iterator>::next [???] 201,082 ( 0.00%) ???:rustc_ty_utils::layout::layout_of_uncached [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 200,438 ( 0.00%) include/jemalloc/internal/sz.h:pa_dalloc 200,392 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_expr::::check::{closure#0}>>'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 200,371 ( 0.00%) ???:::visit_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 200,088 ( 0.00%) ???:::source_callsite [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 199,665 ( 0.00%) ???:>::insert [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 199,633 ( 0.00%) include/jemalloc/internal/ph.h:malloc_default 199,440 ( 0.00%) ???:>, ())>>::reserve_rehash::>, (), rustc_hash::FxBuildHasher>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 199,336 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/suspicious_operation_groupings.rs:clippy_lints::suspicious_operation_groupings::if_statement_binops [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 199,196 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_lifetime [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 199,093 ( 0.00%) ???:, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 198,879 ( 0.00%) ???:::desugar_doc_comments::desugar_inner'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 198,692 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs:::check_path 198,047 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/methods/wrong_self_convention.rs:::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 197,697 ( 0.00%) ???: as rustc_data_structures::stable_hash::StableHash>::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 197,627 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 197,600 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 197,600 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 197,600 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 197,329 ( 0.00%) ???:::visit_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 197,239 ( 0.00%) ???:::lower_match_arms'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 196,777 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/mixed_read_write_in_expression.rs:::maybe_walk_expr'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 195,596 ( 0.00%) ???:rustc_ast::visit::visit_stmts:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 195,554 ( 0.00%) ???:::parse_ty_where_predicate_kind [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 195,508 ( 0.00%) ???:rustc_traits::codegen::codegen_select_candidate [???] 195,474 ( 0.00%) ???:thin_vec::drop_non_singleton::>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 195,470 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:>::walk_ref'2 195,325 ( 0.00%) ???:::has_dtor [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 194,842 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/cmp.rs:::meets 194,842 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:::meets 194,842 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs:::meets 194,722 ( 0.00%) ???:::parse_safety [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 194,263 ( 0.00%) ???:::mirror_stmts::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 193,581 ( 0.00%) ???:rustc_mir_dataflow::drop_flag_effects::on_all_children_bits::on_all_children_bits::<::apply_call_return_effect::{closure#0}::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 193,567 ( 0.00%) ???:rustc_mir_transform::mir_keys [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 193,456 ( 0.00%) ???:::mk_param_from_def [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 193,139 ( 0.00%) ???: as core::iter::traits::iterator::Iterator>::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 192,987 ( 0.00%) include/jemalloc/internal/tcache_inlines.h:free_default 192,877 ( 0.00%) ???:thin_vec::drop_non_singleton:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 192,815 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 192,679 ( 0.00%) ???:>::walk::::{closure#0}::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 192,465 ( 0.00%) ???:::lower_stmts'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 192,447 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_generic_param [???] 192,118 ( 0.00%) ???:::resolve_crate_root [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 192,027 ( 0.00%) ???:> as rustc_middle::query::caches::QueryCache>::for_each'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 191,875 ( 0.00%) ???:0x000000000000ad20 [/usr/lib/ld-linux-x86-64.so.2] 191,459 ( 0.00%) ???:rustc_middle::hir::map::crate_hash'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 191,281 ( 0.00%) ???:rustc_query_impl::query_impl::inherited_align::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 191,153 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with::::fold_to_region_vids>>::{closure#0}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 190,872 ( 0.00%) ???:::explicit_super_clauses_of'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 190,236 ( 0.00%) ???:rustc_span::edit_distance::sort_by_words [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 190,175 ( 0.00%) ???:::get_extern_module_with_lock [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 190,000 ( 0.00%) ???:rustc_query_impl::query_impl::check_well_formed::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 189,684 ( 0.00%) ???: as rustc_ast::visit::Visitor>::visit_fn [???] 188,413 ( 0.00%) ???:::register_obligation [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 188,373 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/string.rs:::check_attributes 188,285 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/raw_vec/mod.rs:::finish_grow [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 188,118 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_lint/src/context.rs:::check_attributes 188,118 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/raw_vec/mod.rs:clippy_lints::doc::suspicious_doc_comments::check 188,118 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mut_ptr.rs:clippy_lints::doc::suspicious_doc_comments::check 188,076 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/mod.rs:::check_attributes 188,019 ( 0.00%) ???: as core::clone::Clone>::clone::clone_non_singleton:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 187,795 ( 0.00%) ???:::check_tokens'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 187,200 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_expr [???] 187,017 ( 0.00%) ???:rustc_trait_selection::traits::project::opt_normalize_projection_term'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 186,956 ( 0.00%) /rust/deps/hashbrown-0.17.1/src/raw.rs:>::reserve_rehash::::{closure#0}> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 186,763 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_fn [???] 186,663 ( 0.00%) ???:::fork [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 185,791 ( 0.00%) ???:thin_vec::drop_non_singleton:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 185,658 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 185,638 ( 0.00%) ???:>::eval_rvalue_into_place [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 185,578 ( 0.00%) ???:::def_key:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 185,344 ( 0.00%) ???:::is_conditionally_const::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 185,329 ( 0.00%) ???:rustc_query_impl::plumbing::verify_query_key_hashes_inner::>, rustc_middle::query::erase::ErasedData<[u8; 16]>>>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 185,220 ( 0.00%) ???:::edition [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 185,140 ( 0.00%) ???:::visit_generic_param [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 185,057 ( 0.00%) ???:::as_rvalue [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 184,925 ( 0.00%) ???:pulldown_cmark::parse::item_to_event [???] 184,681 ( 0.00%) ???:rustc_mir_dataflow::drop_flag_effects::on_all_children_bits::on_all_children_bits::<::apply_call_return_effect::{closure#0}::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 184,480 ( 0.00%) ???:::probe_for_name'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 184,395 ( 0.00%) ???:::resolve_vars_if_possible::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 184,163 ( 0.00%) ???:::next_region_var [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 184,043 ( 0.00%) ???:::resolve_vars_if_possible::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 183,901 ( 0.00%) ???:>::tys [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 183,802 ( 0.00%) ???:::enforce_const_invariance [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 183,773 ( 0.00%) ???:::data_untracked [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 183,701 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/combined_early_pass.rs:::check_variant [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 183,219 ( 0.00%) ???:::hir_enclosing_body_owner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 182,846 ( 0.00%) ???:>::insert [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 182,833 ( 0.00%) ???: as rustc_infer::traits::engine::TraitEngine>::evaluate_obligations_error_on_ambiguity [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 182,648 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 182,309 ( 0.00%) ???:>, &rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg>>, >::skip_norm_wip>, rustc_type_ir::outlives::declared_bounds_from_definition::{closure#0}>, rustc_type_ir::outlives::declared_bounds_from_definition::{closure#1}>, rustc_type_ir::outlives::declared_bounds_from_definition::{closure#2}> as core::iter::traits::iterator::Iterator>::next'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 182,280 ( 0.00%) ???:::hash_one::<&std::path::PathBuf> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 182,212 ( 0.00%) ???:::visit::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 182,134 ( 0.00%) ???:>::register_bound'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 182,072 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/suspicious_operation_groupings.rs:clippy_lints::suspicious_operation_groupings::append_opt_vecs:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 181,849 ( 0.00%) ???:rustc_query_impl::query_impl::param_env_normalized_for_post_analysis::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 181,765 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/hir/map.rs:clippy_utils::macros::first_node_in_macro:: 181,725 ( 0.00%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 181,171 ( 0.00%) ???:>::try_grow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 181,104 ( 0.00%) ???:rustc_query_impl::plumbing::verify_query_key_hashes_inner::>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 181,048 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 180,980 ( 0.00%) ???:rustc_query_impl::query_impl::should_inherit_track_caller::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 180,792 ( 0.00%) ???:::visit_invoc [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 180,757 ( 0.00%) ???:::instantiate_opt'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 180,726 ( 0.00%) ???:>::relate_with_variance:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 180,697 ( 0.00%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 180,547 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/suspicious_trait_impl.rs:::check_expr 179,852 ( 0.00%) ???:::qualif_local:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 179,818 ( 0.00%) ???:::expect_lifetime [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 179,666 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/vec_init_then_push.rs:::check_expr 179,646 ( 0.00%) ???:::check_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 179,640 ( 0.00%) ???:rustc_query_impl::query_impl::assumed_wf_types::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 179,606 ( 0.00%) ???:::collect_bang'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 179,416 ( 0.00%) ???:rustc_query_impl::query_impl::nested_bodies_within::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 179,060 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:::hir 178,974 ( 0.00%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 178,794 ( 0.00%) ???:>::for_item::<>::identity_for_item::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 178,786 ( 0.00%) include/jemalloc/internal/tsd.h:malloc_default 178,666 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/collections/hash/map.rs:::check_generics 178,568 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 178,462 ( 0.00%) ???:::to_token_trees'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 178,203 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 178,188 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 177,996 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_ty::>'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 177,848 ( 0.00%) ???:rustc_query_impl::query_impl::object_lifetime_default::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 177,841 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/combined_late_pass.rs:::check_body [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 177,600 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 177,600 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 177,600 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 177,600 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 176,381 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_ty:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 176,254 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/mixed_read_write_in_expression.rs:::visit_expr'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 176,020 ( 0.00%) ???: as rustc_data_structures::flat_map_in_place::FlatMapInPlace>::flat_map_in_place::::{closure#0}, smallvec::SmallVec<[rustc_ast::ast::GenericParam; 1]>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 175,544 ( 0.00%) include/jemalloc/internal/arena_inlines_b.h:free_default 174,998 ( 0.00%) ???:::equate_trait_refs [???] 174,799 ( 0.00%) ???:thin_vec::drop_non_singleton:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 174,540 ( 0.00%) ???:::parse_limited_sym [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 174,476 ( 0.00%) ???:::register_wf_obligation [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 174,460 ( 0.00%) ???:rustc_query_impl::query_impl::resolve_bound_vars::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 174,449 ( 0.00%) ???:annotate_snippets::renderer::render::render'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 174,188 ( 0.00%) ???:::eq [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 174,046 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_nested_body'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 173,839 ( 0.00%) ???:<[rustc_hir::hir::AssocItemConstraint] as rustc_data_structures::stable_hash::StableHash>::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 173,792 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 173,329 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_expr::'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 172,961 ( 0.00%) ???:rustc_ty_utils::common_traits::is_trait_raw'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 172,425 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 172,304 ( 0.00%) ???:::brg_visit_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 172,181 ( 0.00%) ???:::check_generic_param [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 171,894 ( 0.00%) ???:::feed_visibility [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 171,876 ( 0.00%) include/jemalloc/internal/atomic.h:ecache_evict 171,739 ( 0.00%) ???:rustc_trait_selection::traits::query::type_op::implied_outlives_bounds::compute_implied_outlives_bounds_inner'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 171,239 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:, clippy_utils::macros::first_node_macro_backtrace::{closure#0}> as core::iter::traits::iterator::Iterator>::try_fold::<(), >::iter_try_fold::flatten, clippy_utils::macros::macro_backtrace::{closure#0}>, clippy_utils::macros::first_node_macro_backtrace::{closure#0}::{closure#0}>, (), core::ops::control_flow::ControlFlow, as core::iter::traits::iterator::Iterator>::try_fold::flatten, clippy_utils::macros::macro_backtrace::{closure#0}>, clippy_utils::macros::first_node_macro_backtrace::{closure#0}::{closure#0}>, (), core::ops::control_flow::ControlFlow, core::iter::traits::iterator::Iterator::find::check::{closure#0}>::{closure#0}>::{closure#0}, core::ops::control_flow::ControlFlow> 171,006 ( 0.00%) ???:::visit_method_receiver_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 170,902 ( 0.00%) ???:rustc_middle::lint::emit_lint_base::emit_lint_base_impl'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 170,834 ( 0.00%) ???:::eq_ctxt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 170,567 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/unused_io_amount.rs:::check_block [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 170,508 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/fold.rs:::instantiate_bound_regions_with_erased::> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 170,376 ( 0.00%) ???:::is_typeck_child [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 170,186 ( 0.00%) ???:::visit_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 170,038 ( 0.00%) ???:core::slice::sort::stable::quicksort::quicksort::::sort_by_key<&core::option::Option, , rustc_middle::ty::assoc::AssocItem> as core::iter::traits::collect::FromIterator<(core::option::Option, rustc_middle::ty::assoc::AssocItem)>>::from_iter, rustc_ty_utils::assoc::associated_items::{closure#0}>, ::new, rustc_ty_utils::assoc::associated_items::{closure#0}>>::{closure#0}>>::{closure#0}>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 169,812 ( 0.00%) ???:core::ptr::drop_glue::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 169,500 ( 0.00%) ???:rustc_expand::mbe::macro_check::check_nested_occurrences'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 169,449 ( 0.00%) ???:>::walk_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 169,305 ( 0.00%) ???:::fresh_args_for_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 169,263 ( 0.00%) ???:::visit_method_receiver_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 169,025 ( 0.00%) ???:::write_import_resolutions::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 168,958 ( 0.00%) /rust/deps/pulldown-cmark-0.11.3/src/parse.rs:>::make_code_span [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 168,847 ( 0.00%) ???:::look_ahead::::parse_self_param::{closure#2}::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 168,711 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:::check_expr_post 168,467 ( 0.00%) ???:>::fold_clauses [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 168,133 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 168,126 ( 0.00%) ???:::visit_where_predicate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 167,872 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/combined_late_pass.rs:::check_block_post [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 167,435 ( 0.00%) ???:thin_vec::drop_non_singleton:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 167,428 ( 0.00%) ???:::create_def [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 167,407 ( 0.00%) ???:rustc_query_impl::query_impl::sanitizer_settings_for::invoke_provider_fn::__rust_begin_short_backtrace'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 166,672 ( 0.00%) ???:rustc_query_impl::query_impl::named_variable_map::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 166,176 ( 0.00%) ???:rustc_hir_analysis::collect::impl_trait_header [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 165,682 ( 0.00%) ???:thin_vec::drop_non_singleton:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 165,671 ( 0.00%) ???:>>, (rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<>>, (rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [???] 165,548 ( 0.00%) src/emap.c:pa_dalloc 165,274 ( 0.00%) ???:>::steal [???] 164,970 ( 0.00%) ???:::visit_where_predicate_kind [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 164,776 ( 0.00%) ???:::visit_macro_invoc [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 164,450 ( 0.00%) ???:::ensure_source_file_source_present [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 163,956 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 163,740 ( 0.00%) ???:::choose_generics_over_qpath [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 163,644 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 163,601 ( 0.00%) src/pac.c:pa_alloc 163,407 ( 0.00%) ???:::par_opaques::::{closure#0} [???] 163,394 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:::check_impl_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 163,325 ( 0.00%) ???:::visit_body'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 163,307 ( 0.00%) ???:pulldown_cmark::firstpass::scan_paragraph_interrupt_no_table [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 163,108 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 162,517 ( 0.00%) ???:::parse_unspanned_seq::, ::parse_ty_tuple_or_parens::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 162,482 ( 0.00%) ???:>::encode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 162,447 ( 0.00%) ???:thin_vec::drop_non_singleton:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 162,344 ( 0.00%) ???:>::types_may_unify_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 161,941 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/raw_vec/mod.rs:>::reserve::do_reserve_and_handle:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 161,893 ( 0.00%) src/pac.c:tcache_bin_flush_small 161,639 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:::trim_start_matches::<::is_whitespace> 161,482 ( 0.00%) ???:::commit_from [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 161,091 ( 0.00%) ???:::resolve_type_vars_in_body'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 161,003 ( 0.00%) ???:rustc_hir_analysis::check_unused::check_unused_traits'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 160,897 ( 0.00%) ???:thin_vec::drop_non_singleton:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 160,595 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:::visit_qpath 160,325 ( 0.00%) ???:rustc_ast_lowering::index_ast [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 160,191 ( 0.00%) ???:::freeze_and_get_read_spans [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 160,056 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/combined_late_pass.rs:::check_body_post [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 159,751 ( 0.00%) ???:rustc_trait_selection::traits::specialize::specialization_graph_provider'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 159,537 ( 0.00%) ???:::walk_::<::walk_always<::each_binding<::contains_explicit_ref_binding::{closure#0}>::{closure#0}>::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 159,065 ( 0.00%) ???:rustc_lint::types::literal::lint_literal [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 159,013 ( 0.00%) ???:::fresh_args_for_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 158,844 ( 0.00%) ???:rustc_hir_analysis::check::wfcheck::enter_wf_checking_ctxt:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 158,701 ( 0.00%) ???:::visit_expr [???] 158,440 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_type_ir::binder::Binder>> as rustc_type_ir::relate::Relate>::relate::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 158,300 ( 0.00%) ???:rustc_query_impl::query_impl::fn_sig::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 158,236 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_type_ir::binder::Binder>> as rustc_type_ir::relate::Relate>::relate::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 157,945 ( 0.00%) ???:::check_stmt [???] 157,877 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 157,228 ( 0.00%) ???:::visit_qpath [???] 157,033 ( 0.00%) ???:>::super_visit_with::<::any_free_region_meets::RegionVisitor<::for_each_free_region::visit_const_operand::{closure#0}>::{closure#0}>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 156,989 ( 0.00%) src/extent.c:pa_dalloc 156,891 ( 0.00%) ???:rustc_query_impl::query_impl::named_variable_map::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 156,767 ( 0.00%) ???:::lower_generic_bound_predicate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 156,435 ( 0.00%) ???:::is_path_start [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 156,384 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/mod.rs:::meets 156,273 ( 0.00%) ???:::visit_param_bound [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 156,273 ( 0.00%) ???:::visit_param_bound [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 156,273 ( 0.00%) ???:::visit_param_bound [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 156,226 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/edition.rs:>::with::<::with::expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 156,226 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:>::with::<::with::expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 156,169 ( 0.00%) ???:rustc_traits::type_op::type_op_ascribe_user_type'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 156,050 ( 0.00%) ???:rustc_query_impl::query_impl::trivial_const::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 155,788 ( 0.00%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 155,763 ( 0.00%) ???:> as rustc_type_ir::visit::TypeVisitor>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 155,756 ( 0.00%) ???:rustc_query_impl::query_impl::variances_of::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 155,706 ( 0.00%) ???:::visit_generics [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 155,605 ( 0.00%) ???:::hir_body [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 155,316 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with::::renumber_regions<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg>, ::visit_args::{closure#0}>::{closure#0}>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 155,104 ( 0.00%) ???:::parent_module_from_def_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 154,805 ( 0.00%) ???:::declare [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 154,720 ( 0.00%) ???:::check_expr_if [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 154,566 ( 0.00%) ???:::is_desugaring [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 154,504 ( 0.00%) ???:::flat_map_stmt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 154,354 ( 0.00%) ???:core::ptr::drop_glue::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 154,268 ( 0.00%) ???:>>::grow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 154,219 ( 0.00%) ???:rustc_codegen_ssa::codegen_attrs::codegen_fn_attrs'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 154,207 ( 0.00%) ???:::visit_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 154,150 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/uninit_vec.rs:::check_block [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 153,999 ( 0.00%) ???:thin_vec::drop_non_singleton::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 153,421 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/casts/needless_type_cast.rs:rustc_hir::intravisit::walk_expr::>'2 153,400 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 153,378 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 153,156 ( 0.00%) ???:> as rustc_middle::query::caches::QueryCache>::for_each'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 152,859 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 152,835 ( 0.00%) ???:crossbeam_epoch::default::with_handle:: [???] 152,788 ( 0.00%) ???:::apply_call_return_effect [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 152,729 ( 0.00%) ???:>>>, (rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<>>>, (rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 152,537 ( 0.00%) ???:>::call_once [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 152,479 ( 0.00%) ???:::approx_declared_bounds_from_env [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 152,280 ( 0.00%) ???:::parse_coroutine_kind [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 152,269 ( 0.00%) ???:::local_def_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 151,960 ( 0.00%) ???:, ::get_lint_groups::{closure#0}>, ::get_lint_groups::{closure#1}>, ::lint_groups_iter::{closure#0}> as core::iter::traits::iterator::Iterator>::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 151,904 ( 0.00%) ???:::try_new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 151,848 ( 0.00%) ???:::check_case [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 151,844 ( 0.00%) ???:::symbol_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 151,840 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:>::with::<::with::outer_expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 151,659 ( 0.00%) ???:rustc_query_impl::query_impl::param_env_normalized_for_post_analysis::invoke_provider_fn::__rust_begin_short_backtrace'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 151,506 ( 0.00%) ???:rustc_hir_analysis::constrained_generic_params::identify_constrained_generic_params [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 151,481 ( 0.00%) ???:>>::walk_ref [???] 151,309 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 151,308 ( 0.00%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 151,300 ( 0.00%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 151,033 ( 0.00%) /rust/deps/hashbrown-0.17.1/src/map.rs:::check 150,905 ( 0.00%) ???:::maybe_report_lifetime_uses [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 150,816 ( 0.00%) ???:rustc_query_impl::query_impl::codegen_fn_attrs::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 150,801 ( 0.00%) ???: as rustc_type_ir::fold::TypeFoldable>::fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 150,683 ( 0.00%) ???:rustc_query_impl::plumbing::verify_query_key_hashes_inner::), rustc_middle::query::erase::ErasedData<[u8; 16]>>>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 150,619 ( 0.00%) ???:::check_impl_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 150,380 ( 0.00%) ???:>>::walk_ref [???] 150,303 ( 0.00%) ???:::hir_impl_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 150,136 ( 0.00%) ???:rustc_mir_dataflow::drop_flag_effects::on_all_children_bits::on_all_children_bits::::apply_switch_int_edge_effect::{closure#0}>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 150,040 ( 0.00%) ???: as rustc_type_ir::fold::TypeFoldable>::fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 150,012 ( 0.00%) ???:::add_location [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 149,940 ( 0.00%) ???:>::fold_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 149,842 ( 0.00%) ???:::visit_assoc_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 149,770 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 149,765 ( 0.00%) include/jemalloc/internal/bit_util.h:tcache_bin_flush_small 149,733 ( 0.00%) ???:::eq [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 149,539 ( 0.00%) ???:>::super_fold_with::::visit_rvalue::{closure#1}>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 149,160 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 149,044 ( 0.00%) ???:::remap_opaque_captures::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 148,998 ( 0.00%) ???:>::decode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 148,781 ( 0.00%) ???:>::insert [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 148,538 ( 0.00%) ???:::prepend [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 148,380 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/visitors.rs:rustc_hir::intravisit::walk_expr::>'2 147,972 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/mod.rs:, ::check_item_kind::{closure#0}>, ::check_item_kind::{closure#1}>, core::option::Option> as core::iter::traits::iterator::Iterator>::next [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 147,905 ( 0.00%) ???:::visit_generics [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 147,837 ( 0.00%) ???:>::encode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 147,681 ( 0.00%) ???:rustc_query_impl::plumbing::verify_query_key_hashes_inner::>, rustc_middle::query::erase::ErasedData<[u8; 8]>>>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 147,589 ( 0.00%) ???:::filter_map_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 147,450 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/iter.rs:::trim_matches::<::is_whitespace> 147,318 ( 0.00%) ???:rustc_metadata::rmeta::decoder::cstore_impl::provide_extern::attrs_for_def [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 147,150 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/needless_maybe_sized.rs:::check_generics [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 147,136 ( 0.00%) ???:rustc_query_impl::query_impl::late_bound_vars_map::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 146,521 ( 0.00%) ???:rustc_query_impl::plumbing::verify_query_key_hashes_inner::>>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 146,374 ( 0.00%) ???:rustc_query_impl::query_impl::def_kind::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 146,333 ( 0.00%) ???:::maybe_new_source_scope [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 145,795 ( 0.00%) ???:>, &rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg>>, >::skip_norm_wip>, rustc_type_ir::outlives::declared_bounds_from_definition::{closure#0}>, rustc_type_ir::outlives::declared_bounds_from_definition::{closure#1}>, rustc_type_ir::outlives::declared_bounds_from_definition::{closure#2}> as core::iter::traits::iterator::Iterator>::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 145,778 ( 0.00%) ???:::decode_symbol [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 145,233 ( 0.00%) ???:::walk_::<::pat_error_reported::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 145,230 ( 0.00%) ???:::bound_is_met [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 145,155 ( 0.00%) ???:::test_candidates'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 145,124 ( 0.00%) ???:::named_bound_var [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 145,110 ( 0.00%) ???:::opt_item_name'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 145,056 ( 0.00%) ???:rustc_query_impl::query_impl::intrinsic_raw::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 144,941 ( 0.00%) ???:, (), rustc_hash::FxBuildHasher>>::contains_key::> [???] 144,331 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_pat::> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 144,246 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/combined_early_pass.rs:::check_attribute [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 144,090 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:clippy_lints::lifetimes::could_use_elision [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 143,908 ( 0.00%) ???:>::decode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 143,760 ( 0.00%) ???:::visit_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 143,685 ( 0.00%) ???:rustc_query_impl::query_impl::constness::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 143,605 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/nonstandard_macro_braces.rs:::check_mac_def::check_ts'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 143,595 ( 0.00%) ???:::add_annotation_to_file'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 143,470 ( 0.00%) ???:thin_vec::drop_non_singleton:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 143,456 ( 0.00%) /rust/deps/indexmap-2.14.0/src/map.rs:>::get:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 143,197 ( 0.00%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 143,155 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:clippy_lints::doc::doc_suspicious_footnotes::check 142,955 ( 0.00%) ???:rustc_query_impl::query_impl::late_bound_vars_map::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 142,882 ( 0.00%) ???:core::str::count::char_count_general_case [???] 142,628 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 142,623 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 142,611 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/unconditional_recursion.rs:::check_fn [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 142,560 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/mod.rs:clippy_utils::macros::first_node_in_macro:: 142,470 ( 0.00%) ???: as core::clone::Clone>::clone [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 142,262 ( 0.00%) ???:::visit_stmt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 142,257 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 142,242 ( 0.00%) ???:rustc_hir::intravisit::walk_unambig_ty:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 141,857 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/attrs/mod.rs:::check_attribute [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 141,833 ( 0.00%) ???: as rustc_ast::visit::Visitor>::visit_stmt::{closure#0}'2 [???] 141,615 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/disallowed_names.rs:::check_pat [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 141,320 ( 0.00%) ???:rustc_mir_dataflow::drop_flag_effects::on_all_children_bits::on_all_children_bits::<&mut rustc_mir_dataflow::drop_flag_effects::drop_flag_effects_for_location<::apply_primary_statement_effect::{closure#0}>::{closure#2}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 141,293 ( 0.00%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 140,668 ( 0.00%) ???:rustc_query_impl::query_impl::thir_abstract_const::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 140,664 ( 0.00%) ???:::imported_source_file::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 140,573 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/misc_early/unneeded_wildcard_pattern.rs:::check_pat 140,520 ( 0.00%) ???:::is_trait_lang_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 140,280 ( 0.00%) ???:::confirm_auto_impl_candidate::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 140,171 ( 0.00%) ???:>; 1]> as core::iter::traits::collect::Extend>>>::extend::>>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 140,018 ( 0.00%) ???:::resolve_ty_and_res_fully_qualified_call'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 139,665 ( 0.00%) ???:rustc_query_impl::query_impl::associated_item::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 139,308 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 139,151 ( 0.00%) ???:>::reserve_rehash::, rustc_middle::middle::privacy::EffectiveVisibility>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 139,113 ( 0.00%) ???:>::fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 138,973 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 138,757 ( 0.00%) ???:::visit_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 138,235 ( 0.00%) ???:rustc_ast::visit::walk_item_inner::> [???] 138,015 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/functions/must_use.rs:clippy_lints::functions::must_use::check_impl_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 137,835 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_expr::{closure#0}::{closure#0} [???] 137,712 ( 0.00%) ???:rustc_query_impl::query_impl::param_env_normalized_for_post_analysis::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 137,610 ( 0.00%) ???:rustc_query_impl::query_impl::thir_abstract_const::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 137,526 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/mod.rs:, clippy_utils::macros::first_node_macro_backtrace::{closure#0}> as core::iter::traits::iterator::Iterator>::try_fold::<(), >::iter_try_fold::flatten, clippy_utils::macros::macro_backtrace::{closure#0}>, clippy_utils::macros::first_node_macro_backtrace::{closure#0}::{closure#0}>, (), core::ops::control_flow::ControlFlow, as core::iter::traits::iterator::Iterator>::try_fold::flatten, clippy_utils::macros::macro_backtrace::{closure#0}>, clippy_utils::macros::first_node_macro_backtrace::{closure#0}::{closure#0}>, (), core::ops::control_flow::ControlFlow, core::iter::traits::iterator::Iterator::find::check::{closure#0}>::{closure#0}>::{closure#0}, core::ops::control_flow::ControlFlow> 137,520 ( 0.00%) ???:::body_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 137,430 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 137,418 ( 0.00%) ???:rustc_query_impl::query_impl::shallow_lint_levels_on::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 137,223 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:rustc_hir::intravisit::walk_path::> 137,029 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::>, rustc_middle::query::erase::ErasedData<[u8; 16]>>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 136,961 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_block'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 136,896 ( 0.00%) ???:>::reserve_rehash::>, false>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 136,720 ( 0.00%) /rust/deps/hashbrown-0.17.0/src/raw.rs:, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::get:: 136,576 ( 0.00%) ???:::probe_trait_that_defines_assoc_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 136,240 ( 0.00%) ???:::flat_map_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 136,066 ( 0.00%) ???:::walk [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 136,000 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/lib.rs:::check_expr 135,964 ( 0.00%) ???:>::super_fold_with::::replace_free_regions_with_nll_infer_vars::{closure#0}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 135,840 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/lib.rs:::check_expr 135,831 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mut_ptr.rs:::check_attributes 135,827 ( 0.00%) src/eset.c:tcache_bin_flush_small 135,785 ( 0.00%) ???:::probe_ty_param_bounds [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 135,780 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 135,575 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_nested_body'2 [???] 135,529 ( 0.00%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 135,473 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/collections/btree/search.rs:::visit_expr'2 135,443 ( 0.00%) ???:>::reserve_rehash::>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 135,223 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:::check_expr 135,223 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:::check_expr 135,223 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:::check_expr 135,223 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:::check_expr 135,223 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:::check_expr 135,217 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:::check_expr 134,945 ( 0.00%) ???:>>::collect_and_apply::>, >::skip_norm_wip>, ::mk_clauses_from_iter>, >::skip_norm_wip>, rustc_middle::ty::predicate::Clause>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 134,538 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 134,468 ( 0.00%) ???:::is_conditionally_const:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 134,330 ( 0.00%) ???:>::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 134,001 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::>, rustc_middle::query::erase::ErasedData<[u8; 32]>>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 133,899 ( 0.00%) ???:>::try_grow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 133,795 ( 0.00%) ???:>::visit_region [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 133,518 ( 0.00%) ???:rustc_traits::evaluate_obligation::evaluate_obligation [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 133,465 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/loops/while_let_on_iterator.rs:clippy_lints::loops::while_let_on_iterator::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 133,327 ( 0.00%) ???:::resolve_and_cache_rustdoc_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 133,308 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_in_const_context [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 133,271 ( 0.00%) ???:::probe_ty_param_bounds'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 133,248 ( 0.00%) ???:>::reserve_rehash::, ()>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 133,200 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_lint/src/context.rs:::check_expr 133,200 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/control_flow.rs:clippy_lints::operators::eq_op::check_assert 133,190 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/cognitive_complexity.rs:::check_fn [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 133,037 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_qpath:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 131,957 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 131,702 ( 0.00%) ???:>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 131,593 ( 0.00%) ???:rustc_hir::intravisit::walk_pat::>'2 [???] 131,523 ( 0.00%) /rust/deps/pulldown-cmark-0.11.3/src/parse.rs:>::handle_inline_pass1 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 131,422 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_pat 131,422 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:clippy_lints::matches::rest_pat_in_fully_bound_struct::check 131,391 ( 0.00%) ???:::trait_is_auto [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 131,352 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/combined_early_pass.rs:::check_ident [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 131,251 ( 0.00%) ???:::find_work [???] 131,021 ( 0.00%) ???:rustc_query_impl::query_impl::asyncness::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 130,935 ( 0.00%) ???:rustc_query_impl::query_impl::should_inherit_track_caller::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 130,932 ( 0.00%) ???:::record_lifetime_use [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 130,922 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_lint/src/levels.rs:::check_attributes 130,666 ( 0.00%) src/sz.c:tcache_bin_flush_small 130,617 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/lib.rs:clippy_utils::is_expn_of 130,613 ( 0.00%) ???:rustc_infer::infer::canonical::query_response::make_query_region_constraints [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 130,612 ( 0.00%) ???:::assemble_candidates_from_impls::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 130,523 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/empty_line_after.rs:::new [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 130,496 ( 0.00%) ???:::as_str [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 130,464 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/swap.rs:::check_block [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 130,416 ( 0.00%) ???:rustc_query_impl::query_impl::opaque_types_defined_by::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 130,416 ( 0.00%) ???:rustc_query_impl::query_impl::used_trait_imports::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 130,372 ( 0.00%) ???:rustc_query_impl::query_impl::region_scope_tree::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 130,240 ( 0.00%) ???:rustc_query_impl::query_impl::mir_built::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 130,159 ( 0.00%) ???:> as core::iter::traits::collect::FromIterator>>::from_iter::>>>, ::confirm_builtin_unsize_candidate::{closure#5}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 130,086 ( 0.00%) include/jemalloc/internal/tsd_tls.h:malloc_default 130,084 ( 0.00%) ???:> as rustc_middle::query::caches::QueryCache>::for_each [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 130,080 ( 0.00%) ???:::name [???] 130,007 ( 0.00%) ???:>>>::complete::>, rustc_middle::query::erase::ErasedData<[u8; 32]>>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 129,831 ( 0.00%) ???:::trait_def_id [???] 129,812 ( 0.00%) ???:rustc_query_impl::query_impl::fn_arg_idents::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 129,803 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_ast/src/visit.rs:>::walk_ref [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 129,800 ( 0.00%) ???:rustc_query_impl::query_impl::nested_bodies_within::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 129,548 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 129,498 ( 0.00%) ???:::visit_local [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 129,448 ( 0.00%) ???:rustc_query_impl::query_impl::typeck_root::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 129,338 ( 0.00%) ???:> as rustc_ast::visit::Visitable>>::visit [???] 129,033 ( 0.00%) ???:rustc_hir::intravisit::walk_generic_args::<::check_type_for_external_abi_fnptr::FnPtrFinder> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 128,945 ( 0.00%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 128,945 ( 0.00%) ???:rustc_middle::thir::visit::walk_pat::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 128,582 ( 0.00%) ???:rustc_ast::visit::visit_stmts::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 128,436 ( 0.00%) ???:rustc_query_impl::query_impl::coroutine_kind::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 128,379 ( 0.00%) ???:>::decode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 128,373 ( 0.00%) ???:rustc_trait_selection::traits::fulfill::mk_pending [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 128,058 ( 0.00%) ???:rustc_traits::type_op::type_op_prove_predicate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 127,886 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:::visit_ty [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 127,563 ( 0.00%) ???:::visit_const_operand [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 127,452 ( 0.00%) ???:rustc_query_impl::query_impl::thir_body::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 127,412 ( 0.00%) ???:::mk_param_from_def'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 126,963 ( 0.00%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 126,799 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 126,785 ( 0.00%) ???:>>>, (rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<>>>, (rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 126,763 ( 0.00%) ???:::walk::<::could_be_never_pattern::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 126,356 ( 0.00%) ???:::write [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 126,208 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:>::walk_ref'2 126,082 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/cmp.rs:::visit_pat 125,974 ( 0.00%) ???:rustc_query_impl::query_impl::codegen_fn_attrs::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 125,967 ( 0.00%) ???:>::complete::>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 125,890 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/needless_else.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 125,820 ( 0.00%) ???:>::fold_predicate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 125,526 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/functions/result.rs:clippy_lints::functions::result::result_err_ty [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 125,474 ( 0.00%) ???:__cxa_atexit [/usr/lib/libc.so.6] 125,412 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_lint/src/context.rs:::check_attributes_post 125,412 ( 0.00%) ???:::is_descendant_of [???] 125,302 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/utils/author.rs:clippy_lints::utils::author::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 125,238 ( 0.00%) ???:::parse_borrowed_pointee [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 125,108 ( 0.00%) ???:::normalize:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 124,979 ( 0.00%) ???:::fully_expand_fragment'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 124,937 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/consts.rs:::expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 124,901 ( 0.00%) ???:rustc_mir_dataflow::drop_flag_effects::on_all_children_bits::on_all_children_bits::::apply_switch_int_edge_effect::{closure#0}>::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 124,890 ( 0.00%) src/bitmap.c:malloc_default 124,794 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 124,773 ( 0.00%) ???:::instantiate_canonical::>>::{closure#1} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 124,521 ( 0.00%) ???:::lower_use_tree [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 124,425 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_fn_decl [???] 124,409 ( 0.00%) ???:rustc_query_impl::query_impl::upvars_mentioned::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 124,209 ( 0.00%) ???:>::reserve_rehash::>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 124,206 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_pat::'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 124,040 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/hygiene.rs:clippy_utils::macros::root_macro_call 123,825 ( 0.00%) ???:rustc_query_impl::plumbing::verify_query_key_hashes_inner::, rustc_middle::query::erase::ErasedData<[u8; 24]>>>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 123,445 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/functions/duplicate_underscore_argument.rs:clippy_lints::functions::duplicate_underscore_argument::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 123,267 ( 0.00%) ???:core::slice::sort::stable::quicksort::quicksort::::sort_by_key<&core::option::Option, , rustc_middle::ty::assoc::AssocItem> as core::iter::traits::collect::FromIterator<(core::option::Option, rustc_middle::ty::assoc::AssocItem)>>::from_iter, rustc_ty_utils::assoc::associated_items::{closure#0}>, ::new, rustc_ty_utils::assoc::associated_items::{closure#0}>>::{closure#0}>>::{closure#0}>::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 123,224 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/redundant_field_names.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 123,091 ( 0.00%) ???:rustc_query_impl::query_impl::impl_trait_header::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 123,014 ( 0.00%) ???:>>::walk_ref [???] 122,886 ( 0.00%) ???:::eq_trace::>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 122,791 ( 0.00%) ???:::anonymize_bound_vars::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 122,766 ( 0.00%) ???:rustc_query_impl::query_impl::inherited_align::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 122,752 ( 0.00%) ???:, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 122,520 ( 0.00%) ???:rustc_hir::intravisit::walk_generics:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 122,482 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 122,454 ( 0.00%) ???:<::find_lifetime_for_self::FindReferenceVisitor as rustc_ast::visit::Visitor>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 122,352 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs:>::with::<::with::outer_expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 122,317 ( 0.00%) ???:::demand_suptype_with_origin'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 122,298 ( 0.00%) /rust/deps/thin-vec-0.2.19/src/lib.rs:>::walk_ref'2 121,923 ( 0.00%) ???:rustc_hir::intravisit::walk_generic_args:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 121,913 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:::visit_arm 121,902 ( 0.00%) ???:rustc_query_impl::query_impl::lower_to_hir::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 121,822 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 121,802 ( 0.00%) ???:>::fold_clauses'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 121,671 ( 0.00%) ???:>::drop_and_maybe_poison'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 121,459 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs: as alloc::vec::spec_from_iter_nested::SpecFromIterNested<(rustc_span::span_encoding::Span, alloc::string::String), core::iter::adapters::filter_map::FilterMap, clippy_lints::doc::suspicious_doc_comments::collect_doc_replacements::{closure#0}>>>::from_iter 121,355 ( 0.00%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 121,240 ( 0.00%) /rust/deps/indexmap-2.14.0/src/map.rs:>::get_mut:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 120,698 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:::check_expr 120,641 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/escape.rs:::check_fn [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 120,604 ( 0.00%) ???:rustc_query_impl::query_impl::check_liveness::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 120,560 ( 0.00%) ???:rustc_query_impl::query_impl::mir_borrowck::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 120,539 ( 0.00%) ???:::check_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 120,433 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/almost_complete_range.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 120,271 ( 0.00%) ???:::lookup_line [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 120,181 ( 0.00%) ???:rustc_hir_analysis::check::wfcheck::check_type_defn'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 119,894 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/large_include_file.rs:::check_attribute [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 119,798 ( 0.00%) ???:rustc_hir::intravisit::walk_generic_args::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 119,655 ( 0.00%) ???:::visit_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 119,466 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::new 119,376 ( 0.00%) ???:::parse_generics [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 118,978 ( 0.00%) ???:>::for_item::<>::identity_for_item::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 118,893 ( 0.00%) ???:, rustc_middle::query::erase::ErasedData<[u8; 16]>> as rustc_middle::query::caches::QueryCache>::for_each'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 118,861 ( 0.00%) ???:rustc_const_eval::const_eval::eval_queries::eval_to_allocation_raw_provider'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 118,840 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/dep_graph/graph.rs:clippy_utils::trait_ref_of_method 118,652 ( 0.00%) ???:>>::drop_slow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 118,422 ( 0.00%) ???:rustc_query_impl::query_impl::mir_promoted::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 118,353 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/res.rs:clippy_utils::res::MaybeQPath::res::f [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 118,336 ( 0.00%) ???:rustc_mir_build::builder::matches::push_sub_branch_bindings::, rustc_mir_build::builder::matches::sub_branch_bindings::{closure#0}>, core::array::iter::IntoIter<&[rustc_mir_build::builder::matches::SubpatternBindings], 1>>, rustc_mir_build::builder::matches::sub_branch_bindings::{closure#1}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 117,968 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_poly_trait_ref [???] 117,913 ( 0.00%) ???:::annotated_lines'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 117,866 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/types/mod.rs:::check_fn [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 117,864 ( 0.00%) ???:pulldown_cmark::scanners::unescape::<&str> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 117,711 ( 0.00%) ???:::lower_resolved_assoc_item_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 117,585 ( 0.00%) ???:rustc_query_impl::query_impl::sanitizer_settings_for::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 117,477 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 117,439 ( 0.00%) ???:>::types_may_unify_inner'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 117,285 ( 0.00%) ???:>::fold_binder::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 117,160 ( 0.00%) ???:>::rustc_entry [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 117,137 ( 0.00%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 116,844 ( 0.00%) ???:::visit_block'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 116,811 ( 0.00%) include/jemalloc/internal/atomic.h:pa_dalloc 116,473 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 116,411 ( 0.00%) ???:rustc_hir::intravisit::walk_pat::>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 116,394 ( 0.00%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 116,343 ( 0.00%) ???:::instantiate_binder_with_fresh_vars::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 116,219 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 116,114 ( 0.00%) ???:::flat_map_generic_param [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 116,048 ( 0.00%) include/jemalloc/internal/edata.h:realloc 115,453 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_ty::'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 115,289 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_serialize::serialize::Decodable>::decode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 114,858 ( 0.00%) ???:::try_fold_free_or_assoc'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 114,792 ( 0.00%) ???:>, ::add_wf_preds_for_trait_pred::{closure#0}> as core::iter::traits::iterator::Iterator>::next'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 114,548 ( 0.00%) ???:rustc_trait_selection::traits::normalize::normalize_with_depth_to::>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 114,456 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_expr 114,300 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_qpath:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 114,192 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/fold.rs:::instantiate_bound_regions_with_erased::> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 113,696 ( 0.00%) ???:rustc_query_impl::query_impl::compare_impl_item::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 113,270 ( 0.00%) ???:::with_parent [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 113,256 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 113,069 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_serialize::serialize::Decodable>::decode'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 112,914 ( 0.00%) ???:rustc_type_ir::relate::combine::combine_ty_args::>::relate_ty_args::{closure#0}::{closure#0}>::{closure#0}>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 112,866 ( 0.00%) ???: as <[_]>::to_vec_in::ConvertVec>::to_vec:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 112,748 ( 0.00%) ???:>::get_placeable [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 112,632 ( 0.00%) ???:rustc_query_impl::query_impl::check_match::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 112,632 ( 0.00%) ???:rustc_query_impl::query_impl::check_tail_calls::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 112,632 ( 0.00%) ???:rustc_query_impl::query_impl::has_ffi_unwind_calls::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 112,630 ( 0.00%) ???:rustc_errors::annotate_snippet_emitter_writer::collect_annotations [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 112,485 ( 0.00%) ???:::fmt [???] 112,482 ( 0.00%) ???:::demand_suptype_with_origin [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 112,400 ( 0.00%) ???:::needs_coroutine_by_move_body_def_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 112,079 ( 0.00%) ???:::visit_operand [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 112,051 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/empty_line_after.rs:::check_item_kind [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 111,991 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:clippy_utils::msrvs::check_attrs:: 111,991 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/non_expressive_names.rs:::visit_pat'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 111,901 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:::check_methods [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 111,812 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 111,607 ( 0.00%) ???:::require_type_is_sized'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 111,600 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs:::check_ty 111,258 ( 0.00%) ???:>::insert [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 111,226 ( 0.00%) ???:::walk_::<::necessary_variants::{closure#0}>'2 [???] 111,050 ( 0.00%) ???:>::get_pattern'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 110,928 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [???] 110,911 ( 0.00%) ???:rustc_hir::intravisit::walk_pat::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 110,869 ( 0.00%) ???:rustc_mir_dataflow::rustc_peek::sanity_check [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 110,868 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/matches/collapsible_match.rs:clippy_lints::matches::collapsible_match::check_match [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 110,567 ( 0.00%) ???:>::super_fold_with::::renumber_regions<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg>, ::visit_args::{closure#0}>::{closure#0}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 110,185 ( 0.00%) ???:::parse_inner_attributes [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 109,956 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/empty_line_after.rs:::check_impl_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 109,785 ( 0.00%) ???:rustc_query_impl::query_impl::is_copy_raw::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 109,756 ( 0.00%) ???:std::path::compare_components [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 109,599 ( 0.00%) ???:>::copy_op_no_validate:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 109,542 ( 0.00%) ???:rustc_span::edit_distance::edit_distance'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 109,345 ( 0.00%) /rust/deps/scoped-tls-1.0.1/src/lib.rs:>::with::<::as_str::{closure#0}, &str> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 109,144 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/non_expressive_names.rs:::visit_arm [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 109,143 ( 0.00%) ???:::decode_symbol'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 108,951 ( 0.00%) ???:::sub_regions [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 108,666 ( 0.00%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 108,656 ( 0.00%) ???:::span_to_locations [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 108,556 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_lints::unit_types::unit_cmp::check 108,448 ( 0.00%) /rust/deps/rustc-hash-2.1.1/src/lib.rs:>::insert 108,222 ( 0.00%) ???:>::complete::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 108,201 ( 0.00%) ???:::parse_item_impl [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 108,162 ( 0.00%) ???:::next_ty_vid_in_universe [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 107,872 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 107,848 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::, rustc_middle::dep_graph::graph::DepNodeIndex>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 107,828 ( 0.00%) include/jemalloc/internal/sz.h:ecache_evict 107,482 ( 0.00%) ???:::enforce_const_invariance'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 107,478 ( 0.00%) ???:::walk::<::resolve_pattern_inner::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 107,467 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/functions/result.rs:clippy_lints::functions::result::check_impl_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 107,466 ( 0.00%) ???:::reserve_and_set_dedup [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 107,465 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/hir.rs:::check_attributes 107,217 ( 0.00%) ???:rustc_hir::intravisit::walk_pat::<::collect_taits_declared_in_body::TaitInBodyFinder>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 107,176 ( 0.00%) ???:rustc_ty_utils::implied_bounds::assumed_wf_types'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 107,135 ( 0.00%) ???:rustc_trait_selection::traits::impossible_clauses'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 107,057 ( 0.00%) ???:::eat_token_lit [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 106,959 ( 0.00%) ???:rustc_query_impl::query_impl::check_liveness::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 106,797 ( 0.00%) ???:rustc_hir::intravisit::walk_pat::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 106,445 ( 0.00%) ???:rustc_trait_selection::traits::normalize::normalize_with_depth_to::>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 106,340 ( 0.00%) ???:>::reserve_one_unchecked [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 106,210 ( 0.00%) ???:::check_expr_struct_fields [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 106,200 ( 0.00%) ???:rustc_query_impl::query_impl::check_unsafety::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 105,922 ( 0.00%) ???:::visit_generics [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 105,844 ( 0.00%) ???:::instantiate_binder_with_fresh_vars::ToFreshVars> as rustc_type_ir::fold::TypeFolder>::fold_binder::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 105,777 ( 0.00%) ???:::then_else_break_inner'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 105,600 ( 0.00%) ???:::span [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 105,556 ( 0.00%) /rust/deps/hashbrown-0.17.1/src/raw.rs:>::insert 105,321 ( 0.00%) ???:llvm::cl::Option::Option(llvm::cl::NumOccurrencesFlag, llvm::cl::OptionHidden) [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/libLLVM.so.23.1-rust-1.99.0-nightly] 105,296 ( 0.00%) ???:> as rustc_ast::visit::Visitable>>::visit [???] 105,214 ( 0.00%) ???:::insert_blindly [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 105,154 ( 0.00%) ???:::parse_fn'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 105,140 ( 0.00%) ???:::list_from_tokens [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 104,954 ( 0.00%) ???:>::reserve_rehash::>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 104,806 ( 0.00%) ???:core::ptr::drop_glue::>; 1]>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 104,586 ( 0.00%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 104,523 ( 0.00%) ???:>>::walk_ref'2 [???] 104,256 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/cmp.rs:::meets 104,245 ( 0.00%) ???:::is_closure_like [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 104,120 ( 0.00%) ???:rustc_query_impl::query_impl::check_coroutine_obligations::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 104,120 ( 0.00%) ???:rustc_query_impl::query_impl::check_transmutes::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 103,944 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/combined_late_pass.rs:::check_generics [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 103,916 ( 0.00%) ???:::list_from_tokens'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 103,830 ( 0.00%) ???:pulldown_cmark::scanners::scan_link_dest [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 103,731 ( 0.00%) ???:::next'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 103,725 ( 0.00%) ???:rustc_hir::intravisit::walk_pat::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 103,725 ( 0.00%) ???:rustc_hir::intravisit::walk_pat::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 103,725 ( 0.00%) ???:rustc_hir::intravisit::walk_pat::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 103,725 ( 0.00%) ???:rustc_hir::intravisit::walk_pat::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 103,711 ( 0.00%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 103,685 ( 0.00%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 103,462 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 103,431 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/non_expressive_names.rs:clippy_lints::non_expressive_names::do_check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 103,080 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/tabs_in_doc_comments.rs:::check_attribute [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 102,964 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::), rustc_middle::query::erase::ErasedData<[u8; 16]>>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 102,895 ( 0.00%) ???:rustc_hir::intravisit::walk_pat::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 102,853 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_ty:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 102,703 ( 0.00%) ???:rustc_hir::intravisit::walk_pat::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 102,682 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/option_env_unwrap.rs:::check_expr 102,583 ( 0.00%) ???:rustc_hir_analysis::outlives::implicit_infer::insert_required_clauses_to_be_wf [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 102,510 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::, rustc_middle::dep_graph::graph::DepNodeIndex>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 102,506 ( 0.00%) ???:>>>::complete::>, rustc_middle::query::erase::ErasedData<[u8; 8]>>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 102,220 ( 0.00%) ???:::check_snake_case [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 102,140 ( 0.00%) ???:rustc_expand::mbe::macro_check::check_ops_is_prefix [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 102,120 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs: as alloc::vec::spec_from_iter_nested::SpecFromIterNested, core::slice::iter::Iter>>>>::from_iter [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 102,086 ( 0.00%) ???:rustc_hir::intravisit::walk_pat::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 102,040 ( 0.00%) ???:::resolve_regions::<[rustc_middle::ty::Ty; 0]> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 101,817 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/methods/wrong_self_convention.rs:clippy_lints::methods::wrong_self_convention::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 101,682 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/needless_question_mark.rs:::check_expr 101,668 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/num/uint_macros.rs:::finish_grow 101,433 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 101,361 ( 0.00%) ???:zerotrie::reader::step_parameterized::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 101,138 ( 0.00%) ???:core::slice::sort::stable::drift::sort::::sort_by_key<&core::option::Option, , rustc_middle::ty::assoc::AssocItem> as core::iter::traits::collect::FromIterator<(core::option::Option, rustc_middle::ty::assoc::AssocItem)>>::from_iter, rustc_ty_utils::assoc::associated_items::{closure#0}>, ::new, rustc_ty_utils::assoc::associated_items::{closure#0}>>::{closure#0}>>::{closure#0}>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 100,980 ( 0.00%) ???:>, 9>, core::iter::adapters::map::Map>, core::iter::adapters::copied::Copied>>>, rustc_type_ir::relate::combine::combine_ty_args>::relate_ty_args::{closure#0}::{closure#0}>::{closure#0}>::{closure#0}>>, core::result::Result>> as core::iter::traits::iterator::Iterator>::try_fold::<(), core::iter::traits::iterator::Iterator::try_for_each::call, core::ops::control_flow::ControlFlow::Break>::{closure#0}, core::ops::control_flow::ControlFlow> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 100,774 ( 0.00%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 100,724 ( 0.00%) ???:>::walk_mut'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 100,694 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:clippy_lints::lifetimes::has_where_lifetimes [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 100,683 ( 0.00%) ???:::strict_cmp [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 100,567 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 100,436 ( 0.00%) /rust/deps/hashbrown-0.17.1/src/map.rs:>::insert [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 100,425 ( 0.00%) ???:rustc_query_impl::query_impl::needs_drop_raw::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 100,130 ( 0.00%) ???:rustc_middle::ty::trait_def::trait_impls_of_provider [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 100,064 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/memchr.rs:::check_fn 100,049 ( 0.00%) ???:::mark_span_with_reason'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 99,949 ( 0.00%) ???:::from_def_id [???] 99,624 ( 0.00%) ???:::mk_poly_existential_predicates'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 99,567 ( 0.00%) ???:rustc_mir_transform::liveness::check_liveness::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 99,517 ( 0.00%) ???:>::with_lint_attrs::< as rustc_ast::visit::Visitor>::visit_local::{closure#0}>::{closure#0} [???] 99,440 ( 0.00%) ???:rustc_hir::intravisit::walk_unambig_ty:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 99,230 ( 0.00%) ???:0x0000000000067b30 [/usr/lib/libc.so.6] 99,200 ( 0.00%) ???:::visit_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 99,110 ( 0.00%) ???:> as rustc_type_ir::visit::TypeVisitor>::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 98,978 ( 0.00%) ???:> as rustc_type_ir::visit::TypeVisitor>::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 98,914 ( 0.00%) ???:::check_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 98,903 ( 0.00%) ???:realpath [/usr/lib/libc.so.6] 98,560 ( 0.00%) ???:rustc_middle::ty::util::intrinsic_raw [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 98,502 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::expr_or_init [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 98,339 ( 0.00%) ???:>, bool), rustc_middle::query::erase::ErasedData<[u8; 8]>> as rustc_middle::query::caches::QueryCache>::for_each'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 98,299 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/empty_line_after.rs:, ::check_item_kind::{closure#0}>, ::check_item_kind::{closure#1}>, core::option::Option> as core::iter::traits::iterator::Iterator>::next 98,231 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with::::renumber_regions::visit_const_operand::{closure#0}>::{closure#0}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 98,177 ( 0.00%) ???:rustc_trait_selection::traits::query::type_op::ascribe_user_type::type_op_ascribe_user_type_with_span'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 98,000 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_ast/src/ast.rs:>::walk_ref [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 97,880 ( 0.00%) ???:::visit_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 97,864 ( 0.00%) ???:rustc_ast::visit::visit_stmts:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 97,812 ( 0.00%) ???:rustc_trait_selection::traits::project::confirm_param_env_candidate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 97,798 ( 0.00%) ???:rustc_ast::visit::visit_stmts:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 97,798 ( 0.00%) ???:rustc_ast::visit::visit_stmts:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 97,798 ( 0.00%) ???:rustc_ast::visit::visit_stmts:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 97,797 ( 0.00%) ???:rustc_ast::visit::visit_stmts:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 97,678 ( 0.00%) ???:rustc_type_ir::relate::combine::super_combine_tys:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 97,632 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/functions/mod.rs:::check_impl_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 97,623 ( 0.00%) ???:rustc_hir_analysis::collect::impl_is_fully_generic_for_reflection [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 97,580 ( 0.00%) ???:::kind [???] 97,474 ( 0.00%) ???:0x0000000000040520 [/usr/lib/libc.so.6] 97,434 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_lint_allowed [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 97,428 ( 0.00%) ???:::visit_body [???] 97,245 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::, rustc_middle::query::erase::ErasedData<[u8; 16]>>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 97,232 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:clippy_utils::in_automatically_derived 96,878 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/only_used_in_recursion.rs:::check_body [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 96,782 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::, rustc_middle::query::erase::ErasedData<[u8; 24]>>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 96,698 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/doc/doc_suspicious_footnotes.rs:clippy_lints::doc::doc_suspicious_footnotes::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 96,687 ( 0.00%) ???:::write_method_call_and_enforce_effects'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 96,659 ( 0.00%) ???:::node_type [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 96,460 ( 0.00%) ???:)>>::complete::), rustc_middle::query::erase::ErasedData<[u8; 16]>>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 96,374 ( 0.00%) ???:::demand_coerce_diag [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 96,335 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/macro_metavars_in_unsafe.rs:::visit_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 96,158 ( 0.00%) ???:::break_two_token_op [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 96,143 ( 0.00%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 95,991 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/utils/author.rs:::check_arm [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 95,852 ( 0.00%) ???:>>::push [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 95,671 ( 0.00%) ???:::walk::<::check_consistent_bindings::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 95,533 ( 0.00%) ???:>::contains_key:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 95,484 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/default.rs:::check_block [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 95,263 ( 0.00%) ???:rustc_mir_transform::ffi_unwind_calls::required_panic_strategy [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 95,125 ( 0.00%) ???:, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 95,072 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/mod.rs:clippy_utils::trait_ref_of_method 95,027 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_pat:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 94,956 ( 0.00%) ???:)>>::reserve_rehash::, rustc_hash::FxBuildHasher>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 94,945 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_trait_impl_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 94,944 ( 0.00%) include/jemalloc/internal/extent.h:pa_dalloc 94,908 ( 0.00%) ???:::alias_bound [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 94,848 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/macro_metavars_in_unsafe.rs:::check_body [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 94,580 ( 0.00%) ???:>::remove:: [???] 94,426 ( 0.00%) ???:::check_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 94,417 ( 0.00%) ???:>::univariant::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 94,416 ( 0.00%) ???:rustc_ast::mut_visit::walk_fn::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 94,380 ( 0.00%) ???:>::fold_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 94,344 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/higher.rs:::check_expr 94,290 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 94,251 ( 0.00%) ???:::instantiate_bound_regions::, ::visit_terminator::{closure#0}>::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 94,229 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::Ty> as rustc_type_ir::fold::TypeFoldable>::fold_with::>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 93,993 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 93,973 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:::check_attributes 93,900 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/multiple_bound_locations.rs:::check_fn [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 93,842 ( 0.00%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 93,720 ( 0.00%) ???:::write_str [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 93,683 ( 0.00%) ???:::requires_monomorphization [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 93,496 ( 0.00%) ???: as rustc_ast::visit::Visitor>::visit_item [???] 93,390 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/combined_early_pass.rs:::check_fn [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 93,375 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_lint/src/context.rs:::check_expr 93,371 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_lint/src/context.rs:::check_expr 93,334 ( 0.00%) ???:, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 93,286 ( 0.00%) ???:rustc_resolve::rustdoc::preprocess_link [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 93,252 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/chain.rs: as alloc::vec::spec_from_iter_nested::SpecFromIterNested, core::slice::iter::Iter>>>>::from_iter 93,202 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/question_mark_used.rs:::check_expr 93,142 ( 0.00%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 92,996 ( 0.00%) ???:rustc_middle::ty::inhabitedness::inhabited_predicate_type'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 92,852 ( 0.00%) ???:::probe_trait_that_defines_assoc_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 92,831 ( 0.00%) ???:> as core::iter::traits::iterator::Iterator>::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 92,785 ( 0.00%) ???:rustc_query_impl::query_impl::constness::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 92,642 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_ast/src/visit.rs:rustc_ast::visit::walk_stmt:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 92,592 ( 0.00%) ???:<[rustc_hir::hir::GenericParam] as rustc_data_structures::stable_hash::StableHash>::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 92,550 ( 0.00%) ???:rustc_lint::builtin::warn_if_doc [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 92,448 ( 0.00%) ???:core::slice::sort::shared::smallsort::sort4_stable::::sort_by_key<&core::option::Option, , rustc_middle::ty::assoc::AssocItem> as core::iter::traits::collect::FromIterator<(core::option::Option, rustc_middle::ty::assoc::AssocItem)>>::from_iter, ::new>::{closure#0}>>::{closure#0}>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 92,428 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:clippy_lints::doc::missing_headers::check 92,354 ( 0.00%) ???:rustc_hir::intravisit::walk_block::<::collect_taits_declared_in_body::TaitInBodyFinder> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 92,324 ( 0.00%) ???:rustc_metadata::rmeta::decoder::cstore_impl::provide_extern::diagnostic_items [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 92,310 ( 0.00%) ???:::new'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 92,276 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 92,210 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/hir.rs:clippy_lints::doc::missing_headers::check 92,116 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/functions/ref_option.rs:clippy_lints::functions::ref_option::check_fn [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 91,978 ( 0.00%) ???:::record_scope_parent [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 91,924 ( 0.00%) ???: as rustc_middle::ty::region::RegionExt>::get_name_or_anon [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 91,726 ( 0.00%) ???:)>>::call_once [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 91,708 ( 0.00%) ???:::in_external_macro'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 91,665 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/visitors.rs: as rustc_hir::intravisit::Visitor>::visit_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 91,430 ( 0.00%) ???:::visit_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 91,430 ( 0.00%) ???:rustc_hir::intravisit::walk_block:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 91,430 ( 0.00%) ???:rustc_hir::intravisit::walk_block:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 91,430 ( 0.00%) ???:rustc_hir::intravisit::walk_block:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 91,406 ( 0.00%) ???:::visit_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 91,406 ( 0.00%) ???:rustc_hir::intravisit::walk_block:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 91,337 ( 0.00%) ???:rustc_query_impl::query_impl::lookup_deprecation_entry::invoke_provider_fn::__rust_begin_short_backtrace'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 91,310 ( 0.00%) ???:>::reserve_rehash::, ()>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 91,305 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 91,104 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/const_ptr.rs:>::with::<::with::outer_expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 91,104 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:>::with::<::with::outer_expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 90,951 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/flatten.rs:>, clippy_lints::needless_maybe_sized::type_param_bounds::{closure#0}>>, ::check_generics::{closure#0}>, ::check_generics::{closure#1}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<(rustc_span::def_id::DefId, clippy_lints::needless_maybe_sized::Bound), as core::iter::traits::collect::Extend<(rustc_span::def_id::DefId, clippy_lints::needless_maybe_sized::Bound)>>::extend>, clippy_lints::needless_maybe_sized::type_param_bounds::{closure#0}>>, ::check_generics::{closure#0}>, ::check_generics::{closure#1}>>::{closure#0}>::{closure#0}> 90,703 ( 0.00%) ???:::parse_ident_common [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 90,576 ( 0.00%) ???:, serde_json::ser::CompactFormatter> as serde_core::ser::SerializeStruct>::serialize_field:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 90,499 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:clippy_utils::attrs::parse_attrs::<::pop_attrs::{closure#0}, rustc_hir::hir::Attribute> 90,440 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:::check_mac_def::check_ts'2 90,405 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 90,214 ( 0.00%) ???:, ())>>::reserve_rehash::, (), rustc_hash::FxBuildHasher>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 90,209 ( 0.00%) ???:::finalize_import::{closure#2} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 90,165 ( 0.00%) ???:rustc_thread_pool::scope::scope::::par_opaques::{closure#0}>::{closure#0}::{closure#0}>::{closure#1}, ()>::{closure#0} [???] 90,013 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:::check_attributes 89,955 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 89,788 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:clippy_utils::attrs::parse_attrs::<::push_attrs::{closure#0}, rustc_hir::hir::Attribute> 89,527 ( 0.00%) ???:::walk_::<::is_never_pattern::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 89,508 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/temporary_assignment.rs:::check_expr 89,421 ( 0.00%) ???:::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 89,355 ( 0.00%) ???:rustc_ast::visit::visit_assoc_items::>'2 [???] 89,324 ( 0.00%) ???:>::super_visit_with::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 89,289 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/higher.rs:::check_expr 89,215 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:::check_expr 89,100 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/slow_vector_initialization.rs:::check_expr 88,938 ( 0.00%) ???:core::ptr::drop_glue::> [???] 88,877 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:::check_expr 88,872 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:clippy_utils::is_in_const_context 88,870 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/question_mark.rs:::check_expr_post 88,800 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_lint/src/context.rs:::check_expr 88,800 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/hygiene.rs:::check_expr 88,800 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/lib.rs:::check_expr 88,800 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/lib.rs:::check_expr 88,800 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/lib.rs:::check_expr 88,800 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/fuse.rs:clippy_lints::operators::float_cmp::check_assert 88,800 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:clippy_lints::operators::float_cmp::check_assert 88,800 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:::check_expr 88,800 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:::check_expr 88,800 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:::check_expr 88,800 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:::check_expr 88,800 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/mod.rs:::check_expr_post 88,800 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/pointers_in_nomem_asm_block.rs:::check_expr 88,800 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_lints::operators::eq_op::check_assert 88,800 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_lints::operators::float_cmp::check_assert 88,796 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:::check_expr 88,732 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/hir/map.rs:::hir_body_owner_kind:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 88,704 ( 0.00%) ???:::contains [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 88,626 ( 0.00%) ???:::check_stmt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 88,604 ( 0.00%) ???:rustc_hir_analysis::coherence::inherent_impls_overlap::crate_inherent_impls_overlap_check [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 88,587 ( 0.00%) ???:::hir_item [???] 88,520 ( 0.00%) include/jemalloc/internal/tsd.h:free_default 88,269 ( 0.00%) /rustc/84b36a78a28a63f134171c670be1932ffa2485f8/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/build/tikv-jemalloc-sys/80122c672fbe49ef/out/build/src/pa.c:pa_dalloc [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 88,240 ( 0.00%) ???:::resolve_trait_item::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 88,215 ( 0.00%) ???:::visit_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 88,031 ( 0.00%) include/jemalloc/internal/extent.h:ecache_evict 88,012 ( 0.00%) ???:, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 87,849 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:::finish_grow 87,848 ( 0.00%) ???:::as_lang_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 87,744 ( 0.00%) ???:rustc_query_impl::query_impl::associated_item_def_ids::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 87,729 ( 0.00%) ???:rustc_query_impl::query_impl::intrinsic_raw::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 87,443 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 87,366 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/ptr/mod.rs:::check_body [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 87,126 ( 0.00%) ???:::hash:: [???] 87,047 ( 0.00%) ???:::build_reduced_graph_for_use_tree [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 87,018 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/attrs.rs:clippy_utils::attrs::check_clippy_attr:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 87,014 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:clippy_lints::minmax::min_max 86,819 ( 0.00%) ???: as fluent_bundle::resolver::WriteValue>::write:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 86,631 ( 0.00%) ???:::node_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 86,564 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 86,562 ( 0.00%) ???:rustc_query_impl::query_impl::type_param_clauses::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 86,552 ( 0.00%) ???:>::tys [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 86,300 ( 0.00%) ???:<::is_fully_generic_for_reflection::ParamFinder as rustc_type_ir::visit::TypeVisitor>::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 86,276 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/casts/needless_type_cast.rs:clippy_lints::casts::needless_type_cast::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 86,127 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs: as alloc::vec::spec_from_iter::SpecFromIter, ::check_item_kind::{closure#0}>, ::check_item_kind::{closure#1}>, core::option::Option>>>::from_iter [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 86,028 ( 0.00%) ???:>>::new::< as core::default::Default>::default> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 86,025 ( 0.00%) ???:::inject_or_push [???] 86,000 ( 0.00%) ???:::visit_operand [???] 85,767 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 85,212 ( 0.00%) ???:::relate_type_and_user_type [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 85,172 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_pat 85,035 ( 0.00%) ???:rustc_trait_selection::traits::query::type_op::ascribe_user_type::type_op_ascribe_user_type_with_span [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 84,975 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/combined_early_pass.rs:::check_param [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 84,831 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 84,693 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/extra_unused_type_parameters.rs:::check_impl_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 84,668 ( 0.00%) ???:::build_reduced_graph_for_use_tree'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 84,232 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/needless_bool.rs:::check_block [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 84,229 ( 0.00%) ???:>::compute_trait_goal [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 84,186 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:clippy_utils::is_expn_of 84,101 ( 0.00%) ???:::discriminant_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 83,966 ( 0.00%) ???:::parse_expr_array_or_repeat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 83,950 ( 0.00%) ???:::add_early_lint [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 83,844 ( 0.00%) ???:::check_attributes [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 83,450 ( 0.00%) ???:::lower_pat_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 83,211 ( 0.00%) ???:::mk_adt_def [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 83,168 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/needless_question_mark.rs:clippy_lints::needless_question_mark::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 83,149 ( 0.00%) ???:> as rustc_type_ir::interner::CollectAndApply>::collect_and_apply::>, core::iter::adapters::copied::Copied>>, rustc_type_ir::relate::structurally_relate_tys::{closure#0}::{closure#1}>, ::new_tup_from_iter>, core::iter::adapters::copied::Copied>>, rustc_type_ir::relate::structurally_relate_tys::{closure#0}::{closure#1}>, core::result::Result>>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 83,120 ( 0.00%) ???:::annotated_lines [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 82,887 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/higher.rs:::check_expr 82,780 ( 0.00%) ???:::emit_messages_default'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 82,775 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/cognitive_complexity.rs:rustc_hir::intravisit::walk_expr::::check::{closure#0}>>'2 82,530 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/intrinsics/mod.rs:>::insert 82,458 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 82,130 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/else_if_without_else.rs:::check_expr 82,090 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_data_structures/src/sync/freeze.rs:::def_key:: 81,975 ( 0.00%) include/jemalloc/internal/extent.h:tcache_bin_flush_small 81,954 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_block:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 81,924 ( 0.00%) ???:::span_to_locations'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 81,862 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/mod.rs:::impl_trait_ref:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 81,808 ( 0.00%) include/jemalloc/internal/bit_util.h:eset_remove 81,718 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/string.rs:::write_str [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 81,696 ( 0.00%) ???:::check_expr_cast [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 81,574 ( 0.00%) include/jemalloc/internal/edata.h:pac_decay_to_limit.llvm.9344053299937794623 81,479 ( 0.00%) ???:::check_missing_docs_attrs [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 81,341 ( 0.00%) ???: as rustc_data_structures::flat_map_in_place::FlatMapInPlace>::flat_map_in_place::::{closure#0}, smallvec::SmallVec<[rustc_ast::ast::GenericParam; 1]>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 81,305 ( 0.00%) ???:::parse_expr_dot_or_call_with [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 80,990 ( 0.00%) ???:::check_struct_path'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 80,920 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_expr:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 80,879 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 80,870 ( 0.00%) ???: as core::cmp::PartialEq>::eq [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 80,827 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/consts.rs:::qpath [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 80,748 ( 0.00%) ???:::finalize_import::{closure#2}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 80,704 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:::visit_ty'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 80,668 ( 0.00%) ???:rustc_query_impl::query_impl::dropck_outlives::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 80,610 ( 0.00%) ???:::recursion_limit [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 80,400 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/traits.rs:::as_str 80,388 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:rustc_hir::intravisit::walk_qpath:: 79,719 ( 0.00%) ???:::in_any_value_of_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 79,714 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_expr::> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 79,654 ( 0.00%) ???:rustc_hir::intravisit::walk_item:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 79,617 ( 0.00%) include/jemalloc/internal/tsd_tls.h:free_default 79,405 ( 0.00%) ???:::hir_get_fn_id_for_return_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 79,381 ( 0.00%) ???:::check_item [???] 79,231 ( 0.00%) ???:::nominal_obligations'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 79,221 ( 0.00%) ???:rustc_query_impl::query_impl::expn_that_defined::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 78,999 ( 0.00%) ???:>>::drop_slow'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 78,814 ( 0.00%) ???:llvm::PassRegistry::registerPass(llvm::PassInfo const&, bool) [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/libLLVM.so.23.1-rust-1.99.0-nightly] 78,795 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/functions/renamed_function_params.rs:clippy_lints::functions::renamed_function_params::check_impl_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 78,744 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_expr:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 78,587 ( 0.00%) ???:llvm::cl::ParseCommandLineOptions(int, char const* const*, llvm::StringRef, llvm::raw_ostream*, llvm::vfs::FileSystem*, char const*, bool) [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/libLLVM.so.23.1-rust-1.99.0-nightly] 78,577 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/macros.rs: as core::iter::traits::iterator::Iterator>::try_fold::flatten::, clippy_utils::macros::macro_backtrace::{closure#0}>, clippy_utils::macros::first_node_macro_backtrace::{closure#0}::{closure#0}>, (), core::ops::control_flow::ControlFlow, core::iter::traits::iterator::Iterator::find::check::{closure#0}>::{closure#0} 78,577 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:, clippy_utils::macros::first_node_macro_backtrace::{closure#0}> as core::iter::traits::iterator::Iterator>::try_fold::<(), >::iter_try_fold::flatten, clippy_utils::macros::macro_backtrace::{closure#0}>, clippy_utils::macros::first_node_macro_backtrace::{closure#0}::{closure#0}>, (), core::ops::control_flow::ControlFlow, as core::iter::traits::iterator::Iterator>::try_fold::flatten, clippy_utils::macros::macro_backtrace::{closure#0}>, clippy_utils::macros::first_node_macro_backtrace::{closure#0}::{closure#0}>, (), core::ops::control_flow::ControlFlow, core::iter::traits::iterator::Iterator::find::check::{closure#0}>::{closure#0}>::{closure#0}, core::ops::control_flow::ControlFlow> 78,349 ( 0.00%) ???:>::insert [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 78,286 ( 0.00%) ???:<[rustc_middle::ty::generic_args::GenericArg] as rustc_serialize::serialize::Encodable>::encode'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 78,132 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/source.rs:::with_source_text::, &rustc_lint::context::EarlyContext, ::check_fn::{closure#0}> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 78,064 ( 0.00%) ???:::implicit_self [???] 77,964 ( 0.00%) ???:::visit_generic_params'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 77,894 ( 0.00%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 77,894 ( 0.00%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 77,894 ( 0.00%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 77,707 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/res.rs:::check_expr 77,645 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 77,622 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/returns/let_and_return.rs:clippy_lints::returns::let_and_return::check_block [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 77,502 ( 0.00%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 77,028 ( 0.00%) /rust/deps/hashbrown-0.17.1/src/control/tag.rs:>::insert 76,942 ( 0.00%) ???:rustc_attr_parsing::validate_attr::check_attr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 76,873 ( 0.00%) ???:rustc_metadata::rmeta::decoder::cstore_impl::provide_extern::module_children [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 76,842 ( 0.00%) ???:core::ptr::drop_glue::>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 76,775 ( 0.00%) ???:>::get_placeable'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 76,739 ( 0.00%) ???:::parse_meta_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 76,727 ( 0.00%) ???:core::ptr::drop_glue::>>>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 76,682 ( 0.00%) ???:rustc_metadata::rmeta::decoder::cstore_impl::provide_extern::codegen_fn_attrs [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 76,634 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/four_forward_slashes.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 76,595 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::Ty> as rustc_type_ir::fold::TypeFoldable>::fold_with::::instantiate_binder_with_fresh_vars::ToFreshVars>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 76,561 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_expr:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 76,475 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/toplevel_ref_arg.rs:::check_fn [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 76,316 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/inline_trait_bounds.rs:::check_fn [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 76,296 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/attrs/mixed_attributes_style.rs:clippy_lints::attrs::mixed_attributes_style::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 76,287 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:rustc_hir::intravisit::walk_expr::'2 76,272 ( 0.00%) ???:::assemble_candidates_for_unsizing [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 76,038 ( 0.00%) ???:core::fmt::write'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 75,882 ( 0.00%) ???:::next'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 75,767 ( 0.00%) ???:rustc_resolve::rustdoc::parse_links'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 75,660 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 75,607 ( 0.00%) ???:::check_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 75,600 ( 0.00%) ???:> as rustc_data_structures::flat_map_in_place::FlatMapInPlace>>::flat_map_in_place::::{closure#0}, smallvec::SmallVec<[alloc::boxed::Box; 1]>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 75,492 ( 0.00%) ???:rustc_hir::intravisit::walk_expr:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 74,966 ( 0.00%) ???:rustc_hir_analysis::coherence::orphan::orphan_check_impl [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 74,965 ( 0.00%) ???:core::str::count::do_count_chars [???] 74,943 ( 0.00%) ???:::def_path_hash [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 74,880 ( 0.00%) include/jemalloc/internal/mutex.h:pa_dalloc 74,776 ( 0.00%) ???:>::super_fold_with::::visit_rvalue::{closure#1}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 74,682 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/num/uint_macros.rs:::check_fn 74,520 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_generic_arg::> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 74,413 ( 0.00%) ???:>>::drop_slow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 74,266 ( 0.00%) ???:::parse_seq_to_before_end::::parse_meta_item::{closure#3}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 74,178 ( 0.00%) /rust/deps/hashbrown-0.17.0/src/raw.rs:>::insert::, rustc_type_ir::sty::Region>::{closure#0}> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 74,043 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/combined_early_pass.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 74,040 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/combined_early_pass.rs:::check_block [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 74,028 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/alloc.rs:::finish_grow 74,026 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 73,990 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/hir.rs:>, clippy_lints::needless_maybe_sized::type_param_bounds::{closure#0}>>, ::check_generics::{closure#0}>, ::check_generics::{closure#1}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<(rustc_span::def_id::DefId, clippy_lints::needless_maybe_sized::Bound), as core::iter::traits::collect::Extend<(rustc_span::def_id::DefId, clippy_lints::needless_maybe_sized::Bound)>>::extend>, clippy_lints::needless_maybe_sized::type_param_bounds::{closure#0}>>, ::check_generics::{closure#0}>, ::check_generics::{closure#1}>>::{closure#0}>::{closure#0}> 73,980 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 73,976 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/hygiene.rs: as core::iter::traits::iterator::Iterator>::try_fold::<(), core::iter::traits::iterator::Iterator::find_map::check<(rustc_span::hygiene::ExpnId, rustc_span::hygiene::ExpnData), clippy_utils::macros::MacroCall, &mut clippy_utils::macros::macro_backtrace::{closure#0}>::{closure#0}, core::ops::control_flow::ControlFlow> 73,920 ( 0.00%) ???:::meta [???] 73,831 ( 0.00%) ???:::check_arm [???] 73,697 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:>, clippy_lints::needless_maybe_sized::type_param_bounds::{closure#0}>>, ::check_generics::{closure#0}>, ::check_generics::{closure#1}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<(rustc_span::def_id::DefId, clippy_lints::needless_maybe_sized::Bound), as core::iter::traits::collect::Extend<(rustc_span::def_id::DefId, clippy_lints::needless_maybe_sized::Bound)>>::extend>, clippy_lints::needless_maybe_sized::type_param_bounds::{closure#0}>>, ::check_generics::{closure#0}>, ::check_generics::{closure#1}>>::{closure#0}>::{closure#0}> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 73,500 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:clippy_utils::attrs::parse_attrs::<::push_attrs::{closure#0}, rustc_hir::hir::Attribute> 73,429 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_impl_item::> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 73,388 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 73,388 ( 0.00%) ???:rustc_hir::intravisit::walk_expr::<::collect_taits_declared_in_body::TaitInBodyFinder> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 73,298 ( 0.00%) ???:::default_value [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 73,294 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/legacy_numeric_constants.rs:clippy_lints::legacy_numeric_constants::is_numeric_const [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 73,182 ( 0.00%) src/sz.c:eset_remove 73,111 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/const_ptr.rs:::check_attributes 73,108 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/mod.rs:::check_expr 73,032 ( 0.00%) ???:rustc_ast::visit::walk_fn::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 73,032 ( 0.00%) ???:rustc_ast::visit::walk_fn::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 73,013 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_ty::'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 73,007 ( 0.00%) ???:<[rustc_ast::tokenstream::TokenTree] as rustc_data_structures::stable_hash::StableHash>::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 72,897 ( 0.00%) ???:>::fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 72,865 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/missing_const_for_thread_local.rs:::check_fn [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 72,810 ( 0.00%) ???:::find_library_crate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 72,762 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:::check_poly_trait_ref [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 72,730 ( 0.00%) ???:, rustc_error_messages::DiagArgValue, rustc_hash::FxBuildHasher>>::insert_full [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 72,726 ( 0.00%) include/jemalloc/internal/mutex.h:ecache_evict 72,725 ( 0.00%) ???:>::destroy [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 72,720 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 72,706 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:clippy_utils::macros::first_node_in_macro:: 72,702 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 72,645 ( 0.00%) ???:::parse_footnote [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 72,579 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:::visit_qpath 72,540 ( 0.00%) ???:::hir_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 72,530 ( 0.00%) ???:::update_field [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 72,438 ( 0.00%) ???:rustc_passes::diagnostic_items::all_diagnostic_items [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 72,386 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 72,385 ( 0.00%) ???:::evaluate_obligation [???] 72,380 ( 0.00%) ???:::emit_diagnostic::{closure#3} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 72,331 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/needless_arbitrary_self_type.rs:::check_param [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 72,315 ( 0.00%) ???:::as_rvalue'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 72,174 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/asm_syntax.rs:::check_expr 71,994 ( 0.00%) ???:rustc_expand::placeholders::placeholder::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 71,964 ( 0.00%) include/jemalloc/internal/pai.h:pa_alloc 71,912 ( 0.00%) ???: as fluent_bundle::entry::GetEntry>::get_entry_message [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 71,898 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:::visit_pat 71,664 ( 0.00%) ???:::new'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 71,612 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 71,612 ( 0.00%) ???:rustc_traits::dropck_outlives::adt_dtorck_constraint [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 71,535 ( 0.00%) ???:>>::upcast_from [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 71,496 ( 0.00%) ???:::instantiate_supertrait [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 71,464 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:::check_fn 71,418 ( 0.00%) ???:>::complete::>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 71,392 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/const_ptr.rs:::trim_matches::<::is_whitespace> 71,392 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mut_ptr.rs:::trim_matches::<::is_whitespace> 71,392 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/traits.rs:::trim_matches::<::is_whitespace> 71,304 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_data_structures/src/profiling.rs:clippy_utils::trait_ref_of_method 71,304 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/query/erase.rs:clippy_utils::trait_ref_of_method 71,158 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_type_ir/src/fast_reject.rs:::init_default_impl_for_type_if_needed 71,080 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:clippy_lints::unit_types::unit_cmp::check 71,061 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:clippy_utils::macros::first_node_in_macro:: 70,978 ( 0.00%) ???: as rustc_type_ir::visit::TypeVisitor>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 70,960 ( 0.00%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 70,952 ( 0.00%) ???:::entire [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 70,810 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/self_named_constructors.rs:::check_impl_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 70,807 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:::check_attributes 70,807 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:::check_attributes 70,787 ( 0.00%) ???:::hash::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 70,770 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/combined_late_pass.rs:::check_poly_trait_ref [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 70,714 ( 0.00%) ???:rustc_metadata::rmeta::decoder::cstore_impl::provide_extern::adt_def [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 70,711 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:::visit_poly_trait_ref [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 70,682 ( 0.00%) ???:pulldown_cmark::firstpass::run_first_pass [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 70,676 ( 0.00%) ???:rustc_hir::intravisit::walk_expr:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 70,633 ( 0.00%) ???:, rustc_hir_analysis::collect::lower_variant::{closure#0}>, rustc_hir_analysis::collect::lower_variant::{closure#1}> as core::iter::traits::iterator::Iterator>::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 70,620 ( 0.00%) ???:rustc_query_impl::query_impl::def_kind::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 70,596 ( 0.00%) ???:::fmt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 70,595 ( 0.00%) ???:rustc_attr_parsing::attributes::cfg::parse_name_value [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 70,545 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 70,513 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_data_structures/src/vec_cache.rs:::check_impl_item 70,428 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/mod.rs:clippy_utils::last_path_segment 70,428 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::last_path_segment [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 70,375 ( 0.00%) ???:rustc_attr_parsing::context::ATTRIBUTE_PARSERS::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 70,334 ( 0.00%) ???:::check_tokens [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 70,272 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/needless_late_init.rs:::check_block_post [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 70,267 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_expr::{closure#0}::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 70,259 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 70,077 ( 0.00%) ???:core::ptr::drop_glue::, rustc_ast::ast::AstOwner)>>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 70,036 ( 0.00%) ???:memchr::arch::x86_64::memchr::memchr3_raw::find_avx2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 69,915 ( 0.00%) ???:::mk_poly_existential_predicates [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 69,795 ( 0.00%) ???:::fold::> [???] 69,659 ( 0.00%) ???:core::ptr::drop_glue::>>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 69,634 ( 0.00%) ???:::mk_layout [???] 69,488 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 69,419 ( 0.00%) ???:rustc_resolve::rustdoc::parse_links [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 69,341 ( 0.00%) ???:>::gather_move [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 69,329 ( 0.00%) ???:::spawn::par_opaques::{closure#0}>::{closure#0}::{closure#0}>::{closure#1}::{closure#0}>::{closure#0}> as rustc_thread_pool::job::Job>::execute [???] 69,184 ( 0.00%) ???:::expr_ty_adjusted [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 69,169 ( 0.00%) ???:::clone [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 68,930 ( 0.00%) ???:::visit_generic_args'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 68,915 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with::::instantiate_binder_with_fresh_vars::ToFreshVars>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 68,847 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:::visit_expr'2 68,796 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:clippy_lints::functions::must_use::check_impl_item 68,580 ( 0.00%) ???:::check_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 68,298 ( 0.00%) ???:rustc_expand::mbe::macro_check::check_binders'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 68,244 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:::init_default_impl_for_type_if_needed 68,224 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/no_effect.rs:::check_stmt [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 68,144 ( 0.00%) ???:::flat_map_where_predicate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 68,118 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/redundant_closure_call.rs:::check_block [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 68,114 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_data_structures/src/vec_cache.rs:::check_expr 68,106 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/manual_clamp.rs:::check_block [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 68,103 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs: as alloc::vec::spec_from_iter_nested::SpecFromIterNested<(rustc_span::span_encoding::Span, alloc::string::String), core::iter::adapters::filter_map::FilterMap, clippy_lints::doc::suspicious_doc_comments::collect_doc_replacements::{closure#0}>>>::from_iter 68,103 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:clippy_utils::attrs::parse_attrs::<::pop_attrs::{closure#0}, rustc_hir::hir::Attribute> 68,068 ( 0.00%) ???:>, &mut rustc_infer::infer::snapshot::undo_log::InferCtxtUndoLogs>>>::uninlined_get_root_key [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 68,063 ( 0.00%) ???:rustc_trait_selection::traits::project::confirm_callable_candidate'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 67,842 ( 0.00%) ???:::report_internal_fn_trait [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 67,730 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:rustc_hir::intravisit::walk_ty::> 67,598 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/types/mod.rs:::check_ty [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 67,591 ( 0.00%) ???:::get_variant [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 67,533 ( 0.00%) ???:::deref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 67,518 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs: as core::iter::traits::iterator::Iterator>::next 67,514 ( 0.00%) ???:rustc_mir_transform::impossible_clauses::has_impossible_clauses [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 67,500 ( 0.00%) ???:::clone::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 67,428 ( 0.00%) ???:::get_inner'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 67,368 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/structural_impls.rs:>::super_fold_with::> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 67,365 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/inherent_to_string.rs:::check_impl_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 67,257 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_data_structures/src/vec_cache.rs:::check_fn 67,181 ( 0.00%) ???:rustc_trait_selection::traits::project::assoc_term_own_obligations [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 66,997 ( 0.00%) ???:>>>::set [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 66,951 ( 0.00%) ???:::path_all [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 66,926 ( 0.00%) ???:>::next'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 66,748 ( 0.00%) ???:>::decode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 66,672 ( 0.00%) ???:::name [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 66,664 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/utils/dump_hir.rs:::check_impl_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 66,629 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_fn::> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 66,600 ( 0.00%) ???:::new_with_limit [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 66,558 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/mod.rs:::check_fn 66,505 ( 0.00%) ???:rustc_query_impl::query_impl::associated_items::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 66,478 ( 0.00%) ???:memchr::arch::x86_64::memchr::count_raw::find_avx2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 66,393 ( 0.00%) ???:rustc_hir::intravisit::walk_expr:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 66,178 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/cmp.rs:::check 66,101 ( 0.00%) ???:rustc_hir_analysis::outlives::inferred_outlives_crate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 66,024 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:::check_expr 65,987 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:::check_attributes 65,962 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with::>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 65,912 ( 0.00%) ???:::register_obligations::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 65,850 ( 0.00%) ???:::span_to_location_info [???] 65,805 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 65,727 ( 0.00%) ???:::article_and_description [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 65,607 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/symbol.rs:>::with::<::as_str::{closure#0}, &str> 65,607 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/const_ptr.rs:>::with::<::as_str::{closure#0}, &str> 65,607 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:>::with::<::as_str::{closure#0}, &str> 65,490 ( 0.00%) ???:::check_crate'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 65,461 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:clippy_utils::msrvs::check_attrs:: 65,460 ( 0.00%) ???:rustc_trait_selection::traits::dyn_compatibility::generics_require_sized_self [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 65,347 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/formatting.rs:::check_block [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 65,295 ( 0.00%) ???:rustc_target::spec::add_link_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 65,279 ( 0.00%) src/sz.c:pa_dalloc 65,196 ( 0.00%) ???:rustc_hir_analysis::coherence::inherent_impls::crate_inherent_impls [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 65,182 ( 0.00%) ???:rustc_query_impl::query_impl::associated_item_def_ids::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 65,160 ( 0.00%) /rust/deps/indexmap-2.14.0/src/map.rs: as core::iter::traits::collect::FromIterator<(rustc_hir_id::HirId, ())>>::from_iter::, clippy_utils::iter_input_pats::{closure#0}>, clippy_lints::functions::not_unsafe_ptr_arg_deref::check_raw_ptr::{closure#0}>, as core::iter::traits::collect::FromIterator>::from_iter, clippy_utils::iter_input_pats::{closure#0}>, clippy_lints::functions::not_unsafe_ptr_arg_deref::check_raw_ptr::{closure#0}>>::{closure#0}>> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 65,137 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 65,073 ( 0.00%) ???:::span_labels [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 64,973 ( 0.00%) ???:rustc_query_impl::query_impl::normalize_canonicalized_projection::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 64,965 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/misc_early/mod.rs:::check_generics [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 64,800 ( 0.00%) ???:::hir_span::until_within [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 64,789 ( 0.00%) /rust/deps/smallvec-1.15.1/src/lib.rs:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::Ty> as rustc_type_ir::fold::TypeFoldable>::fold_with::> 64,727 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/cmp.rs:::check_expr 64,710 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/unused_unit.rs:::check_poly_trait_ref [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 64,649 ( 0.00%) ???:>::walk_mut'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 64,604 ( 0.00%) /rust/deps/hashbrown-0.17.1/src/raw.rs:clippy_lints::functions::duplicate_underscore_argument::check 64,528 ( 0.00%) include/jemalloc/internal/ticker.h:tcache_bin_flush_small 64,458 ( 0.00%) ???:::def_path_hash [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 64,323 ( 0.00%) ???:rustc_ast::visit::visit_stmts::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 64,291 ( 0.00%) ???:rustc_ast::visit::visit_stmts::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 64,291 ( 0.00%) ???:rustc_ast::visit::visit_stmts::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 64,291 ( 0.00%) ???:rustc_ast::visit::visit_stmts::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 64,291 ( 0.00%) ???:rustc_ast::visit::visit_stmts::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 64,241 ( 0.00%) ???:>::reserve_rehash::, rustc_type_ir::region_kind::RegionVid>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 64,120 ( 0.00%) ???:::adjust_steps [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 64,015 ( 0.00%) include/jemalloc/internal/tsd.h:pa_dalloc 64,003 ( 0.00%) ???:::opt_alias_variances::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 63,999 ( 0.00%) ???:::impl_trait_ref:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 63,941 ( 0.00%) ???:::is_fully_generic_for_reflection [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 63,899 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/utils/author.rs:::check_stmt [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 63,876 ( 0.00%) ???:>::process_obligations::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 63,835 ( 0.00%) ???:rustc_query_impl::execution::try_execute_query::, rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 63,712 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/const_ptr.rs: as alloc::vec::spec_from_iter_nested::SpecFromIterNested, core::slice::iter::Iter>>>>::from_iter 63,712 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 63,650 ( 0.00%) ???:rustc_query_impl::query_impl::impl_trait_header::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 63,588 ( 0.00%) ???:>::reserve_rehash::, ()>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 63,575 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/raw_vec/mod.rs:::write_str 63,547 ( 0.00%) ???:::mk_const_alloc'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 63,526 ( 0.00%) ???:::check_expr_field'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 63,480 ( 0.00%) ???:::resolve_vars_if_possible:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 63,341 ( 0.00%) ???:>::complete::>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 63,293 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/methods/unnecessary_to_owned.rs:clippy_lints::methods::unnecessary_to_owned::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 63,240 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/hir.rs:::check_generics 63,064 ( 0.00%) ???:::run_pass [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 63,064 ( 0.00%) ???:rustc_query_impl::query_impl::fn_sig::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 62,989 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/validations.rs:::check_attributes 62,865 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/utils/dump_hir.rs:::check_stmt [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 62,802 ( 0.00%) ???:core::slice::sort::shared::pivot::median3_rec::<(rustc_mir_build::builder::scope::DropIdx, rustc_middle::mir::BasicBlock), <(rustc_mir_build::builder::scope::DropIdx, rustc_middle::mir::BasicBlock) as core::cmp::PartialOrd>::lt>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 62,794 ( 0.00%) ???:, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 62,792 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/query/caches.rs:::init_default_impl_for_type_if_needed 62,762 ( 0.00%) ???: as core::iter::traits::collect::FromIterator<()>>::from_iter::>, rustc_traits::codegen::codegen_select_candidate::{closure#0}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 62,724 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 62,706 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:clippy_lints::doc::suspicious_doc_comments::check 62,706 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:clippy_lints::doc::suspicious_doc_comments::check 62,706 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:clippy_lints::doc::suspicious_doc_comments::check 62,675 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_pat:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 62,610 ( 0.00%) ???:rustc_span::hygiene::register_expn_id'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 62,593 ( 0.00%) ???:>::fold_region [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 62,544 ( 0.00%) ???:::descent_to_ambiguity'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 62,520 ( 0.00%) ???:>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 62,335 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::fn_def_id [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 62,301 ( 0.00%) ???:> as rustc_middle::query::caches::QueryCache>::for_each'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 62,260 ( 0.00%) ???: as core::iter::traits::collect::FromIterator>::from_iter::, ::lower_generic_params_mut::{closure#0}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,999 ( 0.00%) ???:::lower_expr_if [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,930 ( 0.00%) ???:rustc_ty_utils::common_traits::is_copy_raw [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,832 ( 0.00%) ???:::mk_const_alloc [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,724 ( 0.00%) ???:::stable_hash::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,652 ( 0.00%) ???:::insert_field_idents [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,617 ( 0.00%) ???:rustc_query_impl::query_impl::expn_that_defined::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,605 ( 0.00%) ???:::hir_krate_attrs [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,603 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:clippy_lints::non_expressive_names::do_check 61,601 ( 0.00%) ???:>::super_fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,568 ( 0.00%) ???: as core::clone::Clone>::clone::clone_non_singleton::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,566 ( 0.00%) ???:::hash_one::<&tracing_core::span::Id> [???] 61,524 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/source.rs:::into_range [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 61,335 ( 0.00%) ???:rustc_middle::ty::trait_def::traits_provider [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,311 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:::visit_poly_trait_ref 61,218 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with::::renumber_regions::visit_const_operand::{closure#0}>::{closure#0}>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,191 ( 0.00%) ???:>::super_visit_with::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,100 ( 0.00%) ???: as core::hash::Hash>::hash::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,044 ( 0.00%) ???:rustc_hir::intravisit::walk_ty::<::collect_taits_declared_in_body::TaitInBodyFinder> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,044 ( 0.00%) ???:rustc_hir::intravisit::walk_ty:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,022 ( 0.00%) ???:::parse_meta_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,905 ( 0.00%) ???:::visit_generic_args'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,904 ( 0.00%) ???:rustc_hir_analysis::check::wfcheck::check_variances_for_type_defn [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,840 ( 0.00%) ???:rustc_hir::intravisit::walk_generics:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,747 ( 0.00%) ???:::run_pass [???] 60,736 ( 0.00%) /rust/deps/parking_lot-0.12.5/src/raw_mutex.rs:>::with::<::with::outer_expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 60,621 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,493 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/attrs/mod.rs:::check_attribute [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 60,403 ( 0.00%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,399 ( 0.00%) ???:rustc_ast::visit::walk_fn::>'2 [???] 60,395 ( 0.00%) ???: as rustc_type_ir::fold::TypeFolder>::fold_binder::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,358 ( 0.00%) ???:::with_rib::<(), ::with_constant_rib<::resolve_anon_const_manual<::resolve_anon_const::{closure#0}>::{closure#0}>::{closure#0}::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,334 ( 0.00%) ???:::then_else_break_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,304 ( 0.00%) ???:>::reserve_rehash::::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,274 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/functions/not_unsafe_ptr_arg_deref.rs:clippy_lints::functions::not_unsafe_ptr_arg_deref::check_raw_ptr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 60,260 ( 0.00%) ???:::insert [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,225 ( 0.00%) ???:::typing_env [???] 60,195 ( 0.00%) ???:::typing_mode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,193 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/manual_async_fn.rs:::check_fn [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 60,191 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,142 ( 0.00%) ???:>>::walk_ref [???] 60,116 ( 0.00%) ???:::visit_block'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,073 ( 0.00%) ???:>::instantiate_cold::<::query_response_instantiation_guess<()>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,014 ( 0.00%) ???:::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,991 ( 0.00%) ???:)>, (rustc_middle::query::erase::ErasedData<[u8; 32]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<)>, (rustc_middle::query::erase::ErasedData<[u8; 32]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,940 ( 0.00%) ???:>::lift_to_interner'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,920 ( 0.00%) ???:rustc_middle::ty::inhabitedness::inhabited_predicate_type [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,918 ( 0.00%) ???:; 4]>>::reserve_one_unchecked [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,820 ( 0.00%) ???:::confirm_builtin_unsize_candidate::{closure#3} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,820 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/attrs/deprecated_cfg_attr.rs:clippy_lints::attrs::deprecated_cfg_attr::check_clippy [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 59,810 ( 0.00%) ???:::do_check [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,756 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/functions/misnamed_getters.rs:clippy_lints::functions::misnamed_getters::check_fn [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 59,752 ( 0.00%) ???:::parse_field_def::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,613 ( 0.00%) ???:rustc_expand::mbe::macro_rules::compile_declarative_macro [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,540 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs:::check_pat 59,519 ( 0.00%) ???:core::ptr::drop_glue::>>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,429 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/fold.rs:::instantiate_bound_regions_with_erased:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 59,423 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/res.rs:::check_expr 59,420 ( 0.00%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,312 ( 0.00%) ???:>>::with_self_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,295 ( 0.00%) ???:::instantiate_canonical::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,256 ( 0.00%) ???: as rustc_middle::ty::region::RegionExt>::opt_param_def_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,232 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,232 ( 0.00%) ???:::check_block [???] 59,211 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/matches/significant_drop_in_scrutinee.rs:clippy_lints::matches::significant_drop_in_scrutinee::check_match [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 59,210 ( 0.00%) ???:rustc_hir::intravisit::walk_generic_args::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,189 ( 0.00%) ???:, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,182 ( 0.00%) ???:rustc_hir::intravisit::walk_ty:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,096 ( 0.00%) ???:::check_pat_post [???] 59,015 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:rustc_hir::intravisit::walk_qpath:: 58,945 ( 0.00%) ???:rustc_traits::dropck_outlives::adt_dtorck_constraint'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 58,859 ( 0.00%) ???:, (rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<, (rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [???] 58,751 ( 0.00%) ???:::lower_use_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 58,708 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 58,696 ( 0.00%) ???:::parse_if_after_cond [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 58,560 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/no_effect.rs:::check_block_post [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 58,535 ( 0.00%) ???: as fluent_bundle::resolver::WriteValue>::write:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 58,512 ( 0.00%) /rust/deps/scoped-tls-1.0.1/src/lib.rs:>::with::<::with::is_descendant_of::{closure#0}>::{closure#0}, bool> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 58,092 ( 0.00%) ???:::policy [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 58,026 ( 0.00%) ???:::check_struct_pat_fields [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 57,933 ( 0.00%) ???:::normalize:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 57,854 ( 0.00%) ???:> as rustc_middle::ty::codec::RefDecodable>::decode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 57,763 ( 0.00%) ???:>::complete::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 57,684 ( 0.00%) include/jemalloc/internal/pai.h:tcache_bin_flush_small 57,684 ( 0.00%) src/pa.c:tcache_bin_flush_small 57,559 ( 0.00%) ???:::update [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 57,464 ( 0.00%) ???:)>>::reserve_rehash::, rustc_hash::FxBuildHasher>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 57,373 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/unused_unit.rs:::check_block [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 57,360 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:clippy_lints::doc::doc_suspicious_footnotes::check 57,303 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/mixed_read_write_in_expression.rs:::visit_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 57,294 ( 0.00%) ???:>::drop_and_maybe_poison [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 57,227 ( 0.00%) ???: as rustc_type_ir::search_graph::Delegate>::compute_goal::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 57,220 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 57,196 ( 0.00%) ???:::lower_mod [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 57,112 ( 0.00%) ???:::parse_path_segments [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 57,024 ( 0.00%) ???:::generalize [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 56,980 ( 0.00%) include/jemalloc/internal/mutex.h:realloc 56,952 ( 0.00%) ???:::visit_stmt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 56,951 ( 0.00%) ???:rustc_middle::ty::util::needs_drop_components_with_async'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 56,859 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/combined_late_pass.rs:::check_local [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 56,801 ( 0.00%) ???:::visit_pat'2 [???] 56,784 ( 0.00%) ???:rustc_query_impl::query_impl::impl_super_outlives::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 56,712 ( 0.00%) ???:::visit_stmt'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 56,648 ( 0.00%) ???:::eq:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 56,644 ( 0.00%) ???:::from_token [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 56,586 ( 0.00%) ???:::clone [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 56,511 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:::check_expr 56,352 ( 0.00%) ???:::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 56,248 ( 0.00%) ???:::next_match [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 56,127 ( 0.00%) ???:, usize)>>::reserve_rehash::, usize, rustc_hash::FxBuildHasher>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 56,103 ( 0.00%) include/jemalloc/internal/ehooks.h:pa_alloc 56,044 ( 0.00%) /rust/deps/indexmap-2.14.0/src/inner/entry.rs:, rustc_type_ir::sty::Region>>::new [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 56,022 ( 0.00%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 56,010 ( 0.00%) include/jemalloc/internal/mutex.h:calloc 55,846 ( 0.00%) ???:, rustc_middle::traits::SelectionError>>>::get [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,800 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/implied_bounds_in_impls.rs:::check_ty 55,785 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:::check_pat 55,732 ( 0.00%) ???:rustc_metadata::foreign_modules::collect [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,680 ( 0.00%) ???:::lower_ty_maybe_return_type_notation [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,678 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/non_expressive_names.rs:::check_single_char_names [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 55,661 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_path_segment:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 55,616 ( 0.00%) ???:rustc_query_impl::query_impl::is_late_bound_map::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,607 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::visit_pat 55,582 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/functions/must_use.rs:clippy_lints::functions::must_use::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 55,556 ( 0.00%) ???:rustc_query_impl::query_impl::type_op_normalize_fn_sig::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,533 ( 0.00%) ???:>::decode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,527 ( 0.00%) ???:::check_struct_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,505 ( 0.00%) ???:::matches:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,459 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::check_attributes 55,453 ( 0.00%) ???:core::ptr::drop_glue::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,407 ( 0.00%) ???:::reduce_and'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,206 ( 0.00%) ???:>::fill_item::<::lookup_method_for_operator::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,196 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/iter.rs:::check_fn 55,162 ( 0.00%) include/jemalloc/internal/bit_util.h:pa_dalloc 55,132 ( 0.00%) /rust/deps/hashbrown-0.17.0/src/control/bitmask.rs:, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::get:: 55,073 ( 0.00%) ???:::bound_is_met'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,070 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:>, clippy_lints::needless_maybe_sized::type_param_bounds::{closure#0}>>, ::check_generics::{closure#0}>, ::check_generics::{closure#1}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<(rustc_span::def_id::DefId, clippy_lints::needless_maybe_sized::Bound), as core::iter::traits::collect::Extend<(rustc_span::def_id::DefId, clippy_lints::needless_maybe_sized::Bound)>>::extend>, clippy_lints::needless_maybe_sized::type_param_bounds::{closure#0}>>, ::check_generics::{closure#0}>, ::check_generics::{closure#1}>>::{closure#0}>::{closure#0}> 55,037 ( 0.00%) ???:thin_vec::drop_non_singleton::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,017 ( 0.00%) ???:::validate_local [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 54,944 ( 0.00%) ???:::record_late_bound_vars [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 54,918 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/combined_early_pass.rs:::check_impl_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 54,908 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/query/inner.rs:::init_default_impl_for_type_if_needed 54,847 ( 0.00%) ???:::qpath_res'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 54,800 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/mod.rs:::get_all_attrs:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 54,786 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/visitors.rs:rustc_hir::intravisit::walk_arm::> 54,772 ( 0.00%) ???:>::layout_of [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 54,691 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/intrinsics/mod.rs:, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::get:: 54,676 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs:, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::get:: 54,651 ( 0.00%) ???:>, (rustc_middle::query::erase::ErasedData<[u8; 32]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<>, (rustc_middle::query::erase::ErasedData<[u8; 32]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 54,621 ( 0.00%) ???:rustc_query_impl::query_impl::evaluate_obligation::invoke_provider_fn::__rust_begin_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 54,554 ( 0.00%) ???:<&mut core::iter::adapters::map::map_fold<&(&str, rustc_target::target_features::Stability, &[&str]), (&str, rustc_target::target_features::Stability, &[&str]), (), <(&str, rustc_target::target_features::Stability, &[&str]) as core::clone::Clone>::clone, core::iter::adapters::map::map_fold<(&str, rustc_target::target_features::Stability, &[&str]), (&str, rustc_target::target_features::Stability), (), rustc_target::target_features::all_rust_features::{closure#0}, core::iter::adapters::filter::filter_fold<(&str, rustc_target::target_features::Stability), (), ::fill_well_known::{closure#3}, core::iter::adapters::map::map_fold<(&str, rustc_target::target_features::Stability), &str, (), ::fill_well_known::{closure#4}, &mut core::iter::adapters::map::map_fold<&str, rustc_span::symbol::Symbol, (), ::intern, core::iter::adapters::map::map_fold, (), core::option::Option::Some, core::iter::adapters::map::map_fold, (core::option::Option, ()), (), , rustc_hash::FxBuildHasher> as core::iter::traits::collect::Extend>>::extend, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>>, rustc_target::target_features::all_rust_features::{closure#0}>, ::fill_well_known::{closure#3}>, ::fill_well_known::{closure#4}>, core::iter::adapters::cloned::Cloned>>, ::intern>, core::option::Option::Some>>::{closure#0}, core::iter::traits::iterator::Iterator::for_each::call<(core::option::Option, ()), , (), rustc_hash::FxBuildHasher> as core::iter::traits::collect::Extend<(core::option::Option, ())>>::extend, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>>, rustc_target::target_features::all_rust_features::{closure#0}>, ::fill_well_known::{closure#3}>, ::fill_well_known::{closure#4}>, core::iter::adapters::cloned::Cloned>>, ::intern>, core::option::Option::Some>, , rustc_hash::FxBuildHasher> as core::iter::traits::collect::Extend>>::extend, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>, core::slice::iter::Iter<(&str, rustc_target::target_features::Stability, &[&str])>>>, rustc_target::target_features::all_rust_features::{closure#0}>, ::fill_well_known::{closure#3}>, ::fill_well_known::{closure#4}>, core::iter::adapters::cloned::Cloned>>, ::intern>, core::option::Option::Some>>::{closure#0}>>::{closure#0}>::{closure#0}>::{closure#0}>::{closure#0}>::{closure#0}>::{closure#0}>::{closure#0}>::{closure#0}>::{closure#0} as core::ops::function::FnMut<((), &(&str, rustc_target::target_features::Stability, &[&str]))>>::call_mut'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 54,552 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_ty:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 54,551 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/unused_unit.rs:::check_fn [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 54,462 ( 0.00%) include/jemalloc/internal/edata.h:calloc 54,352 ( 0.00%) ???:::resolve_type_relative_path'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 54,223 ( 0.00%) ???:rustc_query_impl::query_impl::type_op_normalize_ty::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 54,140 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/source.rs:::check_fn 54,124 ( 0.00%) ???:::spawn::par_items::{closure#0}>::{closure#0}::{closure#0}>::{closure#1}::{closure#0}>::{closure#0}> as rustc_thread_pool::job::Job>::execute [???] 54,097 ( 0.00%) ???:::visit_rvalue::{closure#1}> as rustc_type_ir::fold::TypeFolder>::fold_binder::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 53,935 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/matches/collapsible_match.rs:clippy_lints::matches::collapsible_match::check_arm [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 53,914 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/attrs/deprecated_cfg_attr.rs:clippy_lints::attrs::deprecated_cfg_attr::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 53,873 ( 0.00%) src/bitmap.c:realloc 53,632 ( 0.00%) ???:rustc_hir::intravisit::walk_ty:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 53,632 ( 0.00%) ???:rustc_hir::intravisit::walk_ty:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 53,572 ( 0.00%) ???:::walk_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 53,530 ( 0.00%) ???:rustc_hir::intravisit::walk_ty:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 53,300 ( 0.00%) ???:core::slice::memchr::memrchr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 53,244 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/traits.rs:clippy_lints::doc::doc_suspicious_footnotes::check 53,234 ( 0.00%) ???:> as core::iter::traits::collect::Extend>>::extend::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 53,120 ( 0.00%) ???:, ())>>::reserve_rehash::, (), rustc_hash::FxBuildHasher>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 53,111 ( 0.00%) ???:::alloc_from_iter::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 53,083 ( 0.00%) include/jemalloc/internal/sz.h:free_default 53,037 ( 0.00%) ???:core::ptr::drop_glue::>>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 53,026 ( 0.00%) ???:rustc_hir_analysis::collect::trait_def [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,908 ( 0.00%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,904 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_data_structures/src/vec_cache.rs:::impl_trait_ref:: 52,772 ( 0.00%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,764 ( 0.00%) ???:rustc_passes::dead::live_symbols_and_ignored_derived_traits [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,689 ( 0.00%) /home/moon/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.2/src/arch/generic/memchr.rs:memchr::arch::x86_64::memchr::memchr_raw::find_avx2 52,688 ( 0.00%) ???:::visit_ty [???] 52,668 ( 0.00%) ???:rustc_query_impl::query_impl::implementations_of_trait::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,639 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_param_bound::> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 52,637 ( 0.00%) ???:rustc_query_impl::plumbing::verify_query_key_hashes_inner::, rustc_middle::query::erase::ErasedData<[u8; 8]>>>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,596 ( 0.00%) ???:rustc_ast::visit::visit_field_defs::> [???] 52,518 ( 0.00%) ???:rustc_query_impl::query_impl::make_query_vtables'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,475 ( 0.00%) ???:> as rustc_middle::query::caches::QueryCache>::for_each'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,373 ( 0.00%) ???:::lower_use_tree'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,350 ( 0.00%) /rust/deps/smallvec-1.15.1/src/lib.rs:::check_attributes 52,350 ( 0.00%) /rust/deps/smallvec-1.15.1/src/lib.rs:::check_attributes_post 52,348 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_data_structures/src/vec_cache.rs:::check_fn 52,314 ( 0.00%) ???:rustc_errors::formatting::format_diag_messages [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,128 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:::meets 52,050 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/iter.rs:>::next_back [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 52,004 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/memchr.rs:clippy_lints::doc::check_doc::> 52,004 ( 0.00%) ???: as rustc_data_structures::flat_map_in_place::FlatMapInPlace>::flat_map_in_place::::{closure#0}, smallvec::SmallVec<[rustc_ast::ast::FieldDef; 1]>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,982 ( 0.00%) ???:> as rustc_ast::visit::Visitable>>::visit [???] 51,925 ( 0.00%) ???:thin_vec::drop_non_singleton:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,867 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/non_copy_const.rs:::check_impl_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 51,867 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/types/mod.rs:::check_impl_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 51,824 ( 0.00%) ???:pulldown_cmark::firstpass::delim_run_can_open [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,801 ( 0.00%) ???:::collect_bang [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,783 ( 0.00%) ???:::new'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,729 ( 0.00%) ???:rustc_query_impl::query_impl::inhabited_predicate_type::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,714 ( 0.00%) ???:::leaf_def'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,705 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/hir.rs:::check_body 51,688 ( 0.00%) ???:::is_trivially_pure_clone_copy [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,618 ( 0.00%) ???:> as rustc_ast::visit::Visitable>>::visit [???] 51,618 ( 0.00%) ???:rustc_query_impl::query_impl::explicit_supertraits_containing_assoc_item::execute_query_non_incr::__rust_end_short_backtrace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,614 ( 0.00%) src/eset.c:pa_dalloc 51,576 ( 0.00%) ???:rustc_target::spec::crt_objects::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,547 ( 0.00%) ???:::visit_operand [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,533 ( 0.00%) ???:core::ptr::drop_glue::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,526 ( 0.00%) ???:::visit_qpath [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,446 ( 0.00%) ???:::check_expr_tuple [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,430 ( 0.00%) ???:::add_inferreds_for_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,276 ( 0.00%) ???:>::unnormalized_fn_sig'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,248 ( 0.00%) include/jemalloc/internal/jemalloc_internal_inlines_b.h:tcache_bin_flush_small 51,225 ( 0.00%) ???:::candidate_from_obligation'2 [???] 51,130 ( 0.00%) ???:::visit_block'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,079 ( 0.00%) ???:, serde_json::ser::CompactFormatter> as serde_core::ser::SerializeStruct>::serialize_field::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,069 ( 0.00%) ???:::lower_resolved_ty_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 50,992 ( 0.00%) ???:>::fold_const [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 50,985 ( 0.00%) ???:::check_param [???] -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs -------------------------------------------------------------------------------- Ir -- line 382 ---------------------------------------- . /// let a = [1, 2, 3]; . /// assert_eq!(a.into_iter().nth(10), None); . /// ``` . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_non_const_trait_method] . fn nth(&mut self, n: usize) -> Option { . self.advance_by(n).ok()?; 24 ( 0.00%) self.next() 1,470 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/iter.rs:::next (12x) . } . . /// Creates an iterator starting at the same point, but stepping by . /// the given amount at each iteration. . /// . /// Note 1: The first element of the iterator will always be returned, . /// regardless of the step given. . /// -- line 398 ---------------------------------------- -- line 879 ---------------------------------------- . Self: Sized, . F: FnMut(Self::Item), . { . #[inline] . fn call(mut f: impl FnMut(T)) -> impl FnMut((), T) { . move |(), item| f(item) . } . 10,218 ( 0.00%) self.fold((), call(f)); 157,861 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:>, ::new::{closure#0}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call>::extend_trusted>, ::new::{closure#0}>>::{closure#0}>::{closure#0}> (15x) . } . . /// Creates an iterator which uses a closure to determine if an element . /// should be yielded. . /// . /// Given an element the closure must return `true` or `false`. The returned . /// iterator will yield only the elements for which the closure returns . /// `true`. -- line 895 ---------------------------------------- -- line 2078 ---------------------------------------- . // accidentally noticed that some rustc iterators had malformed `size_hint`s, . // so this will help catch such things in debug-assertions-std runners, . // even if users won't actually ever see it. . if cfg!(debug_assertions) { . let hint = self.size_hint(); . assert!(hint.1.is_none_or(|high| high >= hint.0), "Malformed size_hint {hint:?}"); . } . 2,808 ( 0.00%) FromIterator::from_iter(self) 34,044 ( 0.00%) => /rust/deps/indexmap-2.14.0/src/map.rs:, rustc_hash::FxBuildHasher> as core::iter::traits::collect::FromIterator<(rustc_span::def_id::LocalDefId, alloc::vec::Vec)>>::from_iter::, >::new::{closure#0}>> (873x) . } . . /// Fallibly transforms an iterator into a collection, short circuiting if . /// a failure is encountered. . /// . /// `try_collect()` is a variation of [`collect()`][`collect`] that allows fallible . /// conversions during collection. Its main use case is simplifying conversions from . /// iterators yielding [`Option`][`Option`] into `Option>`, or similarly for other [`Try`] -- line 2094 ---------------------------------------- -- line 2338 ---------------------------------------- . // These closure "factory" functions exist to avoid genericity in `Self`. . . #[inline] . fn is_false<'a, T>( . predicate: &'a mut impl FnMut(&T) -> bool, . true_count: &'a mut usize, . ) -> impl FnMut(&&mut T) -> bool + 'a { . move |x| { 68 ( 0.00%) let p = predicate(&**x); . *true_count += p as usize; . !p . } . } . . #[inline] . fn is_true(predicate: &mut impl FnMut(&T) -> bool) -> impl FnMut(&&mut T) -> bool + '_ { 204 ( 0.00%) move |x| predicate(&**x) . } . . // Repeatedly find the first `false` and swap it with the last `true`. . let mut true_count = 0; . while let Some(head) = self.find(is_false(predicate, &mut true_count)) { . if let Some(tail) = self.rfind(is_true(predicate)) { . crate::mem::swap(head, tail); 48 ( 0.00%) true_count += 1; . } else { . break; . } . } . true_count . } . . /// Checks if the elements of this iterator are partitioned according to the given predicate, -- line 2370 ---------------------------------------- -- line 2474 ---------------------------------------- . /// } else { . /// ControlFlow::Break(prev) . /// } . /// }); . /// assert_eq!(triangular, ControlFlow::Continue(435)); . /// ``` . #[inline] . #[stable(feature = "iterator_try_fold", since = "1.27.0")] 853,155 ( 0.01%) fn try_fold(&mut self, init: B, mut f: F) -> R . where . Self: Sized, . F: [const] FnMut(B, Self::Item) -> R + [const] Destruct, . R: [const] Try, . { . let mut accum = init; 2,953,346 ( 0.04%) while let Some(x) = self.next() { 24,721 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/collections/btree/map.rs: as core::iter::traits::iterator::Iterator>::next (725x) 128,277 ( 0.00%) accum = f(accum, x)?; . } . try { accum } 569,274 ( 0.01%) } . . /// An iterator method that applies a fallible function to each item in the . /// iterator, stopping at the first error and returning that error. . /// . /// This can also be thought of as the fallible form of [`for_each()`] . /// or as the stateless version of [`try_fold()`]. . /// . /// [`for_each()`]: Iterator::for_each -- line 2501 ---------------------------------------- -- line 2658 ---------------------------------------- . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . fn fold(mut self, init: B, mut f: F) -> B . where . Self: Sized + [const] Destruct, . F: [const] FnMut(B, Self::Item) -> B + [const] Destruct, . { . let mut accum = init; 914,208 ( 0.01%) while let Some(x) = self.next() { 15,185 ( 0.00%) => /home/moon/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/percent-encoding-2.3.2/src/lib.rs:::next (202x) 380,802 ( 0.01%) accum = f(accum, x); . } 721,515 ( 0.01%) accum . } . . /// Reduces the elements to a single one, by repeatedly applying a reducing . /// operation. . /// . /// If the iterator is empty, returns [`None`]; otherwise, returns the . /// result of the reduction. . /// -- line 2677 ---------------------------------------- -- line 2695 ---------------------------------------- . #[inline] . #[stable(feature = "iterator_fold_self", since = "1.51.0")] . fn reduce(mut self, f: F) -> Option . where . Self: Sized + [const] Destruct, . F: [const] FnMut(Self::Item, Self::Item) -> Self::Item + [const] Destruct, . { . let first = self.next()?; 66 ( 0.00%) Some(self.fold(first, f)) . } . . /// Reduces the elements to a single one by repeatedly applying a reducing operation. If the . /// closure returns a failure, the failure is propagated back to the caller immediately. . /// . /// The return type of this method depends on the return type of the closure. If the closure . /// returns `Result`, then this function will return `Result, . /// E>`. If the closure returns `Option`, then this function will return -- line 2711 ---------------------------------------- -- line 2830 ---------------------------------------- . F: FnMut(Self::Item) -> bool, . { . #[inline] . fn check(mut f: impl FnMut(T) -> bool) -> impl FnMut((), T) -> ControlFlow<()> { . move |(), x| { . if f(x) { ControlFlow::Continue(()) } else { ControlFlow::Break(()) } . } . } 25 ( 0.00%) self.try_fold((), check(f)) == ControlFlow::Continue(()) 9,674 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:, core::slice::iter::Iter> as core::iter::traits::iterator::Iterator>::try_fold::<(), core::iter::traits::iterator::Iterator::all::check<(&rustc_hir::hir::Pat, &rustc_hir::hir::Pat), clippy_utils::hir_utils::over::eq_pat::{closure#3}>::{closure#0}>::{closure#0}, core::ops::control_flow::ControlFlow<()>> (25x) . } . . /// Tests if any element of the iterator matches a predicate. . /// . /// `any()` takes a closure that returns `true` or `false`. It applies . /// this closure to each element of the iterator, and if any of them return . /// `true`, then so does `any()`. If they all return `false`, it . /// returns `false`. -- line 2846 ---------------------------------------- -- line 2955 ---------------------------------------- . fn find

(&mut self, predicate: P) -> Option . where . Self: Sized, . P: FnMut(&Self::Item) -> bool, . { . #[inline] . fn check(mut predicate: impl FnMut(&T) -> bool) -> impl FnMut((), T) -> ControlFlow { . move |(), x| { 10,105 ( 0.00%) if predicate(&x) { ControlFlow::Break(x) } else { ControlFlow::Continue(()) } . } . } . . self.try_fold((), check(predicate)).break_value() . } . . /// Applies function to the elements of iterator and returns . /// the first non-none result. -- line 2971 ---------------------------------------- -- line 2986 ---------------------------------------- . #[rustc_non_const_trait_method] . fn find_map(&mut self, f: F) -> Option . where . Self: Sized, . F: FnMut(Self::Item) -> Option, . { . #[inline] . fn check(mut f: impl FnMut(T) -> Option) -> impl FnMut((), T) -> ControlFlow { 147,858 ( 0.00%) move |(), x| match f(x) { . Some(x) => ControlFlow::Break(x), . None => ControlFlow::Continue(()), . } . } . 71,303 ( 0.00%) self.try_fold((), check(f)).break_value() 16,760,927 ( 0.23%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs: as core::iter::traits::iterator::Iterator>::try_fold::<(), core::iter::traits::iterator::Iterator::find_map::check<(rustc_span::hygiene::ExpnId, rustc_span::hygiene::ExpnData), clippy_utils::macros::MacroCall, &mut clippy_utils::macros::macro_backtrace::{closure#0}>::{closure#0}, core::ops::control_flow::ControlFlow> (71,061x) . } . . /// Applies function to the elements of iterator and returns . /// the first true result or the first error. . /// . /// The return type of this method depends on the return type of the closure. . /// If you return `Result` from the closure, you'll get a `Result, E>`. . /// If you return `Option` from the closure, you'll get an `Option>`. -- line 3008 ---------------------------------------- -- line 3468 ---------------------------------------- . /// . /// let (x, (y, z)): (Vec<_>, (Vec<_>, Vec<_>)) = a.into_iter().unzip(); . /// assert_eq!(x, [1, 4]); . /// assert_eq!(y, [2, 5]); . /// assert_eq!(z, [3, 6]); . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_non_const_trait_method] 2,384 ( 0.00%) fn unzip(self) -> (FromA, FromB) . where . FromA: Default + Extend, . FromB: Default + Extend, . Self: Sized + Iterator, . { . let mut unzipped: (FromA, FromB) = Default::default(); . unzipped.extend(self); 2,980 ( 0.00%) unzipped 2,682 ( 0.00%) } . . /// Creates an iterator which copies all of its elements. . /// . /// This is useful when you have an iterator over `&T`, but you need an . /// iterator over `T`. . /// . /// # Examples . /// -- line 3493 ---------------------------------------- -- line 3873 ---------------------------------------- . #[stable(feature = "iter_order", since = "1.5.0")] . #[rustc_non_const_trait_method] . fn eq(self, other: I) -> bool . where . I: IntoIterator, . Self::Item: PartialEq, . Self: Sized, . { 56 ( 0.00%) self.eq_by(other, |x, y| x == y) 66,818 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:, clippy_utils::tokenize_with_text::{closure#0}>, clippy_utils::hir_utils::eq_span_tokens::f<::check_ctxt::{closure#0}>::{closure#0}>, clippy_utils::hir_utils::eq_span_tokens::f<::check_ctxt::{closure#0}>::{closure#1}> as core::iter::traits::iterator::Iterator>::eq_by::, clippy_utils::tokenize_with_text::{closure#0}>, clippy_utils::hir_utils::eq_span_tokens::f<::check_ctxt::{closure#0}>::{closure#0}>, clippy_utils::hir_utils::eq_span_tokens::f<::check_ctxt::{closure#0}>::{closure#1}>, , clippy_utils::tokenize_with_text::{closure#0}>, clippy_utils::hir_utils::eq_span_tokens::f<::check_ctxt::{closure#0}>::{closure#0}>, clippy_utils::hir_utils::eq_span_tokens::f<::check_ctxt::{closure#0}>::{closure#1}> as core::iter::traits::iterator::Iterator>::eq, clippy_utils::tokenize_with_text::{closure#0}>, clippy_utils::hir_utils::eq_span_tokens::f<::check_ctxt::{closure#0}>::{closure#0}>, clippy_utils::hir_utils::eq_span_tokens::f<::check_ctxt::{closure#0}>::{closure#1}>>::{closure#0}> (20x) . } . . /// Determines if the elements of this [`Iterator`] are equal to those of . /// another with respect to the specified equality function. . /// . /// # Examples . /// . /// ``` -- line 3889 ---------------------------------------- -- line 3891 ---------------------------------------- . /// . /// let xs = [1, 2, 3, 4]; . /// let ys = [1, 4, 9, 16]; . /// . /// assert!(xs.iter().eq_by(ys, |x, y| x * x == y)); . /// ``` . #[unstable(feature = "iter_order_by", issue = "64295")] . #[rustc_non_const_trait_method] 146 ( 0.00%) fn eq_by(self, other: I, eq: F) -> bool . where . Self: Sized, . I: IntoIterator, . F: FnMut(Self::Item, I::Item) -> bool, . { . #[inline] . fn compare(mut eq: F) -> impl FnMut(X, Y) -> ControlFlow<()> . where . F: FnMut(X, Y) -> bool, . { . move |x, y| { . if eq(x, y) { ControlFlow::Continue(()) } else { ControlFlow::Break(()) } . } . } . 204 ( 0.00%) SpecIterEq::spec_iter_eq(self, other.into_iter(), compare(eq)) 172 ( 0.00%) } . . /// Determines if the elements of this [`Iterator`] are not equal to those of . /// another. . /// . /// # Examples . /// . /// ``` . /// assert_eq!([1].iter().ne([1].iter()), false); -- line 3924 ---------------------------------------- -- line 4160 ---------------------------------------- . #[inline] . fn spec_iter_eq(self, b: B, f: F) -> bool . where . F: FnMut(Self::Item, ::Item) -> ControlFlow<()>, . { . // we *can't* short-circuit if: . match (self.size_hint(), b.size_hint()) { . // ... both iterators have the same length 142 ( 0.00%) ((_, Some(a)), (_, Some(b))) if a == b => {} . // ... or both of them are longer than `usize::MAX` (i.e. have an unknown length). . ((_, None), (_, None)) => {} . // otherwise, we can ascertain that they are unequal without actually comparing items . _ => return false, . } . . iter_eq(self, b, f) . } -- line 4176 ---------------------------------------- -- line 4202 ---------------------------------------- . B: Iterator, . { . move |x| match b.next() { . None => ControlFlow::Break(ControlFlow::Continue(Ordering::Greater)), . Some(y) => f(x, y).map_break(ControlFlow::Break), . } . } . 12 ( 0.00%) match a.try_for_each(compare(&mut b, f)) { . ControlFlow::Continue(()) => ControlFlow::Continue(match b.next() { . None => Ordering::Equal, . Some(_) => Ordering::Less, . }), . ControlFlow::Break(x) => x, . } . } . -- line 4218 ---------------------------------------- -- line 4229 ---------------------------------------- . /// Implements `Iterator` for mutable references to iterators, such as those produced by [`Iterator::by_ref`]. . /// . /// This implementation passes all method calls on to the original iterator. . #[stable(feature = "rust1", since = "1.0.0")] . impl Iterator for &mut I { . type Item = I::Item; . #[inline] . fn next(&mut self) -> Option { 90 ( 0.00%) (**self).next() 297 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:, core::slice::iter::Iter> as core::iter::traits::iterator::Iterator>::next (27x) 101 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs: as core::iter::traits::iterator::Iterator>::next (18x) . } . fn size_hint(&self) -> (usize, Option) { . (**self).size_hint() . } . fn advance_by(&mut self, n: usize) -> Result<(), NonZero> { . (**self).advance_by(n) . } . fn nth(&mut self, n: usize) -> Option { -- line 4245 ---------------------------------------- 1,822,617 ( 0.02%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/rc_clone_in_vec_init.rs -------------------------------------------------------------------------------- Ir -- line 44 ---------------------------------------- . pub RC_CLONE_IN_VEC_INIT, . suspicious, . "initializing reference-counted pointer in `vec![elem; len]`" . } . . declare_lint_pass!(RcCloneInVecInit => [RC_CLONE_IN_VEC_INIT]); . . impl LateLintPass<'_> for RcCloneInVecInit { 399,600 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'_>, expr: &Expr<'_>) { 573 ( 0.00%) let Some(macro_call) = root_macro_call_first_node(cx, expr) else { . return; . }; 955 ( 0.00%) let Some(VecArgs::Repeat(elem, len)) = VecArgs::hir(cx, expr) else { 3,769 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir (191x) . return; . }; . let Some((symbol, func_span)) = ref_init(cx, elem) else { . return; . }; . . emit_lint(cx, symbol, macro_call.span, elem, len, func_span); 355,200 ( 0.00%) } . } . . fn loop_init_suggestion(elem: &str, len: &str, indent: &str) -> String { . format!( . r"{{ . {indent} let mut v = Vec::with_capacity({len}); . {indent} (0..{len}).for_each(|_| v.push({elem})); . {indent} v -- line 72 ---------------------------------------- 191 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/functions/result.rs -------------------------------------------------------------------------------- Ir -- line 10 ---------------------------------------- . use clippy_utils::diagnostics::{span_lint_and_help, span_lint_and_then}; . use clippy_utils::ty::{AdtVariantInfo, approx_ty_size}; . use clippy_utils::{is_no_std_crate, trait_ref_of_method}; . . use super::{RESULT_LARGE_ERR, RESULT_UNIT_ERR}; . . /// The type of the `Err`-variant in a `std::result::Result` returned by the . /// given `FnDecl` 30,976 ( 0.00%) fn result_err_ty<'tcx>( . cx: &LateContext<'tcx>, . decl: &hir::FnDecl<'tcx>, . id: hir::def_id::LocalDefId, . item_span: Span, . ) -> Option<(&'tcx hir::Ty<'tcx>, Ty<'tcx>)> { 11,264 ( 0.00%) if !item_span.in_external_macro(cx.sess().source_map()) . && let hir::FnRetTy::Return(hir_ty) = decl.output . { . let mut ty = cx . .tcx 13,980 ( 0.00%) .instantiate_bound_regions_with_erased(cx.tcx.fn_sig(id).instantiate_identity().skip_norm_wip().output()); 86,664 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/fold.rs:::instantiate_bound_regions_with_erased:: (2,796x) . . // for async functions, peel through `impl Future` to get `T` 13,980 ( 0.00%) if cx.tcx.ty_is_opaque_future(ty) 50,360 ( 0.00%) => ???:::ty_is_opaque_future (2,796x) . && let Some(future_output_ty) = cx.tcx.get_impl_future_output_ty(ty) . { . ty = future_output_ty; . } . 5,592 ( 0.00%) if let ty::Adt(adt_def, args) = ty.kind() 16,542 ( 0.00%) && cx.tcx.is_diagnostic_item(sym::Result, adt_def.did()) 250,210 ( 0.00%) => ???:::is_diagnostic_item (2,757x) . { 2,616 ( 0.00%) let err_ty = args.type_at(1); . return Some((hir_ty, err_ty)); . } . } . None 25,344 ( 0.00%) } . 13,518 ( 0.00%) pub(super) fn check_item<'tcx>( . cx: &LateContext<'tcx>, . item: &hir::Item<'tcx>, . large_err_threshold: u64, . large_err_ignored: &DefIdSet, . msrv: Msrv, . ) { 3,004 ( 0.00%) if let hir::ItemKind::Fn { ref sig, .. } = item.kind 264 ( 0.00%) && let Some((hir_ty, err_ty)) = result_err_ty(cx, sig.decl, item.owner_id.def_id, item.span) 13,201 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/functions/result.rs:clippy_lints::functions::result::result_err_ty (22x) . { 50 ( 0.00%) if cx.effective_visibilities.is_exported(item.owner_id.def_id) { 480 ( 0.00%) => ???:::is_exported (10x) . let fn_header_span = item.span.with_hi(sig.decl.output.span().hi()); . check_result_unit_err(cx, err_ty, fn_header_span, msrv); . } 70 ( 0.00%) check_result_large_err(cx, err_ty, hir_ty.span, large_err_threshold, large_err_ignored, false); 39,351 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/functions/result.rs:clippy_lints::functions::result::check_result_large_err (10x) . } 12,016 ( 0.00%) } . 27,459 ( 0.00%) pub(super) fn check_impl_item<'tcx>( . cx: &LateContext<'tcx>, . item: &hir::ImplItem<'tcx>, . large_err_threshold: u64, . large_err_ignored: &DefIdSet, . msrv: Msrv, . ) { . // Don't lint if method is a trait's implementation, we can't do anything about those 6,102 ( 0.00%) if let hir::ImplItemKind::Fn(ref sig, _) = item.kind 31,752 ( 0.00%) && let Some((hir_ty, err_ty)) = result_err_ty(cx, sig.decl, item.owner_id.def_id, item.span) 1,216,058 ( 0.02%) => site/frontend/rust-clippy/clippy_lints/src/functions/result.rs:clippy_lints::functions::result::result_err_ty (2,646x) 9,896 ( 0.00%) && trait_ref_of_method(cx, item.owner_id).is_none() 489,398 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::trait_ref_of_method (2,474x) . { 35 ( 0.00%) if cx.effective_visibilities.is_exported(item.owner_id.def_id) { 324 ( 0.00%) => ???:::is_exported (7x) . let fn_header_span = item.span.with_hi(sig.decl.output.span().hi()); . check_result_unit_err(cx, err_ty, fn_header_span, msrv); . } 49 ( 0.00%) check_result_large_err(cx, err_ty, hir_ty.span, large_err_threshold, large_err_ignored, false); 5,206 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/functions/result.rs:clippy_lints::functions::result::check_result_large_err (7x) . } 24,408 ( 0.00%) } . 1,830 ( 0.00%) pub(super) fn check_trait_item<'tcx>( . cx: &LateContext<'tcx>, . item: &hir::TraitItem<'tcx>, . large_err_threshold: u64, . large_err_ignored: &DefIdSet, . msrv: Msrv, . ) { 366 ( 0.00%) if let hir::TraitItemKind::Fn(ref sig, _) = item.kind { 296 ( 0.00%) let fn_header_span = item.span.with_hi(sig.decl.output.span().hi()); 1,628 ( 0.00%) if let Some((hir_ty, err_ty)) = result_err_ty(cx, sig.decl, item.owner_id.def_id, item.span) { 50,682 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/functions/result.rs:clippy_lints::functions::result::result_err_ty (148x) 660 ( 0.00%) if cx.effective_visibilities.is_exported(item.owner_id.def_id) { 7,524 ( 0.00%) => ???:::is_exported (132x) 1 ( 0.00%) check_result_unit_err(cx, err_ty, fn_header_span, msrv); . } 924 ( 0.00%) check_result_large_err(cx, err_ty, hir_ty.span, large_err_threshold, large_err_ignored, false); 528,140 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/functions/result.rs:clippy_lints::functions::result::check_result_large_err (132x) . } . } 1,464 ( 0.00%) } . . fn check_result_unit_err(cx: &LateContext<'_>, err_ty: Ty<'_>, fn_header_span: Span, msrv: Msrv) { 4 ( 0.00%) if err_ty.is_unit() && (!is_no_std_crate(cx) || msrv.meets(cx, msrvs::ERROR_IN_CORE)) { 652 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_no_std_crate (1x) . span_lint_and_help( . cx, . RESULT_UNIT_ERR, . fn_header_span, . "this returns a `Result<_, ()>`", 2 ( 0.00%) None, . "use a custom `Error` type instead", . ); . } . } . 1,812 ( 0.00%) fn check_result_large_err<'tcx>( . cx: &LateContext<'tcx>, . err_ty: Ty<'tcx>, . hir_ty_span: Span, . large_err_threshold: u64, . large_err_ignored: &DefIdSet, . is_closure: bool, . ) { 302 ( 0.00%) if let ty::Adt(adt, _) = err_ty.kind() 2 ( 0.00%) && large_err_ignored.contains(&adt.did()) . { . return; . } . 1,508 ( 0.00%) let subject = if is_closure { "closure" } else { "function" }; . if let ty::Adt(adt, subst) = err_ty.kind() . && let Some(local_def_id) = adt.did().as_local() . && let hir::Node::Item(item) = cx.tcx.hir_node_by_def_id(local_def_id) . && let hir::ItemKind::Enum(_, _, ref def) = item.kind . { . let variants_size = AdtVariantInfo::new(cx, *adt, subst); . if let Some((first_variant, variants)) = variants_size.split_first() . && first_variant.size >= large_err_threshold -- line 139 ---------------------------------------- -- line 162 ---------------------------------------- . } . } . . diag.help(format!("try reducing the size of `{err_ty}`, for example by boxing large elements or replacing it with `Box<{err_ty}>`")); . }, . ); . } . } else { 453 ( 0.00%) let ty_size = approx_ty_size(cx, err_ty); 567,550 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::approx_ty_size (151x) 302 ( 0.00%) if ty_size >= large_err_threshold { . span_lint_and_then( . cx, . RESULT_LARGE_ERR, . hir_ty_span, . format!("the `Err`-variant returned from this {subject} is very large"), . |diag: &mut Diag<'_, ()>| { . diag.span_label(hir_ty_span, format!("the `Err`-variant is at least {ty_size} bytes")); . diag.help(format!("try reducing the size of `{err_ty}`, for example by boxing large elements or replacing it with `Box<{err_ty}>`")); . }, . ); . } . } 1,208 ( 0.00%) } . 310,800 ( 0.00%) pub(super) fn check_expr<'tcx>( . cx: &LateContext<'tcx>, . expr: &'tcx hir::Expr<'tcx>, . large_err_threshold: u64, . large_err_ignored: &DefIdSet, . ) { 88,800 ( 0.00%) if let hir::ExprKind::Closure(closure) = expr.kind 42 ( 0.00%) && let ty::Closure(_, args) = cx.typeck_results().expr_ty(expr).kind() 576 ( 0.00%) => ???:::expr_ty (14x) 14 ( 0.00%) && let closure_sig = args.as_closure().sig() . && let Ok(err_binder) = closure_sig.output().try_map_bound(|output_ty| { 28 ( 0.00%) if let ty::Adt(adt, args) = output_ty.kind() 15 ( 0.00%) && let [_, err_arg] = args.as_slice() 2 ( 0.00%) && let Some(err_ty) = err_arg.as_type() 8 ( 0.00%) && adt.is_diag_item(cx, sym::Result) . { . return Ok(err_ty); . } . . Err(()) . }) . { 6 ( 0.00%) let err_ty = cx.tcx.instantiate_bound_regions_with_erased(err_binder); 54 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/fold.rs:::instantiate_bound_regions_with_erased:: (2x) 6 ( 0.00%) let hir_ty_span = match closure.fn_decl.output { . hir::FnRetTy::Return(hir_ty) => hir_ty.span, 2 ( 0.00%) hir::FnRetTy::DefaultReturn(_) => expr.span, . }; 26 ( 0.00%) check_result_large_err(cx, err_ty, hir_ty_span, large_err_threshold, large_err_ignored, true); 454 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/functions/result.rs:clippy_lints::functions::result::check_result_large_err (2x) . } 355,184 ( 0.00%) } 13,644 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/utils/format_args_collector.rs -------------------------------------------------------------------------------- Ir -- line 13 ---------------------------------------- . pub struct FormatArgsCollector { . format_args: FxHashMap, . parent_spans: Vec, . storage: FormatArgsStorage, . } . . impl FormatArgsCollector { . pub fn new(storage: FormatArgsStorage) -> Self { 8 ( 0.00%) Self { . format_args: FxHashMap::default(), . parent_spans: Vec::new(), . storage, . } . } . } . . impl_lint_pass!(FormatArgsCollector => []); . . impl EarlyLintPass for FormatArgsCollector { 279,272 ( 0.00%) fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { 79,792 ( 0.00%) if let ExprKind::FormatArgs(args) = &expr.kind { 259 ( 0.00%) if self.has_span_from_external_macro(cx.sess().source_map(), expr.span, args) { . return; . } . . self.format_args.insert(expr.span.with_parent(None), (**args).clone()); . } 319,168 ( 0.00%) } . . fn check_crate_post(&mut self, _: &EarlyContext<'_>, _: &Crate) { 2 ( 0.00%) self.storage.set(mem::take(&mut self.format_args)); 110 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:::set (1x) . } . } . . impl FormatArgsCollector { . /// Detects if the format string or an argument has its span set by a proc macro to something . /// inside a macro callsite, e.g. . /// . /// ```ignore -- line 51 ---------------------------------------- -- line 63 ---------------------------------------- . /// ```ignore . /// println!(some_proc_macro!("input {}"), a); . /// // ^^^^^^^^^^ . /// ``` . fn has_span_from_external_macro(&mut self, sm: &SourceMap, fmt_sp: Span, args: &FormatArgs) -> bool { . let mut fmt_sp = fmt_sp.data(); . . // Find the first macro call that contains the format string. 296 ( 0.00%) let arg_sp = if let Some(arg_sp) = walk_span_to_context(args.span, fmt_sp.ctxt) { 3,821 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/source.rs:clippy_utils::source::walk_span_to_context (37x) . arg_sp.data() . } else { . // Try to find a common parent for the format call and the format string. . self.parent_spans.clear(); . // `fmt_sp.ctxt` isn't a parent of the format string so don't add it to the . // search. The first iteration will always run since it can't be the root. 290 ( 0.00%) while !fmt_sp.ctxt.is_root() { 1,008 ( 0.00%) fmt_sp = fmt_sp.ctxt.outer_expn_data().call_site.data(); . self.parent_spans.push(fmt_sp); . } . let mut arg_sp = args.span.data(); . // Note: A parent span will always eventually be found since the root context . // is an ancestor of all contexts. . loop { . match self.parent_spans.iter().find(|s| s.ctxt == arg_sp.ctxt) { 37 ( 0.00%) Some(call_sp) if call_sp.lo <= arg_sp.lo && arg_sp.hi <= call_sp.hi => { 74 ( 0.00%) fmt_sp = *call_sp; 148 ( 0.00%) break arg_sp; . }, . // If the string isn't within the call span we some macro stuff we can't . // easily interpret. . Some(_) => return true, . None => arg_sp = arg_sp.ctxt.outer_expn_data().call_site.data(), . } . } . }; 185 ( 0.00%) if fmt_sp.ctxt.in_external_macro(sm) { 5,624 ( 0.00%) => ???:::in_external_macro (37x) . return true; . } 259 ( 0.00%) let Some(src) = arg_sp.get_source_range(sm) else { . return true; . }; . let Some(src_text) = src.sf.src.as_ref().map(|x| &***x) else { . return true; . }; . . // Check the spans between the format string and the arguments and between each argument. 37 ( 0.00%) args.arguments 74 ( 0.00%) .explicit_args() 222 ( 0.00%) => ???:::explicit_args (37x) . .iter() 185 ( 0.00%) .try_fold(src.range.end, |start, arg| { 245 ( 0.00%) let expr_sp = walk_span_to_context(arg.expr.span, fmt_sp.ctxt)?.data(); 4,361 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/source.rs:clippy_utils::source::walk_span_to_context (49x) 138 ( 0.00%) let expr_start = (expr_sp.lo.0 - src.sf.start_pos.0) as usize; . let expr_end = (expr_sp.hi.0 - src.sf.start_pos.0) as usize; . let mut tks = tokenize(src_text.get(start..expr_start)?, FrontmatterAllowed::No) . .map(|x| x.kind) . .filter(|x| { . !matches!( . x, . TokenKind::LineComment { doc_style: None } . | TokenKind::BlockComment { -- line 122 ---------------------------------------- 804 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/toplevel_ref_arg.rs -------------------------------------------------------------------------------- Ir -- line 45 ---------------------------------------- . pub TOPLEVEL_REF_ARG, . style, . "an entire binding declared as `ref`, in a function argument or a `let` statement" . } . . declare_lint_pass!(ToplevelRefArg => [TOPLEVEL_REF_ARG]); . . impl<'tcx> LateLintPass<'tcx> for ToplevelRefArg { 21,920 ( 0.00%) fn check_fn( . &mut self, . cx: &LateContext<'tcx>, . k: FnKind<'tcx>, . decl: &'tcx FnDecl<'_>, . body: &'tcx Body<'_>, . _: Span, . _: LocalDefId, . ) { 5,480 ( 0.00%) if !matches!(k, FnKind::Closure) { . for arg in iter_input_pats(decl, body) { 27,155 ( 0.00%) if let PatKind::Binding(BindingMode(ByRef::Yes(..), _), ..) = arg.pat.kind . && is_lint_allowed(cx, REF_PATTERNS, arg.pat.hir_id) . && !arg.span.in_external_macro(cx.tcx.sess.source_map()) . { . span_lint_hir( . cx, . TOPLEVEL_REF_ARG, . arg.hir_id, . arg.pat.span, . "`ref` directly on a function parameter does not prevent taking ownership of the passed argument. \ . Consider using a reference type instead", . ); . } . } . } 21,920 ( 0.00%) } . 16,960 ( 0.00%) fn check_stmt(&mut self, cx: &LateContext<'tcx>, stmt: &'tcx Stmt<'_>) { 5,023 ( 0.00%) if let StmtKind::Let(local) = stmt.kind 3,253 ( 0.00%) && let PatKind::Binding(BindingMode(ByRef::Yes(_, mutabl), _), .., name, None) = local.pat.kind . && let Some(init) = local.init . // Do not emit if clippy::ref_patterns is not allowed to avoid having two lints for the same issue. . && is_lint_allowed(cx, REF_PATTERNS, local.pat.hir_id) . && !stmt.span.in_external_macro(cx.tcx.sess.source_map()) . { . let ctxt = local.span.ctxt(); . let mut app = Applicability::MachineApplicable; . let sugg_init = Sugg::hir_with_context(cx, init, ctxt, "..", &mut app); -- line 91 ---------------------------------------- -- line 110 ---------------------------------------- . stmt.span, . "try", . format!("let {name}{tyopt} = {initref};", name = snippet(cx, name.span, "..")), . app, . ); . }, . ); . } 16,960 ( 0.00%) } . } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/returns/let_and_return.rs -------------------------------------------------------------------------------- Ir -- line 8 ---------------------------------------- . use rustc_errors::Applicability; . use rustc_hir::{Block, Expr, PatKind, StmtKind}; . use rustc_lint::{LateContext, LintContext as _}; . use rustc_middle::ty::GenericArgKind; . use rustc_span::edition::Edition; . . use super::LET_AND_RETURN; . 27,328 ( 0.00%) pub(super) fn check_block<'tcx>(cx: &LateContext<'tcx>, block: &'tcx Block<'_>) { . // we need both a let-binding stmt and an expr 11,712 ( 0.00%) if let Some(retexpr) = block.expr 4,117 ( 0.00%) && let Some(stmt) = block.stmts.last() 1,372 ( 0.00%) && let StmtKind::Let(local) = &stmt.kind 648 ( 0.00%) && local.ty.is_none() 320 ( 0.00%) && local.els.is_none() 2,240 ( 0.00%) && cx.tcx.hir_attrs(local.hir_id).is_empty() 16,870 ( 0.00%) => ???:::hir_attrs (320x) 1,276 ( 0.00%) && let Some(initexpr) = &local.init 957 ( 0.00%) && let PatKind::Binding(_, local_id, _, _) = local.pat.kind . && retexpr.res_local_id() == Some(local_id) . && (cx.sess().edition() >= Edition::Edition2024 || !last_statement_borrows(cx, initexpr)) . && !initexpr.span.in_external_macro(cx.sess().source_map()) . && !retexpr.span.in_external_macro(cx.sess().source_map()) . && !local.span.from_expansion() . && !span_contains_non_whitespace(cx, stmt.span.between(retexpr.span), false) . { . span_lint_hir_and_then( -- line 33 ---------------------------------------- -- line 60 ---------------------------------------- . err.multipart_suggestion( . "return the expression directly", . vec![(local.span, String::new()), (retexpr.span, sugg)], . app, . ); . }, . ); . } 27,328 ( 0.00%) } . fn last_statement_borrows<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) -> bool { . for_each_expr(cx.tcx, expr, |e| { . if let Some(def_id) = fn_def_id(cx, e) . && cx . .tcx . .fn_sig(def_id) . .instantiate_identity() . .skip_norm_wip() -- line 76 ---------------------------------------- 324 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/ifs/mod.rs -------------------------------------------------------------------------------- Ir -- line 174 ---------------------------------------- . . pub struct CopyAndPaste<'tcx> { . interior_mut: InteriorMut<'tcx>, . } . . impl<'tcx> CopyAndPaste<'tcx> { . pub fn new(tcx: TyCtxt<'tcx>, conf: &'static Conf) -> Self { . Self { 4 ( 0.00%) interior_mut: InteriorMut::new(tcx, &conf.ignore_interior_mutability), 15,359 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:::new (1x) . } . } . } . . impl<'tcx> LateLintPass<'tcx> for CopyAndPaste<'tcx> { 399,600 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 88,800 ( 0.00%) if expr.span.from_expansion() { . return; . } 44,661 ( 0.00%) if matches!(expr.kind, ExprKind::If(..)) && !is_else_clause(cx.tcx, expr) { 7,722 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_else_clause (54x) 432 ( 0.00%) let (conds, blocks) = if_sequence(expr); 11,013 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::if_sequence (48x) 288 ( 0.00%) ifs_same_cond::check(cx, &conds, &mut self.interior_mut); 16,542 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/ifs/ifs_same_cond.rs:clippy_lints::ifs::ifs_same_cond::check (48x) 192 ( 0.00%) same_functions_in_if_cond::check(cx, &conds); 31,586 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/ifs/same_functions_in_if_cond.rs:clippy_lints::ifs::same_functions_in_if_cond::check (48x) . let all_same = 624 ( 0.00%) !is_lint_allowed(cx, IF_SAME_THEN_ELSE, expr.hir_id) && if_same_then_else::check(cx, &conds, &blocks); 83,623 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_lint_allowed (48x) 39,188 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/ifs/if_same_then_else.rs:clippy_lints::ifs::if_same_then_else::check (48x) 156 ( 0.00%) if !all_same && conds.len() != blocks.len() { 210 ( 0.00%) branches_sharing_code::check(cx, &conds, &blocks, expr); 180,635 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/ifs/branches_sharing_code.rs:clippy_lints::ifs::branches_sharing_code::check (30x) . } 290 ( 0.00%) } else if let ExprKind::Match(_, arms, _) = expr.kind { 1,595 ( 0.00%) branches_sharing_code::check_match(cx, expr, arms); 144,923 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/ifs/branches_sharing_code.rs:clippy_lints::ifs::branches_sharing_code::check_match (145x) . } 353,656 ( 0.00%) } . } 144 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/indexing_slicing.rs -------------------------------------------------------------------------------- Ir -- line 104 ---------------------------------------- . Self { . allow_indexing_slicing_in_tests: conf.allow_indexing_slicing_in_tests, . suppress_restriction_lint_in_const: conf.suppress_restriction_lint_in_const, . } . } . } . . impl<'tcx> LateLintPass<'tcx> for IndexingSlicing { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 88,800 ( 0.00%) if let ExprKind::Index(array, index, _) = &expr.kind 104 ( 0.00%) && (!self.suppress_restriction_lint_in_const || !cx.tcx.hir_is_inside_const_context(expr.hir_id)) 260 ( 0.00%) && let expr_ty = cx.typeck_results().expr_ty(array) 2,080 ( 0.00%) => ???:::expr_ty (52x) . && let mut deref = deref_chain(cx, expr_ty) . && deref.any(|l| { . l.peel_refs().is_slice() . || l.peel_refs().is_array() . || ty_has_applicable_get_function(cx, l.peel_refs(), expr_ty, expr) . }) 104 ( 0.00%) && !is_from_proc_macro(cx, expr) . { 260 ( 0.00%) let note = "the suggestion might not be applicable in constant blocks"; 104 ( 0.00%) let ty = cx.typeck_results().expr_ty(array).peel_refs(); 2,080 ( 0.00%) => ???:::expr_ty (52x) 104 ( 0.00%) let allowed_in_tests = self.allow_indexing_slicing_in_tests && is_in_test(cx.tcx, expr.hir_id); 386 ( 0.00%) if let Some(range) = higher::Range::hir(cx, index) { 17,156 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir (52x) . // Ranged indexes, i.e., &x[n..m], &x[n..], &x[..n] and &x[..] 74 ( 0.00%) if let ty::Array(_, s) = ty.kind() { 105 ( 0.00%) let size: u128 = if let Some(size) = s.try_to_target_usize(cx.tcx) { . size.into() . } else { . return; . }; . 280 ( 0.00%) let const_range = to_const_range(cx, range, size); 4,250 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/indexing_slicing.rs:clippy_lints::indexing_slicing::to_const_range (35x) . 70 ( 0.00%) if let (Some(start), _) = const_range 102 ( 0.00%) && start > size . { . span_lint( . cx, . OUT_OF_BOUNDS_INDEXING, . range.start.map_or(expr.span, |start| start.span), . "range is out of bounds", . ); . return; . } . 73 ( 0.00%) if let (_, Some(end)) = const_range 132 ( 0.00%) && end > size . { . span_lint( . cx, . OUT_OF_BOUNDS_INDEXING, . range.end.map_or(expr.span, |end| end.span), . "range is out of bounds", . ); . return; -- line 159 ---------------------------------------- -- line 161 ---------------------------------------- . . if let (Some(_), Some(_)) = const_range { . // early return because both start and end are constants . // and we have proven above that they are in bounds . return; . } . } . 22 ( 0.00%) let help_msg = match (range.start, range.end) { 8 ( 0.00%) (None, Some(_)) => "consider using `.get(..n)`or `.get_mut(..n)` instead", 3 ( 0.00%) (Some(_), None) => "consider using `.get(n..)` or .get_mut(n..)` instead", 4 ( 0.00%) (Some(_), Some(_)) => "consider using `.get(n..m)` or `.get_mut(n..m)` instead", . (None, None) => return, // [..] is ok. . }; . 8 ( 0.00%) if allowed_in_tests { . return; . } . 52 ( 0.00%) span_lint_and_then(cx, INDEXING_SLICING, expr.span, "slicing may panic", |diag| { 5,974 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/diagnostics.rs:clippy_utils::diagnostics::span_lint_and_then::::check_expr::{closure#3}> (4x) . diag.help(help_msg); . . if cx.tcx.hir_is_inside_const_context(expr.hir_id) { . diag.note(note); . } . }); . } else { . // Catchall non-range index, i.e., [n] or [n << m] 30 ( 0.00%) if let ty::Array(..) = ty.kind() { . // Index is a const block. 2 ( 0.00%) if let ExprKind::ConstBlock(..) = index.kind { . return; . } . // Index is a constant uint. 9 ( 0.00%) if let Some(constant) = ConstEvalCtxt::new(cx).eval(index) { 138 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::eval (1x) 56 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::new (1x) . // only `usize` index is legal in rust array index . // leave other type to rustc 4 ( 0.00%) if let Constant::Int(off) = constant . && off <= usize::MAX as u128 4 ( 0.00%) && let ty::Uint(utype) = cx.typeck_results().expr_ty(index).kind() 40 ( 0.00%) => ???:::expr_ty (1x) 1 ( 0.00%) && *utype == ty::UintTy::Usize 2 ( 0.00%) && let ty::Array(_, s) = ty.kind() 4 ( 0.00%) && let Some(size) = s.try_to_target_usize(cx.tcx) . { . // get constant offset and check whether it is in bounds . let off = usize::try_from(off).unwrap(); . let size = usize::try_from(size).unwrap(); . . if off >= size { . span_lint(cx, OUT_OF_BOUNDS_INDEXING, expr.span, "index is out of bounds"); . } . } . // Let rustc's `const_err` lint handle constant `usize` indexing on arrays. . return; 1 ( 0.00%) } 25 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:core::ptr::drop_glue:: (1x) . } . 28 ( 0.00%) if allowed_in_tests { . return; . } . 196 ( 0.00%) span_lint_and_then(cx, INDEXING_SLICING, expr.span, "indexing may panic", |diag| { 19,878 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/diagnostics.rs:clippy_utils::diagnostics::span_lint_and_then::::check_expr::{closure#4}> (14x) . diag.help("consider using `.get(n)` or `.get_mut(n)` instead"); . . if cx.tcx.hir_is_inside_const_context(expr.hir_id) { . diag.note(note); . } . }); . } . } 355,200 ( 0.00%) } . } . . /// Returns a tuple of options with the start and end (exclusive) values of . /// the range. If the start or end is not constant, None is returned. 420 ( 0.00%) fn to_const_range(cx: &LateContext<'_>, range: higher::Range<'_>, array_size: u128) -> (Option, Option) { 35 ( 0.00%) let ecx = ConstEvalCtxt::new(cx); 1,960 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::new (35x) 37 ( 0.00%) let s = range.start.map(|expr| ecx.eval(expr)); 347 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::eval (2x) 11 ( 0.00%) let start = match s { 3 ( 0.00%) Some(Some(Constant::Int(x))) => Some(x), . Some(_) => None, . None => Some(0), . }; . 36 ( 0.00%) let e = range.end.map(|expr| ecx.eval(expr)); 145 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::eval (1x) 5 ( 0.00%) let end = match e { . Some(Some(Constant::Int(x))) => { . if range.ty.limits() == RangeLimits::Closed { . Some(x + 1) . } else { . Some(x) . } . }, . Some(_) => None, . None => Some(array_size), . }; . 350 ( 0.00%) (start, end) 280 ( 0.00%) } . . /// Checks if the output Ty of the `get` method on this Ty (if any) matches the Ty returned by the . /// indexing operation (if any). . fn ty_has_applicable_get_function<'tcx>( . cx: &LateContext<'tcx>, . ty: Ty<'tcx>, . array_ty: Ty<'tcx>, . index_expr: &Expr<'_>, . ) -> bool { 4 ( 0.00%) if let ty::Adt(_, _) = array_ty.kind() . && let Some(get_output_ty) = get_adt_inherent_method(cx, ty, sym::get).map(|m| { . cx.tcx . .fn_sig(m.def_id) . .skip_binder() . .output() . .skip_binder() . }) . && let ty::Adt(def, args) = get_output_ty.kind() -- line 277 ---------------------------------------- 1,215 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/if_let_mutex.rs -------------------------------------------------------------------------------- Ir -- line 47 ---------------------------------------- . correctness, . "locking a `Mutex` in an `if let` block can cause deadlocks" . } . . declare_lint_pass!(IfLetMutex => [IF_LET_MUTEX]); . . impl<'tcx> LateLintPass<'tcx> for IfLetMutex { . fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 133,200 ( 0.00%) if cx.tcx.sess.edition() >= Edition2024 { . return; . } . 44,538 ( 0.00%) if let Some(higher::IfLet { 42 ( 0.00%) let_expr, 42 ( 0.00%) if_then, . if_else: Some(if_else), . .. 89,076 ( 0.00%) }) = higher::IfLet::hir(cx, expr) 265,433 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir (44,400x) 84 ( 0.00%) && let ctxt = expr.span.ctxt() 84 ( 0.00%) && let Some(op_mutex) = for_each_expr_without_closures(let_expr, |e| mutex_lock_call(cx, ctxt, e, None)) . && let Some(arm_mutex) = . for_each_expr_without_closures((if_then, if_else), |e| mutex_lock_call(cx, ctxt, e, Some(op_mutex))) . { . let diag = |diag: &mut Diag<'_, ()>| { . diag.span_label( . op_mutex.span, . "this Mutex will remain locked for the entire `if let`-block...", . ); -- line 74 ---------------------------------------- -- line 81 ---------------------------------------- . span_lint_and_then( . cx, . IF_LET_MUTEX, . expr.span, . "calling `Mutex::lock` inside the scope of another `Mutex::lock` causes a deadlock", . diag, . ); . } 44,400 ( 0.00%) } . } . . fn mutex_lock_call<'tcx>( . cx: &LateContext<'tcx>, . ctxt: SyntaxContext, . expr: &'tcx Expr<'_>, . op_mutex: Option<&'tcx Expr<'_>>, . ) -> ControlFlow<&'tcx Expr<'tcx>> { 316 ( 0.00%) if let ExprKind::MethodCall(path, self_arg, [], _) = &expr.kind 4 ( 0.00%) && path.ident.name == sym::lock . && let ty = cx.typeck_results().expr_ty(self_arg).peel_refs() . && ty.is_diag_item(cx, sym::Mutex) . && op_mutex.is_none_or(|op| eq_expr_value(cx, ctxt, self_arg, op)) . { . ControlFlow::Break(self_arg) . } else { . ControlFlow::Continue(()) . } -- line 107 ---------------------------------------- 754,968 ( 0.01%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/hir.rs -------------------------------------------------------------------------------- Ir -- line 249 ---------------------------------------- . Infer, . . /// User wrote `'static` or nothing (which gets converted to `'_`). . Static, . } . . impl LifetimeKind { . fn is_elided(&self) -> bool { 353 ( 0.00%) match self { . LifetimeKind::ImplicitObjectLifetimeDefault | LifetimeKind::Infer => true, . . // It might seem surprising that `Fresh` counts as not *elided* . // -- but this is because, as far as the code in the compiler is . // concerned -- `Fresh` variants act equivalently to "some fresh name". . // They correspond to early-bound regions on an impl, in other words. . LifetimeKind::Error(..) | LifetimeKind::Param(..) | LifetimeKind::Static => false, . } -- line 265 ---------------------------------------- -- line 408 ---------------------------------------- . } . } . . pub fn invalid() -> Self { . Self::new(Ident::dummy(), HirId::INVALID, Res::Err) . } . . pub fn args(&self) -> &GenericArgs<'hir> { 1,309 ( 0.00%) if let Some(ref args) = self.args { args } else { GenericArgs::NONE } . } . } . . #[derive(Clone, Copy, Debug, StableHash)] . pub enum ConstItemRhs<'hir> { . Body(BodyId), . TypeConst(&'hir ConstArg<'hir>), . } -- line 424 ---------------------------------------- -- line 482 ---------------------------------------- . . impl<'hir> ConstArg<'hir> { . /// Converts a `ConstArg` in an unambiguous position to one in an ambiguous position. This is . /// fallible as the [`ConstArgKind::Infer`] variant is not present in ambiguous positions. . /// . /// Functions accepting ambiguous consts will not handle the [`ConstArgKind::Infer`] variant, if . /// infer consts are relevant to you then care should be taken to handle them separately. . pub fn try_as_ambig_ct(&self) -> Option<&ConstArg<'hir, AmbigArg>> { 220 ( 0.00%) if let ConstArgKind::Infer(()) = self.kind { . return None; . } . . // SAFETY: `ConstArg` is `repr(C)` and `ConstArgKind` is marked `repr(u8)` so that the layout is . // the same across different ZST type arguments. We also asserted that the `self` is . // not a `ConstArgKind::Infer` so there is no risk of transmuting a `()` to `AmbigArg`. . let ptr = self as *const ConstArg<'hir> as *const ConstArg<'hir, AmbigArg>; . Some(unsafe { &*ptr }) -- line 498 ---------------------------------------- -- line 746 ---------------------------------------- . Some(self.span_ext).filter(|span| !span.is_empty()) . } . . pub fn is_empty(&self) -> bool { . self.args.is_empty() . } . } . 275 ( 0.00%) #[derive(Copy, Clone, PartialEq, Eq, Debug, StableHash)] . pub enum GenericArgsParentheses { . No, . /// Bounds for `feature(return_type_notation)`, like `T: Trait`, . /// where the args are explicitly elided with `..` . ReturnTypeNotation, . /// parenthesized function-family traits, like `T: Fn(u32) -> i32` . ParenSugar, . } . . /// The modifiers on a trait bound. 1,632 ( 0.00%) #[derive(Copy, Clone, PartialEq, Eq, Hash, Debug, StableHash)] . pub struct TraitBoundModifiers { . pub constness: BoundConstness, . pub polarity: BoundPolarity, . } . . impl TraitBoundModifiers { . pub const NONE: Self = . TraitBoundModifiers { constness: BoundConstness::Never, polarity: BoundPolarity::Positive }; -- line 773 ---------------------------------------- -- line 777 ---------------------------------------- . pub enum GenericBound<'hir> { . Trait(PolyTraitRef<'hir>), . Outlives(&'hir Lifetime), . Use(&'hir [PreciseCapturingArg<'hir>], Span), . } . . impl GenericBound<'_> { . pub fn trait_ref(&self) -> Option<&TraitRef<'_>> { 80 ( 0.00%) match self { . GenericBound::Trait(data) => Some(&data.trait_ref), . _ => None, . } . } . . pub fn span(&self) -> Span { . match self { . GenericBound::Trait(t, ..) => t.span, -- line 793 ---------------------------------------- -- line 855 ---------------------------------------- . pub source: GenericParamSource, . } . . impl<'hir> GenericParam<'hir> { . /// Synthetic type-parameters are inserted after normal ones. . /// In order for normal parameters to be able to refer to synthetic ones, . /// scans them first. . pub fn is_impl_trait(&self) -> bool { 50 ( 0.00%) matches!(self.kind, GenericParamKind::Type { synthetic: true, .. }) . } . . /// This can happen for `async fn`, e.g. `async fn f<'_>(&'_ self)`. . /// . /// See `lifetime_to_generic_param` in `rustc_ast_lowering` for more information. . pub fn is_elided_lifetime(&self) -> bool { 183 ( 0.00%) matches!(self.kind, GenericParamKind::Lifetime { kind: LifetimeParamKind::Elided(_) }) . } . . pub fn is_lifetime(&self) -> bool { . matches!(self.kind, GenericParamKind::Lifetime { .. }) . } . } . . /// Records where the generic parameter originated from. -- line 878 ---------------------------------------- -- line 972 ---------------------------------------- . "" . } . } . . pub fn bounds_for_param( . &self, . param_def_id: LocalDefId, . ) -> impl Iterator> { 1,364 ( 0.00%) self.predicates.iter().filter_map(move |pred| match pred.kind { . WherePredicateKind::BoundPredicate(bp) 4,092 ( 0.00%) if bp.is_param_bound(param_def_id.to_def_id()) => 13,041 ( 0.00%) => ???:::is_param_bound (621x) . { . Some(bp) . } . _ => None, . }) . } . . pub fn outlives_for_param( -- line 990 ---------------------------------------- -- line 1221 ---------------------------------------- . pub fn bounds(&self) -> GenericBounds<'hir> { . match self { . WherePredicateKind::BoundPredicate(p) => p.bounds, . WherePredicateKind::RegionPredicate(p) => p.bounds, . } . } . } . 667 ( 0.00%) #[derive(Copy, Clone, Debug, StableHash, PartialEq, Eq)] . pub enum PredicateOrigin { . WhereClause, . GenericParam, . ImplTrait, . } . . /// A type bound (e.g., `for<'c> Foo: Send + Clone + 'c`). . #[derive(Debug, Clone, Copy, StableHash)] -- line 1237 ---------------------------------------- -- line 1437 ---------------------------------------- . #[inline] . fn value_span(&self) -> Option { . self.value_lit().map(|i| i.span) . } . . /// For a single-segment attribute, returns its name; otherwise, returns `None`. . #[inline] . fn name(&self) -> Option { 4,016 ( 0.00%) match &self { . Attribute::Unparsed(n) => { 156 ( 0.00%) if let [ident] = n.path.segments.as_ref() { . Some(*ident) . } else { . None . } . } . _ => None, . } . } -- line 1455 ---------------------------------------- -- line 1468 ---------------------------------------- . Some(*span) . } else { . None . } . } . . #[inline] . fn span(&self) -> Span { 31,257 ( 0.00%) match &self { . Attribute::Unparsed(u) => u.span, . // FIXME: should not be needed anymore when all attrs are parsed . Attribute::Parsed(AttributeKind::DocComment { span, .. }) => *span, . Attribute::Parsed(AttributeKind::Deprecated { span, .. }) => *span, . Attribute::Parsed(AttributeKind::CfgTrace(cfgs)) => cfgs[0].1, . a => panic!("can't get the span of an arbitrary parsed attribute: {a:?}"), . } . } -- line 1484 ---------------------------------------- -- line 1490 ---------------------------------------- . matches!(n.args, AttrArgs::Empty) . } . _ => false, . } . } . . #[inline] . fn symbol_path(&self) -> Option> { 49,237 ( 0.00%) match &self { 432 ( 0.00%) Attribute::Unparsed(n) => Some(n.path.segments.iter().copied().collect()), . _ => None, . } . } . . fn path_span(&self) -> Option { . match &self { . Attribute::Unparsed(attr) => Some(attr.path.span), . Attribute::Parsed(_) => None, -- line 1507 ---------------------------------------- -- line 1517 ---------------------------------------- . } . . fn is_automatically_derived_attr(&self) -> bool { . matches!(self, Attribute::Parsed(AttributeKind::AutomaticallyDerived)) . } . . #[inline] . fn doc_str_and_fragment_kind(&self) -> Option<(Symbol, DocFragmentKind)> { 10,706 ( 0.00%) match &self { . Attribute::Parsed(AttributeKind::DocComment { kind, comment, .. }) => { 27,784 ( 0.00%) Some((*comment, *kind)) . } . _ => None, . } . } . . fn doc_resolution_scope(&self) -> Option { . match self { . Attribute::Parsed(AttributeKind::DocComment { style, .. }) => Some(*style), -- line 1535 ---------------------------------------- -- line 1536 ---------------------------------------- . Attribute::Unparsed(attr) if self.has_name(sym::doc) && self.value_str().is_some() => { . Some(attr.style) . } . _ => None, . } . } . . fn is_proc_macro_attr(&self) -> bool { 3,342 ( 0.00%) matches!( . self, . Attribute::Parsed( . AttributeKind::ProcMacro . | AttributeKind::ProcMacroAttribute . | AttributeKind::ProcMacroDerive { .. } . ) . ) . } . . fn is_doc_hidden(&self) -> bool { 102,644 ( 0.00%) matches!(self, Attribute::Parsed(AttributeKind::Doc(d)) if d.hidden.is_some()) . } . . fn is_doc_keyword_or_attribute(&self) -> bool { . matches!(self, Attribute::Parsed(AttributeKind::Doc(d)) if d.attribute.is_some() || d.keyword.is_some()) . } . . fn is_rustc_doc_primitive(&self) -> bool { . matches!(self, Attribute::Parsed(AttributeKind::RustcDocPrimitive(..))) -- line 1563 ---------------------------------------- -- line 1900 ---------------------------------------- . /// . /// Note that when visiting e.g. `Tuple(ps)`, . /// if visiting `ps[0]` returns `false`, . /// then `ps[1]` will not be visited. . pub fn walk_short(&self, mut it: impl FnMut(&Pat<'hir>) -> bool) -> bool { . self.walk_short_(&mut it) . } . 235 ( 0.00%) fn walk_(&self, it: &mut impl FnMut(&Pat<'hir>) -> bool) { . if !it(self) { . return; . } . . use PatKind::*; 108 ( 0.00%) match self.kind { . Missing | Wild | Never | Expr(_) | Range(..) | Binding(.., None) | Err(_) => {} . Box(s) | Deref(s) | Ref(s, _, _) | Binding(.., Some(s)) | Guard(s, _) => s.walk_(it), . Struct(_, fields, _) => fields.iter().for_each(|field| field.pat.walk_(it)), 25 ( 0.00%) TupleStruct(_, s, _) | Tuple(s, _) | Or(s) => s.iter().for_each(|p| p.walk_(it)), 432 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/hir.rs:::walk_::'2 (7x) . Slice(before, slice, after) => { . before.iter().chain(slice).chain(after.iter()).for_each(|p| p.walk_(it)) . } . } 136 ( 0.00%) } . . /// Walk the pattern in left-to-right order. . /// . /// If `it(pat)` returns `false`, the children are not visited. . pub fn walk(&self, mut it: impl FnMut(&Pat<'hir>) -> bool) { 16 ( 0.00%) self.walk_(&mut it) 674 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/hir.rs:::walk_:: (5x) . } . . /// Walk the pattern in left-to-right order. . /// . /// If you always want to recurse, prefer this method over `walk`. . pub fn walk_always(&self, mut it: impl FnMut(&Pat<'_>)) { . self.walk(|p| { . it(p); -- line 1937 ---------------------------------------- -- line 2036 ---------------------------------------- . RangeEnd::Excluded => "..", . }) . } . } . . // Equivalent to `Option`. That type takes up 16 bytes on 64-bit, but . // this type only takes up 4 bytes, at the cost of being restricted to a . // maximum value of `u32::MAX - 1`. In practice, this is more than enough. 75 ( 0.00%) #[derive(Clone, Copy, PartialEq, Eq, Hash, StableHash)] . pub struct DotDotPos(u32); . . impl DotDotPos { . /// Panics if n >= u32::MAX. . pub fn new(n: Option) -> Self { . match n { . Some(n) => { . assert!(n < u32::MAX as usize); . Self(n as u32) . } . None => Self(u32::MAX), . } . } . . pub fn as_opt_usize(&self) -> Option { 114 ( 0.00%) if self.0 == u32::MAX { None } else { Some(self.0 as usize) } . } . } . . impl fmt::Debug for DotDotPos { . fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { . self.as_opt_usize().fmt(f) . } . } -- line 2068 ---------------------------------------- -- line 2256 ---------------------------------------- . #[stable_hash(ignore)] . pub hir_id: HirId, . pub ident: Ident, . pub expr: &'hir Expr<'hir>, . pub span: Span, . pub is_shorthand: bool, . } . 4 ( 0.00%) #[derive(Copy, Clone, PartialEq, Debug, StableHash)] . pub enum BlockCheckMode { . DefaultBlock, . UnsafeBlock(UnsafeSource), . } . . #[derive(Copy, Clone, PartialEq, Debug, StableHash)] . pub enum UnsafeSource { . CompilerGenerated, -- line 2272 ---------------------------------------- -- line 2302 ---------------------------------------- . #[derive(Debug, Clone, Copy, StableHash)] . pub struct Body<'hir> { . pub params: &'hir [Param<'hir>], . pub value: &'hir Expr<'hir>, . } . . impl<'hir> Body<'hir> { . pub fn id(&self) -> BodyId { 26,685 ( 0.00%) BodyId { hir_id: self.value.hir_id } . } . } . . /// The type of source expression that caused this coroutine to be created. . #[derive(Clone, PartialEq, Eq, Debug, Copy, Hash, StableHash, Encodable, Decodable)] . pub enum CoroutineKind { . /// A coroutine that comes from a desugaring. . Desugared(CoroutineDesugaring, CoroutineSource), -- line 2318 ---------------------------------------- -- line 2719 ---------------------------------------- . . /// If `Self.kind` is `ExprKind::DropTemps(expr)`, drill down until we get a non-`DropTemps` . /// `Expr`. This is used in suggestions to ignore this `ExprKind` as it is semantically . /// silent, only signaling the ownership system. By doing this, suggestions that check the . /// `ExprKind` of any given `Expr` for presentation don't have to care about `DropTemps` . /// beyond remembering to call this function before doing analysis on it. . pub fn peel_drop_temps(&self) -> &Self { . let mut expr = self; 30,278 ( 0.00%) while let ExprKind::DropTemps(inner) = &expr.kind { . expr = inner; . } . expr . } . . pub fn peel_blocks(&self) -> &Self { . let mut expr = self; 303,616 ( 0.00%) while let ExprKind::Block(Block { expr: Some(inner), .. }, _) = &expr.kind { . expr = inner; . } . expr . } . . pub fn peel_borrows(&self) -> &Self { . let mut expr = self; 137,303 ( 0.00%) while let ExprKind::AddrOf(.., inner) = &expr.kind { 1,943 ( 0.00%) expr = inner; . } . expr . } . . pub fn can_have_side_effects(&self) -> bool { . match self.peel_drop_temps().kind { . ExprKind::Path(_) | ExprKind::Lit(_) | ExprKind::OffsetOf(..) | ExprKind::Use(..) => { . false -- line 2752 ---------------------------------------- -- line 3137 ---------------------------------------- . AwaitDesugar, . /// A desugared `expr = expr`, where the LHS is a tuple, struct, array or underscore expression. . AssignDesugar, . /// A contract `#[ensures(..)]` attribute injects a let binding for the check that runs at point of return. . Contract, . } . . /// Hints at the original code for a `match _ { .. }`. 2,445 ( 0.00%) #[derive(Copy, Clone, PartialEq, Eq, Hash, Debug, StableHash, Encodable, Decodable)] . pub enum MatchSource { . /// A `match _ { .. }`. . Normal, . /// A `expr.match { .. }`. . Postfix, . /// A desugared `for _ in _ { .. }` loop. . ForLoopDesugar, . /// A desugared `?` operator. -- line 3153 ---------------------------------------- -- line 3316 ---------------------------------------- . fn expect_failed(ident: &'static str, found: T) -> ! { . panic!("{ident}: found {found:?}") . } . . impl<'hir> TraitItem<'hir> { . #[inline] . pub fn hir_id(&self) -> HirId { . // Items are always HIR owners. 604 ( 0.00%) HirId::make_owner(self.owner_id.def_id) . } . . pub fn trait_item_id(&self) -> TraitItemId { . TraitItemId { owner_id: self.owner_id } . } . . expect_methods_self_kind! { . expect_const, (&'hir Ty<'hir>, Option>), -- line 3332 ---------------------------------------- -- line 3402 ---------------------------------------- . trait_item_def_id: Result, . }, . } . . impl<'hir> ImplItem<'hir> { . #[inline] . pub fn hir_id(&self) -> HirId { . // Items are always HIR owners. 21,015 ( 0.00%) HirId::make_owner(self.owner_id.def_id) . } . . pub fn impl_item_id(&self) -> ImplItemId { . ImplItemId { owner_id: self.owner_id } . } . . pub fn vis_span(&self) -> Option { . match self.impl_kind { -- line 3418 ---------------------------------------- -- line 3559 ---------------------------------------- . . impl<'hir> Ty<'hir> { . /// Converts a `Ty` in an unambiguous position to one in an ambiguous position. This is . /// fallible as the [`TyKind::Infer`] variant is not present in ambiguous positions. . /// . /// Functions accepting ambiguous types will not handle the [`TyKind::Infer`] variant, if . /// infer types are relevant to you then care should be taken to handle them separately. . pub fn try_as_ambig_ty(&self) -> Option<&Ty<'hir, AmbigArg>> { 55,243 ( 0.00%) if let TyKind::Infer(()) = self.kind { . return None; . } . . // SAFETY: `Ty` is `repr(C)` and `TyKind` is marked `repr(u8)` so that the layout is . // the same across different ZST type arguments. We also asserted that the `self` is . // not a `TyKind::Infer` so there is no risk of transmuting a `()` to `AmbigArg`. . let ptr = self as *const Ty<'hir> as *const Ty<'hir, AmbigArg>; . Some(unsafe { &*ptr }) . } . } . . impl<'hir> Ty<'hir, AmbigArg> { . pub fn peel_refs(&self) -> &Ty<'hir> { . let mut final_ty = self.as_unambig_ty(); 236 ( 0.00%) while let TyKind::Ref(_, MutTy { ty, .. }) = &final_ty.kind { 17 ( 0.00%) final_ty = ty; . } . final_ty . } . } . . impl<'hir> Ty<'hir> { . pub fn peel_refs(&self) -> &Self { . let mut final_ty = self; 48 ( 0.00%) while let TyKind::Ref(_, MutTy { ty, .. }) = &final_ty.kind { 16 ( 0.00%) final_ty = ty; . } . final_ty . } . . /// Returns `true` if `param_def_id` matches the `bounded_ty` of this predicate. . pub fn as_generic_param(&self) -> Option<(DefId, Ident)> { 48,270 ( 0.00%) let TyKind::Path(QPath::Resolved(None, path)) = self.kind else { . return None; . }; 17,099 ( 0.00%) let [segment] = &path.segments else { . return None; . }; 41,266 ( 0.00%) match path.res { 10,154 ( 0.00%) Res::Def(DefKind::TyParam, def_id) | Res::SelfTyParam { trait_: def_id } => { 13,412 ( 0.00%) Some((def_id, segment.ident)) . } . _ => None, . } . } . . pub fn find_self_aliases(&self) -> Vec { . use crate::intravisit::Visitor; . struct MyVisitor(Vec); -- line 3616 ---------------------------------------- -- line 3729 ---------------------------------------- . } . } . . /// Returns the matching `PrimTy` for a `Symbol` such as "str" or "i32". . /// Returns `None` if no matching type is found. . pub fn from_name(name: Symbol) -> Option { . let ty = match name { . // any changes here should also be reflected in `PrimTy::ALL` 33,433 ( 0.00%) sym::i8 => Self::Int(IntTy::I8), . sym::i16 => Self::Int(IntTy::I16), . sym::i32 => Self::Int(IntTy::I32), . sym::i64 => Self::Int(IntTy::I64), . sym::i128 => Self::Int(IntTy::I128), . sym::isize => Self::Int(IntTy::Isize), . sym::u8 => Self::Uint(UintTy::U8), . sym::u16 => Self::Uint(UintTy::U16), . sym::u32 => Self::Uint(UintTy::U32), -- line 3745 ---------------------------------------- -- line 3751 ---------------------------------------- . sym::f64 => Self::Float(FloatTy::F64), . sym::f128 => Self::Float(FloatTy::F128), . sym::bool => Self::Bool, . sym::char => Self::Char, . sym::str => Self::Str, . _ => return None, . }; . Some(ty) 3,713 ( 0.00%) } . } . . #[derive(Debug, Clone, Copy, StableHash)] . pub struct FnPtrTy<'hir> { . pub safety: Safety, . pub abi: ExternAbi, . pub generic_params: &'hir [GenericParam<'hir>], . pub decl: &'hir FnDecl<'hir>, -- line 3767 ---------------------------------------- -- line 4215 ---------------------------------------- . . /// Do the function arguments end with a C-style variadic argument? . pub fn c_variadic(self) -> bool { . self.flags & Self::C_VARIADIC_FLAG != 0 . } . . /// Is lifetime elision allowed? . pub fn lifetime_elision_allowed(self) -> bool { 2,616 ( 0.00%) self.flags & Self::LIFETIME_ELISION_ALLOWED_FLAG != 0 . } . . /// Get the splatted argument index, if any. . pub fn splatted(self) -> Option { . if self.splatted == Self::NO_SPLATTED_ARG_INDEX { None } else { Some(self.splatted) } . } . } . -- line 4231 ---------------------------------------- -- line 4266 ---------------------------------------- . self.fn_decl_kind.implicit_self() . } . . pub fn c_variadic(&self) -> bool { . self.fn_decl_kind.c_variadic() . } . . pub fn lifetime_elision_allowed(&self) -> bool { 1,308 ( 0.00%) self.fn_decl_kind.lifetime_elision_allowed() . } . . pub fn splatted(&self) -> Option { . self.fn_decl_kind.splatted() . } . . pub fn dummy(span: Span) -> Self { . Self { -- line 4282 ---------------------------------------- -- line 4301 ---------------------------------------- . /// Represents when a function does not have a self argument or . /// when a function has a `self: X` argument. . None, . } . . impl ImplicitSelfKind { . /// Does this represent an implicit self? . pub fn has_implicit_self(&self) -> bool { 11,536 ( 0.00%) !matches!(*self, ImplicitSelfKind::None) . } . } . . #[derive(Copy, Clone, PartialEq, Eq, Encodable, Decodable, Debug, StableHash)] . pub enum IsAsync { . Async(Span), . NotAsync, . } . . impl IsAsync { . pub fn is_async(self) -> bool { 5,466 ( 0.00%) matches!(self, IsAsync::Async(_)) . } . } . . #[derive(Copy, Clone, PartialEq, Eq, Debug, Encodable, Decodable, StableHash)] . #[derive(Default)] . pub enum Defaultness { . Default { . has_value: bool, -- line 4329 ---------------------------------------- -- line 4359 ---------------------------------------- . DefaultReturn(Span), . /// Everything else. . Return(&'hir Ty<'hir>), . } . . impl<'hir> FnRetTy<'hir> { . #[inline] . pub fn span(&self) -> Span { 10,493 ( 0.00%) match *self { 1 ( 0.00%) Self::DefaultReturn(span) => span, 9,351 ( 0.00%) Self::Return(ref ty) => ty.span, . } . } . . pub fn is_suggestable_infer_ty(&self) -> Option<&'hir Ty<'hir>> { . if let Self::Return(ty) = self . && ty.is_suggestable_infer_ty() . { . return Some(*ty); -- line 4377 ---------------------------------------- -- line 4524 ---------------------------------------- . /// E.g., `Bar = ..` as in `enum Foo { Bar = .. }`. . Unit(#[stable_hash(ignore)] HirId, LocalDefId), . } . . impl<'hir> VariantData<'hir> { . /// Return the fields of this variant. . pub fn fields(&self) -> &'hir [FieldDef<'hir>] { . match *self { 7 ( 0.00%) VariantData::Struct { fields, .. } | VariantData::Tuple(fields, ..) => fields, . _ => &[], . } . } . . pub fn ctor(&self) -> Option<(CtorKind, HirId, LocalDefId)> { 74 ( 0.00%) match *self { . VariantData::Tuple(_, hir_id, def_id) => Some((CtorKind::Fn, hir_id, def_id)), . VariantData::Unit(hir_id, def_id) => Some((CtorKind::Const, hir_id, def_id)), . VariantData::Struct { .. } => None, . } . } . . #[inline] . pub fn ctor_kind(&self) -> Option { -- line 4546 ---------------------------------------- -- line 4594 ---------------------------------------- . /// either an `EiiImpls` or `EiiExternTarget` attribute . pub eii: bool, . } . . impl<'hir> Item<'hir> { . #[inline] . pub fn hir_id(&self) -> HirId { . // Items are always HIR owners. 9,447 ( 0.00%) HirId::make_owner(self.owner_id.def_id) . } . . #[inline] . pub fn item_id(&self) -> ItemId { . ItemId { owner_id: self.owner_id } . } . . /// Check if this is an [`ItemKind::Enum`], [`ItemKind::Struct`] or -- line 4610 ---------------------------------------- -- line 4789 ---------------------------------------- . pub safety: HeaderSafety, . pub constness: Constness, . pub asyncness: IsAsync, . pub abi: ExternAbi, . } . . impl FnHeader { . pub fn is_async(&self) -> bool { 248 ( 0.00%) matches!(self.asyncness, IsAsync::Async(_)) . } . . pub fn is_unsafe(&self) -> bool { . self.safety().is_unsafe() . } . . pub fn is_safe(&self) -> bool { . self.safety().is_safe() . } . . pub fn safety(&self) -> Safety { 6,458 ( 0.00%) match self.safety { . HeaderSafety::SafeTargetFeatures => Safety::Unsafe, . HeaderSafety::Normal(safety) => safety, . } . } . } . . #[derive(Debug, Clone, Copy, StableHash)] . pub enum ItemKind<'hir> { -- line 4817 ---------------------------------------- -- line 4905 ---------------------------------------- . // We do not put a `Span` in `Defaultness` because it breaks foreign crate metadata . // decoding as `Span`s cannot be decoded when a `Session` is not available. . pub defaultness_span: Option, . pub trait_ref: TraitRef<'hir>, . } . . impl ItemKind<'_> { . pub fn ident(&self) -> Option { 372 ( 0.00%) match *self { . ItemKind::ExternCrate(_, ident) . | ItemKind::Use(_, UseKind::Single(ident)) . | ItemKind::Static(_, ident, ..) . | ItemKind::Const(ident, ..) . | ItemKind::Fn { ident, .. } . | ItemKind::Macro(ident, ..) . | ItemKind::Mod(ident, ..) . | ItemKind::TyAlias(ident, ..) -- line 4921 ---------------------------------------- -- line 4925 ---------------------------------------- . | ItemKind::Trait { ident, .. } . | ItemKind::TraitAlias(_, ident, ..) => Some(ident), . . ItemKind::Use(_, UseKind::Glob | UseKind::ListStem) . | ItemKind::ForeignMod { .. } . | ItemKind::GlobalAsm { .. } . | ItemKind::Impl(_) => None, . } 44 ( 0.00%) } . . pub fn generics(&self) -> Option<&Generics<'_>> { . Some(match self { . ItemKind::Fn { generics, .. } . | ItemKind::TyAlias(_, generics, _) . | ItemKind::Const(_, generics, _, _) . | ItemKind::Enum(_, generics, _) . | ItemKind::Struct(_, generics, _) -- line 4941 ---------------------------------------- 202,933 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/literal_representation.rs -------------------------------------------------------------------------------- Ir -- line 201 ---------------------------------------- . } . } . . pub struct LiteralDigitGrouping { . lint_fraction_readability: bool, . } . . impl EarlyLintPass for LiteralDigitGrouping { 279,272 ( 0.00%) fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { . // `NumericLiteral::from_lit_kind` only accepts integer and float literals. 81,734 ( 0.00%) if let ExprKind::Lit(lit) = expr.kind 5,826 ( 0.00%) && matches!(lit.kind, token::LitKind::Integer | token::LitKind::Float) 5,604 ( 0.00%) && !expr.span.in_external_macro(cx.sess().source_map()) . { . self.check_lit(cx, lit, expr.span); . } 319,168 ( 0.00%) } . } . . // Length of each UUID hyphenated group in hex digits. . const UUID_GROUP_LENS: [usize; 5] = [8, 4, 4, 4, 12]; . . impl LiteralDigitGrouping { . pub fn new(conf: &'static Conf) -> Self { . Self { 2 ( 0.00%) lint_fraction_readability: conf.unreadable_literal_lint_fractions, . } . } . . fn check_lit(&self, cx: &EarlyContext<'_>, lit: token::Lit, span: Span) { 9,807 ( 0.00%) if let Some(src) = span.get_text(cx) 11,208 ( 0.00%) && let Ok(lit_kind) = LitKind::from_token_lit(lit) 230,041 ( 0.00%) => ???:::from_token_lit (1,401x) 24,061 ( 0.00%) && let Some(mut num_lit) = NumericLiteral::from_lit_kind(&src, &lit_kind) 182,337 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/numeric_literal.rs:::from_lit_kind (1,401x) 35,025 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:::deref (1,401x) . { . if !Self::check_for_mistyped_suffix(cx, span, &mut num_lit) { . return; . } . . if Self::is_literal_uuid_formatted(&num_lit) { . return; . } . 3,198 ( 0.00%) let result = (|| { . let integral_group_size = Self::get_group_size(num_lit.integer.split('_'), num_lit.radix, true)?; 3,202 ( 0.00%) if let Some(fraction) = num_lit.fraction { . let fractional_group_size = 12 ( 0.00%) Self::get_group_size(fraction.rsplit('_'), num_lit.radix, self.lint_fraction_readability)?; . . let consistent = Self::parts_consistent( . integral_group_size, . fractional_group_size, . num_lit.integer.len(), . fraction.len(), . ); . if !consistent { -- line 255 ---------------------------------------- -- line 272 ---------------------------------------- . warning_type.display(&num_lit, cx, span); . } . } . } . } . . // Returns `false` if the check fails . fn check_for_mistyped_suffix(cx: &EarlyContext<'_>, span: Span, num_lit: &mut NumericLiteral<'_>) -> bool { 1,066 ( 0.00%) if num_lit.suffix.is_some() { . return true; . } . 3,180 ( 0.00%) let (part, mistyped_suffixes, is_float) = if let Some((_, exponent)) = &mut num_lit.exponent { . (exponent, &["32", "64"][..], true) 1,060 ( 0.00%) } else if num_lit.fraction.is_some() { . return true; . } else { . (&mut num_lit.integer, &["8", "16", "32", "64"][..], false) . }; . 2,112 ( 0.00%) let mut split = part.rsplit('_'); 2,112 ( 0.00%) let last_group = split.next().expect("At least one group"); 1,060 ( 0.00%) if split.next().is_some() && mistyped_suffixes.contains(&last_group) { . let main_part = &part[..part.len() - last_group.len()]; . let missing_char; . if is_float { . missing_char = 'f'; . } else { . let radix = match num_lit.radix { . Radix::Binary => 2, . Radix::Octal => 8, -- line 302 ---------------------------------------- -- line 363 ---------------------------------------- . /// of both parts, determine if the digits have been grouped consistently. . #[must_use] . fn parts_consistent( . int_group_size: Option, . frac_group_size: Option, . int_size: usize, . frac_size: usize, . ) -> bool { 12 ( 0.00%) match (int_group_size, frac_group_size) { . // No groups on either side of decimal point - trivially consistent. . (None, None) => true, . // Integral part has grouped digits, fractional part does not. . (Some(int_group_size), None) => frac_size <= int_group_size, . // Fractional part has grouped digits, integral part does not. . (None, Some(frac_group_size)) => int_size <= frac_group_size, . // Both parts have grouped digits. Groups should be the same size. . (Some(int_group_size), Some(frac_group_size)) => int_group_size == frac_group_size, -- line 379 ---------------------------------------- -- line 386 ---------------------------------------- . groups: impl Iterator, . radix: Radix, . lint_unreadable: bool, . ) -> Result, WarningType> { . let mut groups = groups.map(str::len); . . let first = groups.next().expect("At least one group"); . 2,140 ( 0.00%) if (radix == Radix::Binary || radix == Radix::Octal || radix == Radix::Hexadecimal) . && let Some(second_size) = groups.next() . && (!groups.all(|i| i == second_size) || first > second_size) . { . return Err(WarningType::UnusualByteGroupings); . } . . if let Some(second) = groups.next() { 6 ( 0.00%) if !groups.all(|x| x == second) || first > second { . Err(WarningType::InconsistentDigitGrouping) 4 ( 0.00%) } else if second > 4 { . Err(WarningType::LargeDigitGroups) . } else { . Ok(Some(second)) . } 2,136 ( 0.00%) } else if first > 5 && lint_unreadable { . Err(WarningType::UnreadableLiteral) . } else { . Ok(None) . } . } . } . . pub struct DecimalLiteralRepresentation { . threshold: u64, . } . . impl EarlyLintPass for DecimalLiteralRepresentation { 279,272 ( 0.00%) fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { . // Only integer tokens can produce `LitKind::Int`. 79,792 ( 0.00%) if let ExprKind::Lit(lit) = expr.kind . && lit.kind == token::LitKind::Integer 4,191 ( 0.00%) && !expr.span.in_external_macro(cx.sess().source_map()) . { 6,985 ( 0.00%) self.check_lit(cx, lit, expr.span); . } 319,168 ( 0.00%) } . } . . impl DecimalLiteralRepresentation { . pub fn new(conf: &'static Conf) -> Self { . Self { 2 ( 0.00%) threshold: conf.literal_representation_threshold, . } . } . fn check_lit(&self, cx: &EarlyContext<'_>, lit: token::Lit, span: Span) { . // Lint integral literals. 9,779 ( 0.00%) if let Ok(lit_kind) = LitKind::from_token_lit(lit) 229,689 ( 0.00%) => ???:::from_token_lit (1,397x) 5,588 ( 0.00%) && let LitKind::Int(val, _) = lit_kind 1,397 ( 0.00%) && val >= u128::from(self.threshold) 20 ( 0.00%) && let Some(src) = span.get_text(cx) 834 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/source.rs:::get_text::<&rustc_lint::context::EarlyContext> (2x) 12 ( 0.00%) && let Some(num_lit) = NumericLiteral::from_lit_kind(&src, &lit_kind) 306 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/numeric_literal.rs:::from_lit_kind (2x) 50 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:::deref (2x) . && num_lit.radix == Radix::Decimal . { 6 ( 0.00%) let hex = format!("{val:#X}"); 10 ( 0.00%) let num_lit = NumericLiteral::new(&hex, num_lit.suffix, false); 142 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/numeric_literal.rs:::new (2x) 4 ( 0.00%) let _: Result<(), ()> = Self::do_lint(num_lit.integer).map_err(|warning_type| { . warning_type.display(&num_lit, cx, span); . }); . } . } . . fn do_lint(digits: &str) -> Result<(), WarningType> { 4 ( 0.00%) if digits.len() == 1 { . // Lint for 1 digit literals, if someone really sets the threshold that low . if digits == "1" . || digits == "2" . || digits == "4" . || digits == "8" . || digits == "3" . || digits == "7" . || digits == "F" . { . return Err(WarningType::DecimalRepresentation); . } 4 ( 0.00%) } else if digits.len() < 4 { . // Lint for Literals with a hex-representation of 2 or 3 digits . let f = &digits[0..1]; // first digit . let s = &digits[1..]; // suffix . . // Powers of 2 . if ((f.eq("1") || f.eq("2") || f.eq("4") || f.eq("8")) && s.chars().all(|c| c == '0')) . // Powers of 2 minus 1 . || ((f.eq("1") || f.eq("3") || f.eq("7") || f.eq("F")) && s.chars().all(|c| c == 'F')) -- line 477 ---------------------------------------- -- line 480 ---------------------------------------- . } . } else { . // Lint for Literals with a hex-representation of 4 digits or more . let f = &digits[0..1]; // first digit . let m = &digits[1..digits.len() - 1]; // middle digits, except last . let s = &digits[1..]; // suffix . . // Powers of 2 with a margin of +15/-16 6 ( 0.00%) if ((f.eq("1") || f.eq("2") || f.eq("4") || f.eq("8")) && m.chars().all(|c| c == '0')) 2 ( 0.00%) || ((f.eq("1") || f.eq("3") || f.eq("7") || f.eq("F")) && m.chars().all(|c| c == 'F')) . // Lint for representations with only 0s and Fs, while allowing 7 as the first . // digit 8 ( 0.00%) || ((f.eq("7") || f.eq("F")) && s.chars().all(|c| c == '0' || c == 'F')) . { . return Err(WarningType::DecimalRepresentation); . } . } . . Ok(()) . } . } -- line 500 ---------------------------------------- 19,009 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/unnecessary_mut_passed.rs -------------------------------------------------------------------------------- Ir -- line 34 ---------------------------------------- . pub UNNECESSARY_MUT_PASSED, . style, . "an argument passed as a mutable reference although the callee only demands an immutable reference" . } . . declare_lint_pass!(UnnecessaryMutPassed => [UNNECESSARY_MUT_PASSED]); . . impl<'tcx> LateLintPass<'tcx> for UnnecessaryMutPassed { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, e: &'tcx Expr<'_>) { 88,800 ( 0.00%) if e.span.from_expansion() { . // Issue #11268 . return; . } . 42,531 ( 0.00%) match e.kind { 1,914 ( 0.00%) ExprKind::Call(fn_expr, arguments) => { 1,914 ( 0.00%) if let ExprKind::Path(ref path) = fn_expr.kind . && arguments.iter().any(is_mut_ref_arg) . { 63 ( 0.00%) check_arguments( . cx, . &mut arguments.iter(), 14 ( 0.00%) cx.typeck_results().expr_ty(fn_expr), 280 ( 0.00%) => ???:::expr_ty (7x) . #[allow(trivial_casts)] 14 ( 0.00%) &|| { . rustc_hir_pretty::qpath_to_string( . &(&cx.tcx as &dyn intravisit::HirTyCtxt<'_>) as &dyn PpAnn, . path, . ) . }, . "function", . ); . } . }, 18 ( 0.00%) ExprKind::MethodCall(path, receiver, arguments, _) 2,991 ( 0.00%) if iter::once(receiver).chain(arguments.iter()).any(is_mut_ref_arg) 81 ( 0.00%) && let Some(def_id) = cx.typeck_results().type_dependent_def_id(e.hir_id) => 459 ( 0.00%) => ???:::type_dependent_def_id (9x) . { 45 ( 0.00%) let args = cx.typeck_results().node_args(e.hir_id); 346 ( 0.00%) => ???:::node_args (9x) 9 ( 0.00%) let method_type = cx.tcx.type_of(def_id).instantiate(cx.tcx, args).skip_norm_wip(); 81 ( 0.00%) check_arguments( . cx, . &mut iter::once(receiver).chain(arguments.iter()), . method_type, 9 ( 0.00%) &|| path.ident.as_str().to_owned(), . "method", . ); . }, . _ => (), . } 355,200 ( 0.00%) } . } . . /// Only `&mut ...` arguments can lint, so the type and path lookups run only after one is found. . fn is_mut_ref_arg(argument: &Expr<'_>) -> bool { 6,052 ( 0.00%) matches!(argument.kind, ExprKind::AddrOf(BorrowKind::Ref, Mutability::Mut, _)) . } . 192 ( 0.00%) fn check_arguments<'tcx>( . cx: &LateContext<'tcx>, . arguments: &mut dyn Iterator>, . type_definition: Ty<'tcx>, . name: &dyn Fn() -> String, . fn_kind: &str, . ) { . if type_definition.is_fn() { 48 ( 0.00%) let parameters = type_definition.fn_sig(cx.tcx).skip_binder().inputs(); 16,018 ( 0.00%) => ???:::fn_sig (16x) . for (argument, parameter) in iter::zip(arguments, parameters) { 222 ( 0.00%) if let ty::Ref(_, _, Mutability::Not) | ty::RawPtr(_, Mutability::Not) = parameter.kind() . && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Mut, arg) = argument.kind . { . let applicability = Applicability::MachineApplicable; . . let span_to_remove = { . let span_until_arg = argument.span.until(arg.span); . if let Some(Some(ref_pos)) = span_until_arg.with_source_text(cx, |src| { . src -- line 110 ---------------------------------------- -- line 128 ---------------------------------------- . format!("the {fn_kind} `{}` doesn't need a mutable reference", name()), . |diag| { . diag.span_suggestion_verbose(span_to_remove, "remove this `mut`", String::new(), applicability); . }, . ); . } . } . } 128 ( 0.00%) } 190 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/to_digit_is_some.rs -------------------------------------------------------------------------------- Ir -- line 43 ---------------------------------------- . . impl ToDigitIsSome { . pub(crate) fn new(conf: &'static Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl<'tcx> LateLintPass<'tcx> for ToDigitIsSome { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx hir::Expr<'_>) { 96,418 ( 0.00%) if let hir::ExprKind::MethodCall(is_some_path, to_digit_expr, [], _) = &expr.kind 2,632 ( 0.00%) && is_some_path.ident.name == sym::is_some . { 80 ( 0.00%) let match_result = match to_digit_expr.kind { 4 ( 0.00%) hir::ExprKind::MethodCall(to_digits_path, char_arg, [radix_arg], _) => { . if to_digits_path.ident.name == sym::to_digit . && cx.typeck_results().expr_ty_adjusted(char_arg).is_char() . { . Some((true, char_arg, radix_arg)) . } else { . None . } . }, -- line 64 ---------------------------------------- -- line 89 ---------------------------------------- . format!("{char_arg_snip}.is_digit({radix_snip})") . } else { . format!("char::is_digit({char_arg_snip}, {radix_snip})") . }, . applicability, . ); . } . } 355,200 ( 0.00%) } . } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/attrs/mod.rs -------------------------------------------------------------------------------- Ir -- line 506 ---------------------------------------- . . impl Attributes { . pub fn new(conf: &'static Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl<'tcx> LateLintPass<'tcx> for Attributes { 13,518 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'_>) { 7,510 ( 0.00%) let attrs = cx.tcx.hir_attrs(item.hir_id()); 71,526 ( 0.00%) => ???:::hir_attrs (1,502x) 3,070 ( 0.00%) if let ItemKind::Fn { ident, body, .. } = item.kind { 154 ( 0.00%) inline_always::check(cx, item.span, ident.name, attrs, Some(body)); 633 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/attrs/inline_always.rs:clippy_lints::attrs::inline_always::check (22x) . } 1,480 ( 0.00%) repr_attributes::check(cx, item.span, attrs, self.msrv); 10,514 ( 0.00%) } . . fn check_impl_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx ImplItem<'_>) { 14,040 ( 0.00%) if let ImplItemKind::Fn(_, body) = item.kind { 18,522 ( 0.00%) inline_always::check( 59,804 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/attrs/inline_always.rs:clippy_lints::attrs::inline_always::check (2,646x) . cx, 2,646 ( 0.00%) item.span, 2,646 ( 0.00%) item.ident.name, 10,584 ( 0.00%) cx.tcx.hir_attrs(item.hir_id()), 137,271 ( 0.00%) => ???:::hir_attrs (2,646x) . Some(body), . ); . } . } . . fn check_trait_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx TraitItem<'_>) { 366 ( 0.00%) if let TraitItemKind::Fn(_, kind) = item.kind { 888 ( 0.00%) let body = match kind { . TraitFn::Required(_) => None, . TraitFn::Provided(body) => Some(body), . }; 2,072 ( 0.00%) inline_always::check(cx, item.span, item.ident.name, cx.tcx.hir_attrs(item.hir_id()), body); 11,904 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/attrs/inline_always.rs:clippy_lints::attrs::inline_always::check (148x) 7,760 ( 0.00%) => ???:::hir_attrs (148x) . } . } . } . . pub struct EarlyAttributes { . msrv: MsrvStack, . } . . impl EarlyAttributes { . pub fn new(conf: &'static Conf) -> Self { 18 ( 0.00%) Self { msrv: conf.msrv.into() } . } . } . . impl EarlyLintPass for EarlyAttributes { 22,602 ( 0.00%) fn check_attribute(&mut self, cx: &EarlyContext<'_>, attr: &Attribute) { 11,301 ( 0.00%) deprecated_cfg_attr::check(cx, attr, &self.msrv); 228,656 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/attrs/deprecated_cfg_attr.rs:clippy_lints::attrs::deprecated_cfg_attr::check (3,767x) 11,301 ( 0.00%) deprecated_cfg_attr::check_clippy(cx, attr); 531,128 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/attrs/deprecated_cfg_attr.rs:clippy_lints::attrs::deprecated_cfg_attr::check_clippy (3,767x) . non_minimal_cfg::check(cx, attr); 15,068 ( 0.00%) } . . extract_msrv_attr!(); . } . . pub struct PostExpansionEarlyAttributes { . msrv: MsrvStack, . } . . impl PostExpansionEarlyAttributes { . pub fn new(conf: &'static Conf) -> Self { 1 ( 0.00%) Self { msrv: conf.msrv.into() } . } . } . . impl EarlyLintPass for PostExpansionEarlyAttributes { . fn check_crate(&mut self, cx: &EarlyContext<'_>, _krate: &ast::Crate) { . blanket_clippy_restriction_lints::check_command_line(cx); . } . 53,420 ( 0.00%) fn check_attribute(&mut self, cx: &EarlyContext<'_>, attr: &Attribute) { 16,026 ( 0.00%) check_clippy_attr(cx.sess(), attr); 289,506 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/attrs.rs:clippy_utils::attrs::check_clippy_attr:: (5,342x) 26,710 ( 0.00%) if let Some(items) = &attr.meta_item_list() 75,810 ( 0.00%) => ???:::meta_item_list (5,342x) 798 ( 0.00%) && let Some(name) = attr.name() 727 ( 0.00%) => ???:::name (81x) . { 270 ( 0.00%) if matches!(name, sym::allow) && self.msrv.meets(msrvs::LINT_REASONS_STABILIZATION) { 1,296 ( 0.00%) => /rust/deps/smallvec-1.15.1/src/lib.rs:::meets (54x) . allow_attributes::check(cx, attr); . } 270 ( 0.00%) if matches!(name, sym::allow | sym::expect) && self.msrv.meets(msrvs::LINT_REASONS_STABILIZATION) { 1,296 ( 0.00%) => /rust/deps/smallvec-1.15.1/src/lib.rs:::meets (54x) . allow_attributes_without_reason::check(cx, name, items, attr); . } . if is_lint_level(name) { . blanket_clippy_restriction_lints::check(cx, name, items); . } 158 ( 0.00%) if items.is_empty() || !attr.has_name(sym::deprecated) { . return; . } . for item in items { . if let MetaItemInner::MetaItem(mi) = &item . && let MetaItemKind::NameValue(lit) = &mi.kind . && mi.has_name(sym::since) . { . deprecated_semver::check(cx, item.span(), lit); -- line 602 ---------------------------------------- -- line 603 ---------------------------------------- . } . } . } . . if attr.has_name(sym::should_panic) { . should_panic_without_expect::check(cx, attr); . } . 1,459 ( 0.00%) if attr.has_name(sym::ignore) . && let AttrKind::Normal(normal_attr) = &attr.kind . && !matches!(normal_attr.item.args, AttrArgs::Eq { .. }) . { . span_lint_and_help( . cx, . IGNORE_WITHOUT_REASON, . attr.span, . "`#[ignore]` without reason", . None, . "add a reason with `= \"..\"`", . ); . } 42,736 ( 0.00%) } . . fn check_item(&mut self, cx: &EarlyContext<'_>, item: &'_ ast::Item) { 3,897 ( 0.00%) match item.kind { 375 ( 0.00%) ast::ItemKind::ExternCrate(..) | ast::ItemKind::Use(..) => useless_attribute::check(cx, item, &item.attrs), 6,954 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/attrs/useless_attribute.rs:clippy_lints::attrs::useless_attribute::check (125x) . _ => {}, . } . 6,495 ( 0.00%) mixed_attributes_style::check(cx, item.span, &item.attrs); 726,767 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/attrs/mixed_attributes_style.rs:clippy_lints::attrs::mixed_attributes_style::check (1,299x) . } . 654,610 ( 0.01%) fn check_attributes(&mut self, cx: &EarlyContext<'_>, attrs: &[Attribute]) { 196,383 ( 0.00%) self.msrv.check_attributes(attrs); 307,705 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:::check_attributes (65,461x) . duplicated_attributes::check(cx, attrs); 130,922 ( 0.00%) msrvs::check_attrs(cx.sess(), attrs); 1,279,126 ( 0.02%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/msrvs.rs:clippy_utils::msrvs::check_attrs:: (65,461x) 523,688 ( 0.01%) } . . fn check_attributes_post(&mut self, _cx: &EarlyContext<'_>, attrs: &[Attribute]) { 261,844 ( 0.00%) self.msrv.check_attributes_post(attrs); 307,705 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:::check_attributes_post (65,461x) . } . } 231 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/single_range_in_vec_init.rs -------------------------------------------------------------------------------- Ir -- line 65 ---------------------------------------- . } else { . write!(f, "an array") . } . } . } . . impl LateLintPass<'_> for SingleRangeInVecInit { . #[expect(clippy::too_many_lines)] 399,600 ( 0.01%) fn check_expr<'tcx>(&mut self, cx: &LateContext<'tcx>, expr: &Expr<'tcx>) { . // inner_expr: `vec![0..200]` or `[0..200]` . // ^^^^^^ ^^^^^^^ . // span: `vec![0..200]` or `[0..200]` . // ^^^^^^^^^^^^ ^^^^^^^^ . // suggested_type: What to print, "an array" or "a `Vec`" 88,995 ( 0.00%) let (inner_expr, span, suggested_type) = if let ExprKind::Array([inner_expr]) = expr.kind 58 ( 0.00%) && !expr.span.from_expansion() . { 2 ( 0.00%) (inner_expr, expr.span, SuggestedType::Array) 573 ( 0.00%) } else if let Some(macro_call) = root_macro_call_first_node(cx, expr) 955 ( 0.00%) && let Some(VecArgs::Vec([expr])) = VecArgs::hir(cx, expr) 3,769 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir (191x) . { . (expr, macro_call.span, SuggestedType::Vec) . } else { . return; . }; . 12 ( 0.00%) let Some(range) = Range::hir(cx, inner_expr) else { 90 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir (2x) . return; . }; . . let Some(snippet) = span.get_text(cx) else { . return; . }; . // `is_from_proc_macro` will skip any `vec![]`. Let's not! . if !snippet.starts_with(suggested_type.starts_with()) || !snippet.ends_with(suggested_type.ends_with()) { -- line 99 ---------------------------------------- -- line 188 ---------------------------------------- . format!("if you wanted {suggested_type} of len {end_snippet}, try"), . format!("{start_snippet}; {end_snippet}"), . applicability, . ); . } . } . }, . ); 355,200 ( 0.00%) } . } 195 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/large_include_file.rs -------------------------------------------------------------------------------- Ir -- line 42 ---------------------------------------- . . pub struct LargeIncludeFile { . max_file_size: u64, . } . . impl LargeIncludeFile { . pub fn new(conf: &'static Conf) -> Self { . Self { 1 ( 0.00%) max_file_size: conf.max_include_file_size, . } . } . } . . impl LateLintPass<'_> for LargeIncludeFile { . fn check_expr(&mut self, cx: &LateContext<'_>, expr: &'_ Expr<'_>) { . if let ExprKind::Lit(lit) = &expr.kind . && let len = match &lit.node { -- line 58 ---------------------------------------- -- line 80 ---------------------------------------- . )); . }, . ); . } . } . } . . impl EarlyLintPass for LargeIncludeFile { 53,420 ( 0.00%) fn check_attribute(&mut self, cx: &EarlyContext<'_>, attr: &Attribute) { 16,026 ( 0.00%) if !attr.span.from_expansion() . // Currently, rustc limits the usage of macro at the top-level of attributes, . // so we don't need to recurse into each level. . && let AttrKind::Normal(ref normal) = attr.kind 448 ( 0.00%) && let Some(doc) = attr.doc_str() 1,706 ( 0.00%) => ???:::doc_str (112x) . && doc.as_str().len() as u64 > self.max_file_size . && let AttrArgs::Eq { expr: meta, .. } = &normal.item.args . && !attr.span.contains(meta.span) . // Since the `include_str` is already expanded at this point, we can only take the . // whole attribute snippet and then modify for our suggestion. . && let Some(snippet) = snippet_opt(cx, attr.span) . // We cannot remove this because a `#[doc = include_str!("...")]` attribute can . // occupy several lines. -- line 101 ---------------------------------------- -- line 118 ---------------------------------------- . |diag| { . diag.note(format!( . "the configuration allows a maximum size of {} bytes", . self.max_file_size . )); . }, . ); . } 42,736 ( 0.00%) } . } 7,264 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/empty_line_after.rs -------------------------------------------------------------------------------- Ir -- line 117 ---------------------------------------- . struct ItemInfo { . kind: ItemKindDescr, . name: Option, . span: Span, . mod_items: Option, . } . . impl ItemInfo { 54,396 ( 0.00%) fn new(kind: ItemKindDescr, ident: Option, span: Span, mod_items: Option) -> Self { 36,264 ( 0.00%) Self { . kind, . name: ident.map(|ident| ident.name), . span: match ident { 3,599 ( 0.00%) Some(ident) => span.with_hi(ident.span.hi()), . None => span.shrink_to_lo(), . }, . mod_items, . } 36,264 ( 0.00%) } . } . . pub struct EmptyLineAfter { . items: Vec, . } . . impl EmptyLineAfter { . pub fn new() -> Self { -- line 143 ---------------------------------------- -- line 240 ---------------------------------------- . // ^ ^ . let asterisk = self.span.from_inner(InnerSpan::new(1, 2)); . suggestions.push((asterisk, String::new())); . }, . } . } . . fn from_attr(cx: &EarlyContext<'_>, attr: &Attribute) -> Option { 9,765 ( 0.00%) let SpanData { lo, hi, .. } = attr.span.data(); 13,020 ( 0.00%) let file = cx.sess().source_map().lookup_source_file(lo); 419,895 ( 0.01%) => ???:::lookup_source_file (3,255x) . 3,255 ( 0.00%) Some(Self { . span: attr.span, 13,020 ( 0.00%) kind: match attr.kind { . AttrKind::Normal(_) | AttrKind::Synthetic(_) => StopKind::Attr, . AttrKind::DocComment(comment_kind, _) => StopKind::Doc(comment_kind), . }, 9,765 ( 0.00%) first: file.lookup_line(file.relative_position(lo))?, 392,922 ( 0.01%) => ???:::lookup_line (3,255x) 6,510 ( 0.00%) last: file.lookup_line(file.relative_position(hi))?, 392,922 ( 0.01%) => ???:::lookup_line (3,255x) 6,510 ( 0.00%) name: attr.name(), 13,553 ( 0.00%) => ???:::name (3,255x) . }) . } . } . . /// Represents a set of attrs/doc comments separated by 1 or more empty lines . /// . /// ```ignore . /// /// chunk 1 docs -- line 267 ---------------------------------------- -- line 282 ---------------------------------------- . /// The chunk that includes [`prev_stop`](Self::prev_stop) . prev_chunk: &'a [Stop], . } . . impl<'a> Gap<'a> { . fn new(cx: &EarlyContext<'_>, prev_chunk: &'a [Stop], next_chunk: &'a [Stop]) -> Option { . let prev_stop = prev_chunk.last()?; . let next_stop = next_chunk.first()?; 55 ( 0.00%) let gap_span = prev_stop.span.between(next_stop.span); 1,177 ( 0.00%) => ???:::between (11x) . let gap_snippet = gap_span.get_text(cx)?; . . let mut has_comment = false; . let mut empty_lines = Vec::new(); . 143 ( 0.00%) for (token, source, inner_span) in tokenize_with_text(&gap_snippet) { 275 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:::deref (11x) 88 ( 0.00%) match token { . TokenKind::BlockComment { . doc_style: None, . terminated: true, . } . | TokenKind::LineComment { doc_style: None } => has_comment = true, . TokenKind::Whitespace => { 26 ( 0.00%) let newlines = source.bytes().positions(|b| b == b'\n'); . empty_lines.extend( . newlines . .tuple_windows() . .map(|(a, b)| InnerSpan::new(inner_span.start + a + 1, inner_span.start + b)) . .map(|inner_span| gap_span.from_inner(inner_span)), . ); . }, . // Ignore cfg_attr'd out attributes as they may contain empty lines, could also be from macro -- line 312 ---------------------------------------- -- line 453 ---------------------------------------- . StopKind::Doc(_) => format!("if the comment should document the {desc} use an inner doc comment"), . }, . suggestions, . Applicability::MaybeIncorrect, . ); . } . } . 58,929 ( 0.00%) fn check_item_kind(&mut self, cx: &EarlyContext<'_>, info: ItemInfo, attrs: &[Attribute], id: NodeId) { . self.items.push(info); . . let mut outer = attrs . .iter() 10,414 ( 0.00%) .filter(|attr| attr.style == AttrStyle::Outer && !attr.span.from_expansion()) 3,255 ( 0.00%) .map(|attr| Stop::from_attr(cx, attr)) . .collect::>>() . .unwrap_or_default(); . 4,533 ( 0.00%) if outer.is_empty() { . return; . } . . // Push a fake attribute Stop for the item itself so we check for gaps between the last outer . // attr/doc comment and the item they apply to 1,401 ( 0.00%) let span = self.items.last().unwrap().span; . if !span.from_expansion() 4,203 ( 0.00%) && let Ok(line) = cx.sess().source_map().lookup_line(span.lo()) 119,175 ( 0.00%) => ???:::lookup_line (467x) . { . outer.push(Stop { . span, . kind: StopKind::Attr, . first: line.line, . // last doesn't need to be accurate here, we don't compare it with anything . last: line.line, . name: None, . }); 934 ( 0.00%) } . . let mut gaps = Vec::new(); . let mut last = 0; . for pos in outer . .array_windows() 3,255 ( 0.00%) .positions(|[a, b]| b.first.saturating_sub(a.last) > 1) . { . // we want to be after the first stop in the window . let pos = pos + 1; 154 ( 0.00%) if let Some(gap) = Gap::new(cx, &outer[last..pos], &outer[pos..]) { . last = pos; . gaps.push(gap); . } . } . . self.check_gaps(cx, &gaps, id); 36,264 ( 0.00%) } . } . . fn assoc_item_descr(kind: &AssocItemKind) -> &'static str { 16,170 ( 0.00%) match kind { . AssocItemKind::Const(_) => "constant item", . AssocItemKind::Fn(_) => "function", . AssocItemKind::Type(_) => "type alias", . AssocItemKind::MacCall(_) => "item macro invocation", . AssocItemKind::Delegation(_) => "delegated function", . AssocItemKind::DelegationMac(_) => "delegation", . } . } . . impl EarlyLintPass for EmptyLineAfter { 9 ( 0.00%) fn check_crate(&mut self, _: &EarlyContext<'_>, krate: &Crate) { . self.items.push(ItemInfo { . kind: ItemKindDescr::Crate, . name: Some(kw::Crate), 1 ( 0.00%) span: krate.spans.inner_span.with_hi(krate.spans.inner_span.lo()), . mod_items: krate . .items . .iter() 12 ( 0.00%) .filter(|i| !matches!(i.span.ctxt().outer_expn_data().kind, ExpnKind::AstPass(_))) 4 ( 0.00%) .map(|i| i.id) . .next(), . }); 8 ( 0.00%) } . . fn check_item_post(&mut self, _: &EarlyContext<'_>, _: &Item) { . self.items.pop(); . } . fn check_impl_item_post(&mut self, _: &EarlyContext<'_>, _: &Item) { . self.items.pop(); . } . fn check_trait_item_post(&mut self, _: &EarlyContext<'_>, _: &Item) { . self.items.pop(); . } . 25,872 ( 0.00%) fn check_impl_item(&mut self, cx: &EarlyContext<'_>, item: &Item) { 12,936 ( 0.00%) let kind = ItemKindDescr::Other(assoc_item_descr(&item.kind)); 19,404 ( 0.00%) let info = ItemInfo::new(kind, item.kind.ident(), item.span, None); 236,082 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/empty_line_after.rs:::new (3,234x) 16,170 ( 0.00%) self.check_item_kind(cx, info, &item.attrs, item.id); 1,395,967 ( 0.02%) => site/frontend/rust-clippy/clippy_lints/src/empty_line_after.rs:::check_item_kind (3,234x) 19,404 ( 0.00%) } . . fn check_trait_item(&mut self, cx: &EarlyContext<'_>, item: &Item) { . let kind = ItemKindDescr::Other(assoc_item_descr(&item.kind)); . let info = ItemInfo::new(kind, item.kind.ident(), item.span, None); . self.check_item_kind(cx, info, &item.attrs, item.id); . } . 12,990 ( 0.00%) fn check_item(&mut self, cx: &EarlyContext<'_>, item: &Item) { 6,550 ( 0.00%) let (kind, mod_items) = match &item.kind { . ItemKind::Mod(_, _, ModKind::Loaded(items, _, _)) => { . let first = items . .iter() 108 ( 0.00%) .filter(|i| !matches!(i.span.ctxt().outer_expn_data().kind, ExpnKind::AstPass(_))) 81 ( 0.00%) .map(|i| i.id) . .next(); . (ItemKindDescr::Module, first) . }, . ItemKind::Mod(..) => (ItemKindDescr::Module, None), 5,088 ( 0.00%) _ => (ItemKindDescr::Other(item.kind.descr()), None), . }; 6,495 ( 0.00%) let info = ItemInfo::new(kind, item.kind.ident(), item.span, mod_items); 73,469 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/empty_line_after.rs:::new (1,299x) 6,495 ( 0.00%) self.check_item_kind(cx, info, &item.attrs, item.id); 1,044,498 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/empty_line_after.rs:::check_item_kind (1,299x) 10,392 ( 0.00%) } . } 27,575 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/functions/not_unsafe_ptr_arg_deref.rs -------------------------------------------------------------------------------- Ir -- line 15 ---------------------------------------- . . pub(super) fn check_fn<'tcx>( . cx: &LateContext<'tcx>, . kind: intravisit::FnKind<'tcx>, . decl: &'tcx hir::FnDecl<'tcx>, . body: &'tcx hir::Body<'tcx>, . def_id: LocalDefId, . ) { 13,644 ( 0.00%) let safety = match kind { . intravisit::FnKind::ItemFn(_, _, header) => header.safety(), . intravisit::FnKind::Method(_, sig) => sig.header.safety(), . intravisit::FnKind::Closure => return, . }; . 19,082 ( 0.00%) check_raw_ptr(cx, safety, decl, body, def_id); 524,475 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/functions/not_unsafe_ptr_arg_deref.rs:clippy_lints::functions::not_unsafe_ptr_arg_deref::check_raw_ptr (2,726x) . } . . pub(super) fn check_trait_item<'tcx>(cx: &LateContext<'tcx>, item: &'tcx hir::TraitItem<'_>) { 264 ( 0.00%) if let hir::TraitItemKind::Fn(ref sig, hir::TraitFn::Provided(eid)) = item.kind { 116 ( 0.00%) let body = cx.tcx.hir_body(eid); 3,142 ( 0.00%) => ???:::hir_body (58x) 464 ( 0.00%) check_raw_ptr(cx, sig.header.safety(), sig.decl, body, item.owner_id.def_id); 9,170 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/functions/not_unsafe_ptr_arg_deref.rs:clippy_lints::functions::not_unsafe_ptr_arg_deref::check_raw_ptr (58x) . } . } . 13,920 ( 0.00%) fn check_raw_ptr<'tcx>( . cx: &LateContext<'tcx>, . safety: hir::Safety, . decl: &'tcx hir::FnDecl<'tcx>, . body: &'tcx hir::Body<'tcx>, . def_id: LocalDefId, . ) { 19,488 ( 0.00%) if safety.is_safe() && cx.effective_visibilities.is_exported(def_id) { 158,253 ( 0.00%) => ???:::is_exported (2,784x) . let raw_ptrs = iter_input_pats(decl, body) . .filter_map(|arg| raw_ptr_arg(cx, arg)) . .collect::(); . 1,810 ( 0.00%) if !raw_ptrs.is_empty() { . let typeck = cx.tcx.typeck_body(body.id()); . let _: Option = for_each_expr(cx.tcx, body.value, |e| { . match e.kind { . hir::ExprKind::Call(f, args) if is_unsafe_fn(cx, typeck.expr_ty(f)) => { . for arg in args { . check_arg(cx, &raw_ptrs, arg); . } . }, -- line 59 ---------------------------------------- -- line 68 ---------------------------------------- . }, . hir::ExprKind::Unary(hir::UnOp::Deref, ptr) => check_arg(cx, &raw_ptrs, ptr), . _ => (), . } . ControlFlow::Continue(()) . }); . } . } 16,704 ( 0.00%) } . . fn raw_ptr_arg(cx: &LateContext<'_>, arg: &hir::Param<'_>) -> Option { 13,964 ( 0.00%) if let (&hir::PatKind::Binding(_, id, _, _), Some(&ty::RawPtr(_, _))) = ( . &arg.pat.kind, 3,618 ( 0.00%) cx.typeck_results 7,026 ( 0.00%) .map(|typeck_results| typeck_results.pat_ty(arg.pat).kind()), 140,520 ( 0.00%) => ???:::pat_ty (3,513x) . ) { . Some(id) . } else { . None . } . } . . fn check_arg(cx: &LateContext<'_>, raw_ptrs: &HirIdSet, arg: &hir::Expr<'_>) { -- line 90 ---------------------------------------- 28,221 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/needless_borrows_for_generic_args.rs -------------------------------------------------------------------------------- Ir -- line 67 ---------------------------------------- . /// be moved. . possible_borrowers: Vec<(LocalDefId, PossibleBorrowerMap<'tcx, 'tcx>)>, . . // `IntoIterator` for arrays requires Rust 1.53. . msrv: Msrv, . } . impl NeedlessBorrowsForGenericArgs<'_> { . pub fn new(conf: &'static Conf) -> Self { 4 ( 0.00%) Self { . possible_borrowers: Vec::new(), . msrv: conf.msrv.into(), . } . } . } . . impl<'tcx> LateLintPass<'tcx> for NeedlessBorrowsForGenericArgs<'tcx> { 355,200 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 88,800 ( 0.00%) if matches!(expr.kind, ExprKind::AddrOf(..)) 3,446 ( 0.00%) && !expr.span.from_expansion() 1,870 ( 0.00%) && let use_site = get_expr_use_site(cx.tcx, cx.typeck_results(), SyntaxContext::root(), expr) 50,820 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_expr_use_site (170x) 676 ( 0.00%) && use_site.same_ctxt . && !use_site.is_ty_unified 1,344 ( 0.00%) && let use_node = use_site.use_node(cx) 7,968 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:::use_node (168x) 1,175 ( 0.00%) && let Some(DefinedTy::Mir { def_site_def_id: _, ty }) = use_node.defined_ty(cx) 29,826 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:::defined_ty (168x) 350 ( 0.00%) && let ty::Param(param_ty) = *ty.skip_binder().kind() 96 ( 0.00%) && let Some((hir_id, fn_id, i)) = match use_node { . ExprUseNode::MethodArg(_, _, 0) => None, 8 ( 0.00%) ExprUseNode::MethodArg(hir_id, None, i) => cx . .typeck_results() 40 ( 0.00%) .type_dependent_def_id(hir_id) 408 ( 0.00%) => ???:::type_dependent_def_id (8x) . .map(|id| (hir_id, id, i)), . ExprUseNode::FnArg( . &Expr { . kind: ExprKind::Path(ref p), . hir_id, . .. . }, . i, . ) if !path_has_args(p) => match cx.typeck_results().qpath_res(p, hir_id) { . Res::Def(DefKind::Fn | DefKind::Ctor(..) | DefKind::AssocFn, id) => Some((hir_id, id, i)), . _ => None, . }, . _ => None, . } 104 ( 0.00%) && let count = needless_borrow_count( 10,744 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/needless_borrows_for_generic_args.rs:clippy_lints::needless_borrows_for_generic_args::needless_borrow_count (8x) . cx, . &mut self.possible_borrowers, . fn_id, 32 ( 0.00%) cx.typeck_results().node_args(hir_id), 312 ( 0.00%) => ???:::node_args (8x) . i, . param_ty, . expr, . self.msrv, . ) 16 ( 0.00%) && count != 0 . { . span_lint_and_then( . cx, . NEEDLESS_BORROWS_FOR_GENERIC_ARGS, . expr.span, . "the borrowed expression implements the required traits", . |diag| { . let mut app = Applicability::MachineApplicable; . let snip_span = peel_n_hir_expr_refs(expr, count).0.span; . let snip = snippet_with_context(cx, snip_span, expr.span.ctxt(), "..", &mut app).0; . diag.span_suggestion(expr.span, "change this to", snip.into_owned(), app); . }, . ); . } 355,200 ( 0.00%) } . 20,748 ( 0.00%) fn check_body_post(&mut self, cx: &LateContext<'tcx>, body: &Body<'_>) { . if self . .possible_borrowers . .last() . .is_some_and(|&(local_def_id, _)| local_def_id == cx.tcx.hir_body_owner_def_id(body.id())) . { . self.possible_borrowers.pop(); . } 23,712 ( 0.00%) } . } . . fn path_has_args(p: &QPath<'_>) -> bool { . match *p { . QPath::Resolved(_, Path { segments: [.., s], .. }) | QPath::TypeRelative(_, s) => s.args.is_some(), . QPath::Resolved(..) => false, . } . } -- line 154 ---------------------------------------- -- line 159 ---------------------------------------- . /// The following constraints will be checked: . /// * The borrowed expression meets all the generic type's constraints. . /// * The generic type appears only once in the functions signature. . /// * The borrowed value is: . /// - `Copy` itself, or . /// - the only use of a mutable reference, or . /// - not a variable (created by a function call) . #[expect(clippy::too_many_arguments, clippy::too_many_lines)] 104 ( 0.00%) fn needless_borrow_count<'tcx>( . cx: &LateContext<'tcx>, . possible_borrowers: &mut Vec<(LocalDefId, PossibleBorrowerMap<'tcx, 'tcx>)>, . fn_id: DefId, . callee_args: ty::GenericArgsRef<'tcx>, . arg_index: usize, . param_ty: ParamTy, . mut expr: &Expr<'tcx>, . msrv: Msrv, . ) -> usize { 32 ( 0.00%) let destruct_trait_def_id = cx.tcx.lang_items().destruct_trait(); 240 ( 0.00%) => ???:::lang_items (8x) 16 ( 0.00%) let sized_trait_def_id = cx.tcx.lang_items().sized_trait(); 240 ( 0.00%) => ???:::lang_items (8x) 16 ( 0.00%) let meta_sized_trait_def_id = cx.tcx.lang_items().meta_sized_trait(); 240 ( 0.00%) => ???:::lang_items (8x) 16 ( 0.00%) let drop_trait_def_id = cx.tcx.lang_items().drop_trait(); 240 ( 0.00%) => ???:::lang_items (8x) . . let fn_sig = cx . .tcx . .fn_sig(fn_id) . .instantiate_identity() . .skip_norm_wip() . .skip_binder(); . let clauses = cx.tcx.param_env(fn_id).caller_bounds(); . let projection_predicates = clauses . .iter() . .filter_map(|clause| { 160 ( 0.00%) if let ClauseKind::Projection(projection_predicate) = clause.kind().skip_binder() { 560 ( 0.00%) => ???:::kind (40x) . Some(projection_predicate) . } else { . None . } . }) . .collect::>(); . . let mut trait_with_ref_mut_self_method = false; . . // If no traits were found, or only the `Destruct`, `Sized`, or `Any` traits were found, return. . if clauses . .iter() . .filter_map(|clause| { 32 ( 0.00%) if let ClauseKind::Trait(trait_predicate) = clause.kind().skip_binder() 112 ( 0.00%) => ???:::kind (8x) 24 ( 0.00%) && trait_predicate.trait_ref.self_ty() == param_ty.to_ty(cx.tcx) . { . Some(trait_predicate.trait_ref.def_id) . } else { . None . } . }) . .inspect(|trait_def_id| { 8 ( 0.00%) trait_with_ref_mut_self_method |= has_ref_mut_self_method(cx, *trait_def_id); . }) . .all(|trait_def_id| { . Some(trait_def_id) == destruct_trait_def_id . || Some(trait_def_id) == sized_trait_def_id . || Some(trait_def_id) == meta_sized_trait_def_id 32 ( 0.00%) || cx.tcx.is_diagnostic_item(sym::Any, trait_def_id) 352 ( 0.00%) => ???:::is_diagnostic_item (8x) . }) . { . return 0; . } . . // See: . // - https://github.com/rust-lang/rust-clippy/pull/9674#issuecomment-1289294201 . // - https://github.com/rust-lang/rust-clippy/pull/9674#issuecomment-1292225232 -- line 229 ---------------------------------------- -- line 231 ---------------------------------------- . .iter() . .any(|projection_predicate| is_mixed_projection_predicate(cx, fn_id, projection_predicate)) . { . return 0; . } . . // `args_with_referent_ty` can be constructed outside of `check_referent` because the same . // elements are modified each time `check_referent` is called. 8 ( 0.00%) let mut args_with_referent_ty = callee_args.to_vec(); . . let mut check_reference_and_referent = |reference: &Expr<'tcx>, referent: &Expr<'tcx>| { 32 ( 0.00%) if let ExprKind::Field(base, _) = &referent.kind . && let base_ty = cx.typeck_results().expr_ty(base) . && drop_trait_def_id.is_some_and(|id| implements_trait(cx, base_ty, id, &[])) . { . return false; . } . 8 ( 0.00%) let referent_ty = cx.typeck_results().expr_ty(referent); 320 ( 0.00%) => ???:::expr_ty (8x) . 40 ( 0.00%) if !(is_copy(cx, referent_ty) 2,768 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::is_copy (8x) 8 ( 0.00%) || referent_ty.is_ref() && referent_used_exactly_once(cx, possible_borrowers, reference) 24 ( 0.00%) || matches!(referent.kind, ExprKind::Call(..) | ExprKind::MethodCall(..))) . { . return false; . } . . // https://github.com/rust-lang/rust-clippy/pull/9136#pullrequestreview-1037379321 . if trait_with_ref_mut_self_method && !matches!(referent_ty.kind(), ty::Ref(_, _, Mutability::Mut)) { . return false; . } -- line 261 ---------------------------------------- -- line 290 ---------------------------------------- . .skip_norm_wip(); . let obligation = Obligation::new(cx.tcx, ObligationCause::dummy(), cx.param_env, clause); . let infcx = cx.tcx.infer_ctxt().build(cx.typing_mode()); . infcx.predicate_must_hold_modulo_regions(&obligation) . }) . }; . . let mut count = 0; 32 ( 0.00%) while let ExprKind::AddrOf(_, _, referent) = expr.kind { . if !check_reference_and_referent(expr, referent) { . break; . } . expr = referent; . count += 1; . } . count 72 ( 0.00%) } . . fn has_ref_mut_self_method(cx: &LateContext<'_>, trait_def_id: DefId) -> bool { . cx.tcx . .associated_items(trait_def_id) . .in_definition_order() . .any(|assoc_item| { . if assoc_item.is_method() { 24 ( 0.00%) let self_ty = cx . .tcx 16 ( 0.00%) .fn_sig(assoc_item.def_id) . .instantiate_identity() . .skip_norm_wip() . .skip_binder() . .inputs()[0]; 16 ( 0.00%) matches!(self_ty.kind(), ty::Ref(_, _, Mutability::Mut)) . } else { . false . } . }) . } . . fn is_mixed_projection_predicate<'tcx>( . cx: &LateContext<'tcx>, -- line 329 ---------------------------------------- 738 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/mem_replace.rs -------------------------------------------------------------------------------- Ir -- line 292 ---------------------------------------- . . impl MemReplace { . pub fn new(conf: &'static Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl<'tcx> LateLintPass<'tcx> for MemReplace { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 102,202 ( 0.00%) if let ExprKind::Call(func, [dest, src]) = expr.kind . // Check that `expr` is a call to `mem::replace()` 3,678 ( 0.00%) && let ExprKind::Path(ref func_qpath) = func.kind 4,904 ( 0.00%) && let Some(def_id) = cx.qpath_res(func_qpath, func.hir_id).opt_def_id() 32,390 ( 0.00%) => ???:::qpath_res (1,226x) 7,356 ( 0.00%) && cx.tcx.is_diagnostic_item(sym::mem_replace, def_id) 58,142 ( 0.00%) => ???:::is_diagnostic_item (1,226x) . // Check that second argument is `Option::None` . && !check_replace_option_with_none(cx, src, dest, expr.span) . && !check_replace_option_with_some(cx, src, dest, expr.span, self.msrv) . && !check_replace_with_default(cx, src, dest, expr, self.msrv) . { . check_replace_with_uninit(cx, src, dest, expr.span); . } 355,200 ( 0.00%) } . } 4,904 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/non_expressive_names.rs -------------------------------------------------------------------------------- Ir -- line 91 ---------------------------------------- . . pub struct NonExpressiveNames { . pub single_char_binding_names_threshold: u64, . } . . impl NonExpressiveNames { . pub fn new(conf: &'static Conf) -> Self { . Self { 3 ( 0.00%) single_char_binding_names_threshold: conf.single_char_binding_names_threshold, . } . } . } . . struct ExistingName { . interned: Symbol, . span: Span, . len: usize, -- line 107 ---------------------------------------- -- line 113 ---------------------------------------- . cx: &'a EarlyContext<'tcx>, . threshold: u64, . . /// A stack of scopes containing the single-character bindings in each scope. . single_char_names: Vec>, . } . . impl SimilarNamesLocalVisitor<'_, '_> { 15,748 ( 0.00%) fn check_single_char_names(&self) { 7,874 ( 0.00%) if self.single_char_names.last().map(Vec::len) == Some(0) { . return; . } . . let num_single_char_names = self.single_char_names.iter().flatten().count(); 560 ( 0.00%) if num_single_char_names as u64 > self.threshold { . let span = self . .single_char_names . .iter() . .flatten() . .map(|ident| ident.span) . .collect::>(); . span_lint( . self.cx, . MANY_SINGLE_CHAR_NAMES, . span, . format!("{num_single_char_names} bindings with single-character names in scope"), . ); . } 23,622 ( 0.00%) } . } . . // this list contains lists of names that are allowed to be similar . // the assumption is that no name is ever contained in multiple lists. . const ALLOWED_TO_BE_SIMILAR: &[&[&str]] = &[ . &["parsed", "parser"], . &["lhs", "rhs"], . &["tx", "rx"], -- line 149 ---------------------------------------- -- line 155 ---------------------------------------- . &["iter", "item"], . ]; . . /// Characters that look visually similar . const SIMILAR_CHARS: &[(char, char)] = &[('l', 'i'), ('l', '1'), ('i', '1'), ('u', 'v')]; . . /// Return true if two characters are visually similar . fn chars_are_similar(a: char, b: char) -> bool { 2,026 ( 0.00%) a == b || SIMILAR_CHARS.contains(&(a, b)) || SIMILAR_CHARS.contains(&(b, a)) . } . . struct SimilarNamesNameVisitor<'a, 'tcx, 'b>(&'b mut SimilarNamesLocalVisitor<'a, 'tcx>); . . impl<'tcx> Visitor<'tcx> for SimilarNamesNameVisitor<'_, 'tcx, '_> { 123,408 ( 0.00%) fn visit_pat(&mut self, pat: &'tcx Pat) { 103,929 ( 0.00%) match pat.kind { 38,988 ( 0.00%) PatKind::Ident(_, ident, _) => { 19,494 ( 0.00%) if !pat.span.from_expansion() { 1,769 ( 0.00%) self.check_ident(ident); . } . }, . PatKind::Struct(_, _, ref fields, _) => { . for field in fields { . if !field.is_shorthand { . self.visit_pat(&field.pat); . } . } . }, . // just go through the first pattern, as either all patterns . // bind the same bindings or rustc would have errored much earlier 6 ( 0.00%) PatKind::Or(ref pats) => self.visit_pat(&pats[0]), . _ => walk_pat(self, pat), . } 77,976 ( 0.00%) } . } . . #[must_use] . fn get_exemptions(interned_name: &str) -> Option<&'static [&'static str]> { . ALLOWED_TO_BE_SIMILAR . .iter() . .find(|&&list| allowed_to_be_similar(interned_name, list)) . .copied() . } . . #[must_use] . fn allowed_to_be_similar(interned_name: &str, list: &[&str]) -> bool { . list.iter() 16,307 ( 0.00%) .any(|&name| interned_name.starts_with(name) || interned_name.ends_with(name)) . } . . impl SimilarNamesNameVisitor<'_, '_, '_> { 876 ( 0.00%) fn check_short_ident(&mut self, ident: Ident) { . // Ignore shadowing . if self . .0 . .single_char_names . .iter() . .flatten() . .any(|id| id.name == ident.name) . { . return; . } . . if let Some(scope) = &mut self.0.single_char_names.last_mut() { . scope.push(ident); . } 1,168 ( 0.00%) } . . fn check_ident(&mut self, ident: Ident) { . let interned_name = ident.name.as_str(); . // name can be empty if it comes from recovery . if interned_name.chars().any(char::is_uppercase) || interned_name.is_empty() { . return; . } . if interned_name.chars().all(|c| c.is_ascii_digit() || c == '_') { -- line 229 ---------------------------------------- -- line 230 ---------------------------------------- . span_lint( . self.0.cx, . JUST_UNDERSCORES_AND_DIGITS, . ident.span, . "consider choosing a more descriptive name", . ); . return; . } 1,717 ( 0.00%) if interned_name.starts_with('_') { . // these bindings are typically unused or represent an ignored portion of a destructuring pattern . return; . } . let count = interned_name.chars().count(); 3,310 ( 0.00%) if count < 3 { 604 ( 0.00%) if count == 1 { 1,168 ( 0.00%) self.check_short_ident(ident); 6,252 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/non_expressive_names.rs:::check_short_ident (68x) . } . return; . } . for existing_name in &self.0.names { 1,013 ( 0.00%) if allowed_to_be_similar(interned_name, existing_name.exemptions) { . continue; . } . . let existing_str = existing_name.interned.as_str(); . . // The first char being different is usually enough to set identifiers apart, as long . // as the characters aren't too similar. . if !chars_are_similar( . interned_name.chars().next().expect("len >= 1"), . existing_str.chars().next().expect("len >= 1"), . ) { . continue; . } . . // Skip similarity check if both names are exactly 3 characters 256 ( 0.00%) if count == 3 && existing_name.len == 3 { . continue; . } . 564 ( 0.00%) let dissimilar = match existing_name.len.cmp(&count) { 154 ( 0.00%) Ordering::Greater => existing_name.len - count != 1 || levenstein_not_1(interned_name, existing_str), 342 ( 0.00%) Ordering::Less => count - existing_name.len != 1 || levenstein_not_1(existing_str, interned_name), . Ordering::Equal => Self::equal_length_strs_not_similar(interned_name, existing_str), . }; . 70 ( 0.00%) if dissimilar { . continue; . } . . span_lint_and_then( . self.0.cx, . SIMILAR_NAMES, . ident.span, . "binding's name is too similar to existing binding", -- line 284 ---------------------------------------- -- line 285 ---------------------------------------- . |diag| { . diag.span_note(existing_name.span, "existing binding defined here"); . }, . ); . return; . } . self.0.names.push(ExistingName { . interned: ident.name, 1,353 ( 0.00%) span: ident.span, . len: count, . exemptions: get_exemptions(interned_name).unwrap_or(&[]), . }); . } . . fn equal_length_strs_not_similar(interned_name: &str, existing_name: &str) -> bool { . let mut interned_chars = interned_name.chars(); . let mut existing_chars = existing_name.chars(); . let first_i = interned_chars.next().expect("we know we have at least one char"); . let first_e = existing_chars.next().expect("we know we have at least one char"); 673 ( 0.00%) let eq_or_numeric = |(a, b): (char, char)| a == b || a.is_numeric() && b.is_numeric(); . . if eq_or_numeric((first_i, first_e)) { . let last_i = interned_chars.next_back().expect("we know we have at least two chars"); . let last_e = existing_chars.next_back().expect("we know we have at least two chars"); . if eq_or_numeric((last_i, last_e)) { 70 ( 0.00%) if interned_chars . .zip(existing_chars) . .filter(|&ie| !eq_or_numeric(ie)) . .count() . != 1 . { . return true; . } . } else { -- line 318 ---------------------------------------- -- line 355 ---------------------------------------- . let single_char_count = self.single_char_names.len(); . f(self); . self.names.truncate(n); . self.single_char_names.truncate(single_char_count); . } . } . . impl<'tcx> Visitor<'tcx> for SimilarNamesLocalVisitor<'_, 'tcx> { 6,111 ( 0.00%) fn visit_local(&mut self, local: &'tcx Local) { . if let Some((init, els)) = &local.kind.init_else_opt() { . self.apply(|this| walk_expr(this, init)); . if let Some(els) = els { . self.apply(|this| walk_block(this, els)); . } . } . // add the pattern after the expression because the bindings aren't available . // yet in the init . // expression 2,716 ( 0.00%) SimilarNamesNameVisitor(self).visit_pat(&local.pat); 111,961 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/non_expressive_names.rs:::visit_pat (674x) 5,432 ( 0.00%) } 8,739 ( 0.00%) fn visit_block(&mut self, blk: &'tcx Block) { 304 ( 0.00%) self.single_char_names.push(vec![]); . . self.apply(|this| walk_block(this, blk)); . 1,942 ( 0.00%) self.check_single_char_names(); 9,737 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/non_expressive_names.rs:::check_single_char_names (809x) . self.single_char_names.pop(); 7,752 ( 0.00%) } 38,286 ( 0.00%) fn visit_arm(&mut self, arm: &'tcx Arm) { 309 ( 0.00%) self.single_char_names.push(vec![]); . . self.apply(|this| { 17,016 ( 0.00%) SimilarNamesNameVisitor(this).visit_pat(&arm.pat); 554,765 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/non_expressive_names.rs:::visit_pat (4,186x) 12,762 ( 0.00%) if let Some(body) = &arm.body { . this.apply(|this| walk_expr(this, body)); . } . }); . 8,508 ( 0.00%) self.check_single_char_names(); 55,527 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/non_expressive_names.rs:::check_single_char_names (4,186x) . self.single_char_names.pop(); 34,032 ( 0.00%) } . fn visit_item(&mut self, _: &Item) { . // do not recurse into inner items . } . } . . impl EarlyLintPass for NonExpressiveNames { . fn check_item(&mut self, cx: &EarlyContext<'_>, item: &Item) { 1,343 ( 0.00%) if item.span.in_external_macro(cx.sess().source_map()) { . return; . } . 44 ( 0.00%) if let ItemKind::Fn(ast::Fn { . ref sig, . body: Some(ref blk), . .. 88 ( 0.00%) }) = item.kind . { 110 ( 0.00%) do_check(self, cx, &item.attrs, &sig.decl, blk); 59,313 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/non_expressive_names.rs:clippy_lints::non_expressive_names::do_check (22x) . } . } . . fn check_impl_item(&mut self, cx: &EarlyContext<'_>, item: &AssocItem) { 15,217 ( 0.00%) if item.span.in_external_macro(cx.sess().source_map()) { . return; . } . 2,627 ( 0.00%) if let AssocItemKind::Fn(ast::Fn { . ref sig, . body: Some(ref blk), . .. 7,881 ( 0.00%) }) = item.kind . { 10,508 ( 0.00%) do_check(self, cx, &item.attrs, &sig.decl, blk); 4,432,944 ( 0.06%) => site/frontend/rust-clippy/clippy_lints/src/non_expressive_names.rs:clippy_lints::non_expressive_names::do_check (2,627x) . } . } . } . 29,139 ( 0.00%) fn do_check(lint: &NonExpressiveNames, cx: &EarlyContext<'_>, attrs: &[Attribute], decl: &FnDecl, blk: &Block) { . if !attrs.iter().any(|attr| attr.has_name(sym::test)) { 21,192 ( 0.00%) let mut visitor = SimilarNamesLocalVisitor { . names: Vec::new(), . cx, . threshold: lint.single_char_binding_names_threshold, 7,947 ( 0.00%) single_char_names: vec![vec![]], . }; . . // initialize with function arguments . for arg in &decl.inputs { 21,312 ( 0.00%) SimilarNamesNameVisitor(&mut visitor).visit_pat(&arg.pat); 806,380 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/non_expressive_names.rs:::visit_pat (5,328x) . } . // walk all other bindings . walk_block(&mut visitor, blk); . 2,649 ( 0.00%) visitor.check_single_char_names(); 33,153 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/non_expressive_names.rs:::check_single_char_names (2,649x) . } 21,192 ( 0.00%) } . . /// Precondition: `a_name.chars().count() < b_name.chars().count()`. . #[must_use] 35 ( 0.00%) fn levenstein_not_1(a_name: &str, b_name: &str) -> bool { . debug_assert!(a_name.chars().count() < b_name.chars().count()); . let mut a_chars = a_name.chars(); . let mut b_chars = b_name.chars(); 178 ( 0.00%) while let (Some(a), Some(b)) = (a_chars.next(), b_chars.next()) { 178 ( 0.00%) if a == b { . continue; . } . if let Some(b2) = b_chars.next() { . // check if there's just one character inserted 105 ( 0.00%) return a != b2 || a_chars.ne(b_chars); . } . // tuple . // ntuple . return true; . } . // for item in items . true 70 ( 0.00%) } 34,317 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/thread_local/native/mod.rs -------------------------------------------------------------------------------- Ir -- line 67 ---------------------------------------- . = $crate::thread::local_impl::EagerStorage::new(__RUST_STD_INTERNAL_INIT); . __RUST_STD_INTERNAL_VAL.get() . } . } else { . |_| { . #[thread_local] . $(#[$align_attr])* . static __RUST_STD_INTERNAL_VAL: $t = __RUST_STD_INTERNAL_INIT; 962,778 ( 0.01%) &__RUST_STD_INTERNAL_VAL . } . } . }) . } . }}, . . // used to generate the `LocalKey` value for `thread_local!` . (@key $t:ty, $(#[$align_attr:meta])*, $init:expr) => {{ -- line 83 ---------------------------------------- -- line 97 ---------------------------------------- . __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init, __rust_std_internal_init_fn) . } . } else { . |__rust_std_internal_init| { . #[thread_local] . $(#[$align_attr])* . static __RUST_STD_INTERNAL_VAL: $crate::thread::local_impl::LazyStorage<$t, !> . = $crate::thread::local_impl::LazyStorage::new(); 36 ( 0.00%) __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init, __rust_std_internal_init_fn) . } . } . }) . } . }}, . } . . #[rustc_macro_transparency = "semiopaque"] -- line 113 ---------------------------------------- -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/disallowed_fields.rs -------------------------------------------------------------------------------- Ir -- line 59 ---------------------------------------- . impl_lint_pass!(DisallowedFields => [DISALLOWED_FIELDS]); . . pub struct DisallowedFields { . disallowed: DefIdMap<(&'static str, &'static DisallowedPath)>, . } . . impl DisallowedFields { . pub fn new(tcx: TyCtxt<'_>, conf: &'static Conf) -> Self { 8 ( 0.00%) let (disallowed, _) = create_disallowed_map( 38 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_config/src/types.rs:clippy_config::types::create_disallowed_map::::new::{closure#0}> (1x) . tcx, . &conf.disallowed_fields, . PathNS::Field, . |def_kind| matches!(def_kind, DefKind::Field), . "field", . false, . ); 4 ( 0.00%) Self { disallowed } . } . } . . impl<'tcx> LateLintPass<'tcx> for DisallowedFields { 355,200 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 184,326 ( 0.00%) let (id, span) = match &expr.kind { 171,015 ( 0.00%) ExprKind::Path(path) if let Res::Def(_, id) = cx.qpath_res(path, expr.hir_id) => (id, expr.span), 470,954 ( 0.01%) => ???:::qpath_res (18,837x) . ExprKind::Field(e, ident) => { . // Very round-about way to get the field `DefId` from the expr: first we get its . // parent `Ty`. Then we go through all its fields to find the one with the expected . // name and get the `DefId` from it. 3,400 ( 0.00%) if let Some(parent_ty) = cx.typeck_results().expr_ty_adjusted_opt(e) 48,530 ( 0.00%) => ???:::expr_ty_adjusted_opt (850x) 4,250 ( 0.00%) && let Some(field_def_id) = get_field_def_id_by_name(parent_ty, ident.name) 14,840 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::get_field_def_id_by_name (850x) . { 528 ( 0.00%) (field_def_id, ident.span) . } else { . return; . } . }, . _ => return, . }; . if let Some(&(path, disallowed_path)) = self.disallowed.get(&id) { . span_lint_and_then( . cx, . DISALLOWED_FIELDS, . span, . format!("use of a disallowed field `{path}`"), . disallowed_path.diag_amendment(span), . ); . } 266,400 ( 0.00%) } . 119,080 ( 0.00%) fn check_pat(&mut self, cx: &LateContext<'tcx>, pat: &'tcx Pat<'_>) { 30,378 ( 0.00%) let PatKind::Struct(struct_path, pat_fields, _) = pat.kind else { . return; . }; 2,584 ( 0.00%) match cx.typeck_results().qpath_res(&struct_path, pat.hir_id) { 2,280 ( 0.00%) => ???:::qpath_res (152x) . Res::Def(DefKind::Struct, struct_def_id) => { . let adt_def = cx.tcx.adt_def(struct_def_id); . for field in pat_fields { . if let Some(def_id) = adt_def.all_fields().find_map(|adt_field| { . if field.ident.name == adt_field.name { . Some(adt_field.did) . } else { . None -- line 120 ---------------------------------------- -- line 126 ---------------------------------------- . DISALLOWED_FIELDS, . field.span, . format!("use of a disallowed field `{path}`"), . disallowed_path.diag_amendment(field.span), . ); . } . } . }, 304 ( 0.00%) Res::Def(DefKind::Variant, variant_def_id) => { 456 ( 0.00%) let enum_def_id = cx.tcx.parent(variant_def_id); 608 ( 0.00%) let variant = cx.tcx.adt_def(enum_def_id).variant_with_id(variant_def_id); 2,204 ( 0.00%) => ???:::variant_with_id (152x) . . for field in pat_fields { . if let Some(def_id) = variant.fields.iter().find_map(|adt_field| { . if field.ident.name == adt_field.name { . Some(adt_field.did) . } else { . None . } -- line 144 ---------------------------------------- -- line 151 ---------------------------------------- . format!("use of a disallowed field `{path}`"), . disallowed_path.diag_amendment(field.span), . ); . } . } . }, . _ => {}, . } 119,080 ( 0.00%) } . } 608 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/unnested_or_patterns.rs -------------------------------------------------------------------------------- Ir -- line 57 ---------------------------------------- . impl UnnestedOrPatterns { . pub fn new(conf: &'static Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl EarlyLintPass for UnnestedOrPatterns { . fn check_arm(&mut self, cx: &EarlyContext<'_>, a: &ast::Arm) { 17,372 ( 0.00%) if self.msrv.meets(msrvs::OR_PATTERNS) { 104,232 ( 0.00%) => /rust/deps/smallvec-1.15.1/src/lib.rs:::meets (4,343x) . lint_unnested_or_patterns(cx, &a.pat); . } . } . . fn check_expr(&mut self, cx: &EarlyContext<'_>, e: &ast::Expr) { 199,480 ( 0.00%) if self.msrv.meets(msrvs::OR_PATTERNS) 957,504 ( 0.01%) => /rust/deps/smallvec-1.15.1/src/lib.rs:::meets (39,896x) . && let ast::ExprKind::Let(pat, _, _, _) = &e.kind . { . lint_unnested_or_patterns(cx, pat); . } . } . . fn check_param(&mut self, cx: &EarlyContext<'_>, p: &ast::Param) { 22,660 ( 0.00%) if self.msrv.meets(msrvs::OR_PATTERNS) { 135,960 ( 0.00%) => /rust/deps/smallvec-1.15.1/src/lib.rs:::meets (5,665x) . lint_unnested_or_patterns(cx, &p.pat); . } . } . . fn check_local(&mut self, cx: &EarlyContext<'_>, l: &ast::Local) { 2,836 ( 0.00%) if self.msrv.meets(msrvs::OR_PATTERNS) { 17,016 ( 0.00%) => /rust/deps/smallvec-1.15.1/src/lib.rs:::meets (709x) . lint_unnested_or_patterns(cx, &l.pat); . } . } . . extract_msrv_attr!(); . } . . fn lint_unnested_or_patterns(cx: &EarlyContext<'_>, pat: &Pat) { -- line 93 ---------------------------------------- 119,688 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/zero_div_zero.rs -------------------------------------------------------------------------------- Ir -- line 24 ---------------------------------------- . pub ZERO_DIVIDED_BY_ZERO, . complexity, . "usage of `0.0 / 0.0` to obtain NaN instead of `f32::NAN` or `f64::NAN`" . } . . declare_lint_pass!(ZeroDiv => [ZERO_DIVIDED_BY_ZERO]); . . impl<'tcx> LateLintPass<'tcx> for ZeroDiv { 266,400 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { . // check for instances of 0.0/0.0 88,800 ( 0.00%) if let ExprKind::Binary(ref op, left, right) = expr.kind 416 ( 0.00%) && op.node == BinOpKind::Div . // TODO - constant_simple does not fold many operations involving floats. . // That's probably fine for this lint - it's pretty unlikely that someone would . // do something like 0.0/(2.0 - 2.0), but it would be nice to warn on that case too. 3 ( 0.00%) && let ecx = ConstEvalCtxt::new(cx) 168 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::new (3x) 3 ( 0.00%) && let ctxt = expr.span.ctxt() 15 ( 0.00%) && let Some(lhs_value) = ecx.eval_local(left, ctxt) 1,385 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::eval_local (3x) . && let Some(rhs_value) = ecx.eval_local(right, ctxt) . // FIXME(f16_f128): add these types when eq is available on all platforms . && (Constant::F32(0.0) == lhs_value || Constant::F64(0.0) == lhs_value) . && (Constant::F32(0.0) == rhs_value || Constant::F64(0.0) == rhs_value) . { . // since we're about to suggest a use of f32::NAN or f64::NAN, . // match the precision of the literals that are given. . let float_type = match (lhs_value, rhs_value) { -- line 49 ---------------------------------------- -- line 54 ---------------------------------------- . cx, . ZERO_DIVIDED_BY_ZERO, . expr.span, . "constant division of `0.0` with `0.0` will always result in NaN", . None, . format!("consider using `{float_type}::NAN` if you would like a constant representing NaN"), . ); . } 310,800 ( 0.00%) } . } 27 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/needless_maybe_sized.rs -------------------------------------------------------------------------------- Ir -- line 45 ---------------------------------------- . trait_bound: &'tcx PolyTraitRef<'tcx>, . . predicate_pos: usize, . bound_pos: usize, . } . . /// Finds all of the [`Bound`]s that refer to a type parameter and are not from a macro expansion . fn type_param_bounds<'tcx>(generics: &'tcx Generics<'tcx>) -> impl Iterator> { 12,993 ( 0.00%) generics . .predicates . .iter() . .enumerate() . .filter_map(|(predicate_pos, predicate)| { 13,556 ( 0.00%) let WherePredicateKind::BoundPredicate(bound_predicate) = &predicate.kind else { . return None; . }; . 6,752 ( 0.00%) let (param, ident) = bound_predicate.bounded_ty.as_generic_param()?; . . Some( 10,059 ( 0.00%) bound_predicate . .bounds . .iter() . .enumerate() 17,325 ( 0.00%) .filter_map(move |(bound_pos, bound)| match bound { . GenericBound::Trait(trait_bound) => Some(Bound { . param, . ident, . trait_bound, . predicate_pos, . bound_pos, . }), . GenericBound::Outlives(_) | GenericBound::Use(..) => None, -- line 77 ---------------------------------------- -- line 80 ---------------------------------------- . ) . }) . .flatten() . } . . /// Searches the supertraits of the trait referred to by `trait_bound` recursively, returning the . /// path taken to find a `Sized` bound if one is found . fn path_to_sized_bound(cx: &LateContext<'_>, trait_bound: &PolyTraitRef<'_>) -> Option> { 896 ( 0.00%) fn search(cx: &LateContext<'_>, path: &mut Vec) -> bool { 256 ( 0.00%) let trait_def_id = *path.last().unwrap(); . 384 ( 0.00%) if Some(trait_def_id) == cx.tcx.lang_items().sized_trait() { 1,950 ( 0.00%) => ???:::lang_items (65x) . return true; . } . . for (clause, _) in cx . .tcx . .explicit_super_clauses_of(trait_def_id) . .iter_identity_copied() . .map(Unnormalized::skip_norm_wip) . { 315 ( 0.00%) if let ClauseKind::Trait(trait_predicate) = clause.kind().skip_binder() 882 ( 0.00%) => ???:::kind (63x) . && trait_predicate.polarity == PredicatePolarity::Positive . && !path.contains(&trait_predicate.def_id()) . { . path.push(trait_predicate.def_id()); 252 ( 0.00%) if search(cx, path) { 9,639 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/needless_maybe_sized.rs:clippy_lints::needless_maybe_sized::path_to_sized_bound::search'2 (63x) . return true; . } . path.pop(); . } . } . . false 1,024 ( 0.00%) } . 260 ( 0.00%) let mut path = vec![trait_bound.trait_ref.trait_def_id()?]; 845 ( 0.00%) => ???:::trait_def_id (65x) 130 ( 0.00%) search(cx, &mut path).then_some(path) 36,255 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/needless_maybe_sized.rs:clippy_lints::needless_maybe_sized::path_to_sized_bound::search (65x) . } . . impl LateLintPass<'_> for NeedlessMaybeSized { 38,979 ( 0.00%) fn check_generics(&mut self, cx: &LateContext<'_>, generics: &Generics<'_>) { 25,986 ( 0.00%) let Some(sized_trait) = cx.tcx.lang_items().sized_trait() else { 129,930 ( 0.00%) => ???:::lang_items (4,331x) . return; . }; . . let maybe_sized_params: DefIdMap<_> = type_param_bounds(generics) . .filter(|bound| { 2,518 ( 0.00%) bound.trait_bound.trait_ref.trait_def_id() == Some(sized_trait) 10,608 ( 0.00%) => ???:::trait_def_id (816x) 70 ( 0.00%) && matches!(bound.trait_bound.modifiers.polarity, BoundPolarity::Maybe(_)) . }) . .map(|bound| (bound.param, bound)) . .collect(); . . for bound in type_param_bounds(generics) { 2,308 ( 0.00%) if bound.trait_bound.modifiers == TraitBoundModifiers::NONE . && let Some(sized_bound) = maybe_sized_params.get(&bound.param) . && let Some(path) = path_to_sized_bound(cx, bound.trait_bound) . && !is_from_proc_macro(cx, bound.trait_bound) . { . span_lint_and_then( . cx, . NEEDLESS_MAYBE_SIZED, . sized_bound.trait_bound.span, -- line 143 ---------------------------------------- -- line 162 ---------------------------------------- . Applicability::MaybeIncorrect, . ); . }, . ); . . return; . } . } 34,648 ( 0.00%) } . } 5,227 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/operators/mod.rs -------------------------------------------------------------------------------- Ir -- line 1033 ---------------------------------------- . modulo_arithmetic_allow_comparison_to_zero: bool, . msrv: Msrv, . } . . impl Operators { . pub fn new(conf: &'static Conf) -> Self { . Self { . arithmetic_context: numeric_arithmetic::Context::default(), 2 ( 0.00%) verbose_bit_mask_threshold: conf.verbose_bit_mask_threshold, 1 ( 0.00%) modulo_arithmetic_allow_comparison_to_zero: conf.allow_comparison_to_zero, . msrv: conf.msrv.into(), . } . } . } . . impl<'tcx> LateLintPass<'tcx> for Operators { 444,000 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, e: &'tcx Expr<'_>) { 133,200 ( 0.00%) eq_op::check_assert(cx, e); 5,455,919 ( 0.07%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/eq_op.rs:clippy_lints::operators::eq_op::check_assert (44,400x) 133,200 ( 0.00%) float_cmp::check_assert(cx, e); 3,977,301 ( 0.05%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/float_cmp.rs:clippy_lints::operators::float_cmp::check_assert (44,400x) 208,623 ( 0.00%) match e.kind { 1,248 ( 0.00%) ExprKind::Binary(op, lhs, rhs) => { 832 ( 0.00%) if !e.span.from_expansion() { 270 ( 0.00%) absurd_extreme_comparisons::check(cx, e, op.node, lhs, rhs); 19,330 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/absurd_extreme_comparisons.rs:clippy_lints::operators::absurd_extreme_comparisons::check (45x) . if !(macro_with_not_op(lhs) || macro_with_not_op(rhs)) { 270 ( 0.00%) eq_op::check(cx, e, op.node, lhs, rhs); 22,050 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/eq_op.rs:clippy_lints::operators::eq_op::check (45x) 270 ( 0.00%) op_ref::check(cx, e, op.node, lhs, rhs); 3,422 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/op_ref.rs:clippy_lints::operators::op_ref::check (45x) . } . erasing_op::check(cx, e, op.node, lhs, rhs); 270 ( 0.00%) identity_op::check(cx, e, op.node, lhs, rhs); 22,782 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/identity_op.rs:clippy_lints::operators::identity_op::check (45x) . invalid_upcast_comparisons::check(cx, op.node, lhs, rhs, e.span); 315 ( 0.00%) needless_bitwise_bool::check(cx, e, op.node, lhs, rhs); 945 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/needless_bitwise_bool.rs:clippy_lints::operators::needless_bitwise_bool::check (45x) 360 ( 0.00%) manual_midpoint::check(cx, e, op.node, lhs, rhs, self.msrv); 1,244 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/manual_midpoint.rs:clippy_lints::operators::manual_midpoint::check (45x) 315 ( 0.00%) manual_is_multiple_of::check(cx, e, op.node, lhs, rhs, self.msrv); 2,385 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/manual_is_multiple_of.rs:clippy_lints::operators::manual_is_multiple_of::check (45x) 315 ( 0.00%) manual_isolate_lowest_one::check(cx, e, op.node, lhs, rhs, self.msrv); 765 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/manual_isolate_lowest_one.rs:clippy_lints::operators::manual_isolate_lowest_one::check (45x) 225 ( 0.00%) decimal_bitwise_operands::check(cx, op.node, lhs, rhs); 810 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/decimal_bitwise_operands.rs:clippy_lints::operators::decimal_bitwise_operands::check (45x) . } 2,912 ( 0.00%) self.arithmetic_context.check_binary(cx, e, op.node, lhs, rhs); 14,083 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/numeric_arithmetic.rs:::check_binary (416x) 2,496 ( 0.00%) bit_mask::check(cx, e, op.node, lhs, rhs); 56,066 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/bit_mask.rs:clippy_lints::operators::bit_mask::check (416x) . verbose_bit_mask::check(cx, e, op.node, lhs, rhs, self.verbose_bit_mask_threshold); 2,912 ( 0.00%) double_comparison::check(cx, op.node, lhs, rhs, e.span); 39,984 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/double_comparison.rs:clippy_lints::operators::double_comparison::check (416x) 2,496 ( 0.00%) const_comparisons::check(cx, op, lhs, rhs, e.span); 43,798 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/const_comparisons.rs:clippy_lints::operators::const_comparisons::check (416x) 2,496 ( 0.00%) duration_subsec::check(cx, e, op.node, lhs, rhs); 7,078 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/duration_subsec.rs:clippy_lints::operators::duration_subsec::check (416x) 2,496 ( 0.00%) float_equality_without_abs::check(cx, e, op.node, lhs, rhs); 9,252 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/float_equality_without_abs.rs:clippy_lints::operators::float_equality_without_abs::check (416x) 2,496 ( 0.00%) integer_division::check(cx, e, op.node, lhs, rhs); 11,903 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/integer_division.rs:clippy_lints::operators::integer_division::check (416x) 2,496 ( 0.00%) integer_division_remainder_used::check(cx, op.node, lhs, rhs, e.span); 16,236 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/integer_division_remainder_used.rs:clippy_lints::operators::integer_division_remainder_used::check (416x) . cmp_owned::check(cx, e, op.node, lhs, rhs); 2,407 ( 0.00%) float_cmp::check(cx, e, op.node, lhs, rhs); 13,283 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/float_cmp.rs:clippy_lints::operators::float_cmp::check (416x) . modulo_one::check(cx, e, op.node, rhs); 2,496 ( 0.00%) modulo_arithmetic::check( 7,803 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/modulo_arithmetic.rs:clippy_lints::operators::modulo_arithmetic::check (416x) . cx, . e, . op.node, . lhs, . rhs, 416 ( 0.00%) self.modulo_arithmetic_allow_comparison_to_zero, . ); 5,824 ( 0.00%) manual_div_ceil::check(cx, e, op.node, lhs, rhs, self.msrv); 8,330 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/manual_div_ceil.rs:clippy_lints::operators::manual_div_ceil::check (416x) . }, 21 ( 0.00%) ExprKind::AssignOp(op, lhs, rhs) => { . let bin_op = op.node.into(); 14 ( 0.00%) if !e.span.from_expansion() { 35 ( 0.00%) decimal_bitwise_operands::check(cx, bin_op, lhs, rhs); 194 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/decimal_bitwise_operands.rs:clippy_lints::operators::decimal_bitwise_operands::check (7x) . } 56 ( 0.00%) self.arithmetic_context.check_binary(cx, e, bin_op, lhs, rhs); 841 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/numeric_arithmetic.rs:::check_binary (7x) 42 ( 0.00%) misrefactored_assign_op::check(cx, e, bin_op, lhs, rhs); 1,389 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/misrefactored_assign_op.rs:clippy_lints::operators::misrefactored_assign_op::check (7x) 98 ( 0.00%) modulo_arithmetic::check(cx, e, bin_op, lhs, rhs, false); 119 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/modulo_arithmetic.rs:clippy_lints::operators::modulo_arithmetic::check (7x) . }, 108 ( 0.00%) ExprKind::Assign(lhs, rhs, _) => { 324 ( 0.00%) assign_op_pattern::check(cx, e, lhs, rhs, self.msrv); 7,226 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/assign_op_pattern.rs:clippy_lints::operators::assign_op_pattern::check (54x) 648 ( 0.00%) self_assignment::check(cx, e, lhs, rhs); 41,070 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/self_assignment.rs:clippy_lints::operators::self_assignment::check (54x) . }, 2 ( 0.00%) ExprKind::Unary(op, arg) => . { . #[expect(clippy::collapsible_match)] 137 ( 0.00%) if op == UnOp::Neg { 24 ( 0.00%) self.arithmetic_context.check_negate(cx, e, arg); 1,478 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/numeric_arithmetic.rs:::check_negate (2x) . } . }, . _ => (), . } 351,368 ( 0.00%) } . . fn check_expr_post(&mut self, _: &LateContext<'_>, e: &Expr<'_>) { . self.arithmetic_context.expr_post(e.hir_id); . } . . fn check_body(&mut self, cx: &LateContext<'tcx>, b: &Body<'_>) { . self.arithmetic_context.enter_body(cx, b); . } . . fn check_body_post(&mut self, cx: &LateContext<'tcx>, b: &Body<'_>) { . self.arithmetic_context.body_post(cx, b); . } . } . . fn macro_with_not_op(e: &Expr<'_>) -> bool { 180 ( 0.00%) if let ExprKind::Unary(_, e) = e.kind { . e.span.from_expansion() . } else { . false . } . } 12,013 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/zombie_processes.rs -------------------------------------------------------------------------------- Ir -- line 53 ---------------------------------------- . pub ZOMBIE_PROCESSES, . suspicious, . "not waiting on a spawned child process" . } . . declare_lint_pass!(ZombieProcesses => [ZOMBIE_PROCESSES]); . . impl<'tcx> LateLintPass<'tcx> for ZombieProcesses { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 177,600 ( 0.00%) if let ExprKind::Call(..) | ExprKind::MethodCall(..) = expr.kind 19,794 ( 0.00%) && let child_ty = cx.typeck_results().expr_ty(expr) 396,296 ( 0.01%) => ???:::expr_ty (9,897x) 16,230 ( 0.00%) && child_ty.is_diag_item(cx, sym::Child) . { . match cx.tcx.parent_hir_node(expr.hir_id) { . Node::LetStmt(local) . if let PatKind::Binding(_, local_id, ..) = local.pat.kind . && let Some(enclosing_block) = get_enclosing_block(cx, expr.hir_id) => . { . let mut vis = WaitFinder { . cx, -- line 72 ---------------------------------------- -- line 110 ---------------------------------------- . .. . }) => { . // Immediately dropped. E.g. `std::process::Command::new("echo").spawn().unwrap();` . check(cx, expr, Cause::NeverWait, true); . }, . _ => {}, . } . } 355,200 ( 0.00%) } . } . . struct MaybeWait(Span); . . /// A visitor responsible for finding a `wait()` call on a local variable. . /// . /// Note that this visitor does NOT explicitly look for `wait()` calls directly, but rather does the . /// inverse -- checking if all uses of the local are either: -- line 126 ---------------------------------------- 9,897 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/non_copy_const.rs -------------------------------------------------------------------------------- Ir -- line 191 ---------------------------------------- . (Self::Maybe, _) | (_, Self::Maybe) => Some(Self::Maybe), . (Self::Yes, Self::Yes) => Some(Self::Yes), . }) . .unwrap_or(Self::No) . } . . /// Checks if this is definitely `Freeze`. . fn is_freeze(self) -> bool { 177 ( 0.00%) matches!(self, Self::Yes) . } . . /// Checks if this is definitely not `Freeze`. . fn is_not_freeze(self) -> bool { . matches!(self, Self::No) . } . } . -- line 207 ---------------------------------------- -- line 259 ---------------------------------------- . ignore_tys: DefIdSet, . // Cache checked types. We can recurse through a type multiple times so this . // can be hit quite frequently. . freeze_tys: FxHashMap, IsFreeze>, . } . . impl<'tcx> NonCopyConst<'tcx> { . pub fn new(tcx: TyCtxt<'tcx>, conf: &'static Conf) -> Self { 4 ( 0.00%) Self { . ignore_tys: conf . .ignore_interior_mutability . .iter() 16 ( 0.00%) .flat_map(|ignored_ty| lookup_path_str(tcx, PathNS::Type, ignored_ty)) 83,462 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/paths.rs:clippy_utils::paths::lookup_path_str (4x) . .collect(), . freeze_tys: FxHashMap::default(), . } . } . . /// Checks if a value of the given type is `Freeze`, or may be depending on the value. 2,280 ( 0.00%) fn is_ty_freeze(&mut self, tcx: TyCtxt<'tcx>, typing_env: TypingEnv<'tcx>, ty: Ty<'tcx>) -> IsFreeze { . // FIXME: this should probably be using the trait solver . let ty = tcx . .try_normalize_erasing_regions(typing_env, Unnormalized::new_wip(ty)) . .unwrap_or(ty); . match self.freeze_tys.entry(ty) { 350 ( 0.00%) Entry::Occupied(e) => *e.get(), . Entry::Vacant(e) => { . let e = e.insert(IsFreeze::Yes); 90 ( 0.00%) if ty.is_freeze(tcx, typing_env) { 34,036 ( 0.00%) => ???:::is_freeze (15x) . return IsFreeze::Yes; . } . let is_freeze = match *ty.kind() { . ty::Adt(adt, _) if adt.is_unsafe_cell() => { . *e = IsFreeze::No; . return IsFreeze::No; . }, . ty::Adt(adt, _) if self.ignore_tys.contains(&adt.did()) => return IsFreeze::Yes, -- line 295 ---------------------------------------- -- line 331 ---------------------------------------- . }, . }; . if !is_freeze.is_freeze() { . self.freeze_tys.insert(ty, is_freeze); . } . is_freeze . }, . } 1,520 ( 0.00%) } . . /// Checks if the given constant value is `Freeze`. Returns `Err` if the constant . /// cannot be read, but the result depends on the value. . fn is_value_freeze( . &mut self, . tcx: TyCtxt<'tcx>, . typing_env: TypingEnv<'tcx>, . ty: Ty<'tcx>, -- line 347 ---------------------------------------- -- line 709 ---------------------------------------- . _ => return None, . }; . src_expr = use_expr; . } . } . } . . impl<'tcx> LateLintPass<'tcx> for NonCopyConst<'tcx> { 10,514 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'_>) { 3,004 ( 0.00%) if let ItemKind::Const(ident, .., ct_rhs) = item.kind 13 ( 0.00%) && !ident.is_special() 78 ( 0.00%) && let ty = cx.tcx.type_of(item.owner_id).instantiate_identity().skip_norm_wip() 130 ( 0.00%) && match self.is_ty_freeze(cx.tcx, cx.typing_env(), ty) { 2,890 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/non_copy_const.rs:::is_ty_freeze (13x) 273 ( 0.00%) => ???:::typing_env (13x) . IsFreeze::No => true, . IsFreeze::Yes => false, . IsFreeze::Maybe => match cx.tcx.const_eval_poly(item.owner_id.to_def_id()) { . Ok(val) if let Ok(is_freeze) = self.is_value_freeze(cx.tcx, cx.typing_env(), ty, val) => !is_freeze, . // FIXME: we just assume mgca rhs's are freeze . _ => const_item_rhs_to_expr(cx.tcx, ct_rhs).is_some_and(|e| !self.is_init_expr_freeze( . cx.tcx, . cx.typing_env(), -- line 729 ---------------------------------------- -- line 749 ---------------------------------------- . if implements_trait(cx, ty, sync_trait, &[]) { . diag.help("did you mean to make this a `static` item"); . } else { . diag.help("did you mean to make this a `thread_local!` item"); . } . }, . ); . } 12,016 ( 0.00%) } . 1,464 ( 0.00%) fn check_trait_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx TraitItem<'_>) { 366 ( 0.00%) if let TraitItemKind::Const(_, ct_rhs_opt) = item.kind . && let ty = cx.tcx.type_of(item.owner_id).instantiate_identity().skip_norm_wip() . && match self.is_ty_freeze(cx.tcx, cx.typing_env(), ty) { . IsFreeze::No => true, . IsFreeze::Maybe if let Some(ct_rhs) = ct_rhs_opt => { . match cx.tcx.const_eval_poly(item.owner_id.to_def_id()) { . Ok(val) if let Ok(is_freeze) = self.is_value_freeze(cx.tcx, cx.typing_env(), ty, val) => { . !is_freeze . }, -- line 768 ---------------------------------------- -- line 784 ---------------------------------------- . { . span_lint( . cx, . DECLARE_INTERIOR_MUTABLE_CONST, . item.ident.span, . "named constant with interior mutability", . ); . } 1,464 ( 0.00%) } . 21,357 ( 0.00%) fn check_impl_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx ImplItem<'_>) { 6,102 ( 0.00%) if let ImplItemKind::Const(_, ct_rhs) = item.kind . && let ty = cx.tcx.type_of(item.owner_id).instantiate_identity().skip_norm_wip() . && match self.is_ty_freeze(cx.tcx, cx.typing_env(), ty) { . IsFreeze::Yes => false, . IsFreeze::No => { . // If this is a trait impl, check if the trait definition is the source . // of the cell. . if let Node::Item(parent_item) = cx.tcx.parent_hir_node(item.hir_id()) . && let ItemKind::Impl(impl_block) = parent_item.kind -- line 803 ---------------------------------------- -- line 843 ---------------------------------------- . { . span_lint( . cx, . DECLARE_INTERIOR_MUTABLE_CONST, . item.ident.span, . "named constant with interior mutability", . ); . } 24,408 ( 0.00%) } . 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, e: &'tcx Expr<'_>) { 107,637 ( 0.00%) if let ExprKind::Path(qpath) = &e.kind . && let typeck = cx.typeck_results() 275,251 ( 0.00%) && let Res::Def(DefKind::Const { .. } | DefKind::AssocConst { .. }, did) = typeck.qpath_res(qpath, e.hir_id) 318,203 ( 0.00%) => ???:::qpath_res (18,837x) . // As of `1.80` constant contexts can't borrow any type with interior mutability 724 ( 0.00%) && !is_in_const_context(cx) 54,033 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_in_const_context (181x) 2,655 ( 0.00%) && !self.is_ty_freeze(cx.tcx, cx.typing_env(), typeck.expr_ty(e)).is_freeze() 45,845 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/non_copy_const.rs:::is_ty_freeze (177x) 7,104 ( 0.00%) => ???:::expr_ty (177x) 5,310 ( 0.00%) => ???:::typing_env (177x) . && let Some(borrow_src) = { . // The extra block helps formatting a lot. . if let Ok(val) = cx.tcx.const_eval_resolve( . cx.typing_env(), . UnevaluatedConst::new(did, typeck.node_args(e.hir_id)), . DUMMY_SP, . ) && let Ok(src) = self.is_non_freeze_val_borrowed(cx.tcx, cx.typing_env(), typeck, e, val) . { -- line 867 ---------------------------------------- -- line 884 ---------------------------------------- . |diag| { . if let Some(note) = borrow_src.cause.note() { . diag.note(note); . } . diag.help("this lint can be silenced by assigning the value to a local variable before borrowing"); . }, . ); . } 355,200 ( 0.00%) } . } . . struct ReplaceAssocFolder<'tcx> { . tcx: TyCtxt<'tcx>, . trait_id: DefId, . self_ty: Ty<'tcx>, . } . impl<'tcx> TypeFolder> for ReplaceAssocFolder<'tcx> { -- line 900 ---------------------------------------- 19,236 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs -------------------------------------------------------------------------------- Ir -- line 565 ---------------------------------------- . ub_checks::maybe_is_aligned_and_not_null(src, align, zero_size) . && ub_checks::maybe_is_aligned_and_not_null(dst, align, zero_size) . && ub_checks::maybe_is_nonoverlapping(src, dst, size, count) . } . ); . . // SAFETY: the safety contract for `copy_nonoverlapping` must be . // upheld by the caller. 90,625 ( 0.00%) unsafe { crate::intrinsics::copy_nonoverlapping(src, dst, count) } 792 ( 0.00%) => ???:0x0000000000173dc0 (44x) . } . . /// Copies `count * size_of::()` bytes from `src` to `dst`. The source . /// and destination may overlap. . /// . /// If the source and destination will *never* overlap, . /// [`copy_nonoverlapping`] can be used instead. . /// -- line 581 ---------------------------------------- -- line 656 ---------------------------------------- . src: *const () = src as *const (), . dst: *mut () = dst as *mut (), . align: usize = align_of::(), . zero_size: bool = T::IS_ZST || count == 0, . ) => . ub_checks::maybe_is_aligned_and_not_null(src, align, zero_size) . && ub_checks::maybe_is_aligned_and_not_null(dst, align, zero_size) . ); 3,772 ( 0.00%) crate::intrinsics::copy(src, dst, count) 1,616 ( 0.00%) => ???:0x0000000000173dc0 (100x) . } . } . . /// Sets `count * size_of::()` bytes of memory starting at `dst` to . /// `val`. . /// . /// `write_bytes` is similar to C's [`memset`], but sets `count * . /// size_of::()` bytes to `val`. -- line 672 ---------------------------------------- -- line 727 ---------------------------------------- . check_language_ub, . "ptr::write_bytes requires that the destination pointer is aligned and non-null", . ( . addr: *const () = dst as *const (), . align: usize = align_of::(), . zero_size: bool = T::IS_ZST || count == 0, . ) => ub_checks::maybe_is_aligned_and_not_null(addr, align, zero_size) . ); 14,515 ( 0.00%) crate::intrinsics::write_bytes(dst, val, count) 220 ( 0.00%) => ???:0x00000000001747c0 (20x) . } . } . . /// Executes the destructor (if any) of the pointed-to value. . /// . /// This is almost the same as calling [`ptr::read`] and discarding . /// the result, but has the following advantages: . // FIXME: say something more useful than "almost the same"? -- line 743 ---------------------------------------- -- line 834 ---------------------------------------- . // Due to historic reasons, `drop_in_place` takes a pointer rather than a reference, . // which results in worse codegen since we don't apply noalias/dereferenceable llvm . // attributes to pointer arguments. To workaround this without breaking public . // interface, `drop_in_place` calls the lang item, rather than being one directly. . . // SAFETY: . // - compiler glue has the same safety requirements as this function . // - the pointer must be valid as per the safety requirement of this function 33 ( 0.00%) unsafe { drop_glue(&mut *to_drop) } 801 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:core::ptr::drop_glue::<[serde_spanned::spanned::Spanned]> (13x) . } . . /// Helper function for `drop_in_place`. The compiler replaces this by the actual drop glue. . #[lang = "drop_glue"] 903,893 ( 0.01%) pub(crate) const unsafe fn drop_glue(_: &mut T) 72,850 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:core::ptr::drop_glue::> (470x) 10,810 ( 0.00%) => ???:::drop (470x) 8,460 ( 0.00%) => /rust/deps/hashbrown-0.17.1/src/raw.rs:), rustc_middle::traits::cache::WithDepNode, rustc_middle::traits::SelectionError>>)> as core::ops::drop::Drop>::drop (470x) 4,700 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:>>> as core::ops::drop::Drop>::drop (470x) . where . T: [const] Destruct, . { . // Code here does not matter - this is replaced by the . // real drop glue by the compiler. . } . . /// Creates a null raw pointer. -- line 855 ---------------------------------------- -- line 1464 ---------------------------------------- . i += 1; . } . } . . // Don't let MIR inline this, because we really want it to keep its noalias metadata . #[rustc_no_mir_inline] . #[inline] . fn swap_chunk(x: &mut MaybeUninit<[u8; N]>, y: &mut MaybeUninit<[u8; N]>) { 6,894 ( 0.00%) let a = *x; . let b = *y; 17,472 ( 0.00%) *x = b; . *y = a; . } . . #[inline] . unsafe fn swap_nonoverlapping_bytes(x: *mut u8, y: *mut u8, bytes: NonZero) { . // Same as `swap_nonoverlapping::<[u8; N]>`. . unsafe fn swap_nonoverlapping_chunks( . x: *mut MaybeUninit<[u8; N]>, -- line 1482 ---------------------------------------- -- line 1747 ---------------------------------------- . check_language_ub, . "ptr::read requires that the pointer argument is aligned and non-null", . ( . addr: *const () = src as *const (), . align: usize = align_of::(), . is_zst: bool = T::IS_ZST, . ) => ub_checks::maybe_is_aligned_and_not_null(addr, align, is_zst) . ); 43,822 ( 0.00%) crate::intrinsics::read_via_copy(src) . } . } . . /// Reads the value from `src` without moving it. This leaves the . /// memory in `src` unchanged. . /// . /// Unlike [`read`], `read_unaligned` works with unaligned pointers. . /// -- line 1763 ---------------------------------------- -- line 1955 ---------------------------------------- . check_language_ub, . "ptr::write requires that the pointer argument is aligned and non-null", . ( . addr: *mut () = dst as *mut (), . align: usize = align_of::(), . is_zst: bool = T::IS_ZST, . ) => ub_checks::maybe_is_aligned_and_not_null(addr, align, is_zst) . ); 285,108 ( 0.00%) intrinsics::write_via_move(dst, src) 52 ( 0.00%) => ???:0x0000000000173dc0 (4x) . } . } . . /// Overwrites a memory location with the given value without reading or . /// dropping the old value. . /// . /// Unlike [`write()`], the pointer may be unaligned. . /// -- line 1971 ---------------------------------------- -- line 2500 ---------------------------------------- . /// assert!(!std::ptr::eq(&a[0..2], &a[1..3])); . /// ``` . #[stable(feature = "ptr_eq", since = "1.17.0")] . #[inline(always)] . #[must_use = "pointer comparison produces a value"] . #[rustc_diagnostic_item = "ptr_eq"] . #[allow(ambiguous_wide_pointer_comparisons)] // it's actually clear here . pub fn eq(a: *const T, b: *const T) -> bool { 6,367 ( 0.00%) a == b . } . . /// Compares the *addresses* of the two pointers for equality, . /// ignoring any metadata in fat pointers. . /// . /// If the arguments are thin pointers of the same type, . /// then this is the same as [`eq`]. . /// -- line 2516 ---------------------------------------- -- line 2524 ---------------------------------------- . /// . /// assert!(ptr::addr_eq(whole, first)); . /// assert!(!ptr::eq::(whole, first)); . /// ``` . #[stable(feature = "ptr_addr_eq", since = "1.76.0")] . #[inline(always)] . #[must_use = "pointer comparison produces a value"] . pub fn addr_eq(p: *const T, q: *const U) -> bool { 29,306 ( 0.00%) (p as *const ()) == (q as *const ()) . } . . /// Compares the *addresses* of the two function pointers for equality. . /// . /// This is the same as `f == g`, but using this function makes clear that the potentially . /// surprising semantics of function pointer comparison are involved. . /// . /// There are **very few guarantees** about how functions are compiled and they have no intrinsic -- line 2540 ---------------------------------------- 25,128 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/len_zero.rs -------------------------------------------------------------------------------- Ir -- line 96 ---------------------------------------- . . impl LenZero { . pub fn new(conf: &'static Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl<'tcx> LateLintPass<'tcx> for LenZero { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 133,363 ( 0.00%) if let ExprKind::Let(lt) = expr.kind 1,467 ( 0.00%) && match lt.pat.kind { . PatKind::Slice([], None, []) => true, . PatKind::Expr(lit) . if let PatExprKind::Lit { lit, .. } = lit.kind . && let LitKind::Str(lit, _) = lit.node => . { . lit.as_str().is_empty() . }, . _ => false, -- line 114 ---------------------------------------- -- line 127 ---------------------------------------- . lt.span, . "comparison to empty slice using `if let`", . "using `is_empty` is clearer and more explicit", . format!("{lit_str}.is_empty()"), . applicability, . ); . } . 96,092 ( 0.00%) if let ExprKind::MethodCall(method, lhs_expr, [rhs_expr], _) = expr.kind 18,368 ( 0.00%) && cx.ty_based_def(expr).opt_parent(cx).is_diag_item(cx, sym::PartialEq) . && !expr.span.from_expansion() . { . self.check_empty_expr( . cx, . expr.span, . lhs_expr, . peel_ref_operators(cx, rhs_expr), . if method.ident.name == sym::ne { . "!" . } else { . Default::default() . }, . ); . } . 85,130 ( 0.00%) if let ExprKind::Binary(Spanned { node: cmp, .. }, left, right) = expr.kind 832 ( 0.00%) && !expr.span.from_expansion() . { . // expr.span might contains parenthesis, see issue #10529 45 ( 0.00%) let actual_span = span_without_enclosing_paren(cx, expr.span); 210 ( 0.00%) match cmp { . BinOpKind::Eq => { 231 ( 0.00%) self.check_cmp(cx, actual_span, left, right, "", 0); // len == 0 1,190 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/len_zero.rs:::check_cmp (21x) 168 ( 0.00%) self.check_cmp(cx, actual_span, right, left, "", 0); // 0 == len . }, . BinOpKind::Ne => { . self.check_cmp(cx, actual_span, left, right, "!", 0); // len != 0 . self.check_cmp(cx, actual_span, right, left, "!", 0); // 0 != len . }, . BinOpKind::Gt => { 22 ( 0.00%) self.check_cmp(cx, actual_span, left, right, "!", 0); // len > 0 114 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/len_zero.rs:::check_cmp (2x) 14 ( 0.00%) self.check_cmp(cx, actual_span, right, left, "", 1); // 1 > len . }, . BinOpKind::Lt => { . self.check_cmp(cx, actual_span, left, right, "", 1); // len < 1 . self.check_cmp(cx, actual_span, right, left, "!", 0); // 0 < len . }, 12 ( 0.00%) BinOpKind::Ge => self.check_cmp(cx, actual_span, left, right, "!", 1), // len >= 1 . BinOpKind::Le => self.check_cmp(cx, actual_span, right, left, "!", 1), // 1 <= len . _ => (), . } . } 355,200 ( 0.00%) } . } . . impl LenZero { 432 ( 0.00%) fn check_cmp( . &self, . cx: &LateContext<'_>, . span: Span, . method: &Expr<'_>, . lit: &Expr<'_>, . op: &str, . compare_to: u32, . ) { 96 ( 0.00%) if method.span.from_expansion() { . return; . } . 112 ( 0.00%) if let (&ExprKind::MethodCall(method_path, receiver, [], _), ExprKind::Lit(lit)) = (&method.kind, &lit.kind) { . // check if we are in an is_empty() method . if parent_item_name(cx, method) == Some(sym::is_empty) { . return; . } . . self.check_len(cx, span, method_path.ident.name, receiver, &lit.node, op, compare_to); . } else { 384 ( 0.00%) self.check_empty_expr(cx, span, method, lit, op); 1,316 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/len_zero.rs:::check_empty_expr (48x) . } . } . . #[expect(clippy::too_many_arguments)] . fn check_len( . &self, . cx: &LateContext<'_>, . span: Span, -- line 212 ---------------------------------------- -- line 235 ---------------------------------------- . snippet_with_context(cx, receiver.span, span.ctxt(), "_", &mut applicability).0, . ), . applicability, . ); . } . } . } . 672 ( 0.00%) fn check_empty_expr(&self, cx: &LateContext<'_>, span: Span, lit1: &Expr<'_>, lit2: &Expr<'_>, op: &str) { . if (is_empty_array(lit2) || is_empty_string(lit2)) && has_is_empty(cx, lit1, self.msrv) { . let mut applicability = Applicability::MachineApplicable; . . let lit1 = peel_ref_operators(cx, lit1); . let lit_str = Sugg::hir_with_context(cx, lit1, span.ctxt(), "_", &mut applicability).maybe_paren(); . . span_lint_and_sugg( . cx, -- line 251 ---------------------------------------- -- line 252 ---------------------------------------- . COMPARISON_TO_EMPTY, . span, . "comparison to empty slice", . format!("using `{op}is_empty` is clearer and more explicit"), . format!("{op}{lit_str}.is_empty()"), . applicability, . ); . } 384 ( 0.00%) } . } . . fn span_without_enclosing_paren(cx: &LateContext<'_>, span: Span) -> Span { 315 ( 0.00%) let Some(snippet) = span.get_text(cx) else { . return span; . }; 135 ( 0.00%) if has_enclosing_paren(snippet) { 3,149 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/sugg.rs:clippy_utils::sugg::has_enclosing_paren:: (45x) 5 ( 0.00%) let source_map = cx.tcx.sess.source_map(); 20 ( 0.00%) let left_paren = source_map.start_point(span); 1,110 ( 0.00%) => ???:::start_point (5x) 15 ( 0.00%) let right_parent = source_map.end_point(span); 1,875 ( 0.00%) => ???:::end_point (5x) 10 ( 0.00%) left_paren.between(right_parent) 535 ( 0.00%) => ???:::between (5x) . } else { . span . } . } . . fn is_empty_string(expr: &Expr<'_>) -> bool { 116 ( 0.00%) if let ExprKind::Lit(lit) = expr.kind . && let LitKind::Str(lit, _) = lit.node . { . let lit = lit.as_str(); . return lit.is_empty(); . } . false . } . . fn is_empty_array(expr: &Expr<'_>) -> bool { 144 ( 0.00%) if let ExprKind::Array(arr) = expr.kind { . return arr.is_empty(); . } . false . } . . /// Checks if this type has an `is_empty` method. . fn has_is_empty(cx: &LateContext<'_>, expr: &Expr<'_>, msrv: Msrv) -> bool { . /// Gets an `AssocItem` and return true if it matches `is_empty(self)`. -- line 296 ---------------------------------------- 14,143 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/combined_late_pass.rs -------------------------------------------------------------------------------- Ir -- line 16 ---------------------------------------- . pub struct Gated

{ . pub(crate) active: bool, . pub(crate) pass: P, . } . . impl Gated

{ . #[inline] . pub fn new bool>(is_active: &F, pass: P) -> Self { 70 ( 0.00%) let active = is_active(&pass.get_lints()); 371 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_lint_defs/src/lib.rs:::get_lints (1x) 361 ( 0.00%) Gated { active, pass } 90 ( 0.00%) => ???:0x0000000000173dc0 (3x) . } . } . . /// Run one field's `check_*`, if that field is active. . /// . /// Fully qualified through [`rustc_lint::LateLintPass`] since some passes impl . /// both `EarlyLintPass` and `LateLintPass` with like-named methods, which would . /// be ambiguous on the concrete field type. The args arrive as one `tt` and are . /// re-parsed here so the per-field and per-argument repetitions never share a . /// nesting level. . #[macro_export] . macro_rules! run_combined_late_lint_pass_field { . ($self:ident, $field:ident, $name:ident, ($($arg:expr),* $(,)?)) => { 23,744,731 ( 0.32%) if $self.$field.active { 19,563,982 ( 0.27%) rustc_lint::LateLintPass::$name(&mut $self.$field.pass, $($arg),*); 215,376 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:::check_poly_trait_ref (3,370x) 64,710 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/unused_unit.rs:::check_poly_trait_ref (3,370x) . } . }; . } . . /// Forward one `check_*` method to every field of the combined pass. . #[macro_export] . macro_rules! expand_combined_late_lint_pass_method { . ([$($field:ident),*], $self:ident, $name:ident, $args:tt) => ({ -- line 48 ---------------------------------------- -- line 50 ---------------------------------------- . }) . } . . /// Generate the combined `LateLintPass` impl's `check_*` methods, one per method . /// in rustc's late-pass method list. . #[macro_export] . macro_rules! expand_combined_late_lint_pass_methods { . ($fields:tt, [$($(#[$attr:meta])* fn $name:ident($($param:ident: $arg:ty),*);)*]) => ( 2,470,427 ( 0.03%) $(#[inline(always)] fn $name(&mut self, cx: &rustc_lint::LateContext<'tcx>, $($param: $arg),*) { . $crate::expand_combined_late_lint_pass_method!($fields, self, $name, (cx, $($param),*)); 1,457,216 ( 0.02%) })* . ) . } . . /// Declare the combined struct (one [`Gated`] field per pass) plus its . /// `LintPass`/`LateLintPass` impls. The method list comes from . /// `rustc_lint::late_lint_methods!` so it can't drift from rustc's. . /// . /// Each entry is `Field: Type = constructor`; `new`'s params (`tcx`, `conf`, ...) -- line 68 ---------------------------------------- -- line 74 ---------------------------------------- . $methods:tt . ) => { . #[allow(non_snake_case)] . pub struct $name<'tcx> { . $($field: $crate::combined_late_pass::Gated<$fty>,)* . } . . impl<'tcx> $name<'tcx> { 17 ( 0.00%) pub fn new bool>($($pname: $pty,)* is_active: &F) -> Self { 55 ( 0.00%) Self { 9 ( 0.00%) $($field: $crate::combined_late_pass::Gated::new(is_active, $ctor),)* . } 8 ( 0.00%) } . } . . #[allow(rustc::lint_pass_impl_without_macro)] . impl<'tcx> rustc_lint::LintPass for $name<'tcx> { . fn name(&self) -> &'static str { . stringify!($name) . } 10 ( 0.00%) fn get_lints(&self) -> rustc_lint::LintVec { 1 ( 0.00%) => ???:std::exception::~exception() (1x) . // Reserve at least one slot per pass up front to skip the early reallocations. . let mut lints = Vec::with_capacity([$(stringify!($field)),*].len()); 3 ( 0.00%) $(lints.extend(self.$field.pass.get_lints());)* 368 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_lint_defs/src/lib.rs:::get_lints (1x) 3 ( 0.00%) lints 9 ( 0.00%) } . } . . impl<'tcx> rustc_lint::LateLintPass<'tcx> for $name<'tcx> { . $crate::expand_combined_late_lint_pass_methods!([$($field),*], $methods); . } . }; . } 331,050 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs -------------------------------------------------------------------------------- Ir -- line 17 ---------------------------------------- . let $len = unsafe { &mut *(&raw mut $this.end_or_len).cast::() }; . $zst_body . } else { . // SAFETY: for non-ZSTs, the type invariant ensures it cannot be null . let $end = unsafe { &mut *(&raw mut $this.end_or_len).cast::>() }; . $other_body . } . }}; 294,174 ( 0.00%) ($this:ident, $len:ident => $zst_body:expr, $end:ident => $other_body:expr,) => {{ . #![allow(unused_unsafe)] // we're sometimes used within an unsafe block . 9,952 ( 0.00%) if T::IS_ZST { . let $len = $this.end_or_len.addr(); . $zst_body . } else { . // SAFETY: for non-ZSTs, the type invariant ensures it cannot be null 8 ( 0.00%) let $end = unsafe { mem::transmute::<*const T, NonNull>($this.end_or_len) }; . $other_body . } . }}; . } . . // Inlining is_empty and len makes a huge performance difference . macro_rules! is_empty { . ($self: ident) => { -- line 41 ---------------------------------------- -- line 85 ---------------------------------------- . } . . // Helper function for creating a slice from the iterator. . #[inline(always)] . fn make_slice(&self) -> &'a [T] { . // SAFETY: the iterator was created from a slice with pointer . // `self.ptr` and length `len!(self)`. This guarantees that all . // the prerequisites for `from_raw_parts` are fulfilled. 8 ( 0.00%) unsafe { from_raw_parts(self.ptr.as_ptr(), len!(self)) } . } . . // Helper function for moving the start of the iterator forwards by `offset` elements, . // returning the old start. . // Unsafe because the offset must not exceed `self.len()`. . #[inline(always)] . unsafe fn post_inc_start(&mut self, offset: usize) -> NonNull { . let old = self.ptr; -- line 101 ---------------------------------------- -- line 153 ---------------------------------------- . impl<'a, T> Iterator for $name<'a, T> { . type Item = $elem; . . #[inline] . fn next(&mut self) -> Option<$elem> { . // intentionally not using the helpers because this is . // one of the most mono'd things in the library. . 212 ( 0.00%) let ptr = self.ptr; 183 ( 0.00%) let end_or_len = self.end_or_len; . // SAFETY: See inner comments. (For some reason having multiple . // block breaks inlining this -- if you can fix that please do!) . unsafe { . if T::IS_ZST { . let len = end_or_len.addr(); . if len == 0 { . return None; . } -- line 170 ---------------------------------------- -- line 172 ---------------------------------------- . // cannot wrap. (Ideally this would be `checked_sub`, which . // does the same thing internally, but as of 2025-02 that . // doesn't optimize quite as small in MIR.) . self.end_or_len = without_provenance_mut(len.unchecked_sub(1)); . } else { . // SAFETY: by type invariant, the `end_or_len` field is always . // non-null for a non-ZST pointee. (This transmute ensures we . // get `!nonnull` metadata on the load of the field.) 2,810,057 ( 0.04%) if ptr == crate::intrinsics::transmute::<$ptr, NonNull>(end_or_len) { . return None; . } . // SAFETY: since it's not empty, per the check above, moving . // forward one keeps us inside the slice, and this is valid. 14,560 ( 0.00%) self.ptr = ptr.add(1); . } . // SAFETY: Now that we know it wasn't empty and we've moved past . // the first one (to avoid giving a duplicate `&mut` next time), . // we can give out a reference to it. . Some({ptr}.$into_ref()) . } 18 ( 0.00%) } . . fn next_chunk(&mut self) -> Result<[$elem; N], crate::array::IntoIter<$elem, N>> { . if T::IS_ZST || len!(self) < N { . return crate::array::iter_next_chunk(self); . } . . // SAFETY: the check above ensures len >= N . unsafe { -- line 200 ---------------------------------------- -- line 217 ---------------------------------------- . . #[inline] . fn count(self) -> usize { . len!(self) . } . . #[inline] . fn nth(&mut self, n: usize) -> Option<$elem> { 1,296 ( 0.00%) if n >= len!(self) { . // This iterator is now empty. . if_zst!(mut self, . len => *len = 0, . end => self.ptr = *end, . ); . return None; . } . // SAFETY: We are in bounds. `post_inc_start` does the right thing even for ZSTs. -- line 233 ---------------------------------------- -- line 266 ---------------------------------------- . return init; . } . let mut acc = init; . let mut i = 0; . let len = len!(self); . loop { . // SAFETY: the loop iterates `i in 0..len`, which always is in bounds of . // the slice allocation 8,594 ( 0.00%) acc = f(acc, unsafe { & $( $mut_ )? *self.ptr.add(i).as_ptr() }); . // SAFETY: `i` can't overflow since it'll only reach usize::MAX if the . // slice had that length, in which case we'll break out of the loop . // after the increment . i = unsafe { i.unchecked_add(1) }; 89,906 ( 0.00%) if i == len { . break; . } . } 312 ( 0.00%) acc . } . . // We override the default implementation, which uses `try_fold`, . // because this simple implementation generates less LLVM IR and is . // faster to compile. . #[inline] . fn for_each(mut self, mut f: F) . where . Self: Sized, . F: FnMut(Self::Item), . { . while let Some(x) = self.next() { 12 ( 0.00%) f(x); 140 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/matches/match_wild_enum.rs:clippy_lints::matches::match_wild_enum::check::{closure#2} (4x) . } . } . . // We override the default implementation, which uses `try_fold`, . // because this simple implementation generates less LLVM IR and is . // faster to compile. . #[inline] . fn all(&mut self, mut f: F) -> bool . where . Self: Sized, . F: FnMut(Self::Item) -> bool, . { . while let Some(x) = self.next() { 26,697 ( 0.00%) if !f(x) { . return false; . } . } . true . } . . // We override the default implementation, which uses `try_fold`, . // because this simple implementation generates less LLVM IR and is . // faster to compile. . #[inline] 24 ( 0.00%) fn any(&mut self, mut f: F) -> bool . where . Self: Sized, . F: FnMut(Self::Item) -> bool, . { . while let Some(x) = self.next() { 86,529 ( 0.00%) if f(x) { . return true; . } . } . false 24 ( 0.00%) } . . // We override the default implementation, which uses `try_fold`, . // because this simple implementation generates less LLVM IR and is . // faster to compile. . #[inline] . fn find

(&mut self, mut predicate: P) -> Option . where . Self: Sized, . P: FnMut(&Self::Item) -> bool, . { . while let Some(x) = self.next() { 153,648 ( 0.00%) if predicate(&x) { . return Some(x); . } . } . None . } . . // We override the default implementation, which uses `try_fold`, . // because this simple implementation generates less LLVM IR and is -- line 352 ---------------------------------------- -- line 353 ---------------------------------------- . // faster to compile. . #[inline] . fn find_map(&mut self, mut f: F) -> Option . where . Self: Sized, . F: FnMut(Self::Item) -> Option, . { . while let Some(x) = self.next() { 40,101 ( 0.00%) if let Some(y) = f(x) { 252,545 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:<&mut clippy_lints::doc::suspicious_doc_comments::collect_doc_replacements::{closure#0} as core::ops::function::FnMut<(&rustc_hir::hir::Attribute,)>>::call_mut (5,397x) . return Some(y); . } . } . None 5 ( 0.00%) } . . // We override the default implementation, which uses `try_fold`, . // because this simple implementation generates less LLVM IR and is . // faster to compile. Also, the `assume` avoids a bounds check. . #[inline] . fn position

(&mut self, mut predicate: P) -> Option where . Self: Sized, . P: FnMut(Self::Item) -> bool, . { . let n = len!(self); . let mut i = 0; . while let Some(x) = self.next() { 9,168 ( 0.00%) if predicate(x) { . // SAFETY: we are guaranteed to be in bounds by the loop invariant: . // when `i >= n`, `self.next()` returns `None` and the loop breaks. . unsafe { assert_unchecked(i < n) }; . return Some(i); . } 2,408 ( 0.00%) i += 1; . } . None . } . . // We override the default implementation, which uses `try_fold`, . // because this simple implementation generates less LLVM IR and is . // faster to compile. Also, the `assume` avoids a bounds check. . #[inline] -- line 393 ---------------------------------------- -- line 394 ---------------------------------------- . fn rposition

(&mut self, mut predicate: P) -> Option where . P: FnMut(Self::Item) -> bool, . Self: Sized + ExactSizeIterator + DoubleEndedIterator . { . let n = len!(self); . let mut i = n; . while let Some(x) = self.next_back() { . i -= 1; 5,335 ( 0.00%) if predicate(x) { . // SAFETY: `i` must be lower than `n` since it starts at `n` . // and is only decreasing. . unsafe { assert_unchecked(i < n) }; . return Some(i); . } . } . None . } -- line 410 ---------------------------------------- 3,071,612 ( 0.04%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/size_of_ref.rs -------------------------------------------------------------------------------- Ir -- line 51 ---------------------------------------- . pub SIZE_OF_REF, . suspicious, . "Argument to `size_of_val()` is a double-reference, which is almost certainly unintended" . } . . declare_lint_pass!(SizeOfRef => [SIZE_OF_REF]); . . impl LateLintPass<'_> for SizeOfRef { 177,600 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'_>, expr: &'_ Expr<'_>) { 105,547 ( 0.00%) if let ExprKind::Call(path, [arg]) = expr.kind 17,124 ( 0.00%) && path.basic_res().is_diag_item(cx, sym::mem_size_of_val) . && let arg_ty = cx.typeck_results().expr_ty(arg) . && peel_and_count_ty_refs(arg_ty).1 > 1 . { . span_lint_and_help( . cx, . SIZE_OF_REF, . expr.span, . "argument to `size_of_val()` is a reference to a reference", . None, . "dereference the argument to `size_of_val()` to get the size of the value instead of the size of the reference-type", . ); . } 222,000 ( 0.00%) } . } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/multi_assignments.rs -------------------------------------------------------------------------------- Ir -- line 27 ---------------------------------------- . pub MULTI_ASSIGNMENTS, . suspicious, . "instead of using `a = b = c;` use `a = c; b = c;`" . } . . declare_lint_pass!(MultiAssignments => [MULTI_ASSIGNMENTS]); . . fn strip_paren_blocks(expr: &Expr) -> &Expr { 756 ( 0.00%) match &expr.kind { . ExprKind::Paren(e) => strip_paren_blocks(e), . ExprKind::Block(b, _) => { . if let [ . Stmt { . kind: StmtKind::Expr(e), . .. . }, . ] = &b.stmts[..] -- line 43 ---------------------------------------- -- line 47 ---------------------------------------- . expr . } . }, . _ => expr, . } . } . . impl EarlyLintPass for MultiAssignments { 119,688 ( 0.00%) fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { 79,792 ( 0.00%) if let ExprKind::Assign(target, source, _) = &expr.kind { 162 ( 0.00%) if let ExprKind::Assign(_target, _source, _) = &strip_paren_blocks(target).kind { . span_lint(cx, MULTI_ASSIGNMENTS, expr.span, "assignments don't nest intuitively"); . } 162 ( 0.00%) if let ExprKind::Assign(_target, _source, _) = &strip_paren_blocks(source).kind { . span_lint(cx, MULTI_ASSIGNMENTS, expr.span, "assignments don't nest intuitively"); . } . } 159,584 ( 0.00%) } . } -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/const_ptr.rs -------------------------------------------------------------------------------- Ir -- line 30 ---------------------------------------- . match (ptr).guaranteed_eq(null_mut()) { . Some(res) => res, . // To remain maximally conservative, we stop execution when we don't . // know whether the pointer is null or not. . // We can *not* return `false` here, that would be unsound in `NonNull::new`! . None => panic!("null-ness of this pointer cannot be determined in const context"), . } . } else { 881,637 ( 0.01%) ptr.addr() == 0 . } . ) . } . . /// Casts to a pointer of another type. . #[stable(feature = "ptr_cast", since = "1.38.0")] . #[rustc_const_stable(feature = "const_ptr_cast", since = "1.38.0")] . #[rustc_diagnostic_item = "const_ptr_cast"] -- line 46 ---------------------------------------- -- line 262 ---------------------------------------- . /// [`as_uninit_ref`]: #method.as_uninit_ref . /// [`as_ref_unchecked`]: #method.as_ref_unchecked . #[stable(feature = "ptr_as_ref", since = "1.9.0")] . #[rustc_const_stable(feature = "const_ptr_is_null", since = "1.84.0")] . #[inline] . pub const unsafe fn as_ref<'a>(self) -> Option<&'a T> { . // SAFETY: the caller must guarantee that `self` is valid . // for a reference if it isn't null. 396,967 ( 0.01%) if self.is_null() { None } else { unsafe { Some(&*self) } } . } . . /// Returns a shared reference to the value behind the pointer. . /// If the pointer may be null or the value may be uninitialized, [`as_uninit_ref`] must be used instead. . /// If the pointer may be null, but the value is known to have been initialized, [`as_ref`] must be used instead. . /// . /// [`as_ref`]: #method.as_ref . /// [`as_uninit_ref`]: #method.as_uninit_ref -- line 278 ---------------------------------------- -- line 381 ---------------------------------------- . ( . this: *const () = self as *const (), . count: isize = count, . size: usize = size_of::(), . ) => runtime_offset_nowrap(this, count, size) . ); . . // SAFETY: the caller must uphold the safety contract for `offset`. 6,375 ( 0.00%) unsafe { intrinsics::offset(self, count) } . } . . /// Adds a signed offset in bytes to a pointer. . /// . /// `count` is in units of **bytes**. . /// . /// This is purely a convenience for casting to a `u8` pointer and . /// using [offset][pointer::offset] on it. See that method for documentation -- line 397 ---------------------------------------- -- line 465 ---------------------------------------- . #[must_use = "returns a new pointer rather than modifying its argument"] . #[rustc_const_stable(feature = "const_ptr_offset", since = "1.61.0")] . #[inline(always)] . pub const fn wrapping_offset(self, count: isize) -> *const T . where . T: Sized, . { . // SAFETY: the `arith_offset` intrinsic has no prerequisites to be called. 104 ( 0.00%) unsafe { intrinsics::arith_offset(self, count) } . } . . /// Adds a signed offset in bytes to a pointer using wrapping arithmetic. . /// . /// `count` is in units of **bytes**. . /// . /// This is purely a convenience for casting to a `u8` pointer and . /// using [wrapping_offset][pointer::wrapping_offset] on it. See that method -- line 481 ---------------------------------------- -- line 615 ---------------------------------------- . #[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces . pub const unsafe fn offset_from(self, origin: *const T) -> isize . where . T: Sized, . { . let pointee_size = size_of::(); . assert!(0 < pointee_size && pointee_size <= isize::MAX as usize); . // SAFETY: the caller must uphold the safety contract for `ptr_offset_from`. 9,312 ( 0.00%) unsafe { intrinsics::ptr_offset_from(self, origin) } . } . . /// Calculates the distance between two pointers within the same allocation. The returned value is in . /// units of **bytes**. . /// . /// This is purely a convenience for casting to a `u8` pointer and . /// using [`offset_from`][pointer::offset_from] on it. See that method for . /// documentation and safety requirements. -- line 631 ---------------------------------------- -- line 725 ---------------------------------------- . this: *const () = self as *const (), . origin: *const () = origin as *const (), . ) => runtime_ptr_ge(this, origin) . ); . . let pointee_size = size_of::(); . assert!(0 < pointee_size && pointee_size <= isize::MAX as usize); . // SAFETY: the caller must uphold the safety contract for `ptr_offset_from_unsigned`. 111,247 ( 0.00%) unsafe { intrinsics::ptr_offset_from_unsigned(self, origin) } . } . . /// Calculates the distance between two pointers within the same allocation, *where it's known that . /// `self` is equal to or greater than `origin`*. The returned value is in . /// units of **bytes**. . /// . /// This is purely a convenience for casting to a `u8` pointer and . /// using [`offset_from_unsigned`][pointer::offset_from_unsigned] on it. -- line 741 ---------------------------------------- -- line 863 ---------------------------------------- . ( . this: *const () = self as *const (), . count: usize = count, . size: usize = size_of::(), . ) => runtime_add_nowrap(this, count, size) . ); . . // SAFETY: the caller must uphold the safety contract for `offset`. 131,067 ( 0.00%) unsafe { intrinsics::offset(self, count) } . } . . /// Adds an unsigned offset in bytes to a pointer. . /// . /// `count` is in units of bytes. . /// . /// This is purely a convenience for casting to a `u8` pointer and . /// using [add][pointer::add] on it. See that method for documentation -- line 879 ---------------------------------------- -- line 1590 ---------------------------------------- . #[diagnostic::on_const( . message = "pointers cannot be reliably compared during const eval", . note = "see issue #53020 for more information" . )] . impl PartialEq for *const T { . #[inline] . #[allow(ambiguous_wide_pointer_comparisons)] . fn eq(&self, other: &*const T) -> bool { 65,089 ( 0.00%) *self == *other . } . } . . /// Pointer equality is an equivalence relation. . #[stable(feature = "rust1", since = "1.0.0")] . #[diagnostic::on_const( . message = "pointers cannot be reliably compared during const eval", . note = "see issue #53020 for more information" -- line 1606 ---------------------------------------- 25,173 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/bit_width.rs -------------------------------------------------------------------------------- Ir -- line 93 ---------------------------------------- . . impl ManualBitWidth { . pub fn new(conf: &Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl LateLintPass<'_> for ManualBitWidth { 444,000 ( 0.01%) fn check_expr<'tcx>(&mut self, cx: &LateContext<'tcx>, expr: &Expr<'tcx>) { 133,200 ( 0.00%) if expr.span.in_external_macro(cx.sess().source_map()) { . return; . } . 86,830 ( 0.00%) match expr.kind { . // `T::BITS - n.leading_zeros()` . ExprKind::Binary(op, left, right) . if op.node == BinOpKind::Sub 3 ( 0.00%) && let ExprKind::MethodCall(leading_zeros, recv, [], _) = right.kind . && leading_zeros.ident.name == sym::leading_zeros . && let ExprKind::Path(QPath::TypeRelative(hir_ty, segment)) = left.kind . && segment.ident.name == sym::BITS . && let right_ty = cx.typeck_results().expr_ty(recv) . && let Some(right_int_kind) = get_int_kind(cx, right_ty) . && let left_ty = cx.typeck_results().node_type(hir_ty.hir_id) . && let Some(left_int_kind) = get_int_kind(cx, left_ty) . && self.msrv.meets(cx, msrvs::BIT_WIDTH) -- line 118 ---------------------------------------- -- line 124 ---------------------------------------- . emit_manual_bit_width(cx, recv, expr, right_int_kind); . } else { . // mismatched calling types . emit_type_mismatch(cx, recv, expr, right_int_kind); . } . }, . _ => {}, . } 355,200 ( 0.00%) } . } . . fn get_int_kind<'a>(cx: &LateContext<'a>, ty: Ty<'a>) -> Option> { . match ty.kind() { . // int::BITS or uint::BITS . ty::Int(int_ty) => Some(IntKind::Int(*int_ty)), . ty::Uint(uint_ty) => Some(IntKind::Uint(*uint_ty)), . // NonZero::::BITS -- line 140 ---------------------------------------- -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_ast/src/ast.rs -------------------------------------------------------------------------------- Ir -- line 86 ---------------------------------------- . } . . /// A "Path" is essentially Rust's notion of a name. . /// . /// It's represented as a sequence of identifiers, . /// along with a bunch of supporting information. . /// . /// E.g., `std::cmp::PartialEq`. 6 ( 0.00%) #[derive(Clone, Encodable, Decodable, Debug, Walkable)] . pub struct Path { . pub span: Span, . /// The segments in the path: the things separated by `::`. . /// Global paths begin with `kw::PathRoot`. . pub segments: ThinVec, . } . . // Succeeds if the path has a single segment that is arg-free and matches the given symbol. . impl PartialEq for Path { . #[inline] . fn eq(&self, name: &Symbol) -> bool { 8 ( 0.00%) if let [segment] = self.segments.as_ref() . && segment == name . { . true . } else { . false . } . } . } -- line 114 ---------------------------------------- -- line 223 ---------------------------------------- . /// `Box` is used as a size optimization for the common case with no parameters. . pub args: Option>, . } . . // Succeeds if the path segment is arg-free and matches the given symbol. . impl PartialEq for PathSegment { . #[inline] . fn eq(&self, name: &Symbol) -> bool { 2 ( 0.00%) self.args.is_none() && self.ident.name == *name . } . } . . impl PathSegment { . pub fn from_ident(ident: Ident) -> Self { . PathSegment { ident, id: DUMMY_NODE_ID, args: None } . } . -- line 239 ---------------------------------------- -- line 247 ---------------------------------------- . None => self.ident.span, . } . } . } . . /// The generic arguments and associated item constraints of a path segment. . /// . /// E.g., `` as in `Foo` or `(A, B)` as in `Foo(A, B)`. 1,633 ( 0.00%) #[derive(Clone, Encodable, Decodable, Debug, Walkable)] . pub enum GenericArgs { . /// The `<'a, A, B, C>` in `foo::bar::baz::<'a, A, B, C>`. . AngleBracketed(AngleBracketedArgs), . /// The `(A, B)` and `C` in `Foo(A, B) -> C`. . Parenthesized(ParenthesizedArgs), . /// `(..)` in return type notation. . ParenthesizedElided(Span), . } -- line 263 ---------------------------------------- -- line 272 ---------------------------------------- . AngleBracketed(data) => data.span, . Parenthesized(data) => data.span, . ParenthesizedElided(span) => *span, . } . } . } . . /// Concrete argument in the sequence of generic args. 360 ( 0.00%) #[derive(Clone, Encodable, Decodable, Debug, Walkable)] . pub enum GenericArg { . /// `'a` in `Foo<'a>`. . Lifetime(#[visitable(extra = LifetimeCtxt::GenericArg)] Lifetime), . /// `Bar` in `Foo`. . Type(Box), . /// `1` in `Foo<1>`. . Const(AnonConst), . } -- line 288 ---------------------------------------- -- line 302 ---------------------------------------- . pub struct AngleBracketedArgs { . /// The overall span. . pub span: Span, . /// The comma separated parts in the `<...>`. . pub args: ThinVec, . } . . /// Either an argument for a generic parameter or a constraint on an associated item. 432 ( 0.00%) #[derive(Clone, Encodable, Decodable, Debug, Walkable)] 5,102 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_ast/src/ast.rs:>::walk_ref (72x) . pub enum AngleBracketedArg { . /// A generic argument for a generic parameter. . Arg(GenericArg), . /// A constraint on an associated item. . Constraint(AssocItemConstraint), . } . . impl AngleBracketedArg { -- line 318 ---------------------------------------- -- line 393 ---------------------------------------- . Trait(PolyTraitRef), . Outlives(#[visitable(extra = LifetimeCtxt::Bound)] Lifetime), . /// Precise capturing syntax: `impl Sized + use<'a>` . Use(ThinVec, Span), . } . . impl GenericBound { . pub fn span(&self) -> Span { 12 ( 0.00%) match self { . GenericBound::Trait(t, ..) => t.span, . GenericBound::Outlives(l) => l.ident.span, . GenericBound::Use(_, span) => *span, . } . } . } . . pub type GenericBounds = ThinVec; -- line 409 ---------------------------------------- -- line 616 ---------------------------------------- . /// Distinguishes between `unsafe { ... }` and `{ ... }`. . pub rules: BlockCheckMode, . pub span: Span, . } . . /// A match pattern. . /// . /// Patterns appear in match statements and some other contexts, such as `let` and `if let`. 72,511 ( 0.00%) #[derive(Clone, Encodable, Decodable, Debug, Walkable)] . pub struct Pat { . pub id: NodeId, . pub kind: PatKind, . pub span: Span, . } . . impl Pat { . /// Attempt reparsing the pattern as a type. -- line 632 ---------------------------------------- -- line 712 ---------------------------------------- . while let PatKind::Ref(inner, _, _) = ¤t.kind { . current = inner; . } . current . } . . /// Is this a `..` pattern? . pub fn is_rest(&self) -> bool { 3,806 ( 0.00%) matches!(self.kind, PatKind::Rest) . } . . /// Whether this could be a never pattern, taking into account that a macro invocation can . /// return a never pattern. Used to inform errors during parsing. . pub fn could_be_never_pattern(&self) -> bool { . let mut could_be_never_pattern = false; . self.walk(&mut |pat| match &pat.kind { . PatKind::Never | PatKind::MacCall(_) => { -- line 728 ---------------------------------------- -- line 784 ---------------------------------------- . pub pat: Box, . pub is_shorthand: bool, . pub attrs: AttrVec, . pub id: NodeId, . pub span: Span, . pub is_placeholder: bool, . } . 282 ( 0.00%) #[derive(Clone, Copy, Debug, Eq, PartialEq)] . #[derive(Encodable, Decodable, StableHash, Walkable)] . pub enum ByRef { . Yes(Pinnedness, Mutability), . No, . } . . impl ByRef { . #[must_use] -- line 800 ---------------------------------------- -- line 807 ---------------------------------------- . } . . /// The mode of a binding (`mut`, `ref mut`, etc). . /// . /// Used for both the explicit binding annotations given in the HIR for a binding . /// and the final binding mode that we infer after type inference/match ergonomics. . /// `.0` is the by-reference mode (`ref`, `ref mut`, or by value), . /// `.1` is the mutability of the binding. 2 ( 0.00%) #[derive(Clone, Copy, Debug, Eq, PartialEq)] . #[derive(Encodable, Decodable, StableHash, Walkable)] . pub struct BindingMode(pub ByRef, pub Mutability); . . impl BindingMode { . pub const NONE: Self = Self(ByRef::No, Mutability::Not); . pub const REF: Self = Self(ByRef::Yes(Pinnedness::Not, Mutability::Not), Mutability::Not); . pub const REF_PIN: Self = . Self(ByRef::Yes(Pinnedness::Pinned, Mutability::Not), Mutability::Not); -- line 823 ---------------------------------------- -- line 863 ---------------------------------------- . DotDotDot, . /// `..=` . DotDotEq, . } . . /// All the different flavors of pattern that Rust recognizes. . // . // Adding a new variant? Please update `test_pat` in `tests/ui/macros/stringify.rs`. 35,186 ( 0.00%) #[derive(Clone, Encodable, Decodable, Debug, Walkable)] 1,736 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_ast/src/visit.rs:>::walk_ref (56x) . pub enum PatKind { . /// A missing pattern, e.g. for an anonymous param in a bare fn like `fn f(u32)`. . Missing, . . /// Represents a wildcard pattern (`_`). . Wild, . . /// A `PatKind::Ident` may either be a new bound variable (`ref mut binding @ OPT_SUBPATTERN`), -- line 879 ---------------------------------------- -- line 957 ---------------------------------------- . /// `module::StructName { field, syntax error }` . Recovered(ErrorGuaranteed), . /// `module::StructName { field }` . None, . } . . /// The kind of borrow in an `AddrOf` expression, . /// e.g., `&place` or `&raw const place`. 4 ( 0.00%) #[derive(Clone, Copy, PartialEq, Eq, Debug)] . #[derive(Encodable, Decodable, StableHash, Walkable)] . pub enum BorrowKind { . /// A normal borrow, `&$expr` or `&mut $expr`. . /// The resulting type is either `&'a T` or `&'a mut T` . /// where `T = typeof($expr)` and `'a` is some lifetime. . Ref, . /// A raw borrow, `&raw const $expr` or `&raw mut $expr`. . /// The resulting type is either `*const T` or `*mut T` -- line 973 ---------------------------------------- -- line 974 ---------------------------------------- . /// where `T = typeof($expr)`. . Raw, . /// A pinned borrow, `&pin const $expr` or `&pin mut $expr`. . /// The resulting type is either `Pin<&'a T>` or `Pin<&'a mut T>` . /// where `T = typeof($expr)` and `'a` is some lifetime. . Pin, . } . 5,577 ( 0.00%) #[derive(Clone, Copy, Debug, PartialEq, Encodable, Decodable, StableHash, Walkable)] . pub enum BinOpKind { . /// The `+` operator (addition) . Add, . /// The `-` operator (subtraction) . Sub, . /// The `*` operator (multiplication) . Mul, . /// The `/` operator (division) -- line 990 ---------------------------------------- -- line 1017 ---------------------------------------- . Ge, . /// The `>` operator (greater than) . Gt, . } . . impl BinOpKind { . pub fn as_str(&self) -> &'static str { . use BinOpKind::*; 20 ( 0.00%) match self { . Add => "+", . Sub => "-", . Mul => "*", . Div => "/", . Rem => "%", . And => "&&", . Or => "||", . BitXor => "^", -- line 1033 ---------------------------------------- -- line 1070 ---------------------------------------- . Add | Sub | Mul | Div | Rem | And | Or | BitXor | BitAnd | BitOr | Shl | Shr => { . Fixity::Left . } . } . } . . pub fn is_comparison(self) -> bool { . use BinOpKind::*; 1,754 ( 0.00%) match self { . Eq | Ne | Lt | Le | Gt | Ge => true, . Add | Sub | Mul | Div | Rem | And | Or | BitXor | BitAnd | BitOr | Shl | Shr => false, . } . } . . /// Returns `true` if the binary operator takes its arguments by value. . pub fn is_by_value(self) -> bool { . !self.is_comparison() -- line 1086 ---------------------------------------- -- line 1089 ---------------------------------------- . . pub type BinOp = Spanned; . . // Sometimes `BinOpKind` and `AssignOpKind` need the same treatment. The . // operations covered by `AssignOpKind` are a subset of those covered by . // `BinOpKind`, so it makes sense to convert `AssignOpKind` to `BinOpKind`. . impl From for BinOpKind { . fn from(op: AssignOpKind) -> BinOpKind { 14 ( 0.00%) match op { . AssignOpKind::AddAssign => BinOpKind::Add, . AssignOpKind::SubAssign => BinOpKind::Sub, . AssignOpKind::MulAssign => BinOpKind::Mul, . AssignOpKind::DivAssign => BinOpKind::Div, . AssignOpKind::RemAssign => BinOpKind::Rem, . AssignOpKind::BitXorAssign => BinOpKind::BitXor, . AssignOpKind::BitAndAssign => BinOpKind::BitAnd, . AssignOpKind::BitOrAssign => BinOpKind::BitOr, . AssignOpKind::ShlAssign => BinOpKind::Shl, . AssignOpKind::ShrAssign => BinOpKind::Shr, . } . } . } . 1 ( 0.00%) #[derive(Clone, Copy, Debug, PartialEq, Encodable, Decodable, StableHash, Walkable)] . pub enum AssignOpKind { . /// The `+=` operator (addition) . AddAssign, . /// The `-=` operator (subtraction) . SubAssign, . /// The `*=` operator (multiplication) . MulAssign, . /// The `/=` operator (division) -- line 1120 ---------------------------------------- -- line 1156 ---------------------------------------- . } . } . . pub type AssignOp = Spanned; . . /// Unary operator. . /// . /// Note that `&data` is not an operator, it's an `AddrOf` expression. 145 ( 0.00%) #[derive(Clone, Copy, Debug, PartialEq, Encodable, Decodable, StableHash, Walkable)] . pub enum UnOp { . /// The `*` operator for dereferencing . Deref, . /// The `!` operator for logical inversion . Not, . /// The `-` operator for negation . Neg, . } -- line 1172 ---------------------------------------- -- line 1318 ---------------------------------------- . pub fn init(&self) -> Option<&Expr> { . match self { . Self::Decl => None, . Self::Init(i) | Self::InitElse(i, _) => Some(i), . } . } . . pub fn init_else_opt(&self) -> Option<(&Expr, Option<&Block>)> { 3,395 ( 0.00%) match self { . Self::Decl => None, 679 ( 0.00%) Self::Init(init) => Some((init, None)), . Self::InitElse(init, els) => Some((init, Some(els))), . } . } . } . . /// An arm of a 'match'. . /// . /// E.g., `0..=10 => { println!("match!") }` as in -- line 1336 ---------------------------------------- -- line 1388 ---------------------------------------- . /// explicit discriminant values for enum variants. . #[derive(Clone, Encodable, Decodable, Debug, Walkable)] . pub struct AnonConst { . pub id: NodeId, . pub value: Box, . } . . /// An expression. 1,825 ( 0.00%) #[derive(Clone, Encodable, Decodable, Debug)] . pub struct Expr { 73 ( 0.00%) pub id: NodeId, . pub kind: ExprKind, . pub span: Span, . pub attrs: AttrVec, . pub tokens: Option, . } . . impl Expr { . /// Check if this expression is potentially a trivial const arg, i.e., one that can _potentially_ -- line 1406 ---------------------------------------- -- line 1474 ---------------------------------------- . Parens::No, . ))), . _ => None, . } . } . . pub fn peel_parens(&self) -> &Expr { . let mut expr = self; 18 ( 0.00%) while let ExprKind::Paren(inner) = &expr.kind { . expr = inner; . } . expr . } . . pub fn peel_parens_and_refs(&self) -> &Expr { . let mut expr = self; . while let ExprKind::Paren(inner) | ExprKind::AddrOf(BorrowKind::Ref, _, inner) = &expr.kind -- line 1490 ---------------------------------------- -- line 1712 ---------------------------------------- . pub receiver: Box, . /// The arguments, e.g. `a, b, c`. . pub args: ThinVec>, . /// The span of the function, without the dot and receiver e.g. `foo::(a, b, c)`. . pub span: Span, . } . 208 ( 0.00%) #[derive(Clone, Encodable, Decodable, Debug, Walkable)] . pub enum StructRest { . /// `..x`. . Base(Box), . /// `..`. . Rest(Span), . /// No trailing `..` or expression. . None, . /// No trailing `..` or expression, and also, a parse error occurred inside the struct braces. . /// . /// This struct should be treated similarly to as if it had an `..` in it, . /// in particular rather than reporting missing fields, because the parse error . /// makes which fields the struct was intended to have not fully known. . NoneWithError(ErrorGuaranteed), . } . 4 ( 0.00%) #[derive(Clone, Encodable, Decodable, Debug, Walkable)] . pub struct StructExpr { . pub qself: Option>, 2 ( 0.00%) pub path: Path, 2 ( 0.00%) pub fields: ThinVec, . pub rest: StructRest, . } . . // Adding a new variant? Please update `test_expr` in `tests/ui/macros/stringify.rs`. 674 ( 0.00%) #[derive(Clone, Encodable, Decodable, Debug)] . pub enum ExprKind { . /// An array (e.g, `[a, b, c, d]`). . Array(ThinVec>), . /// Allow anonymous constants from an inline `const` block. . ConstBlock(AnonConst), . /// A function call. . /// . /// The first field resolves to the function itself, . /// and the second field is the list of arguments. . /// This also represents calling the constructor of . /// tuple-like ADTs such as tuple structs and enum variants. 5 ( 0.00%) Call(Box, ThinVec>), 209 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/boxed.rs: as core::clone::Clone>::clone (1x) . /// A method call (e.g., `x.foo::(a, b, c)`). . MethodCall(Box), . /// A tuple (e.g., `(a, b, c, d)`). . Tup(ThinVec>), . /// A binary operation (e.g., `a + b`, `a * b`). . Binary(BinOp, Box, Box), . /// A unary operation (e.g., `!x`, `*x`). . Unary(UnOp, Box), -- line 1765 ---------------------------------------- -- line 1829 ---------------------------------------- . /// An assignment (`a = foo()`). . /// The `Span` argument is the span of the `=` token. . Assign(Box, Box, Span), . /// An assignment with an operator. . /// . /// E.g., `a += 1`. . AssignOp(AssignOp, Box, Box), . /// Access of a named (e.g., `obj.foo`) or unnamed (e.g., `obj.0`) struct field. 40 ( 0.00%) Field(Box, Ident), 3,562 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/boxed.rs: as core::clone::Clone>::clone (17x) . /// An indexing operation (e.g., `foo[2]`). . /// The span represents the span of the `[2]`, including brackets. 21 ( 0.00%) Index(Box, Box, Span), 1,278 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/boxed.rs: as core::clone::Clone>::clone (6x) . /// A range (e.g., `1..2`, `1..`, `..2`, `1..=2`, `..=2`; and `..` in destructuring assignment). . Range(Option>, Option>, RangeLimits), . /// An underscore, used in destructuring assignment to ignore a value. . Underscore, . . /// Variable reference, possibly containing `::` and/or type . /// parameters (e.g., `foo::bar::`). . /// . /// Optionally "qualified" (e.g., ` as SomeTrait>::SomeType`). 44 ( 0.00%) Path(Option>, Path), . . /// A referencing operation (`&a`, `&mut a`, `&raw const a` or `&raw mut a`). . AddrOf(BorrowKind, Mutability, Box), . /// A `break`, with an optional label to break, and an optional expression. . Break(Option { . #[cfg(not(no_global_oom_handling))] . #[inline] . fn with_capacity_in(capacity: usize, alloc: A, elem_layout: Layout) -> Self { 56 ( 0.00%) match Self::try_allocate_in(capacity, AllocInit::Uninitialized, alloc, elem_layout) { 616 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/raw_vec/mod.rs:::try_allocate_in (8x) 8 ( 0.00%) Ok(this) => { . unsafe { . // Make it more obvious that a subsequent Vec::reserve(capacity) will not allocate. . hint::assert_unchecked(!this.needs_to_grow(0, capacity, elem_layout)); . } . this . } . Err(err) => handle_error(err), . } . } . 72 ( 0.00%) fn try_allocate_in( . capacity: usize, . init: AllocInit, . alloc: A, . elem_layout: Layout, . ) -> Result { . // We avoid `unwrap_or_else` here because it bloats the amount of . // LLVM IR generated. . let layout = match layout_array(capacity, elem_layout) { . Ok(layout) => layout, . Err(_) => return Err(CapacityOverflow.into()), . }; . . // Don't allocate here because `Drop` will not deallocate when `capacity` is 0. 33,087 ( 0.00%) if layout.size() == 0 { . return Ok(Self::new_in(alloc, elem_layout.alignment())); . } . 16 ( 0.00%) let result = match init { . AllocInit::Uninitialized => alloc.allocate(layout), . #[cfg(not(no_global_oom_handling))] . AllocInit::Zeroed => alloc.allocate_zeroed(layout), . }; 25,843 ( 0.00%) let ptr = match result { . Ok(ptr) => ptr, . Err(_) => return Err(AllocError { layout, non_exhaustive: () }.into()), . }; . . // Allocators currently return a `NonNull<[u8]>` whose length . // matches the size requested. If that ever changes, the capacity . // here should change to `ptr.len() / size_of::()`. 24 ( 0.00%) Ok(Self { . ptr: Unique::from(ptr.cast()), . cap: unsafe { Cap::new_unchecked(capacity) }, . alloc, . }) 56 ( 0.00%) } . . /// # Safety . /// - `elem_layout` must be valid for `self`, i.e. it must be the same `elem_layout` used to . /// initially construct `self` . /// - `elem_layout`'s size must be a multiple of its alignment . #[cfg(not(no_global_oom_handling))] . #[inline] . unsafe fn grow_one(&mut self, elem_layout: Layout) { . // SAFETY: Precondition passed to caller 4,028 ( 0.00%) if let Err(err) = unsafe { self.grow_amortized(self.cap.as_inner(), 1, elem_layout) } { . handle_error(err); . } . } . . /// # Safety . /// - `elem_layout` must be valid for `self`, i.e. it must be the same `elem_layout` used to . /// initially construct `self` . /// - `elem_layout`'s size must be a multiple of its alignment -- line 501 ---------------------------------------- -- line 504 ---------------------------------------- . &mut self, . len: usize, . additional: usize, . elem_layout: Layout, . ) -> Result<(), TryReserveError> { . // This is ensured by the calling contexts. . debug_assert!(additional > 0); . 12,954 ( 0.00%) if elem_layout.size() == 0 { . // Since we return a capacity of `usize::MAX` when `elem_size` is . // 0, getting to here necessarily means the `RawVec` is overfull. . return Err(CapacityOverflow.into()); . } . . // Nothing we can really do about these checks, sadly. . let required_cap = len.checked_add(additional).ok_or(CapacityOverflow)?; . . // This guarantees exponential growth. The doubling cannot overflow . // because `cap <= isize::MAX` and the type of `cap` is `usize`. 16,984 ( 0.00%) let cap = cmp::max(self.cap.as_inner() * 2, required_cap); . let cap = cmp::max(min_non_zero_cap(elem_layout.size()), cap); . . // SAFETY: . // - cap >= len + additional . // - other preconditions passed to caller 43,603 ( 0.00%) let ptr = unsafe { self.finish_grow(cap, elem_layout)? }; 6,477 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/raw_vec/mod.rs:::finish_grow (21x) . . // SAFETY: `finish_grow` would have failed if `cap > isize::MAX` . unsafe { self.set_ptr_and_cap(ptr, cap) }; . Ok(()) . } . . /// # Safety . /// - `elem_layout` must be valid for `self`, i.e. it must be the same `elem_layout` used to . /// initially construct `self` . /// - `elem_layout`'s size must be a multiple of its alignment . /// - `cap` must be greater than the current capacity . // not marked inline(never) since we want optimizers to be able to observe the specifics of this . // function, see tests/codegen-llvm/vec-reserve-extend.rs. . #[cold] 100,396 ( 0.00%) unsafe fn finish_grow( . &self, . cap: usize, . elem_layout: Layout, . ) -> Result, TryReserveError> { . let new_layout = layout_array(cap, elem_layout)?; . . let memory = if let Some((ptr, old_layout)) = unsafe { self.current_memory(elem_layout) } { . // FIXME(const-hack): switch to `debug_assert_eq` -- line 552 ---------------------------------------- -- line 556 ---------------------------------------- . hint::assert_unchecked(old_layout.align() == new_layout.align()); . self.alloc.grow(ptr, old_layout, new_layout) . } . } else { . self.alloc.allocate(new_layout) . }; . . memory.map_err(const |_| AllocError { layout: new_layout, non_exhaustive: () }.into()) 75,298 ( 0.00%) } . } . . impl RawVecInner { . #[inline] . const fn new_in(alloc: A, align: Alignment) -> Self { . let ptr = Unique::from_non_null(NonNull::without_provenance(align.as_nonzero_usize())); . // `cap: 0` means "unallocated". zero-sized types are ignored. . Self { ptr, cap: ZERO_CAP, alloc } -- line 572 ---------------------------------------- -- line 603 ---------------------------------------- . . #[inline] . const fn ptr(&self) -> *mut T { . self.non_null::().as_ptr() . } . . #[inline] . const fn non_null(&self) -> NonNull { 315,229 ( 0.00%) self.ptr.cast().as_non_null_ptr() . } . . #[inline] . const fn capacity(&self, elem_size: usize) -> usize { 8,844 ( 0.00%) if elem_size == 0 { usize::MAX } else { self.cap.as_inner() } . } . . #[inline] . const fn allocator(&self) -> &A { . &self.alloc . } . . /// # Safety . /// - `elem_layout` must be valid for `self`, i.e. it must be the same `elem_layout` used to . /// initially construct `self` . /// - `elem_layout`'s size must be a multiple of its alignment . #[inline] . #[rustc_const_unstable(feature = "const_heap", issue = "79597")] . const unsafe fn current_memory(&self, elem_layout: Layout) -> Option<(NonNull, Layout)> { 318,672 ( 0.00%) if elem_layout.size() == 0 || self.cap.as_inner() == 0 { . None . } else { . // We could use Layout::array here which ensures the absence of isize and usize overflows . // and could hypothetically handle differences between stride and size, but this memory . // has already been allocated so we know it can't overflow and currently Rust does not . // support such types. So we can do better by skipping some checks and avoid an unwrap. . unsafe { . let alloc_size = elem_layout.size().unchecked_mul(self.cap.as_inner()); -- line 639 ---------------------------------------- -- line 650 ---------------------------------------- . #[cfg(not(no_global_oom_handling))] . #[inline] . unsafe fn reserve(&mut self, len: usize, additional: usize, elem_layout: Layout) { . // Callers expect this function to be very cheap when there is already sufficient capacity. . // Therefore, we move all the resizing and error-handling logic from grow_amortized and . // handle_reserve behind a call, while making sure that this function is likely to be . // inlined as just a comparison and a call if the comparison fails. . #[cold] 25,911 ( 0.00%) unsafe fn do_reserve_and_handle( . slf: &mut RawVecInner, . len: usize, . additional: usize, . elem_layout: Layout, . ) { . // SAFETY: Precondition passed to caller . if let Err(err) = unsafe { slf.grow_amortized(len, additional, elem_layout) } { . handle_error(err); . } 25,912 ( 0.00%) } . 14,841 ( 0.00%) if self.needs_to_grow(len, additional, elem_layout) { . unsafe { 50,243 ( 0.00%) do_reserve_and_handle(self, len, additional, elem_layout); 4,928 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/raw_vec/mod.rs:>::reserve::do_reserve_and_handle:: (44x) . } . } . } . . /// # Safety . /// - `elem_layout` must be valid for `self`, i.e. it must be the same `elem_layout` used to . /// initially construct `self` . /// - `elem_layout`'s size must be a multiple of its alignment -- line 680 ---------------------------------------- -- line 708 ---------------------------------------- . handle_error(err); . } . } . . /// # Safety . /// - `elem_layout` must be valid for `self`, i.e. it must be the same `elem_layout` used to . /// initially construct `self` . /// - `elem_layout`'s size must be a multiple of its alignment 45 ( 0.00%) unsafe fn try_reserve_exact( . &mut self, . len: usize, . additional: usize, . elem_layout: Layout, . ) -> Result<(), TryReserveError> { 15 ( 0.00%) if self.needs_to_grow(len, additional, elem_layout) { . // SAFETY: Precondition passed to caller . unsafe { . self.grow_exact(len, additional, elem_layout)?; . } . } . unsafe { . // Inform the optimizer that the reservation has succeeded or wasn't needed . hint::assert_unchecked(!self.needs_to_grow(len, additional, elem_layout)); . } . Ok(()) 15 ( 0.00%) } . . /// # Safety . /// - `elem_layout` must be valid for `self`, i.e. it must be the same `elem_layout` used to . /// initially construct `self` . /// - `elem_layout`'s size must be a multiple of its alignment . /// - `cap` must be less than or equal to `self.capacity(elem_layout.size())` . #[cfg(not(no_global_oom_handling))] . #[inline] -- line 741 ---------------------------------------- -- line 756 ---------------------------------------- . cap: usize, . elem_layout: Layout, . ) -> Result<(), TryReserveError> { . unsafe { self.shrink(cap, elem_layout) } . } . . #[inline] . const fn needs_to_grow(&self, len: usize, additional: usize, elem_layout: Layout) -> bool { 15,524 ( 0.00%) additional > self.capacity(elem_layout.size()).wrapping_sub(len) . } . . #[inline] . #[rustc_const_unstable(feature = "const_heap", issue = "79597")] . const unsafe fn set_ptr_and_cap(&mut self, ptr: NonNull<[u8]>, cap: usize) { . // Allocators currently return a `NonNull<[u8]>` whose length matches . // the size requested. If that ever changes, the capacity here should . // change to `ptr.len() / size_of::()`. 10,523 ( 0.00%) self.ptr = Unique::from(ptr.cast()); 10,521 ( 0.00%) self.cap = unsafe { Cap::new_unchecked(cap) }; . } . . /// # Safety . /// - `elem_layout` must be valid for `self`, i.e. it must be the same `elem_layout` used to . /// initially construct `self` . /// - `elem_layout`'s size must be a multiple of its alignment . /// - The sum of `len` and `additional` must be greater than the current capacity . unsafe fn grow_exact( . &mut self, . len: usize, . additional: usize, . elem_layout: Layout, . ) -> Result<(), TryReserveError> { 15 ( 0.00%) if elem_layout.size() == 0 { . // Since we return a capacity of `usize::MAX` when the type size is . // 0, getting to here necessarily means the `RawVec` is overfull. . return Err(CapacityOverflow.into()); . } . . let cap = len.checked_add(additional).ok_or(CapacityOverflow)?; . . // SAFETY: preconditions passed to caller 12,260 ( 0.00%) let ptr = unsafe { self.finish_grow(cap, elem_layout)? }; 1,140 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/raw_vec/mod.rs:::finish_grow (15x) . . // SAFETY: `finish_grow` would have failed if `cap > isize::MAX` . unsafe { self.set_ptr_and_cap(ptr, cap) }; . Ok(()) . } . . /// # Safety . /// - `elem_layout` must be valid for `self`, i.e. it must be the same `elem_layout` used to -- line 805 ---------------------------------------- -- line 824 ---------------------------------------- . /// # Safety . /// `cap <= self.capacity()` . unsafe fn shrink_unchecked( . &mut self, . cap: usize, . elem_layout: Layout, . ) -> Result<(), TryReserveError> { . // SAFETY: Precondition passed to caller 1,759 ( 0.00%) let Some((ptr, layout)) = (unsafe { self.current_memory(elem_layout) }) else { . return Ok(()); . }; . . // If shrinking to 0, deallocate the buffer. We don't reach this point . // for the T::IS_ZST case since current_memory() will have returned . // None. 3,518 ( 0.00%) if cap == 0 { . unsafe { self.alloc.deallocate(ptr, layout) }; . self.ptr = . unsafe { Unique::new_unchecked(ptr::without_provenance_mut(elem_layout.align())) }; . self.cap = ZERO_CAP; . } else { . let ptr = unsafe { . // Layout cannot overflow here because it would have . // overflowed earlier when capacity was larger. -- line 847 ---------------------------------------- 922,974 ( 0.01%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/main_recursion.rs -------------------------------------------------------------------------------- Ir -- line 29 ---------------------------------------- . . #[derive(Default)] . pub struct MainRecursion { . has_no_std_attr: bool, . } . . impl LateLintPass<'_> for MainRecursion { . fn check_crate(&mut self, cx: &LateContext<'_>) { 3 ( 0.00%) self.has_no_std_attr = is_no_std_crate(cx); 652 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_no_std_crate (1x) . } . 177,600 ( 0.00%) fn check_expr_post(&mut self, cx: &LateContext<'_>, expr: &Expr<'_>) { 189,776 ( 0.00%) if self.has_no_std_attr { . return; . } . . if let ExprKind::Call(func, []) = &expr.kind 1,235 ( 0.00%) && let ExprKind::Path(QPath::Resolved(_, path)) = &func.kind 2 ( 0.00%) && let Some(def_id) = path.res.opt_def_id() 10 ( 0.00%) && is_entrypoint_fn(cx, def_id) 70 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_entrypoint_fn (2x) . { . span_lint_and_help( . cx, . MAIN_RECURSION, . func.span, . format!("recursing into entrypoint `{}`", snippet(cx, func.span, "main")), . None, . "consider using another function for this recursion", . ); . } 222,000 ( 0.00%) } . } 2 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/hygiene.rs -------------------------------------------------------------------------------- Ir -- line 45 ---------------------------------------- . use crate::edition::Edition; . use crate::source_map::SourceMap; . use crate::symbol::{Symbol, kw, sym}; . use crate::{DUMMY_SP, Span, SpanDecoder, SpanEncoder, with_session_globals}; . . /// A `SyntaxContext` represents a chain of pairs `(ExpnId, Transparency)` named "marks". . /// . /// See for more explanation. 218,628 ( 0.00%) #[derive(Clone, Copy, PartialEq, Eq, Hash)] . pub struct SyntaxContext(u32); . . // To ensure correctness of incremental compilation, . // `SyntaxContext` must not implement `Ord` or `PartialOrd`. . // See https://github.com/rust-lang/rust/issues/90317. . impl !Ord for SyntaxContext {} . impl !PartialOrd for SyntaxContext {} . -- line 61 ---------------------------------------- -- line 98 ---------------------------------------- . . rustc_index::newtype_index! { . /// A unique ID associated with a macro invocation and expansion. . #[orderable] . pub struct ExpnIndex {} . } . . /// A unique ID associated with a macro invocation and expansion. 353,999 ( 0.00%) #[derive(Clone, Copy, PartialEq, Eq, Hash)] . pub struct ExpnId { . pub krate: CrateNum, . pub local_id: ExpnIndex, . } . . impl fmt::Debug for ExpnId { . fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { . // Generate crate_::{{expn_}}. -- line 114 ---------------------------------------- -- line 286 ---------------------------------------- . #[inline] . #[track_caller] . pub fn expect_local(self) -> LocalExpnId { . self.as_local().unwrap() . } . . #[inline] . pub fn expn_data(self) -> ExpnData { 156,226 ( 0.00%) HygieneData::with(|data| data.expn_data(self).clone()) 2,343,390 ( 0.03%) => ???:::expn_data (156,226x) . } . . #[inline] . pub fn is_descendant_of(self, ancestor: ExpnId) -> bool { . // a few "fast path" cases to avoid locking HygieneData 35,504 ( 0.00%) if ancestor == ExpnId::root() || ancestor == self { . return true; . } . if ancestor.krate != self.krate { . return false; . } 2,544 ( 0.00%) HygieneData::with(|data| data.is_descendant_of(self, ancestor)) 125,412 ( 0.00%) => ???:::is_descendant_of (2,544x) . } . . /// `expn_id.outer_expn_is_descendant_of(ctxt)` is equivalent to but faster than . /// `expn_id.is_descendant_of(ctxt.outer_expn())`. . #[inline] . pub fn outer_expn_is_descendant_of(self, ctxt: SyntaxContext) -> bool { . // fast path to avoid locking: everything is a descendant of the root context's . // outer expansion -- line 314 ---------------------------------------- -- line 385 ---------------------------------------- . syntax_context_data: vec![root_ctxt_data], . syntax_context_map: iter::once((root_ctxt_data.key(), SyntaxContext(0))).collect(), . expn_data_disambiguators: UnhashMap::default(), . } . } . . #[inline] . fn with(f: impl FnOnce(&mut HygieneData) -> R) -> R { 525,754 ( 0.01%) with_session_globals(|session_globals| f(&mut session_globals.hygiene_data.borrow_mut())) . } . . #[inline] . fn expn_hash(&self, expn_id: ExpnId) -> ExpnHash { . match expn_id.as_local() { . Some(expn_id) => self.local_expn_hashes[expn_id], . None => self.foreign_expn_hashes[&expn_id], . } -- line 401 ---------------------------------------- -- line 441 ---------------------------------------- . #[inline] . fn normalize_to_macro_rules(&self, ctxt: SyntaxContext) -> SyntaxContext { . self.syntax_context_data[ctxt.0 as usize].opaque_and_semiopaque . } . . /// See [`SyntaxContextData::outer_expn`] . #[inline] . fn outer_expn(&self, ctxt: SyntaxContext) -> ExpnId { 565,660 ( 0.01%) self.syntax_context_data[ctxt.0 as usize].outer_expn . } . . /// The last macro expansion and its Transparency . #[inline] . fn outer_mark(&self, ctxt: SyntaxContext) -> (ExpnId, Transparency) { . let data = &self.syntax_context_data[ctxt.0 as usize]; . (data.outer_expn, data.outer_transparency) . } -- line 457 ---------------------------------------- -- line 698 ---------------------------------------- . impl SyntaxContext { . #[inline] . pub const fn root() -> Self { . SyntaxContext(0) . } . . #[inline] . pub const fn is_root(self) -> bool { 416,246 ( 0.01%) self.0 == SyntaxContext::root().as_u32() . } . . #[inline] . pub(crate) const fn as_u32(self) -> u32 { . self.0 . } . . #[inline] -- line 714 ---------------------------------------- -- line 904 ---------------------------------------- . pub fn outer_expn(self) -> ExpnId { . HygieneData::with(|data| data.outer_expn(self)) . } . . /// `ctxt.outer_expn_data()` is equivalent to but faster than . /// `ctxt.outer_expn().expn_data()`. . #[inline] . pub fn outer_expn_data(self) -> ExpnData { 30,368 ( 0.00%) HygieneData::with(|data| data.expn_data(data.outer_expn(self)).clone()) 455,520 ( 0.01%) => ???:::expn_data (30,368x) . } . . /// See [`HygieneData::outer_mark`] . #[inline] . fn outer_mark(self) -> (ExpnId, Transparency) { . HygieneData::with(|data| data.outer_mark(self)) . } . -- line 920 ---------------------------------------- -- line 975 ---------------------------------------- . }; . let expn_id = LocalExpnId::fresh(expn_data, hcx); . self.apply_mark(expn_id.to_expn_id(), Transparency::Transparent) . } . } . . /// A subset of properties from both macro definition and macro call available through global data. . /// Avoid using this if you have access to the original definition or call structures. 2,239,128 ( 0.03%) #[derive(Clone, Debug, Encodable, Decodable, StableHash)] . pub struct ExpnData { . // --- The part unique to each expansion. . pub kind: ExpnKind, . /// The expansion that contains the definition of the macro for this expansion. . pub parent: ExpnId, . /// The span of the macro call which produced this expansion. . /// . /// This span will typically have a different `ExpnData` and `call_site`. -- line 991 ---------------------------------------- -- line 1003 ---------------------------------------- . /// that have identical `ExpnData`s. This violates the contract of `StableHash` . /// - the two `ExpnId`s are not equal, but their `Fingerprint`s are equal . /// (since the numerical `ExpnId` value is not considered by the `StableHash` . /// implementation). . /// . /// The `disambiguator` field is set by `update_disambiguator` when two distinct . /// `ExpnId`s would end up with the same `Fingerprint`. Since `ExpnData` includes . /// a `krate` field, this value only needs to be unique within a single crate. 186,594 ( 0.00%) disambiguator: u32, . . // --- The part specific to the macro/desugaring definition. . // --- It may be reasonable to share this part between expansions with the same definition, . // --- but such sharing is known to bring some minor inconveniences without also bringing . // --- noticeable perf improvements (PR #62898). . /// The span of the macro definition (possibly dummy). . /// This span serves only informational purpose and is not used for resolution. . pub def_site: Span, -- line 1019 ---------------------------------------- -- line 1024 ---------------------------------------- . /// Edition of the crate in which the macro is defined. . pub edition: Edition, . /// The `DefId` of the macro being invoked, . /// if this `ExpnData` corresponds to a macro invocation . pub macro_def_id: Option, . /// The normal module (`mod`) in which the expanded macro was defined. . pub parent_module: Option, . /// Suppresses the `unsafe_code` lint for code produced by this macro. 186,594 ( 0.00%) pub(crate) allow_internal_unsafe: bool, . /// Enables the macro helper hack (`ident!(...)` -> `$crate::ident!(...)`) for this macro. . pub local_inner_macros: bool, . /// Should debuginfo for the macro be collapsed to the outermost expansion site (in other . /// words, was the macro definition annotated with `#[collapse_debuginfo]`)? . pub(crate) collapse_debuginfo: bool, . /// When true, we prevent diagnostics pointing into this macro, if it is one, and we do not . /// display the note telling people to use the `-Zmacro-backtrace` flag. . pub diagnostic_opaque: bool, -- line 1040 ---------------------------------------- -- line 1123 ---------------------------------------- . fn hash_expn(&self, hcx: &mut impl StableHashCtxt) -> Hash64 { . let mut hasher = StableHasher::new(); . self.stable_hash(hcx, &mut hasher); . hasher.finish() . } . } . . /// Expansion kind. 186,748 ( 0.00%) #[derive(Clone, Debug, PartialEq, Encodable, Decodable, StableHash)] . pub enum ExpnKind { . /// No expansion, aka root expansion. Only `ExpnId::root()` has this kind. . Root, . /// Expansion produced by a macro. 20 ( 0.00%) Macro(MacroKind, Symbol), . /// Transform done by the compiler on the AST. . AstPass(AstPass), . /// Desugaring done by the compiler during AST lowering. . Desugaring(DesugaringKind), . } . . impl ExpnKind { . pub fn descr(&self) -> String { -- line 1144 ---------------------------------------- -- line 1151 ---------------------------------------- . }, . ExpnKind::AstPass(kind) => kind.descr().to_string(), . ExpnKind::Desugaring(kind) => format!("desugaring of {}", kind.descr()), . } . } . } . . /// The kind of macro invocation or definition. 40 ( 0.00%) #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Encodable, Decodable, Hash, Debug)] . #[derive(StableHash)] . pub enum MacroKind { . /// A bang macro `foo!()`. . Bang, . /// An attribute macro `#[foo]`. . Attr, . /// A derive macro `#[derive(Foo)]` . Derive, -- line 1167 ---------------------------------------- -- line 1205 ---------------------------------------- . AstPass::StdImports => "standard library imports", . AstPass::TestHarness => "test harness", . AstPass::ProcMacroHarness => "proc macro harness", . } . } . } . . /// The kind of compiler desugaring. 36 ( 0.00%) #[derive(Clone, Copy, PartialEq, Debug, Encodable, Decodable, StableHash)] . pub enum DesugaringKind { . QuestionMark, . TryBlock, . YeetExpr, . /// Desugaring of an `impl Trait` in return type position . /// to an `type Foo = impl Trait;` and replacing the . /// `impl Trait` with `Foo`. . OpaqueTy, -- line 1221 ---------------------------------------- 69,388 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/arc_with_non_send_sync.rs -------------------------------------------------------------------------------- Ir -- line 38 ---------------------------------------- . pub ARC_WITH_NON_SEND_SYNC, . suspicious, . "using `Arc` with a type that does not implement `Send` and `Sync`" . } . . declare_lint_pass!(ArcWithNonSendSync => [ARC_WITH_NON_SEND_SYNC]); . . impl<'tcx> LateLintPass<'tcx> for ArcWithNonSendSync { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 105,547 ( 0.00%) if let ExprKind::Call(func, [arg]) = expr.kind 18,574 ( 0.00%) && let ExprKind::Path(QPath::TypeRelative(func_ty, func_name)) = func.kind 290 ( 0.00%) && func_name.ident.name == sym::new 356 ( 0.00%) && !expr.span.from_expansion() 336 ( 0.00%) && cx.typeck_results().node_type(func_ty.hir_id).is_diag_item(cx, sym::Arc) 2,296 ( 0.00%) => ???:::node_type (56x) . && let arg_ty = cx.typeck_results().expr_ty(arg) . // make sure that the type is not and does not contain any type parameters . && arg_ty.walk().all(|arg| { . !matches!(arg.kind(), GenericArgKind::Type(ty) if matches!(ty.kind(), ty::Param(_))) . }) . && let Some(send) = cx.tcx.get_diagnostic_item(sym::Send) . && let Some(sync) = cx.tcx.lang_items().sync_trait() . && let [is_send, is_sync] = [send, sync].map(|id| implements_trait(cx, arg_ty, id, &[])) -- line 59 ---------------------------------------- -- line 78 ---------------------------------------- . diag.help("if the `Arc` will not be used across threads replace it with an `Rc`"); . diag.help(format!( . "otherwise make `{arg_ty}` `Send` and `Sync` or consider a wrapper type such as `Mutex`" . )); . }); . }, . ); . } 355,200 ( 0.00%) } . } 356 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/fuse.rs -------------------------------------------------------------------------------- Ir -- line 94 ---------------------------------------- . FuseImpl::try_fold(self, acc, fold) . } . . #[inline] . fn fold(self, mut acc: Acc, fold: Fold) -> Acc . where . Fold: FnMut(Acc, Self::Item) -> Acc, . { 13,011 ( 0.00%) if let Some(iter) = self.iter { 1 ( 0.00%) acc = iter.fold(acc, fold); 19 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:, ::new::{closure#0}>, ::new::{closure#1}> as core::iter::traits::iterator::Iterator>::fold::<(), >::iter_fold::flatten, ::new::{closure#1}::{closure#0}>, (), as core::iter::traits::iterator::Iterator>::fold::flatten, ::new::{closure#1}::{closure#0}>, (), core::iter::traits::iterator::Iterator::for_each::call<(rustc_span::def_id::DefId, rustc_span::symbol::Symbol), as core::iter::traits::collect::Extend<(rustc_span::def_id::DefId, rustc_span::symbol::Symbol)>>::extend, ::new::{closure#0}>, core::iter::adapters::map::Map, ::new::{closure#1}::{closure#0}>, ::new::{closure#1}>>::{closure#0}>::{closure#0}>::{closure#0}>::{closure#0}> (1x) . } . acc . } . . #[inline] . fn find

(&mut self, predicate: P) -> Option . where . P: FnMut(&Self::Item) -> bool, -- line 111 ---------------------------------------- -- line 395 ---------------------------------------- . /// However, we must still be prepared for the possibility that it was already cleared! . #[doc(hidden)] . impl FuseImpl for Fuse . where . I: FusedIterator, . { . #[inline] . fn next(&mut self) -> Option<::Item> { 9,019 ( 0.00%) self.iter.as_mut()?.next() . } . . #[inline] . fn advance_by(&mut self, n: usize) -> Result<(), NonZero> { . match &mut self.iter { . Some(iter) => iter.advance_by(n), . None => match NonZero::new(n) { . Some(n) => Err(n), -- line 411 ---------------------------------------- -- line 421 ---------------------------------------- . . #[inline] . fn try_fold(&mut self, mut acc: Acc, fold: Fold) -> R . where . Self: Sized, . Fold: FnMut(Acc, Self::Item) -> R, . R: Try, . { 88,815 ( 0.00%) if let Some(ref mut iter) = self.iter { 44,492 ( 0.00%) acc = iter.try_fold(acc, fold)?; 1,732,158 ( 0.02%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:, clippy_utils::macros::first_node_macro_backtrace::{closure#0}> as core::iter::traits::iterator::Iterator>::try_fold::<(), >::iter_try_fold::flatten, clippy_utils::macros::macro_backtrace::{closure#0}>, clippy_utils::macros::first_node_macro_backtrace::{closure#0}::{closure#0}>, (), core::ops::control_flow::ControlFlow, as core::iter::traits::iterator::Iterator>::try_fold::flatten, clippy_utils::macros::macro_backtrace::{closure#0}>, clippy_utils::macros::first_node_macro_backtrace::{closure#0}::{closure#0}>, (), core::ops::control_flow::ControlFlow, core::iter::traits::iterator::Iterator::find::check::{closure#0}>::{closure#0}>::{closure#0}, core::ops::control_flow::ControlFlow> (44,400x) . } . try { acc } . } . . #[inline] . fn find

(&mut self, predicate: P) -> Option . where . P: FnMut(&Self::Item) -> bool, -- line 438 ---------------------------------------- 13 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/init_numbered_fields.rs -------------------------------------------------------------------------------- Ir -- line 37 ---------------------------------------- . pub INIT_NUMBERED_FIELDS, . style, . "numbered fields in tuple struct initializer" . } . . declare_lint_pass!(NumberedFields => [INIT_NUMBERED_FIELDS]); . . impl<'tcx> LateLintPass<'tcx> for NumberedFields { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, e: &'tcx Expr<'_>) { 89,711 ( 0.00%) if let ExprKind::Struct(path, fields @ [field, ..], StructTailExpr::None) = e.kind . // If the first character of any field is a digit it has to be a tuple. 232 ( 0.00%) && field.ident.as_str().as_bytes().first().is_some_and(u8::is_ascii_digit) 4,408 ( 0.00%) => ???:::as_str (116x) . // Type aliases can't be used as functions. . && !matches!( . cx.qpath_res(path, e.hir_id), . Res::Def(DefKind::TyAlias | DefKind::AssocTy, _) . ) . // This is the only syntax macros can use that works for all struct types. . && !e.span.from_expansion() . && let mut has_side_effects = false -- line 56 ---------------------------------------- -- line 89 ---------------------------------------- . .intersperse(Cow::Borrowed(", ")) . .collect::() . ), . app, . ); . }, . ); . } 310,800 ( 0.00%) } . } 232 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/extra_unused_type_parameters.rs -------------------------------------------------------------------------------- Ir -- line 66 ---------------------------------------- . /// Collection of any type parameters with trait bounds that appear in a where clause. . where_bounds: FxHashSet, . /// The entire `Generics` object of the function, useful for querying purposes. . generics: &'tcx Generics<'tcx>, . } . . impl<'cx, 'tcx> TypeWalker<'cx, 'tcx> { . fn new(cx: &'cx LateContext<'tcx>, generics: &'tcx Generics<'tcx>) -> Self { 48 ( 0.00%) let ty_params = generics . .params . .iter() 148 ( 0.00%) .filter_map(|param| match param.kind { 42 ( 0.00%) GenericParamKind::Type { synthetic, .. } if !synthetic => Some((param.def_id.into(), param.span)), . _ => None, . }) . .collect(); . 226 ( 0.00%) Self { . cx, . ty_params, . inline_bounds: FxHashMap::default(), . where_bounds: FxHashSet::default(), . generics, . } . } . -- line 91 ---------------------------------------- -- line 101 ---------------------------------------- . . fn emit_sugg(&self, spans: Vec, msg: String, help: &'static str) { . let suggestions: Vec<(Span, String)> = spans.iter().copied().zip(std::iter::repeat(String::new())).collect(); . span_lint_and_then(self.cx, EXTRA_UNUSED_TYPE_PARAMETERS, spans, msg, |diag| { . diag.multipart_suggestion(help, suggestions, Applicability::MaybeIncorrect); . }); . } . 192 ( 0.00%) fn emit_lint(&self) { 72 ( 0.00%) let explicit_params = self . .generics . .params . .iter() . .filter(|param| !param.is_elided_lifetime() && !param.is_impl_trait()) . .collect::>(); . . let extra_params = explicit_params . .iter() . .enumerate() . .filter(|(_, param)| self.ty_params.contains_key(¶m.def_id.to_def_id())) . .collect::>(); . 48 ( 0.00%) let (msg, help) = match extra_params.len() { . 0 => return, . 1 => ( . format!( . "type parameter `{}` goes unused in function definition", . extra_params[0].1.name.ident() . ), . "consider removing the parameter", . ), -- line 131 ---------------------------------------- -- line 183 ---------------------------------------- . let prev_span = self.get_bound_span(prev); . self.get_bound_span(param).with_lo(prev_span.hi()) . } . }) . .collect() . }; . self.emit_sugg(spans, msg, help); . } 192 ( 0.00%) } . } . . /// Given a generic bound, if the bound is for a trait that's not a `LangItem`, return the . /// `LocalDefId` for that trait. . fn bound_to_trait_def_id(bound: &GenericBound<'_>) -> Option { 32 ( 0.00%) bound.trait_ref()?.trait_def_id()?.as_local() 208 ( 0.00%) => ???:::trait_def_id (16x) . } . . impl<'tcx> Visitor<'tcx> for TypeWalker<'_, 'tcx> { . type NestedFilter = nested_filter::OnlyBodies; . 20 ( 0.00%) fn visit_ty(&mut self, t: &'tcx Ty<'tcx, AmbigArg>) { 64 ( 0.00%) if let Some((def_id, _)) = t.peel_refs().as_generic_param() { . self.ty_params.remove(&def_id); . } else { 465 ( 0.00%) walk_ty(self, t); 236 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_ty:: (4x) . } 30 ( 0.00%) } . 112 ( 0.00%) fn visit_where_predicate(&mut self, predicate: &'tcx WherePredicate<'tcx>) { . let span = predicate.span; 64 ( 0.00%) if let WherePredicateKind::BoundPredicate(predicate) = predicate.kind { . // Collect spans for any bounds on type parameters. 80 ( 0.00%) if let Some((def_id, _)) = predicate.bounded_ty.peel_refs().as_generic_param() { 32 ( 0.00%) match predicate.origin { . PredicateOrigin::GenericParam => { . self.inline_bounds.insert(def_id, span); . }, . PredicateOrigin::WhereClause => { . self.where_bounds.insert(def_id); . }, . PredicateOrigin::ImplTrait => (), . } . . // If the bound contains non-public traits, err on the safe side and don't lint the . // corresponding parameter. 16 ( 0.00%) if !predicate . .bounds . .iter() . .filter_map(bound_to_trait_def_id) 74 ( 0.00%) .all(|id| self.cx.effective_visibilities.is_exported(id)) 798 ( 0.00%) => ???:::is_exported (14x) . { . self.ty_params.remove(&def_id); . } . } else { . // If the bounded type isn't a generic param, but is instead a concrete generic . // type, any params we find nested inside of it are being used as concrete types, . // and can therefore can be considered used. So, we're fine to walk the left-hand . // side of the where bound. . walk_unambig_ty(self, predicate.bounded_ty); . } 16 ( 0.00%) for bound in predicate.bounds { . walk_param_bound(self, bound); . } . } 128 ( 0.00%) } . . fn maybe_tcx(&mut self) -> Self::MaybeTyCtxt { 25 ( 0.00%) self.cx.tcx . } . } . . fn is_empty_body(cx: &LateContext<'_>, body: BodyId) -> bool { 246 ( 0.00%) matches!(cx.tcx.hir_body(body).value.kind, ExprKind::Block(b, _) if b.stmts.is_empty() && b.expr.is_none()) 1,106 ( 0.00%) => ???:::hir_body (21x) . } . . impl<'tcx> LateLintPass<'tcx> for ExtraUnusedTypeParameters { 10,514 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'tcx>) { 3,004 ( 0.00%) if let ItemKind::Fn { 22 ( 0.00%) generics, 42 ( 0.00%) body: body_id, . .. . } = item.kind 22 ( 0.00%) && !generics.params.is_empty() 31 ( 0.00%) && !is_empty_body(cx, body_id) 140 ( 0.00%) && (!self.avoid_breaking_exported_api || !cx.effective_visibilities.is_exported(item.owner_id.def_id)) 990 ( 0.00%) => ???:::is_exported (20x) 42 ( 0.00%) && !item.span.in_external_macro(cx.sess().source_map()) 28 ( 0.00%) && !is_from_proc_macro(cx, item) . { . let mut walker = TypeWalker::new(cx, generics); 28 ( 0.00%) walk_item(&mut walker, item); 31,552 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_item:: (14x) 14 ( 0.00%) walker.emit_lint(); 2,866 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/extra_unused_type_parameters.rs:::emit_lint (14x) . } 12,016 ( 0.00%) } . 21,357 ( 0.00%) fn check_impl_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx ImplItem<'tcx>) { . // Only lint on inherent methods, not trait methods. 6,102 ( 0.00%) if let ImplItemKind::Fn(.., body_id) = item.kind 5,292 ( 0.00%) && !item.generics.params.is_empty() 12,075 ( 0.00%) && trait_ref_of_method(cx, item.owner_id).is_none() 478,817 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::trait_ref_of_method (2,415x) 21 ( 0.00%) && !is_empty_body(cx, body_id) 77 ( 0.00%) && (!self.avoid_breaking_exported_api || !cx.effective_visibilities.is_exported(item.owner_id.def_id)) 492 ( 0.00%) => ???:::is_exported (11x) 30 ( 0.00%) && !item.span.in_external_macro(cx.sess().source_map()) 20 ( 0.00%) && !is_from_proc_macro(cx, item) . { . let mut walker = TypeWalker::new(cx, item.generics); 20 ( 0.00%) walk_impl_item(&mut walker, item); 30,721 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_impl_item:: (10x) 10 ( 0.00%) walker.emit_lint(); 1,465 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/extra_unused_type_parameters.rs:::emit_lint (10x) . } 24,408 ( 0.00%) } . } 15,354 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/formatting.rs -------------------------------------------------------------------------------- Ir -- line 141 ---------------------------------------- . POSSIBLE_MISSING_COMMA, . POSSIBLE_MISSING_ELSE, . SUSPICIOUS_ASSIGNMENT_FORMATTING, . SUSPICIOUS_ELSE_FORMATTING, . SUSPICIOUS_UNARY_OP_FORMATTING, . ]); . . impl EarlyLintPass for Formatting { 29,616 ( 0.00%) fn check_block(&mut self, cx: &EarlyContext<'_>, block: &Block) { . for w in block.stmts.windows(2) { 4,530 ( 0.00%) if let (StmtKind::Expr(first), StmtKind::Expr(second) | StmtKind::Semi(second)) = (&w[0].kind, &w[1].kind) { 676 ( 0.00%) check_missing_else(cx, first, second); . } . } 29,616 ( 0.00%) } . 279,272 ( 0.00%) fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { . check_assign(cx, expr); . check_unop(cx, expr); . check_else(cx, expr); . check_array(cx, expr); 319,168 ( 0.00%) } . } . . /// Implementation of the `SUSPICIOUS_ASSIGNMENT_FORMATTING` lint. . fn check_assign(cx: &EarlyContext<'_>, expr: &Expr) { 119,688 ( 0.00%) if let ExprKind::Assign(ref lhs, ref rhs, _) = expr.kind 162 ( 0.00%) && !lhs.span.from_expansion() 66 ( 0.00%) && !rhs.span.from_expansion() . { 84 ( 0.00%) let eq_span = lhs.span.between(rhs.span); 2,247 ( 0.00%) => ???:::between (21x) 42 ( 0.00%) if let ExprKind::Unary(op, ref sub_rhs) = rhs.kind . && let Some(eq_snippet) = snippet_opt(cx, eq_span) . { . let op = op.as_str(); . let eqop_span = lhs.span.between(sub_rhs.span); . if eq_snippet.ends_with('=') { . span_lint_and_note( . cx, . SUSPICIOUS_ASSIGNMENT_FORMATTING, -- line 180 ---------------------------------------- -- line 188 ---------------------------------------- . ); . } . } . } . } . . /// Implementation of the `SUSPICIOUS_UNARY_OP_FORMATTING` lint. . fn check_unop(cx: &EarlyContext<'_>, expr: &Expr) { 79,684 ( 0.00%) if let ExprKind::Binary(ref binop, ref lhs, ref rhs) = expr.kind 1,383 ( 0.00%) && !lhs.span.from_expansion() && !rhs.span.from_expansion() . // span between BinOp LHS and RHS 180 ( 0.00%) && let binop_span = lhs.span.between(rhs.span) 4,815 ( 0.00%) => ???:::between (45x) . // if RHS is an UnOp 90 ( 0.00%) && let ExprKind::Unary(op, ref un_rhs) = rhs.kind . // from UnOp operator to UnOp operand . && let unop_operand_span = rhs.span.until(un_rhs.span) . && let Some(binop_snippet) = snippet_opt(cx, binop_span) . && let Some(unop_operand_snippet) = snippet_opt(cx, unop_operand_span) . && let binop_str = binop.node.as_str() . // no space after BinOp operator and space after UnOp operator . && binop_snippet.ends_with(binop_str) && unop_operand_snippet.ends_with(' ') . { -- line 209 ---------------------------------------- -- line 220 ---------------------------------------- . None, . format!("put a space between `{binop_str}` and `{unop_str}` and remove the space after `{unop_str}`"), . ); . } . } . . /// Implementation of the `SUSPICIOUS_ELSE_FORMATTING` lint for weird `else`. . fn check_else(cx: &EarlyContext<'_>, expr: &Expr) { 80,622 ( 0.00%) if let ExprKind::If(_, then, Some(else_)) = &expr.kind 324 ( 0.00%) && (is_block(else_) || is_if(else_)) 804 ( 0.00%) && !then.span.from_expansion() && !else_.span.from_expansion() 144 ( 0.00%) && !expr.span.in_external_macro(cx.sess().source_map()) . . // workaround for rust-lang/rust#43081 144 ( 0.00%) && expr.span.lo().0 != 0 && expr.span.hi().0 != 0 . . // this will be a span from the closing ‘}’ of the “then” block (excluding) to . // the “if” of the “else if” block (excluding) 144 ( 0.00%) && let else_span = then.span.between(else_.span) 3,852 ( 0.00%) => ???:::between (36x) . . // the snippet should look like " else \n " with maybe comments anywhere . // it’s bad when there is a ‘\n’ after the “else” 288 ( 0.00%) && let Some(else_snippet) = snippet_opt(cx, else_span) 14,688 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/source.rs:clippy_utils::source::snippet_opt::<&rustc_lint::context::EarlyContext> (36x) 288 ( 0.00%) && let Some((pre_else, post_else)) = else_snippet.split_once("else") 13,356 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/mod.rs:::split_once::<&str> (36x) 72 ( 0.00%) && !else_snippet.contains('/') 216 ( 0.00%) && let Some((_, post_else_post_eol)) = post_else.split_once('\n') 1,584 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/mod.rs:::split_once:: (36x) . { . // Allow allman style braces `} \n else \n {` . if is_block(else_) . && let Some((_, pre_else_post_eol)) = pre_else.split_once('\n') . // Exactly one eol before and after the else . && !pre_else_post_eol.contains('\n') . && !post_else_post_eol.contains('\n') . { -- line 253 ---------------------------------------- -- line 282 ---------------------------------------- . } . . fn indentation(cx: &EarlyContext<'_>, span: Span) -> usize { . cx.sess().source_map().lookup_char_pos(span.lo()).col.0 . } . . /// Implementation of the `POSSIBLE_MISSING_COMMA` lint for array . fn check_array(cx: &EarlyContext<'_>, expr: &Expr) { 77,672 ( 0.00%) if let ExprKind::Array(ref array) = expr.kind { . for element in array { 1,641 ( 0.00%) if let ExprKind::Binary(ref op, ref lhs, _) = element.kind . && has_unary_equivalent(op.node) . && lhs.span.eq_ctxt(op.span) . && let space_span = lhs.span.between(op.span) . && let Some(space_snippet) = snippet_opt(cx, space_span) . && let lint_span = lhs.span.with_lo(lhs.span.hi()) . && space_snippet.contains('\n') . && indentation(cx, op.span) <= indentation(cx, lhs.span) . { -- line 300 ---------------------------------------- -- line 307 ---------------------------------------- . "to remove this lint, add a comma or write the expr in a single line", . ); . } . } . } . } . . fn check_missing_else(cx: &EarlyContext<'_>, first: &Expr, second: &Expr) { 778 ( 0.00%) if !first.span.from_expansion() && !second.span.from_expansion() . && matches!(first.kind, ExprKind::If(..)) 39 ( 0.00%) && (is_block(second) || is_if(second)) . . // Proc-macros can give weird spans. Make sure this is actually an `if`. . && is_span_if(cx, first.span) . . // If there is a line break between the two expressions, don't lint. . // If there is a non-whitespace character, this span came from a proc-macro. . && let else_span = first.span.between(second.span) . && let Some(else_snippet) = snippet_opt(cx, else_span) -- line 325 ---------------------------------------- -- line 338 ---------------------------------------- . format!("this looks like {looks_like} but the `else` is missing"), . None, . format!("to remove this lint, add the missing `else` or add a new line before {next_thing}"), . ); . } . } . . fn is_block(expr: &Expr) -> bool { 514 ( 0.00%) matches!(expr.kind, ExprKind::Block(..)) . } . . /// Check if the expression is an `if` or `if let` . fn is_if(expr: &Expr) -> bool { . matches!(expr.kind, ExprKind::If(..)) . } 806 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/unwrap.rs -------------------------------------------------------------------------------- Ir -- line 170 ---------------------------------------- . impl Local { . fn snippet(&self, cx: &LateContext<'_>) -> Cow<'static, str> { . match *self { . Self::WithFieldAccess { span, .. } => snippet(cx.sess(), span, "_"), . Self::Pure { local_id } => cx.tcx.hir_name(local_id).to_string().into(), . } . } . 10 ( 0.00%) fn is_potentially_local_place(&self, place: &Place<'_>) -> bool { 4 ( 0.00%) match self { . Self::WithFieldAccess { . local_id, . field_indices, . .. . } => { . let field_projections = place . .projections . .iter() . .filter(|proj| matches!(proj.kind, ProjectionKind::Field(_, _))) . .collect::>(); 1 ( 0.00%) is_potentially_local_place(*local_id, place) . // If there were projections other than field projections, err on the side of caution and say that they . // _might_ be mutating something. . // . // The reason we use `<=` and not `==` is that a mutation of `struct` or `struct.field1` should count as . // mutation of the child fields such as `struct.field1.field2` . && field_projections.len() <= field_indices.len() . && iter::zip(&field_projections, field_indices.iter().copied().rev()).all(|(proj, field_idx)| { . match proj.kind { . ProjectionKind::Field(f_idx, _) => f_idx == field_idx, . // If this is a projection we don't expect, it _might_ be mutating something . _ => false, . } . }) . }, 1 ( 0.00%) Self::Pure { local_id } => is_potentially_local_place(*local_id, place), . } 10 ( 0.00%) } . } . . /// Contains information about whether a variable can be unwrapped. . #[derive(Clone, Debug)] . struct UnwrapInfo<'tcx> { . /// The variable that is checked . local: Local, . /// The if itself -- line 215 ---------------------------------------- -- line 236 ---------------------------------------- . if_expr: &'tcx Expr<'_>, . expr: &'tcx Expr<'_>, . branch: &'tcx Expr<'_>, . invert: bool, . is_entire_condition: bool, . ) -> Vec> { . fn option_or_result_call(cx: &LateContext<'_>, ty: Ty<'_>, method_name: Symbol) -> Option<(UnwrappableKind, bool)> { . match (ty.opt_diag_name(cx)?, method_name) { 34 ( 0.00%) (sym::Option, sym::is_some) => Some((UnwrappableKind::Option, true)), 14 ( 0.00%) (sym::Option, sym::is_none) => Some((UnwrappableKind::Option, false)), . (sym::Result, sym::is_ok) => Some((UnwrappableKind::Result, true)), . (sym::Result, sym::is_err) => Some((UnwrappableKind::Result, false)), . _ => None, . } . } . 1,148 ( 0.00%) fn inner<'tcx>( . cx: &LateContext<'tcx>, . if_expr: &'tcx Expr<'_>, . expr: &'tcx Expr<'_>, . branch: &'tcx Expr<'_>, . invert: bool, . is_entire_condition: bool, . out: &mut Vec>, . ) { 665 ( 0.00%) match expr.kind { . ExprKind::Binary(op, left, right) 117 ( 0.00%) if matches!( 78 ( 0.00%) (invert, op.node), . (false, BinOpKind::And | BinOpKind::BitAnd) | (true, BinOpKind::Or | BinOpKind::BitOr) . ) => . { . inner(cx, if_expr, left, branch, invert, false, out); . inner(cx, if_expr, right, branch, invert, false, out); . }, 10 ( 0.00%) ExprKind::Unary(UnOp::Not, expr) => inner(cx, if_expr, expr, branch, !invert, false, out), 108 ( 0.00%) ExprKind::MethodCall(method_name, receiver, [], _) 420 ( 0.00%) if let Some(local) = extract_local(cx, receiver) 2,328 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/unwrap.rs:clippy_lints::unwrap::extract_local (36x) 32 ( 0.00%) && let ty = cx.typeck_results().expr_ty(receiver) 1,280 ( 0.00%) => ???:::expr_ty (32x) . && let name = method_name.ident.name 28 ( 0.00%) && let Some((kind, unwrappable)) = option_or_result_call(cx, ty, name) => . { . let safe_to_unwrap = unwrappable != invert; . 50 ( 0.00%) out.push(UnwrapInfo { . local, . if_expr, . check: expr, . check_name: name, . branch, . safe_to_unwrap, . kind, . is_entire_condition, . }); . }, . _ => {}, . } 640 ( 0.00%) } . . let mut out = vec![]; 328 ( 0.00%) inner(cx, if_expr, expr, branch, invert, is_entire_condition, &mut out); 10,055 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/unwrap.rs:clippy_lints::unwrap::collect_unwrap_info::inner (73x) 246 ( 0.00%) out . } . . /// Extracts either a local used by itself ([`Local::Pure`]), or (one or more levels of) field . /// access to a local ([`Local::WithFieldAccess`]) 8,312 ( 0.00%) fn extract_local(cx: &LateContext<'_>, mut expr: &Expr<'_>) -> Option { 1,039 ( 0.00%) let span = expr.span; . let mut field_indices = vec![]; 5,650 ( 0.00%) while let ExprKind::Field(recv, _) = expr.kind 637 ( 0.00%) && let Some(field_idx) = cx.typeck_results().opt_field_index(expr.hir_id) 3,549 ( 0.00%) => ???:::opt_field_index (91x) . { . field_indices.push(field_idx); . expr = recv; . } . let local_id = expr.res_local_id()?; 880 ( 0.00%) if field_indices.is_empty() { 2,370 ( 0.00%) Some(Local::Pure { local_id }) . } else { 360 ( 0.00%) Some(Local::WithFieldAccess { . local_id, 360 ( 0.00%) field_indices, . span, . }) . } 8,402 ( 0.00%) } . . /// A HIR visitor delegate that checks if a local variable of type `Option` or `Result` is mutated, . /// *except* for if `.as_mut()` is called. . /// The reason for why we allow that one specifically is that `.as_mut()` cannot change . /// the variant, and that is important because this lint relies on the fact that . /// `is_some` + `unwrap` is equivalent to `if let Some(..) = ..`, which it would not be if . /// the option is changed to None between `is_some` and `unwrap`, ditto for `Result`. . /// (And also `.as_mut()` is a somewhat common method that is still worth linting on.) -- line 329 ---------------------------------------- -- line 347 ---------------------------------------- . path.ident.name == sym::as_mut . } else { . false . } . } . . impl<'tcx> Delegate<'tcx> for MutationVisitor<'tcx, '_> { . fn borrow(&mut self, cat: &PlaceWithHirId<'tcx>, diag_expr_id: HirId, bk: ty::BorrowKind) { 20 ( 0.00%) if let ty::BorrowKind::Mutable = bk 5 ( 0.00%) && self.local.is_potentially_local_place(&cat.place) 25 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/unwrap.rs:::is_potentially_local_place (1x) . && !is_as_mut_use(self.tcx, diag_expr_id) . { . self.is_mutated = true; . } . } . . fn mutate(&mut self, cat: &PlaceWithHirId<'tcx>, _: HirId) { 7 ( 0.00%) if self.local.is_potentially_local_place(&cat.place) { 58 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/unwrap.rs:::is_potentially_local_place (1x) . self.is_mutated = true; . } . } . . fn consume(&mut self, _: &PlaceWithHirId<'tcx>, _: HirId) {} . . fn use_cloned(&mut self, _: &PlaceWithHirId<'tcx>, _: HirId) {} . . fn fake_read(&mut self, _: &PlaceWithHirId<'tcx>, _: FakeReadCause, _: HirId) {} . } . . impl<'tcx> UnwrappableVariablesVisitor<'_, 'tcx> { 738 ( 0.00%) fn visit_branch( . &mut self, . if_expr: &'tcx Expr<'_>, . cond: &'tcx Expr<'_>, . branch: &'tcx Expr<'_>, . else_branch: bool, . ) { . let prev_len = self.unwrappables.len(); 728 ( 0.00%) for unwrap_info in collect_unwrap_info(self.cx, if_expr, cond, branch, else_branch, true) { 56 ( 0.00%) let mut delegate = MutationVisitor { . is_mutated: false, . local: &unwrap_info.local, 28 ( 0.00%) tcx: self.cx.tcx, . }; . . let vis = ExprUseVisitor::for_clippy(self.cx, cond.hir_id.owner.def_id, &mut delegate); 42 ( 0.00%) vis.walk_expr(cond).into_ok(); 14,376 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir_typeck/src/expr_use_visitor.rs:>::walk_expr (14x) 42 ( 0.00%) vis.walk_expr(branch).into_ok(); 302,621 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir_typeck/src/expr_use_visitor.rs:>::walk_expr (14x) . 28 ( 0.00%) if delegate.is_mutated { . // if the variable is mutated, we don't know whether it can be unwrapped. . // it might have been changed to `None` in between `is_some` + `unwrap`. . continue; . } 168 ( 0.00%) self.unwrappables.push(unwrap_info); . } 246 ( 0.00%) walk_expr(self, branch); 79,773 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_expr::'2 (73x) . self.unwrappables.truncate(prev_len); 656 ( 0.00%) } . } . . enum AsRefKind { . AsRef, . AsMut, . } . . /// Checks if the expression is a method call to `as_{ref,mut}` and returns the receiver of it. . /// If it isn't, the expression itself is returned. . fn consume_option_as_ref<'tcx>(expr: &'tcx Expr<'tcx>) -> (&'tcx Expr<'tcx>, Option) { 2,226 ( 0.00%) if let ExprKind::MethodCall(path, recv, [], _) = expr.kind { 21 ( 0.00%) match path.ident.name { 84 ( 0.00%) sym::as_ref => (recv, Some(AsRefKind::AsRef)), . sym::as_mut => (recv, Some(AsRefKind::AsMut)), . _ => (expr, None), . } . } else { . (expr, None) . } . } . . impl<'tcx> Visitor<'tcx> for UnwrappableVariablesVisitor<'_, 'tcx> { . type NestedFilter = nested_filter::OnlyBodies; . 83,196 ( 0.00%) fn visit_expr(&mut self, expr: &'tcx Expr<'_>) { . // Skip checking inside closures since they are visited through `Unwrap::check_fn()` already. 60,672 ( 0.00%) if matches!(expr.kind, ExprKind::Closure(_)) { . return; . } . if let Some(higher::If { cond, then, r#else }) = higher::If::hir(expr) { 156 ( 0.00%) walk_expr(self, cond); 12,973 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_expr::'2 (52x) 312 ( 0.00%) self.visit_branch(expr, cond, then, false); 359,608 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/unwrap.rs:::visit_branch (43x) 15,648 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/unwrap.rs:::visit_branch'2 (9x) 104 ( 0.00%) if let Some(else_inner) = r#else { 390 ( 0.00%) self.visit_branch(expr, cond, else_inner, true); 56,031 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/unwrap.rs:::visit_branch (30x) . } . } else { . // find `unwrap[_err]()` or `expect("...")` calls: 1,003 ( 0.00%) if let ExprKind::MethodCall(method_name, self_arg, ..) = expr.kind 1,003 ( 0.00%) && let (self_arg, as_ref_kind) = consume_option_as_ref(self_arg) 10,413 ( 0.00%) && let Some(local) = extract_local(self.cx, self_arg) 135 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/unwrap.rs:clippy_lints::unwrap::extract_local (3x) 5,932 ( 0.00%) && matches!(method_name.ident.name, sym::unwrap | sym::expect | sym::unwrap_err) 6 ( 0.00%) && let call_to_unwrap = matches!(method_name.ident.name, sym::unwrap | sym::expect) . && let Some(unwrappable) = self.unwrappables.iter().find(|u| u.local == local) . // Span contexts should not differ with the conditional branch . && let span_ctxt = expr.span.ctxt() . && unwrappable.branch.span.ctxt() == span_ctxt . && unwrappable.check.span.ctxt() == span_ctxt . && !expr.span.in_external_macro(self.cx.tcx.sess.source_map()) . { . if call_to_unwrap == unwrappable.safe_to_unwrap { -- line 455 ---------------------------------------- -- line 505 ---------------------------------------- . expr.span, . format!("this call to `{}()` will always panic", method_name.ident.name), . |diag| { . diag.span_label(unwrappable.check.span, "because of this check"); . }, . ); . } . } 27,540 ( 0.00%) walk_expr(self, expr); 1,247,475 ( 0.02%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_expr:: (771x) . } 73,712 ( 0.00%) } . . fn maybe_tcx(&mut self) -> Self::MaybeTyCtxt { 779 ( 0.00%) self.cx.tcx . } . } . . impl<'tcx> LateLintPass<'tcx> for Unwrap { 19,180 ( 0.00%) fn check_fn( . &mut self, . cx: &LateContext<'tcx>, . kind: FnKind<'tcx>, . decl: &'tcx FnDecl<'_>, . body: &'tcx Body<'_>, . span: Span, . fn_id: LocalDefId, . ) { . if span.from_expansion() { . return; . } . 3,855 ( 0.00%) let mut v = UnwrappableVariablesVisitor { . unwrappables: Vec::new(), . cx, 771 ( 0.00%) msrv: self.msrv, . }; . 3,084 ( 0.00%) walk_fn(&mut v, kind, decl, body.id(), fn_id); 1,642,354 ( 0.02%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_fn:: (771x) 13,700 ( 0.00%) } . } 4,636 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/option_env_unwrap.rs -------------------------------------------------------------------------------- Ir -- line 30 ---------------------------------------- . correctness, . "using `option_env!(...).unwrap()` to get environment variable" . } . . declare_lint_pass!(OptionEnvUnwrap => [OPTION_ENV_UNWRAP]); . . impl EarlyLintPass for OptionEnvUnwrap { . fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { 83,601 ( 0.00%) if let ExprKind::MethodCall(MethodCall { seg, receiver, .. }) = &expr.kind 19,033 ( 0.00%) && matches!(seg.ident.name, sym::expect | sym::unwrap) 48 ( 0.00%) && is_direct_expn_of(receiver.span, sym::option_env).is_some() 502 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_direct_expn_of (8x) . { . span_lint_and_help( . cx, . OPTION_ENV_UNWRAP, . expr.span, . "this will panic at run-time if the environment variable doesn't exist at compile-time", . None, . "consider using the `env!` macro instead", -- line 48 ---------------------------------------- -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/string_patterns.rs -------------------------------------------------------------------------------- Ir -- line 108 ---------------------------------------- . (sym::rmatch_indices, 0), . (sym::trim_start_matches, 0), . (sym::trim_end_matches, 0), . (sym::replace, 0), . (sym::replacen, 0), . ]; . . fn check_single_char_pattern_lint(cx: &LateContext<'_>, arg: &Expr<'_>) { 3 ( 0.00%) let mut applicability = Applicability::MachineApplicable; 7 ( 0.00%) if let Some(hint) = str_literal_to_char_literal(cx, arg, &mut applicability, true) { 23 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/source.rs:clippy_utils::source::str_literal_to_char_literal::<&rustc_lint::context::LateContext> (1x) . span_lint_and_sugg( . cx, . SINGLE_CHAR_PATTERN, . arg.span, . "single-character string constant used as pattern", . "consider using a `char`", . hint, . applicability, -- line 125 ---------------------------------------- -- line 134 ---------------------------------------- . { . Some(expr.span) . } else { . None . } . } . . fn check_manual_pattern_char_comparison(cx: &LateContext<'_>, method_arg: &Expr<'_>, msrv: Msrv) { 2 ( 0.00%) if let ExprKind::Closure(closure) = method_arg.kind . && let body = cx.tcx.hir_body(closure.body) . && let Some(PatKind::Binding(_, binding, ..)) = body.params.first().map(|p| p.pat.kind) . { . let mut set_char_spans: Vec = Vec::new(); . . // We want to retrieve all the comparisons done. . // They are ordered in a nested way and so we need to traverse the AST to collect them all. . if for_each_expr(cx.tcx, body.value, |sub_expr| -> ControlFlow<(), Descend> { -- line 150 ---------------------------------------- -- line 222 ---------------------------------------- . ); . } . }, . ); . } . } . . impl<'tcx> LateLintPass<'tcx> for StringPatterns { 266,400 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 133,200 ( 0.00%) if !expr.span.from_expansion() 3,988 ( 0.00%) && let ExprKind::MethodCall(method, receiver, args, _) = expr.kind 997 ( 0.00%) && let method_name = method.ident.name 2 ( 0.00%) && let Some(&(_, pos)) = PATTERN_METHODS . .iter() . .find(|(array_method_name, _)| *array_method_name == method_name) . && let Some(arg) = args.get(pos) 6 ( 0.00%) && let ty::Ref(_, ty, _) = cx.typeck_results().expr_ty_adjusted(receiver).kind() 106 ( 0.00%) => ???:::expr_ty_adjusted (2x) 6 ( 0.00%) && ty.is_str() . { . check_single_char_pattern_lint(cx, arg); . 1 ( 0.00%) check_manual_pattern_char_comparison(cx, arg, self.msrv); . } 266,400 ( 0.00%) } . } 17,783 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/cmp.rs -------------------------------------------------------------------------------- Ir -- line 13 ---------------------------------------- . #[rustc_const_unstable(feature = "const_cmp", issue = "143800")] . const impl PartialEq<[U]> for [T] . where . T: [const] PartialEq, . { . #[inline] . fn eq(&self, other: &[U]) -> bool { . let len = self.len(); 9,259 ( 0.00%) if len == other.len() { . // SAFETY: Just checked that they're the same length, and the pointers . // come from references-to-slices so they're guaranteed readable. . unsafe { SlicePartialEq::equal_same_length(self.as_ptr(), other.as_ptr(), len) } . } else { . false . } . } . } -- line 29 ---------------------------------------- -- line 149 ---------------------------------------- . { . #[inline] . unsafe fn equal_same_length(lhs: *const Self, rhs: *const B, len: usize) -> bool { . // SAFETY: by our precondition, `lhs` and `rhs` are guaranteed to be valid . // for reading `len` values, which also means the size is guaranteed . // not to overflow because it exists in memory; . unsafe { . let size = crate::intrinsics::unchecked_mul(len, Self::SIZE); 278,414 ( 0.00%) compare_bytes(lhs as _, rhs as _, size) == 0 40 ( 0.00%) => ???:0x0000000000173660 (4x) . } . } . } . . #[doc(hidden)] . #[rustc_const_unstable(feature = "const_cmp", issue = "143800")] . // intermediate trait for specialization of slice's PartialOrd . const trait SlicePartialOrd: Sized { -- line 165 ---------------------------------------- -- line 382 ---------------------------------------- . fn slice_contains(&self, x: &[Self]) -> bool; . } . . impl SliceContains for T . where . T: PartialEq, . { . default fn slice_contains(&self, x: &[Self]) -> bool { 89 ( 0.00%) x.iter().any(|y| *y == *self) 2 ( 0.00%) } . } . . impl SliceContains for T { . #[inline] . fn slice_contains(&self, x: &[Self]) -> bool { . // SAFETY: `UnsignedBytewiseOrd` guarantees that `Self` has the same . // layout as `u8` and is initialized, so both the value and slice can . // be read as bytes. -- line 399 ---------------------------------------- -- line 429 ---------------------------------------- . // SIMD . let mut chunks = arr.chunks_exact(LANE_COUNT); . for chunk in &mut chunks { . if chunk.iter().fold(false, |acc, x| acc | (*x == *self)) { . return true; . } . } . // Scalar remainder 34 ( 0.00%) return chunks.remainder().iter().any(|x| *x == *self); . } . } . )* . }; . } . . impl_slice_contains!(u16, u32, u64, i16, i32, i64, f32, f64, usize, isize, char); 44,295 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/multiple_bound_locations.rs -------------------------------------------------------------------------------- Ir -- line 33 ---------------------------------------- . pub MULTIPLE_BOUND_LOCATIONS, . style, . "defining generic bounds in multiple locations" . } . . declare_lint_pass!(MultipleBoundLocations => [MULTIPLE_BOUND_LOCATIONS]); . . impl EarlyLintPass for MultipleBoundLocations { 19,810 ( 0.00%) fn check_fn(&mut self, cx: &EarlyContext<'_>, kind: FnKind<'_>, _: Span, _: NodeId) { 8,476 ( 0.00%) if let FnKind::Fn(_, _, Fn { generics, .. }) = kind 2,816 ( 0.00%) && !generics.params.is_empty() 2,230 ( 0.00%) && !generics.where_clause.predicates.is_empty() . { . let mut generic_params_with_bounds = FxHashMap::default(); . . for param in &generics.params { 2,242 ( 0.00%) if !param.bounds.is_empty() { 10 ( 0.00%) generic_params_with_bounds.insert(param.ident.as_str(), param.ident.span); 76 ( 0.00%) => ???:::as_str (2x) . } . } . for clause in &generics.where_clause.predicates { 4,464 ( 0.00%) match &clause.kind { . WherePredicateKind::BoundPredicate(pred) => { 4,464 ( 0.00%) if (!pred.bound_generic_params.is_empty() || !pred.bounds.is_empty()) 11,160 ( 0.00%) && let Some(Some(bound_span)) = pred . .bounded_ty . .span 6,696 ( 0.00%) .with_source_text(cx, |src| generic_params_with_bounds.get(src)) 966,672 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/source.rs:::with_source_text::, &rustc_lint::context::EarlyContext, ::check_fn::{closure#0}> (2,232x) . { . emit_lint(cx, *bound_span, pred.bounded_ty.span); . } . }, . WherePredicateKind::RegionPredicate(pred) => { . if !pred.bounds.is_empty() . && let Some(bound_span) = generic_params_with_bounds.get(&pred.lifetime.ident.as_str()) . { . emit_lint(cx, *bound_span, pred.lifetime.ident.span); . } . }, . } . } 2,215 ( 0.00%) } 22,640 ( 0.00%) } . } . . fn emit_lint(cx: &EarlyContext<'_>, bound_span: Span, where_span: Span) { . span_lint( . cx, . MULTIPLE_BOUND_LOCATIONS, . vec![bound_span, where_span], . "bound is defined in more than one place", -- line 83 ---------------------------------------- 6,677 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/box_default.rs -------------------------------------------------------------------------------- Ir -- line 31 ---------------------------------------- . pub BOX_DEFAULT, . style, . "Using Box::new(T::default()) instead of Box::default()" . } . . declare_lint_pass!(BoxDefault => [BOX_DEFAULT]); . . impl LateLintPass<'_> for BoxDefault { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'_>, expr: &Expr<'_>) { . // If the expression is a call (`Box::new(...)`) 105,547 ( 0.00%) if let ExprKind::Call(box_new, [arg]) = expr.kind . // And call is of the form `::something` . // Here, it would be `::new` 18,752 ( 0.00%) && let ExprKind::Path(QPath::TypeRelative(ty, seg)) = box_new.kind . // And that method is `new` 290 ( 0.00%) && seg.ident.name == sym::new . // And the call is that of a `Box` method 244 ( 0.00%) && ty.basic_res().is_lang_item(cx, LangItem::OwnedBox) . // And the single argument to the call is another function call . // This is the `T::default()` (or default equivalent) of `Box::new(T::default())` 10 ( 0.00%) && let ExprKind::Call(arg_path, _) = arg.kind . // And we are not in a foreign crate's macro . && !expr.span.in_external_macro(cx.sess().source_map()) . // And the argument expression has the same context as the outer call expression . // or that we are inside a `vec!` macro expansion . && (expr.span.eq_ctxt(arg.span) || is_local_vec_expn(cx, arg, expr)) . // And the argument is `Default::default()` or the type is specified . && (is_plain_default(cx, arg_path) || (given_type(cx, expr) && is_default_equivalent(cx, arg))) . { -- line 59 ---------------------------------------- -- line 62 ---------------------------------------- . BOX_DEFAULT, . expr.span, . "`Box::new(_)` of default value", . "try", . "Box::default()".into(), . Applicability::MachineApplicable, . ); . } 355,200 ( 0.00%) } . } . . fn is_plain_default(cx: &LateContext<'_>, arg_path: &Expr<'_>) -> bool { . // we need to match the actual path so we don't match e.g. "u8::default" . if let ExprKind::Path(QPath::Resolved(None, path)) = &arg_path.kind . && let Res::Def(_, def_id) = path.res . { . // avoid generic parameters -- line 78 ---------------------------------------- 78 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/format_impl.rs -------------------------------------------------------------------------------- Ir -- line 103 ---------------------------------------- . pub struct FormatImpl { . format_args: FormatArgsStorage, . // Whether we are inside Display or Debug trait impl - None for neither . format_trait_impl: Option, . } . . impl FormatImpl { . pub fn new(format_args: FormatArgsStorage) -> Self { 2 ( 0.00%) Self { . format_args, . format_trait_impl: None, . } . } . } . . impl<'tcx> LateLintPass<'tcx> for FormatImpl { . fn check_impl_item(&mut self, cx: &LateContext<'_>, impl_item: &ImplItem<'_>) { 15,255 ( 0.00%) self.format_trait_impl = is_format_trait_impl(cx, impl_item); 28,881 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/format_impl.rs:clippy_lints::format_impl::is_format_trait_impl (3,051x) . } . . fn check_impl_item_post(&mut self, cx: &LateContext<'_>, impl_item: &ImplItem<'_>) { . // Assume no nested Impl of Debug and Display within each other 12,204 ( 0.00%) if is_format_trait_impl(cx, impl_item).is_some() { 28,881 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/format_impl.rs:clippy_lints::format_impl::is_format_trait_impl (3,051x) 41 ( 0.00%) self.format_trait_impl = None; . } . } . 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 134,070 ( 0.00%) if let Some(format_trait_impl) = self.format_trait_impl { 5,220 ( 0.00%) let linter = FormatImplExpr { . cx, 870 ( 0.00%) format_args: &self.format_args, . expr, . format_trait_impl, . }; . linter.check_to_string_in_display(); . linter.check_self_in_format_args(); . linter.check_print_in_format_impl(); . } 355,200 ( 0.00%) } . } . . struct FormatImplExpr<'a, 'tcx> { . cx: &'a LateContext<'tcx>, . format_args: &'a FormatArgsStorage, . expr: &'tcx Expr<'tcx>, . format_trait_impl: FormatTraitNames, . } . . impl FormatImplExpr<'_, '_> { . fn check_to_string_in_display(&self) { 1,620 ( 0.00%) if self.format_trait_impl.name == sym::Display 3 ( 0.00%) && let ExprKind::MethodCall(path, self_arg, [], _) = self.expr.kind . // Get the hir_id of the object we are calling the method on . // Is the method to_string() ? 3 ( 0.00%) && path.ident.name == sym::to_string . // Is the method a part of the ToString trait? (i.e. not to_string() implemented . // separately) . && self . .cx . .typeck_results() . .type_dependent_def_id(self.expr.hir_id) . .opt_parent(self.cx) . .is_diag_item(self.cx, sym::ToString) -- line 166 ---------------------------------------- -- line 175 ---------------------------------------- . self.expr.span, . "using `self.to_string` in `fmt::Display` implementation will cause infinite recursion", . ); . } . } . . fn check_self_in_format_args(&self) { . // Check each arg in format calls - do we ever use Display on self (directly or via deref)? 84 ( 0.00%) if let Some(outer_macro) = root_macro_call_first_node(self.cx, self.expr) . && let macro_def_id = outer_macro.def_id 56 ( 0.00%) && is_format_macro(self.cx, macro_def_id) 1,736 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::is_format_macro (14x) 88 ( 0.00%) && let Some(format_args) = self.format_args.get(self.cx, self.expr, outer_macro.expn) 16,759 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:::get (11x) . { . for piece in &format_args.template { 81 ( 0.00%) if let FormatArgsPiece::Placeholder(placeholder) = piece 20 ( 0.00%) && let trait_name = match placeholder.format_trait { . FormatTrait::Display => sym::Display, . FormatTrait::Debug => sym::Debug, . FormatTrait::LowerExp => sym::LowerExp, . FormatTrait::UpperExp => sym::UpperExp, . FormatTrait::Octal => sym::Octal, . FormatTrait::Pointer => sym::Pointer, . FormatTrait::Binary => sym::Binary, . FormatTrait::LowerHex => sym::LowerHex, . FormatTrait::UpperHex => sym::UpperHex, . } 26 ( 0.00%) && trait_name == self.format_trait_impl.name 8 ( 0.00%) && let Ok(index) = placeholder.argument.index . && let Some(arg) = format_args.arguments.all_args().get(index) 32 ( 0.00%) && let Some(arg_expr) = find_format_arg_expr(self.expr, arg) 3,814 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::find_format_arg_expr (8x) . { . self.check_format_arg_self(arg_expr); . } . } . } . } . . fn check_format_arg_self(&self, arg: &Expr<'_>) { . // Handle multiple dereferencing of references e.g. &&self . // Handle dereference of &self -> self that is equivalent (i.e. via *self in fmt() impl) . // Since the argument to fmt is itself a reference: &self 24 ( 0.00%) let reference = peel_ref_operators(self.cx, arg); 152 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::peel_ref_operators (8x) . // Is the reference self? 8 ( 0.00%) if reference.res_local_id().map(|x| self.cx.tcx.hir_name(x)) == Some(kw::SelfLower) { 308 ( 0.00%) => ???:::hir_name (4x) . let FormatTraitNames { name, .. } = self.format_trait_impl; . span_lint( . self.cx, . RECURSIVE_FORMAT_IMPL, . self.expr.span, . format!("using `self` as `{name}` in `impl {name}` will cause infinite recursion"), . ); . } . } . . fn check_print_in_format_impl(&self) { 70 ( 0.00%) if let Some(macro_call) = root_macro_call_first_node(self.cx, self.expr) 56 ( 0.00%) && let Some(name) = self.cx.tcx.get_diagnostic_name(macro_call.def_id) 976 ( 0.00%) => ???:::get_diagnostic_name (14x) . { . let replacement = match name { 76 ( 0.00%) sym::print_macro | sym::eprint_macro => "write", . sym::println_macro | sym::eprintln_macro => "writeln", . _ => return, . }; . . let name = name.as_str().strip_suffix("_macro").unwrap(); . . span_lint_and_sugg( . self.cx, -- line 242 ---------------------------------------- -- line 250 ---------------------------------------- . format!("{replacement}!(..)") . }, . Applicability::HasPlaceholders, . ); . } . } . } . 6,102 ( 0.00%) fn is_format_trait_impl(cx: &LateContext<'_>, impl_item: &ImplItem<'_>) -> Option { 6,102 ( 0.00%) if impl_item.ident.name == sym::fmt 360 ( 0.00%) && let ImplItemKind::Fn(_, body_id) = impl_item.kind 180 ( 0.00%) && let Some(Impl { . of_trait: Some(of_trait), . .. 450 ( 0.00%) }) = get_parent_as_impl(cx.tcx, impl_item.hir_id()) 16,512 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_parent_as_impl (90x) 270 ( 0.00%) && let Some(did) = of_trait.trait_ref.trait_def_id() 1,170 ( 0.00%) => ???:::trait_def_id (90x) 450 ( 0.00%) && let Some(name) = cx.tcx.get_diagnostic_name(did) 6,658 ( 0.00%) => ???:::get_diagnostic_name (90x) . && matches!(name, sym::Debug | sym::Display) . { 328 ( 0.00%) let body = cx.tcx.hir_body(body_id); 4,488 ( 0.00%) => ???:::hir_body (82x) 82 ( 0.00%) let formatter_name = body . .params . .get(1) 82 ( 0.00%) .and_then(|param| param.pat.simple_ident()) . .map(|ident| ident.name); . . Some(FormatTraitNames { name, formatter_name }) . } else { . None . } 6,102 ( 0.00%) } 3,074 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/mod.rs -------------------------------------------------------------------------------- Ir -- line 144 ---------------------------------------- . pub(crate) struct GenericShunt<'a, I, R> { . iter: I, . residual: &'a mut Option, . } . . /// Process the given iterator as if it yielded the item's `Try::Output` . /// type instead. Any `Try::Residual`s encountered will stop the inner iterator . /// and be propagated back to the overall result. 90 ( 0.00%) pub(crate) fn try_process(iter: I, mut f: F) -> ChangeOutputType . where . I: Iterator>, . for<'a> F: FnMut(GenericShunt<'a, I, R>) -> U, . R: Residual, . { . // FIXME(#11084): we might be able to get rid of GenericShunt in favor of . // Iterator::scan, as performance should be comparable . 4,549 ( 0.00%) let mut residual = None; . let shunt = GenericShunt { iter, residual: &mut residual }; . let value = f(shunt); 9,098 ( 0.00%) match residual { . Some(r) => FromResidual::from_residual(r), 13,611 ( 0.00%) None => Try::from_output(value), . } 105 ( 0.00%) } . . impl Iterator for GenericShunt<'_, I, R> . where . I: Iterator>, . { . type Item = ::Output; . 77,880 ( 0.00%) fn next(&mut self) -> Option { . self.try_for_each(ControlFlow::Break).break_value() 70,092 ( 0.00%) } . . fn size_hint(&self) -> (usize, Option) { . if self.residual.is_some() { . (0, Some(0)) . } else { . let (_, upper) = self.iter.size_hint(); . (0, upper) . } -- line 186 ---------------------------------------- -- line 187 ---------------------------------------- . } . . fn try_fold(&mut self, init: B, mut f: F) -> T . where . F: FnMut(B, Self::Item) -> T, . T: Try, . { . self.iter 1 ( 0.00%) .try_fold(init, |acc, x| match Try::branch(x) { . ControlFlow::Continue(x) => ControlFlow::from_try(f(acc, x)), . ControlFlow::Break(r) => { 14 ( 0.00%) *self.residual = Some(r); . ControlFlow::Break(try { acc }) . } . }) . .into_try() . } . . impl_fold_via_try_fold! { fold -> try_fold } . } -- line 206 ---------------------------------------- 16 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/methods/wrong_self_convention.rs -------------------------------------------------------------------------------- Ir -- line 34 ---------------------------------------- . NotEndsWith(&'static str), . IsSelfTypeCopy(bool), . ImplementsTrait(bool), . IsTraitItem(bool), . } . . impl Convention { . #[must_use] 67,459 ( 0.00%) fn check<'tcx>( . &self, . cx: &LateContext<'tcx>, . self_ty: Ty<'tcx>, . other: &str, . implements_trait: bool, . is_trait_item: bool, . ) -> bool { 48,185 ( 0.00%) match *self { 22 ( 0.00%) Self::Eq(this) => this == other, 14,944 ( 0.00%) Self::StartsWith(this) => other.starts_with(this) && this != other, 9,611 ( 0.00%) Self::EndsWith(this) => other.ends_with(this) && this != other, . Self::NotEndsWith(this) => !Self::EndsWith(this).check(cx, self_ty, other, implements_trait, is_trait_item), . Self::IsSelfTypeCopy(is_true) => is_true == is_copy(cx, self_ty), . Self::ImplementsTrait(is_true) => is_true == implements_trait, . Self::IsTraitItem(is_true) => is_true == is_trait_item, . } 57,822 ( 0.00%) } . } . . impl fmt::Display for Convention { . fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { . match *self { . Self::Eq(this) => write!(f, "`{this}`"), . Self::StartsWith(this) => write!(f, "`{this}*`"), . Self::EndsWith(this) => write!(f, "`*{this}`"), -- line 67 ---------------------------------------- -- line 76 ---------------------------------------- . Self::IsTraitItem(is_true) => { . let suffix = if is_true { " is" } else { " is not" }; . write!(f, "method{suffix} a trait item") . }, . } . } . } . 13,949 ( 0.00%) pub(super) fn check<'tcx>( . cx: &LateContext<'tcx>, . item_name: Symbol, . self_ty: Ty<'tcx>, . first_arg_ty: Ty<'tcx>, . first_arg_span: Span, . implements_trait: bool, . is_trait_item: bool, . ) { . let item_name_str = item_name.as_str(); . if let Some((conventions, self_kinds)) = &CONVENTIONS.iter().find(|(convs, _)| { . convs . .iter() 79,242 ( 0.00%) .all(|conv| conv.check(cx, self_ty, item_name_str, implements_trait, is_trait_item)) 461,866 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/methods/wrong_self_convention.rs:::check (9,637x) . }) { . // don't lint if it implements a trait but not willing to check `Copy` types conventions (see #7032) 8 ( 0.00%) if implements_trait . && !conventions . .iter() . .any(|conv| matches!(conv, Convention::IsSelfTypeCopy(_))) . { . return; . } 34 ( 0.00%) if !self_kinds.iter().any(|k| k.matches(cx, self_ty, first_arg_ty)) { 149 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/lib.rs:::matches (6x) . let suggestion = { . if conventions.len() > 1 { . // Don't mention `NotEndsWith` when there is also `StartsWith` convention present . let cut_ends_with_conv = conventions.iter().any(|conv| matches!(conv, Convention::StartsWith(_))) . && conventions . .iter() . .any(|conv| matches!(conv, Convention::NotEndsWith(_))); . -- line 115 ---------------------------------------- -- line 133 ---------------------------------------- . "{suggestion} usually take {}", . self_kinds.iter().map(|k| k.description()).format(" or ") . ), . None, . "consider choosing a less ambiguous name", . ); . } . } 8,584 ( 0.00%) } 4 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/unused_io_amount.rs -------------------------------------------------------------------------------- Ir -- line 78 ---------------------------------------- . /// . /// We then check the individual expressions via `check_expr`. We use the same logic for . /// semi expressions and the final expression as we need to check match and if expressions . /// for binding of the io amount to `Ok(_)`. . /// . /// We explicitly check for the match source to be Normal as it needs special logic . /// to consider the arms, and we want to avoid breaking the logic for situations where things . /// get desugared to match. 35,136 ( 0.00%) fn check_block(&mut self, cx: &LateContext<'tcx>, block: &'tcx hir::Block<'tcx>) { 3,904 ( 0.00%) let fn_def_id = block.hir_id.owner.to_def_id(); 23,424 ( 0.00%) if let Some(impl_id) = cx.tcx.trait_impl_of_assoc(fn_def_id) { 499,862 ( 0.01%) => ???:::trait_impl_of_assoc (3,904x) . let trait_id = cx.tcx.impl_trait_id(impl_id); . // We don't want to lint inside io::Read or io::Write implementations, as the author has more . // information about their trait implementation than our lint, see https://github.com/rust-lang/rust-clippy/issues/4836 29,768 ( 0.00%) if let Some(trait_name) = cx.tcx.get_diagnostic_name(trait_id) 163,981 ( 0.00%) => ???:::get_diagnostic_name (3,721x) . && matches!(trait_name, sym::IoRead | sym::IoWrite) . { . return; . } . . let async_paths = [ . &paths::TOKIO_IO_ASYNCREADEXT, . &paths::TOKIO_IO_ASYNCWRITEEXT, -- line 100 ---------------------------------------- -- line 102 ---------------------------------------- . &paths::FUTURES_IO_ASYNCWRITEEXT, . ]; . . if async_paths.into_iter().any(|path| path.matches(cx, trait_id)) { . return; . } . } . 3,904 ( 0.00%) for stmt in block.stmts { 4,878 ( 0.00%) if let hir::StmtKind::Semi(exp) = stmt.kind { 1,276 ( 0.00%) check_expr(cx, exp); 53,125 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/unused_io_amount.rs:clippy_lints::unused_io_amount::check_expr (638x) . } . } . 11,712 ( 0.00%) if let Some(exp) = block.expr 9,921 ( 0.00%) && matches!( 6,862 ( 0.00%) exp.kind, . ExprKind::If(_, _, _) | ExprKind::Match(_, _, hir::MatchSource::Normal) . ) . { 4,230 ( 0.00%) check_expr(cx, exp); 55,752 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/unused_io_amount.rs:clippy_lints::unused_io_amount::check_expr (470x) . } 27,472 ( 0.00%) } . } . . fn non_consuming_err_arm<'a>(cx: &LateContext<'a>, arm: &hir::Arm<'a>) -> bool { . // if there is a guard, we consider the result to be consumed . if arm.guard.is_some() { . return false; . } . if is_unreachable_or_panic(cx, arm.body) { -- line 132 ---------------------------------------- -- line 154 ---------------------------------------- . // if the body is unreachable or there is a panic, . // we consider the result to be consumed . return false; . } . . is_ok_wild_or_dotdot_pattern(cx, arm.pat) . } . 9,972 ( 0.00%) fn check_expr<'a>(cx: &LateContext<'a>, expr: &'a hir::Expr<'a>) { 5,971 ( 0.00%) match expr.kind { . ExprKind::If(cond, _, _) 1,125 ( 0.00%) if let ExprKind::Let(hir::LetExpr { pat, init, .. }) = cond.kind 645 ( 0.00%) && is_ok_wild_or_dotdot_pattern(cx, pat) 26,445 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/unused_io_amount.rs:clippy_lints::unused_io_amount::is_ok_wild_or_dotdot_pattern (129x) . && let Some(op) = should_lint(cx, init) => . { . emit_lint(cx, cond.span, cond.hir_id, op, &[pat.span]); . }, . // we will capture only the case where the match is Ok( ) or Err( ) . // prefer to match the minimum possible, and expand later if needed . // to avoid false positives on something as used as this 2,732 ( 0.00%) ExprKind::Match(expr, [arm1, arm2], hir::MatchSource::Normal) if let Some(op) = should_lint(cx, expr) => { 23,401 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/unused_io_amount.rs:clippy_lints::unused_io_amount::should_lint (286x) . if non_consuming_ok_arm(cx, arm1) && non_consuming_err_arm(cx, arm2) { . emit_lint(cx, expr.span, expr.hir_id, op, &[arm1.pat.span]); . } . if non_consuming_ok_arm(cx, arm2) && non_consuming_err_arm(cx, arm1) { . emit_lint(cx, expr.span, expr.hir_id, op, &[arm2.pat.span]); . } . }, . ExprKind::Match(_, _, hir::MatchSource::Normal) => {}, 3,715 ( 0.00%) _ if let Some(op) = should_lint(cx, expr) => { 26,007 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/unused_io_amount.rs:clippy_lints::unused_io_amount::should_lint (743x) . emit_lint(cx, expr.span, expr.hir_id, op, &[]); . }, . _ => {}, . } 8,864 ( 0.00%) } . 9,261 ( 0.00%) fn should_lint<'a>(cx: &LateContext<'a>, mut inner: &'a hir::Expr<'a>) -> Option { . inner = unpack_match(inner); 1,029 ( 0.00%) inner = unpack_try(cx, inner); . inner = unpack_call_chain(inner); . inner = unpack_await(cx, inner); . // we type-check it to get whether it's a read/write or their vectorized forms . // and keep only the ones that are produce io amount . check_io_mode(cx, inner) 9,261 ( 0.00%) } . . fn is_ok_wild_or_dotdot_pattern<'a>(cx: &LateContext<'a>, pat: &hir::Pat<'a>) -> bool { . // the if checks whether we are in a result Ok( ) pattern . // and the return checks whether it is unhandled . 645 ( 0.00%) if let PatKind::TupleStruct(ref path, inner_pat, _) = pat.kind . // we check against Result::Ok to avoid linting on Err(_) or something else. 903 ( 0.00%) && cx.qpath_res(path, pat.hir_id).ctor_parent(cx).is_lang_item(cx, hir::LangItem::ResultOk) 2,967 ( 0.00%) => ???:::qpath_res (129x) . { . if matches!(inner_pat, []) { . return true; . } . . if let [cons_pat] = inner_pat . && matches!(cons_pat.kind, PatKind::Wild) . { . return true; . } . return false; . } . false 129 ( 0.00%) } . . // this is partially taken from panic_unimplemented . fn is_unreachable_or_panic(cx: &LateContext<'_>, expr: &hir::Expr<'_>) -> bool { . let expr = peel_blocks(expr); . let Some(macro_call) = root_macro_call_first_node(cx, expr) else { . return false; . }; . if is_panic(cx, macro_call.def_id) { . return !cx.tcx.hir_is_inside_const_context(expr.hir_id); . } . cx.tcx.is_diagnostic_item(sym::unreachable_macro, macro_call.def_id) . } . . fn unpack_call_chain<'a>(mut expr: &'a hir::Expr<'a>) -> &'a hir::Expr<'a> { 3,384 ( 0.00%) while let ExprKind::MethodCall(path, receiver, ..) = expr.kind { . if matches!( 277 ( 0.00%) path.ident.name, 2,974 ( 0.00%) sym::unwrap . | sym::expect . | sym::unwrap_or . | sym::unwrap_or_else . | sym::ok . | sym::is_ok . | sym::is_err . | sym::or_else . | sym::or -- line 246 ---------------------------------------- -- line 249 ---------------------------------------- . } else { . break; . } . } . expr . } . . fn unpack_try<'a>(cx: &LateContext<'_>, mut expr: &'a hir::Expr<'a>) -> &'a hir::Expr<'a> { 2,152 ( 0.00%) while let ExprKind::Call(func, [arg_0]) = expr.kind 96 ( 0.00%) && let ExprKind::Path(qpath) = func.kind 96 ( 0.00%) && cx.tcx.qpath_is_lang_item(qpath, hir::LangItem::TryTraitBranch) 904 ( 0.00%) => ???:::qpath_is_lang_item (16x) . { . expr = arg_0; . } . expr . } . . fn unpack_match<'a>(mut expr: &'a hir::Expr<'a>) -> &'a hir::Expr<'a> { 3,111 ( 0.00%) while let ExprKind::Match(res, _, _) = expr.kind { . expr = res; . } . expr . } . . /// If `expr` is an (e).await, return the inner expression "e" that's being . /// waited on. Otherwise return None. . fn unpack_await<'a>(cx: &LateContext<'_>, expr: &'a hir::Expr<'a>) -> &'a hir::Expr<'a> { 1,514 ( 0.00%) if let ExprKind::Match(expr, _, hir::MatchSource::AwaitDesugar) = expr.kind . && let ExprKind::Call(func, [arg_0]) = expr.kind . && let ExprKind::Path(qpath) = func.kind . && cx.tcx.qpath_is_lang_item(qpath, hir::LangItem::IntoFutureIntoFuture) . { . return arg_0; . } . expr . } . . /// Check whether the current expr is a function call for an IO operation . fn check_io_mode(cx: &LateContext<'_>, call: &hir::Expr<'_>) -> Option { 1,514 ( 0.00%) let ExprKind::MethodCall(path, ..) = call.kind else { . return None; . }; . 816 ( 0.00%) let vectorized = match path.ident.as_str() { 10,336 ( 0.00%) => ???:::as_str (272x) 7 ( 0.00%) "write_vectored" | "read_vectored" => true, 28 ( 0.00%) "write" | "read" => false, . _ => { . return None; . }, . }; . 5 ( 0.00%) if let Some(method_def_id) = cx.typeck_results().type_dependent_def_id(call.hir_id) 51 ( 0.00%) => ???:::type_dependent_def_id (1x) 5 ( 0.00%) && let Some(trait_def_id) = cx.tcx.trait_of_assoc(method_def_id) 266 ( 0.00%) => ???:::trait_of_assoc (1x) . { . if let Some(diag_name) = cx.tcx.get_diagnostic_name(trait_def_id) { . match diag_name { . sym::IoRead => Some(IoOp::SyncRead(vectorized)), . sym::IoWrite => Some(IoOp::SyncWrite(vectorized)), . _ => None, . } . } else if paths::FUTURES_IO_ASYNCREADEXT.matches(cx, trait_def_id) -- line 309 ---------------------------------------- 10,929 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/drop_forget_ref.rs -------------------------------------------------------------------------------- Ir -- line 73 ---------------------------------------- . declare_lint_pass!(DropForgetRef => [DROP_NON_DROP, FORGET_NON_DROP, MEM_FORGET]); . . const DROP_NON_DROP_SUMMARY: &str = "call to `std::mem::drop` with a value that does not implement `Drop`. \ . Dropping such a type only extends its contained lifetimes"; . const FORGET_NON_DROP_SUMMARY: &str = "call to `std::mem::forget` with a value that does not implement `Drop`. \ . Forgetting such a type is the same as dropping it"; . . impl<'tcx> LateLintPass<'tcx> for DropForgetRef { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 105,547 ( 0.00%) if let ExprKind::Call(path, [arg]) = expr.kind 13,713 ( 0.00%) && let ExprKind::Path(ref qpath) = path.kind 18,284 ( 0.00%) && let Some(def_id) = cx.qpath_res(qpath, path.hir_id).opt_def_id() 121,099 ( 0.00%) => ???:::qpath_res (4,571x) 22,855 ( 0.00%) && let Some(fn_name) = cx.tcx.get_diagnostic_name(def_id) 301,078 ( 0.00%) => ???:::get_diagnostic_name (4,571x) . { 126 ( 0.00%) let arg_ty = cx.typeck_results().expr_ty(arg); 1,680 ( 0.00%) => ???:::expr_ty (42x) 210 ( 0.00%) let is_copy = is_copy(cx, arg_ty); 4,346 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::is_copy (42x) 62 ( 0.00%) let drop_is_single_call_in_arm = is_single_call_in_arm(cx, arg, expr); . let (lint, msg, note_span) = match fn_name { . // early return for uplifted lints: dropping_references, dropping_copy_types, forgetting_references, . // forgetting_copy_types 169 ( 0.00%) sym::mem_drop if arg_ty.is_ref() && !drop_is_single_call_in_arm => return, . sym::mem_forget if arg_ty.is_ref() => return, . sym::mem_drop if is_copy && !drop_is_single_call_in_arm => return, . sym::mem_forget if is_copy => return, 1 ( 0.00%) sym::mem_drop if arg_ty.is_lang_item(cx, LangItem::ManuallyDrop) => return, . sym::mem_drop 9 ( 0.00%) if !(arg_ty.needs_drop(cx.tcx, cx.typing_env()) 189 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/util.rs:::needs_drop (1x) 30 ( 0.00%) => ???:::typing_env (1x) . || is_must_use_func_call(cx, arg) . || opt_must_use_path(cx, arg_ty).is_some() . || drop_is_single_call_in_arm) => . { . (DROP_NON_DROP, DROP_NON_DROP_SUMMARY.into(), Some(arg.span)) . }, . sym::mem_forget => { . if arg_ty.needs_drop(cx.tcx, cx.typing_env()) { -- line 107 ---------------------------------------- -- line 127 ---------------------------------------- . let note = format!("argument has type `{arg_ty}`"); . if let Some(span) = note_span { . diag.span_note(span, note); . } else { . diag.note(note); . } . }); . } 355,200 ( 0.00%) } . } . . // dropping returned value of a function like in the following snippet is considered idiomatic, see . // #9482 for examples match { . // => drop(fn_with_side_effect_and_returning_some_value()), . // .. . // } . fn is_single_call_in_arm<'tcx>(cx: &LateContext<'tcx>, arg: &'tcx Expr<'_>, drop_expr: &'tcx Expr<'_>) -> bool { 126 ( 0.00%) if matches!(arg.kind, ExprKind::Call(..) | ExprKind::MethodCall(..)) 25 ( 0.00%) && let Node::Arm(Arm { body, .. }) = cx.tcx.parent_hir_node(drop_expr.hir_id) 440 ( 0.00%) => ???:::parent_hir_node (5x) . { . return body.hir_id == drop_expr.hir_id; . } . false . } 13,720 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/lib.rs -------------------------------------------------------------------------------- Ir -- line 177 ---------------------------------------- . } . } . . #[inline] . pub fn with_session_globals(f: F) -> R . where . F: FnOnce(&SessionGlobals) -> R, . { 1,751,316 ( 0.02%) SESSION_GLOBALS.with(f) 1,129,854 ( 0.02%) => /rust/deps/scoped-tls-1.0.1/src/lib.rs:>::with::<::as_str::{closure#0}, &str> (21,318x) . } . . /// Default edition, no source map. . pub fn create_default_session_globals_then(f: impl FnOnce() -> R) -> R { . create_session_globals_then(edition::DEFAULT_EDITION, &[], None, f) . } . . // If this ever becomes non thread-local, `decode_syntax_context` -- line 193 ---------------------------------------- -- line 228 ---------------------------------------- . } . } . . #[inline] . pub fn with_metavar_spans(f: impl FnOnce(&MetavarSpansMap) -> R) -> R { . with_session_globals(|session_globals| f(&session_globals.metavar_spans)) . } . 35 ( 0.00%) bitflags::bitflags! { . /// Scopes used to determined if it need to apply to `--remap-path-prefix` . #[derive(Debug, Eq, PartialEq, Clone, Copy, Ord, PartialOrd, Hash)] . pub struct RemapPathScopeComponents: u8 { . /// Apply remappings to the expansion of `std::file!()` macro . const MACRO = 1 << 0; . /// Apply remappings to printed compiler diagnostics . const DIAGNOSTICS = 1 << 1; . /// Apply remappings to debug information -- line 244 ---------------------------------------- -- line 387 ---------------------------------------- . /// Returns the path suitable for reading from the file system on the local host, . /// if this information exists. . /// . /// May not exists if the filename was imported from another crate. . /// . /// Avoid embedding this in build artifacts; prefer `path()` or `embeddable_name()`. . #[inline] . pub fn local_path(&self) -> Option<&Path> { 18 ( 0.00%) if self.was_not_remapped() { . Some(&self.maybe_remapped.name) . } else if let Some(local) = &self.local { . Some(&local.name) . } else { . None . } . } . -- line 403 ---------------------------------------- -- line 404 ---------------------------------------- . /// Returns the path suitable for reading from the file system on the local host, . /// if this information exists. . /// . /// May not exists if the filename was imported from another crate. . /// . /// Avoid embedding this in build artifacts; prefer `path()` or `embeddable_name()`. . #[inline] . pub fn into_local_path(self) -> Option { 17 ( 0.00%) if self.was_not_remapped() { 34 ( 0.00%) Some(self.maybe_remapped.name) . } else if let Some(local) = self.local { . Some(local.name) . } else { . None . } 68 ( 0.00%) } . . /// Returns whenever the filename was remapped. . #[inline] . pub(crate) fn was_remapped(&self) -> bool { . !self.scopes.is_empty() . } . . /// Returns whenever the filename was fully remapped. -- line 427 ---------------------------------------- -- line 702 ---------------------------------------- . Span::new(self.lo, self.hi, self.ctxt, self.parent) . } . #[inline] . pub fn with_lo(&self, lo: BytePos) -> Span { . Span::new(lo, self.hi, self.ctxt, self.parent) . } . #[inline] . pub fn with_hi(&self, hi: BytePos) -> Span { 4 ( 0.00%) Span::new(self.lo, hi, self.ctxt, self.parent) . } . /// Avoid if possible, `Span::map_ctxt` should be preferred. . #[inline] . fn with_ctxt(&self, ctxt: SyntaxContext) -> Span { . Span::new(self.lo, self.hi, ctxt, self.parent) . } . /// Avoid if possible, `Span::with_parent` should be preferred. . #[inline] -- line 718 ---------------------------------------- -- line 745 ---------------------------------------- . fn cmp(&self, rhs: &Self) -> Ordering { . Ord::cmp(&self.data(), &rhs.data()) . } . } . . impl Span { . #[inline] . pub fn lo(self) -> BytePos { 6,378 ( 0.00%) self.data().lo 126 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::data (6x) . } . #[inline] . pub fn with_lo(self, lo: BytePos) -> Span { . self.data().with_lo(lo) . } . #[inline] . pub fn hi(self) -> BytePos { 10,266 ( 0.00%) self.data().hi 756 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/span_encoding.rs:::data (36x) . } . #[inline] . pub fn with_hi(self, hi: BytePos) -> Span { . self.data().with_hi(hi) . } . #[inline] . pub fn with_ctxt(self, ctxt: SyntaxContext) -> Span { 30 ( 0.00%) self.map_ctxt(|_| ctxt) . } . . #[inline] . pub fn is_visible(self, sm: &SourceMap) -> bool { . !self.is_dummy() && sm.is_span_accessible(self) . } . . /// Returns whether this span originates in a foreign crate's external macro. . /// . /// This is used to test whether a lint should not even begin to figure out whether it should . /// be reported on the current node. . #[inline] 378 ( 0.00%) pub fn in_external_macro(self, sm: &SourceMap) -> bool { 355,941 ( 0.00%) self.ctxt().in_external_macro(sm) 208 ( 0.00%) => ???:::in_external_macro (2x) . } . . /// Returns `true` if `span` originates in a derive-macro's expansion. . pub fn in_derive_expansion(self) -> bool { . matches!(self.ctxt().outer_expn_data().kind, ExpnKind::Macro(MacroKind::Derive, _)) . } . . /// Return whether `span` is generated by `async` or `await`. -- line 791 ---------------------------------------- -- line 2364 ---------------------------------------- . } . . pub fn count_lines(&self) -> usize { . self.lines().len() . } . . #[inline] . pub fn absolute_position(&self, pos: RelativeBytePos) -> BytePos { 4 ( 0.00%) BytePos::from_u32(pos.to_u32() + self.start_pos.to_u32()) . } . . #[inline] . pub fn relative_position(&self, pos: BytePos) -> RelativeBytePos { 6,510 ( 0.00%) RelativeBytePos::from_u32(pos.to_u32() - self.start_pos.to_u32()) . } . . #[inline] . pub fn end_position(&self) -> BytePos { . self.absolute_position(self.normalized_source_len) . } . . /// Finds the line containing the given position. The return value is the -- line 2385 ---------------------------------------- -- line 2649 ---------------------------------------- . impl Pos for $ident { . #[inline(always)] . fn from_usize(n: usize) -> $ident { . $ident(n as $inner_ty) . } . . #[inline(always)] . fn to_usize(&self) -> usize { 13,758 ( 0.00%) self.0 as usize . } . . #[inline(always)] . fn from_u32(n: u32) -> $ident { . $ident(n as $inner_ty) . } . . #[inline(always)] . fn to_u32(&self) -> u32 { 4 ( 0.00%) self.0 as u32 . } . } . . impl Add for $ident { . type Output = $ident; . . #[inline(always)] . fn add(self, rhs: $ident) -> $ident { -- line 2675 ---------------------------------------- -- line 2677 ---------------------------------------- . } . } . . impl Sub for $ident { . type Output = $ident; . . #[inline(always)] . fn sub(self, rhs: $ident) -> $ident { 3,548 ( 0.00%) $ident(self.0 - rhs.0) . } . } . )* . }; . } . . impl_pos! { . /// A byte offset. . /// . /// Keep this small (currently 32-bits), as AST contains a lot of them. 1,112 ( 0.00%) #[derive(Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, Debug)] . pub struct BytePos(pub u32); . . /// A byte offset relative to file beginning. . #[derive(Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, Debug, StableHash)] . pub struct RelativeBytePos(pub u32); . . /// A character offset. . /// -- line 2704 ---------------------------------------- 240,824 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/intrinsics/mod.rs -------------------------------------------------------------------------------- Ir -- line 447 ---------------------------------------- . /// Therefore, implementations must not require the user to uphold . /// any safety invariants. . /// . /// This intrinsic does not have a stable counterpart. . #[unstable(feature = "core_intrinsics", issue = "none")] . #[rustc_nounwind] . #[inline(always)] . pub const fn likely(b: bool) -> bool { 105,549 ( 0.00%) if b { . true . } else { . cold_path(); . false . } . } . . /// Hints to the compiler that branch condition is likely to be false. -- line 463 ---------------------------------------- -- line 470 ---------------------------------------- . /// Therefore, implementations must not require the user to uphold . /// any safety invariants. . /// . /// This intrinsic does not have a stable counterpart. . #[unstable(feature = "core_intrinsics", issue = "none")] . #[rustc_nounwind] . #[inline(always)] . pub const fn unlikely(b: bool) -> bool { 116,759 ( 0.00%) if b { . cold_path(); . true . } else { . false . } . } . . /// Returns either `true_val` or `false_val` depending on condition `b` with a -- line 486 ---------------------------------------- -- line 2207 ---------------------------------------- . #[rustc_nounwind] . #[rustc_intrinsic] . #[rustc_allow_const_fn_unstable(const_trait_impl, funnel_shifts)] . #[miri::intrinsic_fallback_is_spec] . pub const fn rotate_left(x: T, shift: u32) -> T { . // Make sure to call the intrinsic for `funnel_shl`, not the fallback impl. . // SAFETY: we modulo `shift` so that the result is definitely less than the size of . // `T` in bits. 30,051 ( 0.00%) unsafe { unchecked_funnel_shl(x, x, shift % (mem::size_of::() as u32 * 8)) } . } . . /// Performs rotate right. . /// . /// Note that, unlike most intrinsics, this is safe to call; . /// it does not require an `unsafe` block. . /// Therefore, implementations must not require the user to uphold . /// any safety invariants. -- line 2223 ---------------------------------------- -- line 2615 ---------------------------------------- . @capture$([$($binders:tt)*])? { $($arg:ident : $ty:ty = $val:expr),* $(,)? } $( -> $ret:ty )? : . if const . $(#[$compiletime_attr:meta])* $compiletime:block . else . $(#[$runtime_attr:meta])* $runtime:block . ) => {{ . #[inline] . $(#[$runtime_attr])* 504 ( 0.00%) fn runtime$(<$($binders)*>)?($($arg: $ty),*) $( -> $ret )? { . $runtime . } . . #[inline] . $(#[$compiletime_attr])* . const fn compiletime$(<$($binders)*>)?($($arg: $ty),*) $( -> $ret )? { . // Don't warn if one of the arguments is unused. . $(let _ = $arg;)* -- line 2631 ---------------------------------------- 87,686 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_data_structures/src/sync/freeze.rs -------------------------------------------------------------------------------- Ir -- line 67 ---------------------------------------- . hint::cold_path(); . None . } . } . . #[inline] . pub fn read(&self) -> FreezeReadGuard<'_, T> { . FreezeReadGuard { 46,068 ( 0.00%) _lock_guard: if self.frozen.load(Ordering::Acquire) { . None . } else { . Some(self.lock.read()) . }, . data: unsafe { NonNull::new_unchecked(self.data.get()) }, . } . } . -- line 83 ---------------------------------------- -- line 137 ---------------------------------------- . // the data cannot be modified and shared access is sound. . unsafe { &*self.data.as_ptr() } . } . } . . impl<'a, T: ?Sized> FreezeReadGuard<'a, T> { . #[inline] . pub fn map(this: Self, f: impl FnOnce(&T) -> &U) -> FreezeReadGuard<'a, U> { 12,988 ( 0.00%) FreezeReadGuard { data: NonNull::from(f(&*this)), _lock_guard: this._lock_guard } . } . } . . /// A guard holding mutable access to a `FreezeLock` which is in a locked state or frozen. . #[must_use = "if unused the FreezeLock may immediately unlock"] . pub struct FreezeWriteGuard<'a, T: ?Sized> { . _lock_guard: WriteGuard<'a, ()>, . frozen: &'a AtomicBool, -- line 153 ---------------------------------------- 23,034 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/manual_ignore_case_cmp.rs -------------------------------------------------------------------------------- Ir -- line 41 ---------------------------------------- . . declare_lint_pass!(ManualIgnoreCaseCmp => [MANUAL_IGNORE_CASE_CMP]); . . enum MatchType<'a> { . ToAscii(bool, Ty<'a>), . Literal(LitKind), . } . 280 ( 0.00%) fn get_ascii_type<'a>(cx: &LateContext<'a>, kind: rustc_hir::ExprKind<'_>) -> Option<(Span, MatchType<'a>)> { 175 ( 0.00%) if let MethodCall(path, expr, _, _) = kind { . let is_lower = match path.ident.name { . sym::to_ascii_lowercase => true, . sym::to_ascii_uppercase => false, . _ => return None, . }; . let ty_raw = cx.typeck_results().expr_ty(expr); . let ty = ty_raw.peel_refs(); . if needs_ref_to_cmp(cx, ty) -- line 58 ---------------------------------------- -- line 61 ---------------------------------------- . || matches!(ty.opt_diag_name(cx), Some(sym::OsStr | sym::OsString)) . { . return Some((expr.span, ToAscii(is_lower, ty_raw))); . } . } else if let Lit(expr) = kind { . return Some((expr.span, Literal(expr.node))); . } . None 280 ( 0.00%) } . . /// Returns true if the type needs to be dereferenced to be compared . fn needs_ref_to_cmp(cx: &LateContext<'_>, ty: Ty<'_>) -> bool { . ty.is_char() . || *ty.kind() == ty::Uint(UintTy::U8) . || ty.is_diag_item(cx, sym::Vec) . || ty.is_lang_item(cx, LangItem::String) . } . . impl LateLintPass<'_> for ManualIgnoreCaseCmp { 355,200 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'_>, expr: &'_ Expr<'_>) { . // check if expression represents a comparison of two strings . // using .to_ascii_lowercase() or .to_ascii_uppercase() methods, . // or one of the sides is a literal . // Offer to replace it with .eq_ignore_ascii_case() method 88,800 ( 0.00%) if let Binary(op, left, right) = &expr.kind 1,178 ( 0.00%) && (op.node == BinOpKind::Eq || op.node == BinOpKind::Ne) 595 ( 0.00%) && let Some((left_span, left_val)) = get_ascii_type(cx, left.kind) 805 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/manual_ignore_case_cmp.rs:clippy_lints::manual_ignore_case_cmp::get_ascii_type (35x) . && let Some((right_span, right_val)) = get_ascii_type(cx, right.kind) . && match (&left_val, &right_val) { . (ToAscii(l_lower, ..), ToAscii(r_lower, ..)) if l_lower == r_lower => true, . (ToAscii(..), Literal(..)) | (Literal(..), ToAscii(..)) => true, . _ => false, . } . { . let deref = match right_val { -- line 95 ---------------------------------------- -- line 117 ---------------------------------------- . expr.span, . "consider using `.eq_ignore_ascii_case()` instead", . format!("{neg}{left_snip}.eq_ignore_ascii_case({deref}{right_snip})"), . app, . ); . }, . ); . } 355,200 ( 0.00%) } . } 521 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/flatten.rs -------------------------------------------------------------------------------- Ir -- line 15 ---------------------------------------- . #[must_use = "iterators are lazy and do nothing unless consumed"] . #[stable(feature = "rust1", since = "1.0.0")] . pub struct FlatMap { . inner: FlattenCompat, ::IntoIter>, . } . . impl U> FlatMap { . pub(in crate::iter) fn new(iter: I, f: F) -> FlatMap { 355,212 ( 0.00%) FlatMap { inner: FlattenCompat::new(iter.map(f)) } . } . . pub(crate) fn into_parts(self) -> (Option, Option, Option) { . ( . self.inner.frontiter, . self.inner.iter.into_inner().map(Map::into_inner), . self.inner.backiter, . ) -- line 31 ---------------------------------------- -- line 183 ---------------------------------------- . #[stable(feature = "iterator_flatten", since = "1.29.0")] . pub struct Flatten> { . inner: FlattenCompat::IntoIter>, . } . . #[rustc_const_unstable(feature = "const_iter", issue = "92476")] . const impl> Flatten { . pub(in super::super) fn new(iter: I) -> Flatten { 4,110 ( 0.00%) Flatten { inner: FlattenCompat::new(iter) } . } . } . . #[stable(feature = "iterator_flatten", since = "1.29.0")] . impl fmt::Debug for Flatten . where . I: fmt::Debug + Iterator>, . U: fmt::Debug + Iterator, -- line 199 ---------------------------------------- -- line 242 ---------------------------------------- . self.inner.try_fold(init, fold) . } . . #[inline] . fn fold(self, init: Acc, fold: Fold) -> Acc . where . Fold: FnMut(Acc, Self::Item) -> Acc, . { 56,303 ( 0.00%) self.inner.fold(init, fold) . } . . #[inline] . fn advance_by(&mut self, n: usize) -> Result<(), NonZero> { . self.inner.advance_by(n) . } . . #[inline] -- line 258 ---------------------------------------- -- line 383 ---------------------------------------- . fn iter_fold(self, mut acc: Acc, mut fold: Fold) -> Acc . where . Fold: FnMut(Acc, U) -> Acc, . { . #[inline] . fn flatten( . fold: &mut impl FnMut(Acc, T::IntoIter) -> Acc, . ) -> impl FnMut(Acc, T) -> Acc + '_ { 6 ( 0.00%) move |acc, iter| fold(acc, iter.into_iter()) . } . 8,683 ( 0.00%) if let Some(iter) = self.frontiter { . acc = fold(acc, iter); . } . 15 ( 0.00%) acc = self.iter.fold(acc, flatten(&mut fold)); . 21,671 ( 0.00%) if let Some(iter) = self.backiter { . acc = fold(acc, iter); . } . . acc . } . . /// Folds over the inner iterators as long as the given function returns successfully, . /// always storing the most recent inner iterator in `self.frontiter`. . /// . /// Folds over the inner iterators, not over their elements. Is used by the `try_fold` and . /// `advance_by` methods. . #[inline] 36 ( 0.00%) fn iter_try_fold(&mut self, mut acc: Acc, mut fold: Fold) -> R . where . Fold: FnMut(Acc, &mut U) -> R, . R: Try, . { . #[inline] . fn flatten<'a, T: IntoIterator, Acc, R: Try>( . frontiter: &'a mut Option, . fold: &'a mut impl FnMut(Acc, &mut T::IntoIter) -> R, . ) -> impl FnMut(Acc, T) -> R + 'a { 1,515 ( 0.00%) move |acc, iter| fold(acc, frontiter.insert(iter.into_iter())) 690,232 ( 0.01%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/take_while.rs: as core::iter::traits::iterator::Iterator>::try_fold::flatten::, clippy_utils::macros::macro_backtrace::{closure#0}>, clippy_utils::macros::first_node_macro_backtrace::{closure#0}::{closure#0}>, (), core::ops::control_flow::ControlFlow, core::iter::traits::iterator::Iterator::find::check::{closure#0}>::{closure#0} (1,450x) . } . 106 ( 0.00%) if let Some(iter) = &mut self.frontiter { . acc = fold(acc, iter)?; . } 133,338 ( 0.00%) self.frontiter = None; . 93 ( 0.00%) acc = self.iter.try_fold(acc, flatten(&mut self.frontiter, &mut fold))?; 45,860 ( 0.00%) self.frontiter = None; . 91,723 ( 0.00%) if let Some(iter) = &mut self.backiter { . acc = fold(acc, iter)?; . } 52 ( 0.00%) self.backiter = None; . . try { acc } 32 ( 0.00%) } . } . . impl FlattenCompat . where . I: DoubleEndedIterator>, . { . /// Folds the inner iterators into an accumulator by applying an operation, starting form the . /// back. -- line 448 ---------------------------------------- -- line 514 ---------------------------------------- . where . I: Iterator>, . U: Iterator, . { . type Item = U::Item; . . #[inline] . default fn next(&mut self) -> Option { 6,706 ( 0.00%) loop { . if let elt @ Some(_) = and_then_or_clear(&mut self.frontiter, Iterator::next) { . return elt; . } 3,897 ( 0.00%) match self.iter.next() { . None => return and_then_or_clear(&mut self.backiter, Iterator::next), . Some(inner) => self.frontiter = Some(inner.into_iter()), . } . } . } . . #[inline] . default fn size_hint(&self) -> (usize, Option) { -- line 534 ---------------------------------------- -- line 558 ---------------------------------------- . Self: Sized, . Fold: FnMut(Acc, Self::Item) -> R, . R: Try, . { . #[inline] . fn flatten>( . mut fold: impl FnMut(Acc, U::Item) -> R, . ) -> impl FnMut(Acc, &mut U) -> R { 1,481 ( 0.00%) move |acc, iter| iter.try_fold(acc, &mut fold) . } . 4 ( 0.00%) self.iter_try_fold(init, flatten(fold)) 348 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/flatten.rs:, ::all_fields::{closure#0}>, core::slice::iter::Iter>>::iter_try_fold::<(), as core::iter::traits::iterator::Iterator>::try_fold::flatten, (), core::ops::control_flow::ControlFlow<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::Ty>>, core::iter::traits::iterator::Iterator::find_map::check<&rustc_middle::ty::FieldDef, &rustc_middle::ty::list::RawList<(), rustc_middle::ty::Ty>, ::interior_mut_ty_chain_inner::{closure#2}>::{closure#0}>::{closure#0}, core::ops::control_flow::ControlFlow<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::Ty>>> (1x) . } . . #[inline] . default fn fold(self, init: Acc, fold: Fold) -> Acc . where . Fold: FnMut(Acc, Self::Item) -> Acc, . { . #[inline] -- line 577 ---------------------------------------- -- line 602 ---------------------------------------- . } . } . . #[inline] . default fn count(self) -> usize { . #[inline] . #[rustc_inherit_overflow_checks] . fn count(acc: usize, iter: U) -> usize { 507 ( 0.00%) acc + iter.count() . } . 280 ( 0.00%) self.iter_fold(0, count) . } . . #[inline] . default fn last(self) -> Option { . #[inline] . fn last(last: Option, iter: U) -> Option { . iter.last().or(last) . } -- line 621 ---------------------------------------- -- line 847 ---------------------------------------- . // `frontiter` or `backiter` without consuming the item, so we **must** override those. . impl Iterator for FlattenCompat . where . I: Iterator>, . U: Iterator + OneShot, . { . #[inline] . fn next(&mut self) -> Option { 4,278 ( 0.00%) while let Some(inner) = self.iter.next() { 548 ( 0.00%) if let item @ Some(_) = inner.into_iter().next() { . return item; . } . } . None . } . . #[inline] . fn size_hint(&self) -> (usize, Option) { -- line 864 ---------------------------------------- 130,890 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/symbol.rs -------------------------------------------------------------------------------- Ir -- line 2414 ---------------------------------------- . // tidy-alphabetical-end . } . } . . /// Symbols for crates that are part of the stable standard library: `std`, `core`, `alloc`, and . /// `proc_macro`. . pub const STDLIB_STABLE_CRATES: &[Symbol] = &[sym::std, sym::core, sym::alloc, sym::proc_macro]; . 80 ( 0.00%) #[derive(Copy, Clone, Eq, StableHash, Encodable, Decodable)] . pub struct Ident { . /// `name` should never be the empty symbol. If you are considering that, . /// you are probably conflating "empty identifier with "no identifier" and . /// you should use `Option` instead. . /// Trying to construct an `Ident` with an empty name will trigger debug assertions. . pub name: Symbol, . pub span: Span, . } . . impl Ident { . #[inline] . /// Constructs a new identifier from a symbol and a span. . pub fn new(name: Symbol, span: Span) -> Ident { . debug_assert_ne!(name, sym::empty); 147 ( 0.00%) Ident { name, span } . } . . /// Constructs a new identifier with a dummy span. . #[inline] . pub fn with_dummy_span(name: Symbol) -> Ident { . Ident::new(name, DUMMY_SP) . } . -- line 2445 ---------------------------------------- -- line 2502 ---------------------------------------- . pub fn as_str(&self) -> &str { . self.name.as_str() . } . } . . impl PartialEq for Ident { . #[inline] . fn eq(&self, rhs: &Self) -> bool { 129 ( 0.00%) self.name == rhs.name && self.span.eq_ctxt(rhs.span) . } . } . . impl Hash for Ident { . fn hash(&self, state: &mut H) { . self.name.hash(state); . self.span.ctxt().hash(state); . } -- line 2518 ---------------------------------------- -- line 2654 ---------------------------------------- . /// because `rustc_index::newtype_index!` reserves the last 256 values for tagging purposes. . /// . /// Note that `Symbol` cannot directly be a `rustc_index::newtype_index!` because it . /// implements `fmt::Debug`, `Encodable`, and `Decodable` in special ways. . #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] . pub struct Symbol(SymbolIndex); . . // Used within both `Symbol` and `ByteSymbol`. 784 ( 0.00%) rustc_index::newtype_index! { . #[orderable] . struct SymbolIndex {} . } . . impl Symbol { . /// Avoid this except for things like deserialization of previously . /// serialized symbols, and testing. Use `intern` instead. . pub const fn new(n: u32) -> Self { . Symbol(SymbolIndex::from_u32(n)) . } . . /// Maps a string to its interned representation. . #[rustc_diagnostic_item = "SymbolIntern"] . #[inline] . pub fn intern(str: &str) -> Self { 437 ( 0.00%) with_session_globals(|session_globals| session_globals.symbol_interner.intern_str(str)) 171 ( 0.00%) => ???:::intern_str (1x) . } . . /// Access the underlying string. This is a slowish operation because it . /// requires locking the symbol interner. . /// . /// Note that the lifetime of the return value is a lie. It's not the same . /// as `&self`, but actually tied to the lifetime of the underlying . /// interner. Interners are long-lived, and there are very few of them, and . /// this function is typically used for short-lived things, so in practice . /// it works out ok. . #[inline] . pub fn as_str(&self) -> &str { . with_session_globals(|session_globals| unsafe { 125,417 ( 0.00%) std::mem::transmute::<&str, &str>(session_globals.symbol_interner.get_str(*self)) 112,500 ( 0.00%) => ???:::get_str (3,125x) . }) . } . . pub fn as_u32(self) -> u32 { . self.0.as_u32() . } . . pub fn is_empty(self) -> bool { -- line 2700 ---------------------------------------- 1,916 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/functions/renamed_function_params.rs -------------------------------------------------------------------------------- Ir -- line 4 ---------------------------------------- . use rustc_hir::{Impl, ImplItem, ImplItemKind, ItemKind, Node, TraitRef}; . use rustc_lint::LateContext; . use rustc_span::Span; . use rustc_span::symbol::{Ident, kw}; . use std::iter; . . use super::RENAMED_FUNCTION_PARAMS; . 21,357 ( 0.00%) pub(super) fn check_impl_item(cx: &LateContext<'_>, item: &ImplItem<'_>, ignored_traits: &DefIdSet) { 6,205 ( 0.00%) if !item.span.from_expansion() 3,154 ( 0.00%) && let ImplItemKind::Fn(_, body_id) = item.kind 3,420 ( 0.00%) && let parent_node = cx.tcx.parent_hir_node(item.hir_id()) 99,864 ( 0.00%) => ???:::parent_hir_node (684x) 2,052 ( 0.00%) && let Node::Item(parent_item) = parent_node 2,052 ( 0.00%) && let ItemKind::Impl(Impl { . of_trait: Some(of_trait), . .. 684 ( 0.00%) }) = &parent_item.kind . && let Some(did) = cx.tcx.trait_item_of(item.owner_id) 1,920 ( 0.00%) && !is_from_ignored_trait(&of_trait.trait_ref, ignored_traits) . { 3,840 ( 0.00%) let mut param_idents_iter = cx.tcx.hir_body_param_idents(body_id); 36,036 ( 0.00%) => ???:::hir_body_param_idents (640x) . let mut default_param_idents_iter = cx.tcx.fn_arg_idents(did).iter().copied(); . 640 ( 0.00%) let renames = RenamedFnArgs::new(&mut default_param_idents_iter, &mut param_idents_iter); 254,636 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/functions/renamed_function_params.rs:::new::>>, core::iter::adapters::map::Map, ::hir_body_param_idents::{closure#0}>> (640x) 640 ( 0.00%) if !renames.0.is_empty() { 412 ( 0.00%) let multi_span = renames.multi_span(); 11,742 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/functions/renamed_function_params.rs:::multi_span (103x) 721 ( 0.00%) let plural = if renames.0.len() == 1 { "" } else { "s" }; 721 ( 0.00%) span_lint_and_then( 155,374 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/diagnostics.rs:clippy_utils::diagnostics::span_lint_and_then:: (103x) . cx, . RENAMED_FUNCTION_PARAMS, . multi_span, 309 ( 0.00%) format!("renamed function parameter{plural} of trait impl"), 515 ( 0.00%) |diag| { . diag.multipart_suggestion( . format!("consider using the default name{plural}"), . renames.0, . Applicability::Unspecified, . ); . }, . ); . } 537 ( 0.00%) } 10,203 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:core::ptr::drop_glue::> (537x) 24,408 ( 0.00%) } . . struct RenamedFnArgs(Vec<(Span, String)>); . . impl RenamedFnArgs { . /// Comparing between an iterator of default names and one with current names, . /// then collect the ones that got renamed. 5,760 ( 0.00%) fn new(default_idents: &mut I1, current_idents: &mut I2) -> Self . where . I1: Iterator>, . I2: Iterator>, . { . let mut renamed: Vec<(Span, String)> = vec![]; . . debug_assert_eq!(default_idents.size_hint(), current_idents.size_hint()); . for (default_ident, current_ident) in iter::zip(default_idents, current_idents) { . let has_name_to_check = |ident: Option| { . ident . .filter(|ident| ident.name != kw::Underscore) . .filter(|ident| !ident.name.as_str().starts_with('_')) . }; . 2,516 ( 0.00%) if let Some(default_ident) = has_name_to_check(default_ident) . && let Some(current_ident) = has_name_to_check(current_ident) 1,132 ( 0.00%) && default_ident.name != current_ident.name . { . renamed.push((current_ident.span, default_ident.to_string())); . } . } . 4,480 ( 0.00%) Self(renamed) 5,120 ( 0.00%) } . 824 ( 0.00%) fn multi_span(&self) -> MultiSpan { . self.0 . .iter() . .map(|(span, _)| span) . .copied() . .collect::>() . .into() 618 ( 0.00%) } . } . . fn is_from_ignored_trait(of_trait: &TraitRef<'_>, ignored_traits: &DefIdSet) -> bool { . of_trait 640 ( 0.00%) .trait_def_id() 8,320 ( 0.00%) => ???:::trait_def_id (640x) . .is_some_and(|trait_did| ignored_traits.contains(&trait_did)) . } 4,568 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_utils/src/lib.rs -------------------------------------------------------------------------------- Ir -- line 128 ---------------------------------------- . /// Methods on `Vec` that also exists on slices. . pub const VEC_METHODS_SHADOWING_SLICE_METHODS: [Symbol; 3] = [sym::as_ptr, sym::is_empty, sym::len]; . . #[macro_export] . macro_rules! extract_msrv_attr { . () => { . fn check_attributes(&mut self, cx: &rustc_lint::EarlyContext<'_>, attrs: &[rustc_ast::ast::Attribute]) { . let sess = rustc_lint::LintContext::sess(cx); 1,350,362 ( 0.02%) self.msrv.check_attributes(attrs); 1,230,820 ( 0.02%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:::check_attributes (261,844x) . } . . fn check_attributes_post(&mut self, cx: &rustc_lint::EarlyContext<'_>, attrs: &[rustc_ast::ast::Attribute]) { . let sess = rustc_lint::LintContext::sess(cx); 1,284,901 ( 0.02%) self.msrv.check_attributes_post(attrs); 1,230,820 ( 0.02%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:::check_attributes_post (261,844x) . } . }; . } . . /// If the given expression is a local binding, find the initializer expression. . /// If that initializer expression is another local binding, find its initializer again. . /// . /// This process repeats as long as possible (but usually no more than once). Initializer -- line 149 ---------------------------------------- -- line 160 ---------------------------------------- . /// . /// // or... . /// let abc = 1; . /// let def = abc + 2; . /// // ^^^^^^^ output . /// dbg!(def); . /// // ^^^ input . /// ``` 53,371 ( 0.00%) pub fn expr_or_init<'a, 'b, 'tcx: 'b>(cx: &LateContext<'tcx>, mut expr: &'a Expr<'b>) -> &'a Expr<'b> { . while let Some(init) = expr . .res_local_id() . .and_then(|id| find_binding_init(cx, id)) 3 ( 0.00%) .filter(|init| cx.typeck_results().expr_adjustments(init).is_empty()) 36 ( 0.00%) => ???:::expr_adjustments (1x) . { . expr = init; . } . expr 32,022 ( 0.00%) } . . /// Finds the initializer expression for a local binding. Returns `None` if the binding is mutable. . /// . /// By only considering immutable bindings, we guarantee that the returned expression represents the . /// value of the binding wherever it is referenced. . /// . /// Example: For `let x = 1`, if the `HirId` of `x` is provided, the `Expr` `1` is returned. . /// Note: If you have an expression that references a binding `x`, use `path_to_local` to get the . /// canonical binding `HirId`. 18 ( 0.00%) pub fn find_binding_init<'tcx>(cx: &LateContext<'tcx>, hir_id: HirId) -> Option<&'tcx Expr<'tcx>> { 5,019 ( 0.00%) if let Node::Pat(pat) = cx.tcx.hir_node(hir_id) 36,690 ( 0.00%) => ???:::hir_node (624x) 3,756 ( 0.00%) && matches!(pat.kind, PatKind::Binding(BindingMode::NONE, ..)) 4,369 ( 0.00%) && let Node::LetStmt(local) = cx.tcx.parent_hir_node(hir_id) 63,396 ( 0.00%) => ???:::parent_hir_node (624x) . { 1 ( 0.00%) return local.init; . } . None 15 ( 0.00%) } . . /// Checks if the given local has an initializer or is from something other than a `let` statement . /// . /// e.g. returns true for `x` in `fn f(x: usize) { .. }` and `let x = 1;` but false for `let x;` . pub fn local_is_initialized(cx: &LateContext<'_>, local: HirId) -> bool { . for (_, node) in cx.tcx.hir_parent_iter(local) { . match node { . Node::Pat(..) | Node::PatField(..) => {}, -- line 203 ---------------------------------------- -- line 216 ---------------------------------------- . /// `tcx.hir_is_inside_const_context(_)`. . /// . /// Do not call this unless the `LateContext` has an enclosing body. For release build this case . /// will safely return `false`, but debug builds will ICE. Note that `check_expr`, `check_block`, . /// `check_pat` and a few other entry points will always have an enclosing body. Some entry points . /// like `check_path` or `check_ty` may or may not have one. . pub fn is_in_const_context(cx: &LateContext<'_>) -> bool { . debug_assert!(cx.enclosing_body.is_some(), "`LateContext` has no enclosing body"); 29,624 ( 0.00%) cx.enclosing_body.is_some_and(|id| { 14,812 ( 0.00%) cx.tcx 74,060 ( 0.00%) .hir_body_const_context(cx.tcx.hir_body_owner_def_id(id)) 2,472,334 ( 0.03%) => ???:::hir_body_const_context (14,812x) 1,643,899 ( 0.02%) => ???:::hir_body_owner_def_id (14,812x) . .is_some() . }) 14,812 ( 0.00%) } . . /// Returns `true` if the given `HirId` is inside an always constant context. . /// . /// This context includes: . /// * const/static items . /// * const blocks (or inline consts) . /// * associated constants 342 ( 0.00%) pub fn is_inside_always_const_context(tcx: TyCtxt<'_>, hir_id: HirId) -> bool { . use rustc_hir::ConstContext::{Const, ConstFn, Static}; 1,368 ( 0.00%) let Some(ctx) = tcx.hir_body_const_context(tcx.hir_enclosing_body_owner(hir_id)) else { 63,331 ( 0.00%) => ???:::hir_enclosing_body_owner (171x) 26,487 ( 0.00%) => ???:::hir_body_const_context (171x) . return false; . }; . match ctx { . ConstFn => false, . Static(_) . | Const { . allow_const_fn_promotion: _, . } => true, . } 342 ( 0.00%) } . . /// Checks if `{ctor_call_id}(...)` is `{enum_item}::{variant_name}(...)`. . pub fn is_enum_variant_ctor( . cx: &LateContext<'_>, . enum_item: Symbol, . variant_name: Symbol, . ctor_call_id: DefId, . ) -> bool { -- line 257 ---------------------------------------- -- line 277 ---------------------------------------- . }, . _ => did, . }; . . cx.tcx.is_diagnostic_item(item, did) . } . . /// Checks if the `DefId` matches the given `LangItem` or it's constructor. 3,840 ( 0.00%) pub fn is_lang_item_or_ctor(cx: &LateContext<'_>, did: DefId, item: LangItem) -> bool { 2,688 ( 0.00%) let did = match cx.tcx.def_kind(did) { . DefKind::Ctor(..) => cx.tcx.parent(did), . // Constructors for types in external crates seem to have `DefKind::Variant` . DefKind::Variant => match cx.tcx.opt_parent(did) { . Some(did) if matches!(cx.tcx.def_kind(did), DefKind::Variant) => did, . _ => did, . }, . _ => did, . }; . 768 ( 0.00%) cx.tcx.lang_items().get(item) == Some(did) 11,520 ( 0.00%) => ???:::lang_items (384x) 3,072 ( 0.00%) } . . /// Checks is `expr` is `None` . pub fn is_none_expr(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool { 6 ( 0.00%) expr.basic_res().ctor_parent(cx).is_lang_item(cx, OptionNone) 350 ( 0.00%) } . . /// If `expr` is `Some(inner)`, returns `inner` 19 ( 0.00%) pub fn as_some_expr<'tcx>(cx: &LateContext<'_>, expr: &'tcx Expr<'tcx>) -> Option<&'tcx Expr<'tcx>> { 38 ( 0.00%) if let ExprKind::Call(e, [arg]) = expr.kind . && e.basic_res().ctor_parent(cx).is_lang_item(cx, OptionSome) . { . Some(arg) . } else { . None . } 19 ( 0.00%) } . . /// Check if the given `Expr` is an empty block (i.e. `{}`) or not. . pub fn is_empty_block(expr: &Expr<'_>) -> bool { . matches!( . expr.kind, . ExprKind::Block( . Block { . stmts: [], -- line 321 ---------------------------------------- -- line 324 ---------------------------------------- . }, . _, . ) . ) . } . . /// Checks if `expr` is an empty block or an empty tuple. . pub fn is_unit_expr(expr: &Expr<'_>) -> bool { 6,469 ( 0.00%) matches!( 4,310 ( 0.00%) expr.kind, . ExprKind::Block( . Block { . stmts: [], . expr: None, . .. . }, . _ . ) | ExprKind::Tup([]) . ) . } . . /// Checks if given pattern is a wildcard (`_`) . pub fn is_wild(pat: &Pat<'_>) -> bool { 20 ( 0.00%) matches!(pat.kind, PatKind::Wild) . } . . /// If `pat` is: . /// - `Some(inner)`, returns `inner` . /// - it will _usually_ contain just one element, but could have two, given patterns like . /// `Some(inner, ..)` or `Some(.., inner)` . /// - `Some`, returns `[]` . /// - otherwise, returns `None` 108 ( 0.00%) pub fn as_some_pattern<'a, 'hir>(cx: &LateContext<'_>, pat: &'a Pat<'hir>) -> Option<&'a [Pat<'hir>]> { 90 ( 0.00%) if let PatKind::TupleStruct(ref qpath, inner, _) = pat.kind 36 ( 0.00%) && cx 90 ( 0.00%) .qpath_res(qpath, pat.hir_id) 414 ( 0.00%) => ???:::qpath_res (18x) 18 ( 0.00%) .ctor_parent(cx) . .is_lang_item(cx, OptionSome) . { . Some(inner) . } else { . None . } 144 ( 0.00%) } . . /// Checks if the `pat` is `None`. . pub fn is_none_pattern(cx: &LateContext<'_>, pat: &Pat<'_>) -> bool { 15,587 ( 0.00%) matches!(pat.kind, 1,581 ( 0.00%) PatKind::Expr(PatExpr { kind: PatExprKind::Path(qpath), .. }) 9,486 ( 0.00%) if cx.qpath_res(qpath, pat.hir_id).ctor_parent(cx).is_lang_item(cx, OptionNone)) 35,305 ( 0.00%) => ???:::qpath_res (1,535x) 5,206 ( 0.00%) } . . /// Checks if `arm` has the form `None => None`. 936 ( 0.00%) pub fn is_none_arm(cx: &LateContext<'_>, arm: &Arm<'_>) -> bool { 278 ( 0.00%) is_none_pattern(cx, arm.pat) . && matches!( 76 ( 0.00%) peel_blocks(arm.body).kind, 1 ( 0.00%) ExprKind::Path(qpath) 6 ( 0.00%) if cx.qpath_res(&qpath, arm.body.hir_id).ctor_parent(cx).is_lang_item(cx, OptionNone) 23 ( 0.00%) => ???:::qpath_res (1x) . ) 1,092 ( 0.00%) } . . /// Checks if the given `QPath` belongs to a type alias. . pub fn is_ty_alias(qpath: &QPath<'_>) -> bool { 2,388 ( 0.00%) match *qpath { 11,258 ( 0.00%) QPath::Resolved(_, path) => matches!(path.res, Res::Def(DefKind::TyAlias | DefKind::AssocTy, ..)), 1,692 ( 0.00%) QPath::TypeRelative(ty, _) if let TyKind::Path(qpath) = ty.kind => is_ty_alias(&qpath), 2,195 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_ty_alias'2 (182x) . QPath::TypeRelative(..) => false, . } 1,194 ( 0.00%) } . . /// Checks if the `def_id` belongs to a function that is part of a trait impl. . pub fn is_def_id_trait_method(cx: &LateContext<'_>, def_id: LocalDefId) -> bool { . if let Node::Item(item) = cx.tcx.parent_hir_node(cx.tcx.local_def_id_to_hir_id(def_id)) . && let ItemKind::Impl(imp) = item.kind . { . imp.of_trait.is_some() . } else { . false . } . } . . pub fn last_path_segment<'tcx>(path: &QPath<'tcx>) -> &'tcx PathSegment<'tcx> { 23,526 ( 0.00%) match *path { 23,526 ( 0.00%) QPath::Resolved(_, path) => path.segments.last().expect("A path must have at least one segment"), . QPath::TypeRelative(_, seg) => seg, . } 11,738 ( 0.00%) } . . pub fn qpath_generic_tys<'tcx>(qpath: &QPath<'tcx>) -> impl Iterator> { 25 ( 0.00%) last_path_segment(qpath) . .args . .map_or(&[][..], |a| a.args) . .iter() 75 ( 0.00%) .filter_map(|a| match a { . GenericArg::Type(ty) => Some(ty.as_unambig_ty()), . _ => None, . }) 25 ( 0.00%) } . . /// If the expression is a path to a local (with optional projections), . /// returns the canonical `HirId` of the local. . /// . /// For example, `x.field[0].field2` would return the `HirId` of `x`. . pub fn path_to_local_with_projections(expr: &Expr<'_>) -> Option { . match expr.kind { . ExprKind::Field(recv, _) | ExprKind::Index(recv, _, _) => path_to_local_with_projections(recv), -- line 430 ---------------------------------------- -- line 448 ---------------------------------------- . /// impl std::ops::Add for Point { . /// type Output = Self; . /// . /// fn add(self, other: Self) -> Self { . /// Point(0, 0) . /// } . /// } . /// ``` 95,072 ( 0.00%) pub fn trait_ref_of_method<'tcx>(cx: &LateContext<'tcx>, owner: OwnerId) -> Option<&'tcx TraitRef<'tcx>> { 83,188 ( 0.00%) if let Node::Item(item) = cx.tcx.hir_node(cx.tcx.hir_owner_parent(owner)) 655,383 ( 0.01%) => ???:::hir_node (11,884x) 23,768 ( 0.00%) && let ItemKind::Impl(impl_) = &item.kind 11,884 ( 0.00%) && let Some(of_trait) = impl_.of_trait . { . return Some(&of_trait.trait_ref); . } . None 95,072 ( 0.00%) } . . /// This method will return tuple of projection stack and root of the expression, . /// used in `can_mut_borrow_both`. . /// . /// For example, if `e` represents the `v[0].a.b[x]` . /// this method will return a tuple, composed of a `Vec` . /// containing the `Expr`s for `v[0], v[0].a, v[0].a.b, v[0].a.b[x]` . /// and an `Expr` for root of them, `v` -- line 472 ---------------------------------------- -- line 485 ---------------------------------------- . _ => break e, . } . }; . result.reverse(); . Some((result, root)) . } . . /// Gets the mutability of the custom deref adjustment, if any. 1 ( 0.00%) pub fn expr_custom_deref_adjustment(cx: &LateContext<'_>, e: &Expr<'_>) -> Option { . cx.typeck_results() 1 ( 0.00%) .expr_adjustments(e) 43 ( 0.00%) => ???:::expr_adjustments (1x) . .iter() 10 ( 0.00%) .find_map(|a| match a.kind { . Adjust::Deref(DerefAdjustKind::Overloaded(d)) => Some(Some(d.mutbl)), . Adjust::Deref(DerefAdjustKind::Builtin) => None, . _ => Some(None), . }) . .and_then(|x| x) 3 ( 0.00%) } . . /// Checks if two expressions can be mutably borrowed simultaneously . /// and they aren't dependent on borrowing same thing twice . pub fn can_mut_borrow_both(cx: &LateContext<'_>, ctxt: SyntaxContext, e1: &Expr<'_>, e2: &Expr<'_>) -> bool { . let Some((s1, r1)) = projection_stack(e1, ctxt) else { . return false; . }; . let Some((s2, r2)) = projection_stack(e2, ctxt) else { -- line 511 ---------------------------------------- -- line 786 ---------------------------------------- . // TODO: check if the local has been partially moved. Assume it has for now. . false . }, . _ => true, . } . } . . /// How a local is captured by a closure 3 ( 0.00%) #[derive(Debug, Clone, Copy, PartialEq, Eq)] . pub enum CaptureKind { . Value, . Use, . Ref(Mutability), . } . impl CaptureKind { . pub fn is_imm_ref(self) -> bool { . self == Self::Ref(Mutability::Not) -- line 802 ---------------------------------------- -- line 820 ---------------------------------------- . } . } . . /// Given an expression referencing a local, determines how it would be captured in a closure. . /// . /// Note as this will walk up to parent expressions until the capture can be determined it should . /// only be used while making a closure somewhere a value is consumed. e.g. a block, match arm, or . /// function argument (other than a receiver). 9 ( 0.00%) pub fn capture_local_usage(cx: &LateContext<'_>, e: &Expr<'_>) -> CaptureKind { . fn pat_capture_kind(cx: &LateContext<'_>, pat: &Pat<'_>) -> CaptureKind { . let mut capture = CaptureKind::Ref(Mutability::Not); . pat.each_binding_or_first(&mut |_, id, span, _| match cx . .typeck_results() . .extract_binding_mode(cx.sess(), id, span) . .0 . { . ByRef::No if !is_copy(cx, cx.typeck_results().node_type(id)) => { -- line 836 ---------------------------------------- -- line 847 ---------------------------------------- . debug_assert!(matches!( . e.kind, . ExprKind::Path(QPath::Resolved(None, Path { res: Res::Local(_), .. })) . )); . . let mut capture = CaptureKind::Value; . let mut capture_expr_ty = e; . 11 ( 0.00%) for (parent, child_id) in hir_parent_with_src_iter(cx.tcx, e.hir_id) { . if let [ . Adjustment { . kind: Adjust::Deref(_) | Adjust::Borrow(AutoBorrow::Ref(..)), . target, . }, . ref adjust @ .., . ] = *cx . .typeck_results() -- line 863 ---------------------------------------- -- line 865 ---------------------------------------- . .get(child_id) . .map_or(&[][..], |x| &**x) . && let rustc_ty::RawPtr(_, mutability) | rustc_ty::Ref(_, _, mutability) = . *adjust.last().map_or(target, |a| a.target).kind() . { . return CaptureKind::Ref(mutability); . } . 2 ( 0.00%) match parent { 4 ( 0.00%) Node::Expr(e) => match e.kind { . ExprKind::AddrOf(_, mutability, _) => return CaptureKind::Ref(mutability), . ExprKind::Index(..) | ExprKind::Unary(UnOp::Deref, _) => capture = CaptureKind::Ref(Mutability::Not), . ExprKind::Assign(lhs, ..) | ExprKind::AssignOp(_, lhs, _) if lhs.hir_id == child_id => { . return CaptureKind::Ref(Mutability::Mut); . }, . ExprKind::Field(..) => { . if capture == CaptureKind::Value { . capture_expr_ty = e; -- line 882 ---------------------------------------- -- line 905 ---------------------------------------- . Node::LetStmt(l) => match pat_capture_kind(cx, l.pat) { . CaptureKind::Value | CaptureKind::Use => break, . capture @ CaptureKind::Ref(_) => return capture, . }, . _ => break, . } . } . 6 ( 0.00%) if capture == CaptureKind::Value && is_copy(cx, cx.typeck_results().expr_ty(capture_expr_ty)) { 40 ( 0.00%) => ???:::expr_ty (1x) . // Copy types are never automatically captured by value. . CaptureKind::Ref(Mutability::Not) . } else { . capture . } 9 ( 0.00%) } . . /// Checks if the expression can be moved into a closure as is. This will return a list of captures . /// if so, otherwise, `None`. . pub fn can_move_expr_to_closure<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) -> Option> { . struct V<'cx, 'tcx> { . cx: &'cx LateContext<'tcx>, . // Stack of potential break targets contained in the expression. . loops: Vec, -- line 927 ---------------------------------------- -- line 1030 ---------------------------------------- . } . . /// Matches an `Expr` against a chain of methods, and return the matched `Expr`s. . /// . /// For example, if `expr` represents the `.baz()` in `foo.bar().baz()`, . /// `method_chain_args(expr, &[sym::bar, sym::baz])` will return a `Vec` . /// containing the `Expr`s for . /// `.bar()` and `.baz()` 4,690 ( 0.00%) pub fn method_chain_args<'a>(expr: &'a Expr<'_>, methods: &[Symbol]) -> Option, &'a [Expr<'a>])>> { . let mut current = expr; . let mut matched = Vec::with_capacity(methods.len()); . for method_name in methods.iter().rev() { . // method chains are stored last -> first 1,418 ( 0.00%) if let ExprKind::MethodCall(path, receiver, args, _) = current.kind { 78 ( 0.00%) if path.ident.name == *method_name { . if receiver.span.from_expansion() || args.iter().any(|e| e.span.from_expansion()) { . return None; . } . matched.push((receiver, args)); // build up `matched` backwards . current = receiver; // go to parent expression . } else { . return None; . } . } else { . return None; . } . } . // Reverse `matched` so that it is in the same order as `methods`. . matched.reverse(); . Some(matched) 6,030 ( 0.00%) } . . /// Returns `true` if the provided `def_id` is an entrypoint to a program. 360 ( 0.00%) pub fn is_entrypoint_fn(cx: &LateContext<'_>, def_id: DefId) -> bool { 40 ( 0.00%) cx.tcx . .entry_fn(()) . .is_some_and(|(entry_fn_def_id, _)| def_id == entry_fn_def_id) 320 ( 0.00%) } . . /// Returns `true` if the expression is in the program's `#[panic_handler]`. . pub fn is_in_panic_handler(cx: &LateContext<'_>, e: &Expr<'_>) -> bool { . let parent = cx.tcx.hir_get_parent_item(e.hir_id); . Some(parent.to_def_id()) == cx.tcx.lang_items().panic_impl() . } . . /// Gets the name of the item the expression is in, if available. 7 ( 0.00%) pub fn parent_item_name(cx: &LateContext<'_>, expr: &Expr<'_>) -> Option { 6 ( 0.00%) let parent_id = cx.tcx.hir_get_parent_item(expr.hir_id).def_id; 19 ( 0.00%) => ???:::hir_get_parent_item (1x) 3 ( 0.00%) match cx.tcx.hir_node_by_def_id(parent_id) { . Node::Item(item) => item.kind.ident().map(|ident| ident.name), 1 ( 0.00%) Node::TraitItem(TraitItem { ident, .. }) | Node::ImplItem(ImplItem { ident, .. }) => Some(ident.name), . _ => None, . } 8 ( 0.00%) } . . pub struct ContainsName<'a, 'tcx> { . pub cx: &'a LateContext<'tcx>, . pub name: Symbol, . } . . impl<'tcx> Visitor<'tcx> for ContainsName<'_, 'tcx> { . type Result = ControlFlow<()>; -- line 1091 ---------------------------------------- -- line 1118 ---------------------------------------- . } else { . ControlFlow::Continue(()) . } . }) . .is_some() . } . . /// Gets the parent expression, if any –- this is useful to constrain a lint. 48,898 ( 0.00%) pub fn get_parent_expr<'tcx>(cx: &LateContext<'tcx>, e: &Expr<'_>) -> Option<&'tcx Expr<'tcx>> { 97,796 ( 0.00%) get_parent_expr_for_hir(cx, e.hir_id) 97,796 ( 0.00%) } . . /// This retrieves the parent for the given `HirId` if it's an expression. This is useful for . /// constraint lints 342 ( 0.00%) pub fn get_parent_expr_for_hir<'tcx>(cx: &LateContext<'tcx>, hir_id: HirId) -> Option<&'tcx Expr<'tcx>> { 196,048 ( 0.00%) match cx.tcx.parent_hir_node(hir_id) { 4,759,718 ( 0.06%) => ???:::parent_hir_node (48,898x) . Node::Expr(parent) => Some(parent), . _ => None, . } 228 ( 0.00%) } . . /// Gets the enclosing block, if any. 36 ( 0.00%) pub fn get_enclosing_block<'tcx>(cx: &LateContext<'tcx>, hir_id: HirId) -> Option<&'tcx Block<'tcx>> { 18 ( 0.00%) let enclosing_node = cx . .tcx 36 ( 0.00%) .hir_get_enclosing_scope(hir_id) 4,018 ( 0.00%) => ???:::hir_get_enclosing_scope (18x) 54 ( 0.00%) .map(|enclosing_id| cx.tcx.hir_node(enclosing_id)); 936 ( 0.00%) => ???:::hir_node (18x) 108 ( 0.00%) enclosing_node.and_then(|node| match node { . Node::Block(block) => Some(block), . Node::Item(&Item { . kind: ItemKind::Fn { body: eid, .. }, . .. . }) . | Node::ImplItem(&ImplItem { . kind: ImplItemKind::Fn(_, eid), . .. -- line 1153 ---------------------------------------- -- line 1156 ---------------------------------------- . kind: TraitItemKind::Fn(_, TraitFn::Provided(eid)), . .. . }) => match cx.tcx.hir_body(eid).value.kind { . ExprKind::Block(block, _) => Some(block), . _ => None, . }, . _ => None, . }) 54 ( 0.00%) } . . /// Returns the [`Closure`] enclosing `hir_id`, if any. . pub fn get_enclosing_closure<'tcx>(cx: &LateContext<'tcx>, hir_id: HirId) -> Option<&'tcx Closure<'tcx>> { . cx.tcx.hir_parent_iter(hir_id).find_map(|(_, node)| { . if let Node::Expr(expr) = node . && let ExprKind::Closure(closure) = expr.kind . { . Some(closure) -- line 1172 ---------------------------------------- -- line 1203 ---------------------------------------- . Node::Stmt(_) | Node::Block(_) | Node::LetStmt(_) | Node::Arm(_) | Node::ExprField(_) => (), . _ => break, . } . } . None . } . . /// Gets the parent node if it's an impl block. 90 ( 0.00%) pub fn get_parent_as_impl(tcx: TyCtxt<'_>, id: HirId) -> Option<&Impl<'_>> { 630 ( 0.00%) match tcx.hir_parent_iter(id).next() { . Some(( . _, . Node::Item(Item { . kind: ItemKind::Impl(imp), . .. . }), . )) => Some(imp), . _ => None, . } 180 ( 0.00%) } . . /// Removes blocks around an expression, only if the block contains just one expression . /// and no statements. Unsafe blocks are not removed. . /// . /// Examples: . /// * `{}` -> `{}` . /// * `{ x }` -> `x` . /// * `{{ x }}` -> `x` . /// * `{ x; }` -> `{ x; }` . /// * `{ x; y }` -> `{ x; y }` . /// * `{ unsafe { x } }` -> `unsafe { x }` . pub fn peel_blocks<'a>(mut expr: &'a Expr<'a>) -> &'a Expr<'a> { 1,151 ( 0.00%) while let ExprKind::Block( . Block { 420 ( 0.00%) stmts: [], . expr: Some(inner), . rules: BlockCheckMode::DefaultBlock, . .. . }, . _, 1,030 ( 0.00%) ) = expr.kind . { . expr = inner; . } . expr . } . . /// Removes blocks around an expression, only if the block contains just one expression . /// or just one expression statement with a semicolon. Unsafe blocks are not removed. -- line 1251 ---------------------------------------- -- line 1252 ---------------------------------------- . /// . /// Examples: . /// * `{}` -> `{}` . /// * `{ x }` -> `x` . /// * `{ x; }` -> `x` . /// * `{{ x; }}` -> `x` . /// * `{ x; y }` -> `{ x; y }` . /// * `{ unsafe { x } }` -> `unsafe { x }` 3 ( 0.00%) pub fn peel_blocks_with_stmt<'a>(mut expr: &'a Expr<'a>) -> &'a Expr<'a> { 7,153 ( 0.00%) while let ExprKind::Block( . Block { 1,364 ( 0.00%) stmts: [], . expr: Some(inner), . rules: BlockCheckMode::DefaultBlock, . .. . } . | Block { . stmts: . [ . Stmt { 132 ( 0.00%) kind: StmtKind::Expr(inner) | StmtKind::Semi(inner), . .. . }, . ], . expr: None, . rules: BlockCheckMode::DefaultBlock, . .. . }, . _, 885 ( 0.00%) ) = expr.kind . { 240 ( 0.00%) expr = inner; . } . expr 3 ( 0.00%) } . . /// Checks if the given expression is the else clause of either an `if` or `if let` expression. 1,218 ( 0.00%) pub fn is_else_clause(tcx: TyCtxt<'_>, expr: &Expr<'_>) -> bool { 812 ( 0.00%) let mut iter = tcx.hir_parent_iter(expr.hir_id); 854 ( 0.00%) match iter.next() { . Some(( . _, . Node::Expr(Expr { . kind: ExprKind::If(_, _, Some(else_expr)), . .. . }), . )) => else_expr.hir_id == expr.hir_id, . _ => false, . } 1,624 ( 0.00%) } . . /// Checks if the given expression is a part of `let else` . /// returns `true` for both the `init` and the `else` part . pub fn is_inside_let_else(tcx: TyCtxt<'_>, expr: &Expr<'_>) -> bool { . hir_parent_with_src_iter(tcx, expr.hir_id).any(|(node, child_id)| { . matches!( . node, . Node::LetStmt(LetStmt { -- line 1309 ---------------------------------------- -- line 1343 ---------------------------------------- . }) . } else { . false . } . } . . /// Checks whether the given expression is a constant literal of the given value. . pub fn is_integer_literal(expr: &Expr<'_>, value: u128) -> bool { 257 ( 0.00%) if let ExprKind::Lit(spanned) = expr.kind 42 ( 0.00%) && let LitKind::Int(v, _) = spanned.node . { . return v == value; . } . false . } . . /// Checks whether the given expression is an untyped integer literal. . pub fn is_integer_literal_untyped(expr: &Expr<'_>) -> bool { -- line 1360 ---------------------------------------- -- line 1363 ---------------------------------------- . { . return suffix == LitIntType::Unsuffixed; . } . . false . } . . /// Checks whether the given expression is a constant literal of the given value. 15 ( 0.00%) pub fn is_float_literal(expr: &Expr<'_>, value: f64) -> bool { 14 ( 0.00%) if let ExprKind::Lit(spanned) = expr.kind . && let LitKind::Float(v, _) = spanned.node . { . v.as_str().parse() == Ok(value) . } else { . false . } 15 ( 0.00%) } . . /// Returns `true` if the given `Expr` has been coerced before. . /// . /// Examples of coercions can be found in the Nomicon at . /// . . /// . /// See `rustc_middle::ty::adjustment::Adjustment` and `rustc_hir_analysis::check::coercion` for . /// more information on adjustments and coercions. 42 ( 0.00%) pub fn is_adjusted(cx: &LateContext<'_>, e: &Expr<'_>) -> bool { 28 ( 0.00%) cx.typeck_results().adjustments().get(e.hir_id).is_some() 56 ( 0.00%) } . . /// Returns the pre-expansion span if this comes from an expansion of the . /// macro `name`. . /// See also [`is_direct_expn_of`]. . #[must_use] 312,273 ( 0.00%) pub fn is_expn_of(mut span: Span, name: Symbol) -> Option { . loop { . if span.from_expansion() { . let data = span.ctxt().outer_expn_data(); 84,186 ( 0.00%) let new_span = data.call_site; . 164,952 ( 0.00%) if let ExpnKind::Macro(MacroKind::Bang, mac_name) = data.kind . && mac_name == name . { . return Some(new_span); . } . . span = new_span; . } else { 36,738 ( 0.00%) return None; . } . } 165,321 ( 0.00%) } . . /// Returns the pre-expansion span if the span directly comes from an expansion . /// of the macro `name`. . /// The difference with [`is_expn_of`] is that in . /// ```no_run . /// # macro_rules! foo { ($name:tt!$args:tt) => { $name!$args } } . /// # macro_rules! bar { ($e:expr) => { $e } } . /// foo!(bar!(42)); . /// ``` . /// `42` is considered expanded from `foo!` and `bar!` by `is_expn_of` but only . /// from `bar!` by `is_direct_expn_of`. . #[must_use] 19,881 ( 0.00%) pub fn is_direct_expn_of(span: Span, name: Symbol) -> Option { . if span.from_expansion() { . let data = span.ctxt().outer_expn_data(); . let new_span = data.call_site; . 11,738 ( 0.00%) if let ExpnKind::Macro(MacroKind::Bang, mac_name) = data.kind . && mac_name == name . { . return Some(new_span); . } . } . 2,209 ( 0.00%) None 11,045 ( 0.00%) } . . /// Convenience function to get the return type of a function. 3,612 ( 0.00%) pub fn return_ty<'tcx>(cx: &LateContext<'tcx>, fn_def_id: OwnerId) -> Ty<'tcx> { 516 ( 0.00%) let ret_ty = cx.tcx.fn_sig(fn_def_id).instantiate_identity().skip_norm_wip().output(); 2,064 ( 0.00%) cx.tcx.instantiate_bound_regions_with_erased(ret_ty) 16,072 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/fold.rs:::instantiate_bound_regions_with_erased:: (516x) 3,612 ( 0.00%) } . . /// Convenience function to get the nth argument type of a function. . pub fn nth_arg<'tcx>(cx: &LateContext<'tcx>, fn_def_id: OwnerId, nth: usize) -> Ty<'tcx> { . let arg = cx . .tcx . .fn_sig(fn_def_id) . .instantiate_identity() . .skip_norm_wip() -- line 1453 ---------------------------------------- -- line 1467 ---------------------------------------- . _ => false, . }; . } . false . } . . /// Returns `true` if a pattern is refutable. . // TODO: should be implemented using rustc/mir_build/thir machinery 940 ( 0.00%) pub fn is_refutable(cx: &LateContext<'_>, pat: &Pat<'_>) -> bool { . fn is_qpath_refutable(cx: &LateContext<'_>, qpath: &QPath<'_>, id: HirId) -> bool { 8 ( 0.00%) !matches!( 18 ( 0.00%) cx.qpath_res(qpath, id), 46 ( 0.00%) => ???:::qpath_res (2x) . Res::Def(DefKind::Struct, ..) | Res::Def(DefKind::Ctor(def::CtorOf::Struct, _), _) . ) . } . . fn are_refutable<'a, I: IntoIterator>>(cx: &LateContext<'_>, i: I) -> bool { . i.into_iter().any(|pat| is_refutable(cx, pat)) . } . 666 ( 0.00%) match pat.kind { . PatKind::Missing => unreachable!(), . PatKind::Wild | PatKind::Never => false, // If `!` typechecked then the type is empty, so not refutable. 92 ( 0.00%) PatKind::Binding(_, _, _, pat) => pat.is_some_and(|pat| is_refutable(cx, pat)), . PatKind::Box(pat) | PatKind::Ref(pat, _, _) => is_refutable(cx, pat), . PatKind::Expr(PatExpr { 2 ( 0.00%) kind: PatExprKind::Path(qpath), . hir_id, . .. 4 ( 0.00%) }) => is_qpath_refutable(cx, qpath, *hir_id), . PatKind::Or(pats) => { . // TODO: should be the honest check, that pats is exhaustive set . are_refutable(cx, pats) . }, . PatKind::Tuple(pats, _) => are_refutable(cx, pats), . PatKind::Struct(ref qpath, fields, _) => { . is_qpath_refutable(cx, qpath, pat.hir_id) || are_refutable(cx, fields.iter().map(|field| field.pat)) . }, -- line 1504 ---------------------------------------- -- line 1515 ---------------------------------------- . _ => { . // unreachable!() . true . }, . } . }, . PatKind::Expr(..) | PatKind::Range(..) | PatKind::Err(_) | PatKind::Deref(_) | PatKind::Guard(..) => true, . } 752 ( 0.00%) } . . /// If the pattern is an `or` pattern, call the function once for each sub pattern. Otherwise, call . /// the function once on the given pattern. . pub fn recurse_or_patterns<'tcx, F: FnMut(&'tcx Pat<'tcx>)>(pat: &'tcx Pat<'tcx>, mut f: F) { 268 ( 0.00%) if let PatKind::Or(pats) = pat.kind { . pats.iter().for_each(f); . } else { 262 ( 0.00%) f(pat); 36,090 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/matches/match_wild_enum.rs:clippy_lints::matches::match_wild_enum::check::{closure#2} (131x) . } . } . . pub fn is_self(slf: &Param<'_>) -> bool { . if let PatKind::Binding(.., name, _) = slf.pat.kind { . name.name == kw::SelfLower . } else { . false -- line 1539 ---------------------------------------- -- line 1545 ---------------------------------------- . && let Res::SelfTyParam { .. } | Res::SelfTyAlias { .. } = path.res . { . return true; . } . false . } . . pub fn iter_input_pats<'tcx>(decl: &FnDecl<'_>, body: &'tcx Body<'_>) -> impl Iterator> { 27,310 ( 0.00%) (0..decl.inputs.len()).map(move |i| &body.params[i]) . } . . /// Checks if a given expression is a match expression expanded from the `?` . /// operator or the `try` macro. . pub fn is_try<'tcx>(cx: &LateContext<'_>, expr: &'tcx Expr<'tcx>) -> Option<&'tcx Expr<'tcx>> { . fn is_ok(cx: &LateContext<'_>, arm: &Arm<'_>) -> bool { . if let PatKind::TupleStruct(ref path, pat, ddpos) = arm.pat.kind . && ddpos.as_opt_usize().is_none() -- line 1561 ---------------------------------------- -- line 1628 ---------------------------------------- . . /// Returns `true` if the lint is allowed in the current context. This is useful for . /// skipping long running code when it's unnecessary . /// . /// This function should check the lint level for the same node, that the lint will . /// be emitted at. If the information is buffered to be emitted at a later point, please . /// make sure to use `span_lint_hir` functions to emit the lint. This ensures that . /// expectations at the checked nodes will be fulfilled. 43,304 ( 0.00%) pub fn is_lint_allowed(cx: &LateContext<'_>, lint: &'static Lint, id: HirId) -> bool { 21,652 ( 0.00%) cx.tcx.lint_level_spec_at_node(lint, id).is_allow() 11,823,756 ( 0.16%) => ???:::lint_level_spec_at_node (10,826x) 21,652 ( 0.00%) } . . pub fn strip_pat_refs<'hir>(mut pat: &'hir Pat<'hir>) -> &'hir Pat<'hir> { . while let PatKind::Ref(subpat, _, _) = pat.kind { . pat = subpat; . } . pat . } . . pub fn int_bits(tcx: TyCtxt<'_>, ity: IntTy) -> u64 { . Integer::from_int_ty(&tcx, ity).size().bits() . } . . #[expect(clippy::cast_possible_wrap)] . /// Turn a constant int byte representation into an i128 55 ( 0.00%) pub fn sext(tcx: TyCtxt<'_>, u: u128, ity: IntTy) -> i128 { . let amt = 128 - int_bits(tcx, ity); 825 ( 0.00%) ((u as i128) << amt) >> amt 165 ( 0.00%) } . . #[expect(clippy::cast_sign_loss)] . /// clip unused bytes . pub fn unsext(tcx: TyCtxt<'_>, u: i128, ity: IntTy) -> u128 { . let amt = 128 - int_bits(tcx, ity); . ((u as u128) << amt) >> amt . } . . /// clip unused bytes 17 ( 0.00%) pub fn clip(tcx: TyCtxt<'_>, u: u128, ity: UintTy) -> u128 { . let bits = Integer::from_uint_ty(&tcx, ity).size().bits(); . let amt = 128 - bits; 153 ( 0.00%) (u << amt) >> amt 51 ( 0.00%) } . . pub fn has_attr(attrs: &[hir::Attribute], symbol: Symbol) -> bool { . attrs.iter().any(|attr| attr.has_name(symbol)) . } . . pub fn has_repr_attr(cx: &LateContext<'_>, hir_id: HirId) -> bool { . find_attr!(cx.tcx, hir_id, Repr { .. }) . } -- line 1678 ---------------------------------------- -- line 1688 ---------------------------------------- . enclosing_node = tcx.hir_get_parent_item(enclosing_node).into(); . } . . false . } . . /// Checks if the given HIR node is inside an `impl` block with the `automatically_derived` . /// attribute. 298,221 ( 0.00%) pub fn in_automatically_derived(tcx: TyCtxt<'_>, id: HirId) -> bool { . tcx.hir_parent_owner_iter(id) 636,866 ( 0.01%) .filter(|(_, node)| matches!(node, OwnerNode::Item(item) if matches!(item.kind, ItemKind::Impl(_)))) 153,946 ( 0.00%) .any(|(id, _)| find_attr!(tcx, id.def_id, AutomaticallyDerived)) 4,897,984 ( 0.07%) => ???:>::get_attrs (56,712x) 298,221 ( 0.00%) } . . /// Checks if the given `DefId` matches the `libc` item. 7,610 ( 0.00%) pub fn match_libc_symbol(cx: &LateContext<'_>, did: DefId, name: Symbol) -> bool { . // libc is meant to be used as a flat list of names, but they're all actually defined in different . // modules based on the target platform. Ignore everything but crate name and the item name. 2,283 ( 0.00%) cx.tcx.crate_name(did.krate) == sym::libc && cx.tcx.def_path_str(did).ends_with(name.as_str()) 6,088 ( 0.00%) } . . /// Returns the list of condition expressions and the list of blocks in a . /// sequence of `if/else`. . /// E.g., this returns `([a, b], [c, d, e])` for the expression . /// `if a { c } else if b { d } else { e }`. 384 ( 0.00%) pub fn if_sequence<'tcx>(mut expr: &'tcx Expr<'tcx>) -> (Vec<&'tcx Expr<'tcx>>, Vec<&'tcx Block<'tcx>>) { . let mut conds = Vec::new(); . let mut blocks: Vec<&Block<'_>> = Vec::new(); . . while let Some(higher::IfOrIfLet { cond, then, r#else }) = higher::IfOrIfLet::hir(expr) { . conds.push(cond); 162 ( 0.00%) if let ExprKind::Block(block, _) = then.kind { . blocks.push(block); . } else { . panic!("ExprKind::If node is not an ExprKind::Block"); . } . 108 ( 0.00%) if let Some(else_expr) = r#else { . expr = else_expr; . } else { . break; . } . } . . // final `else {..}` 48 ( 0.00%) if !blocks.is_empty() 126 ( 0.00%) && let ExprKind::Block(block, _) = expr.kind . { . blocks.push(block); . } . 576 ( 0.00%) (conds, blocks) 432 ( 0.00%) } . . /// Peels away all the compiler generated code surrounding the body of an async closure. . pub fn get_async_closure_expr<'tcx>(tcx: TyCtxt<'tcx>, expr: &Expr<'_>) -> Option<&'tcx Expr<'tcx>> { . if let ExprKind::Closure(&Closure { . body, . kind: hir::ClosureKind::Coroutine(CoroutineKind::Desugared(CoroutineDesugaring::Async, _)), . .. . }) = expr.kind -- line 1748 ---------------------------------------- -- line 1765 ---------------------------------------- . } . . /// Peels away all the compiler generated code surrounding the body of an async function, . pub fn get_async_fn_body<'tcx>(tcx: TyCtxt<'tcx>, body: &Body<'_>) -> Option<&'tcx Expr<'tcx>> { . get_async_closure_expr(tcx, body.value) . } . . // check if expr is calling method or function with #[must_use] attribute 948 ( 0.00%) pub fn is_must_use_func_call(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool { 1,580 ( 0.00%) let did = match expr.kind { . ExprKind::Call(path, _) => { . if let ExprKind::Path(ref qpath) = path.kind . && let Res::Def(_, did) = cx.qpath_res(qpath, path.hir_id) . { . Some(did) . } else { . None . } . }, . ExprKind::MethodCall(..) => cx.typeck_results().type_dependent_def_id(expr.hir_id), . _ => None, . }; . . did.is_some_and(|did| find_attr!(cx.tcx, did, MustUse { .. })) 948 ( 0.00%) } . . /// Checks if a function's body represents the identity function. Looks for bodies of the form: . /// * `|x| x` . /// * `|x| return x` . /// * `|x| { return x }` . /// * `|x| { return x; }` . /// * `|(x, y)| (x, y)` . /// * `|[x, y]| [x, y]` . /// * `|Foo(bar, baz)| Foo(bar, baz)` . /// * `|Foo { bar, baz }| Foo { bar, baz }` . /// * `|x| { let y = x; ...; let z = y; z }` . /// * `|x| { let y = x; ...; let z = y; return z }` . /// . /// Consider calling [`is_expr_untyped_identity_function`] or [`is_expr_identity_function`] instead. 63 ( 0.00%) fn is_body_identity_function<'hir>(cx: &LateContext<'_>, func: &Body<'hir>) -> bool { 27 ( 0.00%) let [param] = func.params else { . return false; . }; . 9 ( 0.00%) let mut param_pat = param.pat; . . // Given a sequence of `Stmt`s of the form `let p = e` where `e` is an expr identical to the . // current `param_pat`, advance the current `param_pat` to `p`. . // . // Note: This is similar to `clippy_utils::get_last_chain_binding_hir_id`, but it works . // directly over a `Pattern` rather than a `HirId`. And it checks for compatibility via . // `is_expr_identity_of_pat` rather than `HirId` equality . let mut advance_param_pat_over_stmts = |stmts: &[Stmt<'hir>]| { -- line 1817 ---------------------------------------- -- line 1824 ---------------------------------------- . } else { . return false; . } . } . . true . }; . 9 ( 0.00%) let mut expr = func.value; . loop { 45 ( 0.00%) match expr.kind { . ExprKind::Block( . &Block { . stmts: [], . expr: Some(e), . .. . }, . _, . ) -- line 1842 ---------------------------------------- -- line 1875 ---------------------------------------- . && let StmtKind::Semi(e) | StmtKind::Expr(e) = last_stmt.kind . && let ExprKind::Ret(Some(ret_val)) = e.kind . { . expr = ret_val; . } else { . return false; . } . }, 90 ( 0.00%) _ => return is_expr_identity_of_pat(cx, param_pat, expr, true), 745 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_expr_identity_of_pat (9x) . } . } . } . . /// Checks if the given expression is an identity representation of the given pattern: . /// * `x` is the identity representation of `x` . /// * `(x, y)` is the identity representation of `(x, y)` . /// * `[x, y]` is the identity representation of `[x, y]` . /// * `Foo(bar, baz)` is the identity representation of `Foo(bar, baz)` . /// * `Foo { bar, baz }` is the identity representation of `Foo { bar, baz }` . /// . /// Note that `by_hir` is used to determine bindings are checked by their `HirId` or by their name. . /// This can be useful when checking patterns in `let` bindings or `match` arms. 81 ( 0.00%) pub fn is_expr_identity_of_pat(cx: &LateContext<'_>, pat: &Pat<'_>, expr: &Expr<'_>, by_hir: bool) -> bool { 5 ( 0.00%) if cx . .typeck_results() . .pat_binding_modes() 18 ( 0.00%) .get(pat.hir_id) 5 ( 0.00%) .is_some_and(|mode| matches!(mode.0, ByRef::Yes(..))) . { . // If the parameter is `(x, y)` of type `&(T, T)`, or `[x, y]` of type `&[T; 2]`, then . // due to match ergonomics, the inner patterns become references. Don't consider this . // the identity function as that changes types. . return false; . } . . // NOTE: we're inside a (function) body, so this won't ICE . let qpath_res = |qpath, hir| cx.typeck_results().qpath_res(qpath, hir); . 105 ( 0.00%) match (pat.kind, expr.kind) { 10 ( 0.00%) (PatKind::Binding(_, id, _, _), _) if by_hir => { . expr.res_local_id() == Some(id) && cx.typeck_results().expr_adjustments(expr).is_empty() . }, . (PatKind::Binding(_, _, ident, _), ExprKind::Path(QPath::Resolved(_, path))) => { . matches!(path.segments, [ segment] if segment.ident.name == ident.name) . }, . (PatKind::Tuple(pats, dotdot), ExprKind::Tup(tup)) . if dotdot.as_opt_usize().is_none() && pats.len() == tup.len() => . { -- line 1922 ---------------------------------------- -- line 1946 ---------------------------------------- . qpath_res(&pat_ident, pat.hir_id) == qpath_res(ident, expr.hir_id) . // check fields . && unordered_over(field_pats, fields, |field_pat, field| { . field_pat.ident == field.ident && is_expr_identity_of_pat(cx, field_pat.pat, field.expr, by_hir) . }) . }, . _ => false, . } 72 ( 0.00%) } . . /// This is the same as [`is_expr_identity_function`], but does not consider closures . /// with type annotations for its bindings (or similar) as identity functions: . /// * `|x: u8| x` . /// * `std::convert::identity::` 66 ( 0.00%) pub fn is_expr_untyped_identity_function(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool { 330 ( 0.00%) match expr.kind { 24 ( 0.00%) ExprKind::Closure(&Closure { body, fn_decl, .. }) 24 ( 0.00%) if fn_decl.inputs.iter().all(|ty| matches!(ty.kind, TyKind::Infer(()))) => . { 56 ( 0.00%) is_body_identity_function(cx, cx.tcx.hir_body(body)) 899 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_body_identity_function (8x) 528 ( 0.00%) => ???:::hir_body (8x) . }, . ExprKind::Path(QPath::Resolved(_, path)) 112 ( 0.00%) if path.segments.iter().all(|seg| seg.infer_args) 112 ( 0.00%) && let Some(did) = path.res.opt_def_id() => . { 224 ( 0.00%) cx.tcx.is_diagnostic_item(sym::convert_identity, did) 3,339 ( 0.00%) => ???:::is_diagnostic_item (56x) . }, . _ => false, . } 6 ( 0.00%) } . . /// Checks if an expression represents the identity function . /// Only examines closures and `std::convert::identity` . /// . /// NOTE: If you want to use this function to find out if a closure is unnecessary, you likely want . /// to call [`is_expr_untyped_identity_function`] instead, which makes sure that the closure doesn't . /// have type annotations. This is important because removing a closure with bindings can . /// remove type information that helped type inference before, which can then lead to compile . /// errors. . pub fn is_expr_identity_function(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool { 3 ( 0.00%) match expr.kind { 11 ( 0.00%) ExprKind::Closure(&Closure { body, .. }) => is_body_identity_function(cx, cx.tcx.hir_body(body)), 125 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_body_identity_function (1x) 66 ( 0.00%) => ???:::hir_body (1x) . _ => expr.basic_res().is_diag_item(cx, sym::convert_identity), . } . } . . /// Gets the node where an expression is either used, or it's type is unified with another branch. . /// Returns both the node and the `HirId` of the closest child node. 5,568 ( 0.00%) pub fn get_expr_use_or_unification_node<'tcx>(tcx: TyCtxt<'tcx>, expr: &Expr<'_>) -> Option<(Node<'tcx>, HirId)> { 6,264 ( 0.00%) for (node, child_id) in hir_parent_with_src_iter(tcx, expr.hir_id) { 1,768 ( 0.00%) match node { . Node::Block(_) => {}, . Node::Arm(arm) if arm.body.hir_id == child_id => {}, 2,499 ( 0.00%) Node::Expr(expr) => match expr.kind { . ExprKind::Block(..) | ExprKind::DropTemps(_) => {}, 44 ( 0.00%) ExprKind::Match(_, [arm], _) if arm.hir_id == child_id => {}, . ExprKind::If(_, then_expr, None) if then_expr.hir_id == child_id => return None, 604 ( 0.00%) _ => return Some((Node::Expr(expr), child_id)), . }, 184 ( 0.00%) node => return Some((node, child_id)), . } . } . None 5,568 ( 0.00%) } . . /// Checks if the result of an expression is used, or it's type is unified with another branch. . pub fn is_expr_used_or_unified(tcx: TyCtxt<'_>, expr: &Expr<'_>) -> bool { . !matches!( . get_expr_use_or_unification_node(tcx, expr), . None | Some(( . Node::Stmt(Stmt { . kind: StmtKind::Expr(_) -- line 2017 ---------------------------------------- -- line 2026 ---------------------------------------- . .. . }), . _ . )) . ) . } . . /// Checks if the expression is the final expression returned from a block. 256 ( 0.00%) pub fn is_expr_final_block_expr(tcx: TyCtxt<'_>, expr: &Expr<'_>) -> bool { 896 ( 0.00%) matches!(tcx.parent_hir_node(expr.hir_id), Node::Block(..)) 11,264 ( 0.00%) => ???:::parent_hir_node (128x) 256 ( 0.00%) } . . /// Checks if the expression is a temporary value. . // This logic is the same as the one used in rustc's `check_named_place_expr function`. . // https://github.com/rust-lang/rust/blob/3ed2a10d173d6c2e0232776af338ca7d080b1cd4/compiler/rustc_hir_typeck/src/expr.rs#L482-L499 . pub fn is_expr_temporary_value(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool { . !expr.is_place_expr(|base| { . cx.typeck_results() . .adjustments() -- line 2044 ---------------------------------------- -- line 2052 ---------------------------------------- . None . } else if is_no_std_crate(cx) { . Some("core") . } else { . Some("std") . } . } . 2 ( 0.00%) pub fn is_no_std_crate(cx: &LateContext<'_>) -> bool { 1,198 ( 0.00%) find_attr!(cx.tcx, crate, NoStd) 90 ( 0.00%) => ???:::hir_krate_attrs (2x) 6 ( 0.00%) } . . pub fn is_no_core_crate(cx: &LateContext<'_>) -> bool { . find_attr!(cx.tcx, crate, NoCore) . } . . /// Check if parent of a hir node is a trait implementation block. . /// For example, `f` in . /// ```no_run . /// # struct S; . /// # trait Trait { fn f(); } . /// impl Trait for S { . /// fn f() {} . /// } . /// ``` 19,023 ( 0.00%) pub fn is_trait_impl_item(cx: &LateContext<'_>, hir_id: HirId) -> bool { 31,685 ( 0.00%) if let Node::Item(item) = cx.tcx.parent_hir_node(hir_id) { 988,008 ( 0.01%) => ???:::parent_hir_node (6,341x) 25,104 ( 0.00%) matches!(item.kind, ItemKind::Impl(Impl { of_trait: Some(_), .. })) . } else { . false . } 12,682 ( 0.00%) } . . /// Check if it's even possible to satisfy the `where` clause for the item. . /// . /// `trivial_bounds` feature allows functions with unsatisfiable bounds, for example: . /// . /// ```ignore . /// fn foo() where i32: Iterator { . /// for _ in 2i32 {} -- line 2091 ---------------------------------------- -- line 2098 ---------------------------------------- . .clauses_of(did) . .clauses . .iter() . .filter_map(|(p, _)| if p.is_global() { Some(*p) } else { None }); . traits::impossible_clauses(cx.tcx, traits::elaborate(cx.tcx, clauses).collect::>()) . } . . /// Returns the `DefId` of the callee if the given expression is a function or method call. 35,620 ( 0.00%) pub fn fn_def_id(cx: &LateContext<'_>, expr: &Expr<'_>) -> Option { 8,905 ( 0.00%) fn_def_id_with_node_args(cx, expr).map(|(did, _)| did) 427,275 ( 0.01%) => site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::fn_def_id_with_node_args (8,905x) 17,810 ( 0.00%) } . . /// Returns the `DefId` of the callee if the given expression is a function or method call, . /// as well as its node args. 62,370 ( 0.00%) pub fn fn_def_id_with_node_args<'tcx>( . cx: &LateContext<'tcx>, . expr: &Expr<'_>, . ) -> Option<(DefId, GenericArgsRef<'tcx>)> { . let typeck = cx.typeck_results(); 45,525 ( 0.00%) match &expr.kind { 2,994 ( 0.00%) ExprKind::MethodCall(..) => Some(( 5,988 ( 0.00%) typeck.type_dependent_def_id(expr.hir_id)?, 51,790 ( 0.00%) => ???:::type_dependent_def_id (998x) 3,992 ( 0.00%) typeck.node_args(expr.hir_id), 39,478 ( 0.00%) => ???:::node_args (998x) 1,973 ( 0.00%) )), . ExprKind::Call( . Expr { 975 ( 0.00%) kind: ExprKind::Path(qpath), . hir_id: path_hir_id, . .. . }, . .., . ) => { . // Only return Fn-like DefIds, not the DefIds of statics/consts/etc that contain or . // deref to fn pointers, dyn Fn, impl Fn - #8850 4,875 ( 0.00%) if let Res::Def(DefKind::Fn | DefKind::Ctor(..) | DefKind::AssocFn, id) = 9,750 ( 0.00%) typeck.qpath_res(qpath, *path_hir_id) 23,793 ( 0.00%) => ???:::qpath_res (975x) . { 5,850 ( 0.00%) Some((id, typeck.node_args(*path_hir_id))) 37,766 ( 0.00%) => ???:::node_args (975x) . } else { . None . } . }, . _ => None, . } 80,190 ( 0.00%) } . . /// Returns `Option` where String is a textual representation of the type encapsulated in . /// the slice iff the given expression is a slice of primitives. . /// . /// (As defined in the `is_recursively_primitive_type` function.) Returns `None` otherwise. . pub fn is_slice_of_primitives(cx: &LateContext<'_>, expr: &Expr<'_>) -> Option { . let expr_type = cx.typeck_results().expr_ty_adjusted(expr); . let expr_kind = expr_type.kind(); -- line 2150 ---------------------------------------- -- line 2180 ---------------------------------------- . . /// Returns a list of groups where elements in each group are equal according to `eq` . /// . /// - Within each group the elements are sorted by the order they appear in `exprs` . /// - The groups themselves are sorted by their first element's appearence in `exprs` . /// . /// Given functions `eq` and `hash` such that `eq(a, b) == true` . /// implies `hash(a) == hash(b)` 1,008 ( 0.00%) pub fn search_same(exprs: &[T], mut hash: Hash, mut eq: Eq) -> Vec> . where . Hash: FnMut(&T) -> u64, . Eq: FnMut(&T, &T) -> bool, . { . match exprs { 280 ( 0.00%) [a, b] if eq(a, b) => return vec![vec![a, b]], 180 ( 0.00%) _ if exprs.len() <= 2 => return vec![], . _ => {}, . } . . let mut buckets: UnindexMap>> = UnindexMap::default(); . . for expr in exprs { . match buckets.entry(hash(expr)) { . indexmap::map::Entry::Occupied(mut o) => { -- line 2203 ---------------------------------------- -- line 2213 ---------------------------------------- . } . } . . buckets . .into_values() . .flatten() . .filter(|group| group.len() > 1) . .collect() 864 ( 0.00%) } . . /// Peels off all references on the pattern. Returns the underlying pattern and the number of . /// references removed. 404 ( 0.00%) pub fn peel_hir_pat_refs<'a>(pat: &'a Pat<'a>) -> (&'a Pat<'a>, usize) { . fn peel<'a>(pat: &'a Pat<'a>, count: usize) -> (&'a Pat<'a>, usize) { 808 ( 0.00%) if let PatKind::Ref(pat, _, _) = pat.kind { . peel(pat, count + 1) . } else { . (pat, count) . } . } . peel(pat, 0) 404 ( 0.00%) } . . /// Peels of expressions while the given closure returns `Some`. 232 ( 0.00%) pub fn peel_hir_expr_while<'tcx>( . mut expr: &'tcx Expr<'tcx>, . mut f: impl FnMut(&'tcx Expr<'tcx>) -> Option<&'tcx Expr<'tcx>>, . ) -> &'tcx Expr<'tcx> { 17 ( 0.00%) while let Some(e) = f(expr) { . expr = e; . } . expr 261 ( 0.00%) } . . /// Peels off up to the given number of references on the expression. Returns the underlying . /// expression and the number of references removed. . pub fn peel_n_hir_expr_refs<'a>(expr: &'a Expr<'a>, count: usize) -> (&'a Expr<'a>, usize) { . let mut remaining = count; . let e = peel_hir_expr_while(expr, |e| match e.kind { . ExprKind::AddrOf(ast::BorrowKind::Ref, _, e) if remaining != 0 => { . remaining -= 1; -- line 2253 ---------------------------------------- -- line 2267 ---------------------------------------- . count = count.wrapping_add(1); . curr_expr = local_expr; . } . (curr_expr, count) . } . . /// Peels off all references on the expression. Returns the underlying expression and the number of . /// references removed. 89,276 ( 0.00%) pub fn peel_hir_expr_refs<'a>(expr: &'a Expr<'a>) -> (&'a Expr<'a>, usize) { . let mut count = 0; 96,180 ( 0.00%) let e = peel_hir_expr_while(expr, |e| match e.kind { 1,726 ( 0.00%) ExprKind::AddrOf(ast::BorrowKind::Ref, _, e) => { 1,726 ( 0.00%) count += 1; . Some(e) . }, . _ => None, . }); . (e, count) 44,638 ( 0.00%) } . . /// Peels off all references on the type. Returns the underlying type and the number of references . /// removed. . pub fn peel_hir_ty_refs<'a>(mut ty: &'a hir::Ty<'a>) -> (&'a hir::Ty<'a>, usize) { . let mut count = 0; . loop { . match &ty.kind { . TyKind::Ref(_, ref_ty) => { -- line 2293 ---------------------------------------- -- line 2304 ---------------------------------------- . match &ty.kind { . TyKind::Ptr(mut_ty) | TyKind::Ref(_, mut_ty) => peel_hir_ty_refs_and_ptrs(mut_ty.ty), . _ => ty, . } . } . . /// Removes `AddrOf` operators (`&`) or deref operators (`*`), but only if a reference type is . /// dereferenced. An overloaded deref such as `Vec` to slice would not be removed. 72 ( 0.00%) pub fn peel_ref_operators<'hir>(cx: &LateContext<'_>, mut expr: &'hir Expr<'hir>) -> &'hir Expr<'hir> { . loop { 32 ( 0.00%) match expr.kind { . ExprKind::AddrOf(_, _, e) => expr = e, 8 ( 0.00%) ExprKind::Unary(UnOp::Deref, e) if cx.typeck_results().expr_ty(e).is_ref() => expr = e, . _ => break, . } . } . expr 40 ( 0.00%) } . . /// Returns a `Vec` of `Expr`s containing `AddrOf` operators (`&`) or deref operators (`*`) of a . /// given expression. . pub fn get_ref_operators<'hir>(cx: &LateContext<'_>, expr: &'hir Expr<'hir>) -> Vec<&'hir Expr<'hir>> { . let mut operators = Vec::new(); . peel_hir_expr_while(expr, |expr| match expr.kind { . ExprKind::AddrOf(_, _, e) => { . operators.push(expr); -- line 2329 ---------------------------------------- -- line 2333 ---------------------------------------- . operators.push(expr); . Some(e) . }, . _ => None, . }); . operators . } . 862 ( 0.00%) pub fn is_hir_ty_cfg_dependant(cx: &LateContext<'_>, ty: &hir::Ty<'_>) -> bool { 4,202 ( 0.00%) if let TyKind::Path(QPath::Resolved(_, path)) = ty.kind 1,508 ( 0.00%) && let Res::Def(_, def_id) = path.res . { . return find_attr!(cx.tcx, def_id, CfgTrace(..) | CfgAttrTrace(..)); . } . false 862 ( 0.00%) } . . static TEST_ITEM_NAMES_CACHE: OnceLock>>> = OnceLock::new(); . . /// Returns the names of the test items in the given module. . /// The names are sorted using the default `Symbol` ordering. 580 ( 0.00%) fn test_item_names(tcx: TyCtxt<'_>, module: LocalModId) -> Vec { . let cache = TEST_ITEM_NAMES_CACHE.get_or_init(|| Mutex::new(FxHashMap::default())); . let mut map = cache.lock().unwrap(); . match map.entry(module) { . Entry::Occupied(entry) => entry.get().clone(), . Entry::Vacant(entry) => { . let mut names = Vec::new(); . for id in tcx.hir_module_free_items(module) { 1,106 ( 0.00%) if matches!(tcx.def_kind(id.owner_id), DefKind::Const { .. }) 3 ( 0.00%) && let item = tcx.hir_item(id) 53 ( 0.00%) => ???:::hir_item (1x) 3 ( 0.00%) && let ItemKind::Const(ident, _generics, ty, _body) = item.kind 5 ( 0.00%) && let TyKind::Path(QPath::Resolved(_, path)) = ty.kind . // We could also check for the type name `test::TestDescAndFn` 2 ( 0.00%) && let Res::Def(DefKind::Struct, _) = path.res . && find_attr!(tcx, item.hir_id(), RustcTestMarker(..)) . { . names.push(ident.name); . } . } . names.sort_unstable(); 40 ( 0.00%) entry.insert(names).clone() . }, . } 464 ( 0.00%) } . . /// Checks if the function containing the given `HirId` is a `#[test]` function . /// . /// Note: Add `//@compile-flags: --test` to UI tests with a `#[test]` function 406 ( 0.00%) pub fn is_in_test_function(tcx: TyCtxt<'_>, id: HirId) -> bool { 232 ( 0.00%) let names = test_item_names(tcx, tcx.parent_module(id)); 26,638 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::test_item_names (58x) 5,734 ( 0.00%) => ???:::parent_module (58x) . // Without `--test` there are no test items, so the parent walk can never match. 58 ( 0.00%) if names.is_empty() { . return false; . } . once((id, tcx.hir_node(id))) . .chain(tcx.hir_parent_iter(id)) . // Since you can nest functions we need to collect all until we leave . // function scope . .any(|(_id, node)| { . if let Node::Item(item) = node -- line 2393 ---------------------------------------- -- line 2394 ---------------------------------------- . && let ItemKind::Fn { ident, .. } = item.kind . { . // Note that we have sorted the item names in the visitor, . // so the binary_search gets the same as `contains`, but faster. . return names.binary_search(&ident.name).is_ok(); . } . false . }) 348 ( 0.00%) } . . /// Checks if `fn_def_id` has a `#[test]` attribute applied . /// . /// This only checks directly applied attributes. To see if a node has a parent function marked with . /// `#[test]` use [`is_in_test_function`]. . /// . /// Note: Add `//@compile-flags: --test` to UI tests with a `#[test]` function . pub fn is_test_function(tcx: TyCtxt<'_>, fn_def_id: LocalDefId) -> bool { -- line 2410 ---------------------------------------- -- line 2419 ---------------------------------------- . false . } . } . . /// Checks if `id` has a `#[cfg(test)]` attribute applied . /// . /// This only checks directly applied attributes, to see if a node is inside a `#[cfg(test)]` parent . /// use [`is_in_cfg_test`] 30 ( 0.00%) pub fn is_cfg_test(tcx: TyCtxt<'_>, id: HirId) -> bool { 22,198 ( 0.00%) if let Some(cfgs) = find_attr!(tcx, id, CfgTrace(cfgs) => cfgs) 474 ( 0.00%) => ???:>::get_attrs (10x) . && cfgs . .iter() 51 ( 0.00%) .any(|(cfg, _)| matches!(cfg, CfgEntry::NameValue { name: sym::test, .. })) . { . true . } else { . false . } 20 ( 0.00%) } . . /// Checks if any parent node of `HirId` has `#[cfg(test)]` attribute applied . pub fn is_in_cfg_test(tcx: TyCtxt<'_>, id: HirId) -> bool { . tcx.hir_parent_id_iter(id).any(|parent_id| is_cfg_test(tcx, parent_id)) . } . . /// Checks if the node is in a `#[test]` function or has any parent node marked `#[cfg(test)]` 580 ( 0.00%) pub fn is_in_test(tcx: TyCtxt<'_>, hir_id: HirId) -> bool { 290 ( 0.00%) is_in_test_function(tcx, hir_id) || is_in_cfg_test(tcx, hir_id) 33,822 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_in_test_function (58x) 464 ( 0.00%) } . . /// Checks if the item of any of its parents has `#[cfg(...)]` attribute applied. . pub fn inherits_cfg(tcx: TyCtxt<'_>, def_id: LocalDefId) -> bool { . find_attr!(tcx, def_id, CfgTrace(..)) . || find_attr!( . tcx.hir_parent_id_iter(tcx.local_def_id_to_hir_id(def_id)) . .flat_map(|parent_id| tcx.hir_attrs(parent_id)), . CfgTrace(..) -- line 2455 ---------------------------------------- -- line 2485 ---------------------------------------- . /// Whether the type must unify with another code path. . pub is_ty_unified: bool, . /// Whether the value will be moved before it's used. . pub moved_before_use: bool, . /// Whether the use site has the same `SyntaxContext` as the value. . pub same_ctxt: bool, . } . impl<'tcx> ExprUseSite<'tcx> { 399 ( 0.00%) pub fn use_node(&self, cx: &LateContext<'tcx>) -> ExprUseNode<'tcx> { 2,893 ( 0.00%) match self.node { 6 ( 0.00%) Node::LetStmt(l) => ExprUseNode::LetStmt(l), . Node::ExprField(field) => ExprUseNode::Field(field), . . Node::Item(&Item { . kind: ItemKind::Static(..) | ItemKind::Const(..), 28 ( 0.00%) owner_id, . .. . }) . | Node::TraitItem(&TraitItem { . kind: TraitItemKind::Const(..), . owner_id, . .. . }) . | Node::ImplItem(&ImplItem { . kind: ImplItemKind::Const(..), . owner_id, . .. 28 ( 0.00%) }) => ExprUseNode::ConstStatic(owner_id), . . Node::Item(&Item { . kind: ItemKind::Fn { .. }, . owner_id, . .. . }) . | Node::TraitItem(&TraitItem { . kind: TraitItemKind::Fn(..), . owner_id, . .. . }) . | Node::ImplItem(&ImplItem { . kind: ImplItemKind::Fn(..), 3 ( 0.00%) owner_id, . .. . }) => ExprUseNode::Return(owner_id), . 3,040 ( 0.00%) Node::Expr(use_expr) => match use_expr.kind { . ExprKind::Ret(_) => ExprUseNode::Return(OwnerId { . def_id: cx.tcx.hir_body_owner_def_id(cx.enclosing_body.unwrap()), . }), . . ExprKind::Closure(closure) => ExprUseNode::Return(OwnerId { def_id: closure.def_id }), 181 ( 0.00%) ExprKind::Call(func, args) => match args.iter().position(|arg| arg.hir_id == self.child_id) { 543 ( 0.00%) Some(i) => ExprUseNode::FnArg(func, i), . None => ExprUseNode::Callee, . }, 760 ( 0.00%) ExprKind::MethodCall(name, _, args, _) => ExprUseNode::MethodArg( 152 ( 0.00%) use_expr.hir_id, 152 ( 0.00%) name.args, . args.iter() . .position(|arg| arg.hir_id == self.child_id) . .map_or(0, |i| i + 1), . ), . ExprKind::Field(_, name) => ExprUseNode::FieldAccess(name), 12 ( 0.00%) ExprKind::AddrOf(kind, mutbl, _) => ExprUseNode::AddrOf(kind, mutbl), . _ => ExprUseNode::Other, . }, . _ => ExprUseNode::Other, . } 1,197 ( 0.00%) } . } . . /// The node which consumes a value. . pub enum ExprUseNode<'tcx> { . /// Assignment to, or initializer for, a local . LetStmt(&'tcx LetStmt<'tcx>), . /// Initializer for a const or static item. . ConstStatic(OwnerId), -- line 2561 ---------------------------------------- -- line 2573 ---------------------------------------- . FieldAccess(Ident), . /// Borrow expression. . AddrOf(ast::BorrowKind, Mutability), . Other, . } . impl<'tcx> ExprUseNode<'tcx> { . /// Checks if the value is returned from the function. . pub fn is_return(&self) -> bool { 845 ( 0.00%) matches!(self, Self::Return(_)) . } . . /// Checks if the value is used as a method call receiver. . pub fn is_recv(&self) -> bool { 132 ( 0.00%) matches!(self, Self::MethodArg(_, _, 0)) . } . . /// Gets the needed type as it's defined without any type inference. 2,674 ( 0.00%) pub fn defined_ty(&self, cx: &LateContext<'tcx>) -> Option> { 3,828 ( 0.00%) match *self { . Self::LetStmt(LetStmt { ty: Some(ty), .. }) => Some(DefinedTy::Hir(ty)), 98 ( 0.00%) Self::ConstStatic(id) => Some(DefinedTy::Mir { . def_site_def_id: Some(id.def_id.to_def_id()), 14 ( 0.00%) ty: Binder::dummy(cx.tcx.type_of(id).instantiate_identity().skip_norm_wip()), . }), 6 ( 0.00%) Self::Return(id) => { 9 ( 0.00%) if let Node::Expr(Expr { . kind: ExprKind::Closure(c), . .. 3 ( 0.00%) }) = cx.tcx.hir_node_by_def_id(id.def_id) . { . match c.fn_decl.output { . FnRetTy::DefaultReturn(_) => None, . FnRetTy::Return(ty) => Some(DefinedTy::Hir(ty)), . } . } else { . let ty = cx.tcx.fn_sig(id).instantiate_identity().skip_norm_wip().output(); 12 ( 0.00%) Some(DefinedTy::Mir { . def_site_def_id: Some(id.def_id.to_def_id()), . ty, . }) . } . }, . Self::Field(field) => match get_parent_expr_for_hir(cx, field.hir_id) { . Some(Expr { . hir_id, -- line 2617 ---------------------------------------- -- line 2626 ---------------------------------------- . .map(|f| (adt, f)) . }) . .map(|(adt, field_def)| DefinedTy::Mir { . def_site_def_id: Some(adt.did()), . ty: Binder::dummy(cx.tcx.type_of(field_def.did).instantiate_identity().skip_norm_wip()), . }), . _ => None, . }, 354 ( 0.00%) Self::FnArg(callee, i) => { 531 ( 0.00%) let sig = expr_sig(cx, callee)?; 17,032 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::expr_sig (177x) 1,416 ( 0.00%) let (hir_ty, ty) = sig.input_with_hir(i)?; 7,611 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:::input_with_hir (177x) 1,062 ( 0.00%) Some(match hir_ty { . Some(hir_ty) => DefinedTy::Hir(hir_ty), . None => DefinedTy::Mir { . def_site_def_id: sig.predicates_id(), . ty, . }, . }) 191 ( 0.00%) }, 284 ( 0.00%) Self::MethodArg(id, _, i) => { 284 ( 0.00%) let id = cx.typeck_results().type_dependent_def_id(id)?; 7,338 ( 0.00%) => ???:::type_dependent_def_id (142x) 142 ( 0.00%) let sig = cx.tcx.fn_sig(id).skip_binder(); 568 ( 0.00%) Some(DefinedTy::Mir { . def_site_def_id: Some(id), . ty: sig.input(i), . }) 142 ( 0.00%) }, . Self::LetStmt(_) | Self::FieldAccess(..) | Self::Callee | Self::Other | Self::AddrOf(..) => None, . } 3,438 ( 0.00%) } . } . . struct ReplacingFilterMap(I, F); . impl Iterator for ReplacingFilterMap . where . I: Iterator, . F: FnMut(&mut I, I::Item) -> Option, . { . type Item = U; . fn next(&mut self) -> Option { 818 ( 0.00%) while let Some(x) = self.0.next() { . if let Some(x) = (self.1)(&mut self.0, x) { . return Some(x); . } . } . None . } . } . -- line 2674 ---------------------------------------- -- line 2676 ---------------------------------------- . /// which simply moves a value. . #[expect(clippy::too_many_lines)] . pub fn expr_use_sites<'tcx>( . tcx: TyCtxt<'tcx>, . typeck: &'tcx TypeckResults<'tcx>, . mut ctxt: SyntaxContext, . e: &'tcx Expr<'tcx>, . ) -> impl Iterator> { 1,209 ( 0.00%) let mut adjustments: &[_] = typeck.expr_adjustments(e); 16,793 ( 0.00%) => ???:::expr_adjustments (403x) . let mut is_ty_unified = false; . let mut moved_before_use = false; . let mut same_ctxt = true; 5,642 ( 0.00%) ReplacingFilterMap( 806 ( 0.00%) hir_parent_with_src_iter(tcx, e.hir_id), . move |iter: &mut _, (parent, child_id)| { . let parent_ctxt; . let mut parent_adjustments: &[_] = &[]; 1,636 ( 0.00%) match parent { . Node::Expr(parent_expr) => { 387 ( 0.00%) parent_ctxt = parent_expr.span.ctxt(); 1,161 ( 0.00%) same_ctxt &= parent_ctxt == ctxt; 1,161 ( 0.00%) parent_adjustments = typeck.expr_adjustments(parent_expr); 14,299 ( 0.00%) => ???:::expr_adjustments (387x) 2,016 ( 0.00%) match parent_expr.kind { 54 ( 0.00%) ExprKind::Match(scrutinee, arms, _) if scrutinee.hir_id != child_id => { . is_ty_unified |= arms.len() != 1; . moved_before_use = true; . if adjustments.is_empty() { . adjustments = parent_adjustments; . } . return None; . }, . ExprKind::If(cond, _, else_) if cond.hir_id != child_id => { -- line 2707 ---------------------------------------- -- line 2716 ---------------------------------------- . is_ty_unified = true; . moved_before_use = true; . *iter = hir_parent_with_src_iter(tcx, id); . if adjustments.is_empty() { . adjustments = parent_adjustments; . } . return None; . }, 3 ( 0.00%) ExprKind::Block(b, _) => { 3 ( 0.00%) is_ty_unified |= b.targeted_by_break; . moved_before_use = true; . if adjustments.is_empty() { . adjustments = parent_adjustments; . } . return None; . }, . ExprKind::DropTemps(_) | ExprKind::Type(..) => { . if adjustments.is_empty() { -- line 2733 ---------------------------------------- -- line 2741 ---------------------------------------- . Node::Arm(arm) => { . parent_ctxt = arm.span.ctxt(); . same_ctxt &= parent_ctxt == ctxt; . if arm.body.hir_id == child_id { . return None; . } . }, . Node::Block(b) => { 12 ( 0.00%) same_ctxt &= b.span.ctxt() == ctxt; . return None; . }, . Node::ConstBlock(_) => parent_ctxt = ctxt, . Node::ExprField(&ExprField { span, .. }) => { . parent_ctxt = span.ctxt(); . same_ctxt &= parent_ctxt == ctxt; . }, . Node::AnonConst(&AnonConst { span, .. }) -- line 2757 ---------------------------------------- -- line 2759 ---------------------------------------- . | Node::Field(&FieldDef { span, .. }) . | Node::ImplItem(&ImplItem { span, .. }) . | Node::Item(&Item { span, .. }) . | Node::LetStmt(&LetStmt { span, .. }) . | Node::Stmt(&Stmt { span, .. }) . | Node::TraitItem(&TraitItem { span, .. }) . | Node::Variant(&Variant { span, .. }) => { . parent_ctxt = span.ctxt(); 38 ( 0.00%) same_ctxt &= parent_ctxt == ctxt; . *iter = hir_parent_with_src_iter(tcx, CRATE_HIR_ID); . }, . Node::AssocItemConstraint(_) . | Node::ConstArgExprField(_) . | Node::Crate(_) . | Node::Ctor(_) . | Node::Err(_) . | Node::ForeignItem(_) -- line 2775 ---------------------------------------- -- line 2803 ---------------------------------------- . is_ty_unified: mem::replace(&mut is_ty_unified, false), . moved_before_use: mem::replace(&mut moved_before_use, false), . same_ctxt: mem::replace(&mut same_ctxt, true), . }) . }, . ) . } . 4,836 ( 0.00%) pub fn get_expr_use_site<'tcx>( . tcx: TyCtxt<'tcx>, . typeck: &'tcx TypeckResults<'tcx>, . ctxt: SyntaxContext, . e: &'tcx Expr<'tcx>, . ) -> ExprUseSite<'tcx> { . // The value in `unwrap_or` doesn't actually matter; an expression always . // has a use site. . expr_use_sites(tcx, typeck, ctxt, e).next().unwrap_or_else(|| { -- line 2819 ---------------------------------------- -- line 2822 ---------------------------------------- . node: Node::Synthetic, // The crate root would also work. . child_id: CRATE_HIR_ID, . adjustments: &[], . is_ty_unified: false, . moved_before_use: false, . same_ctxt: false, . } . }) 3,224 ( 0.00%) } . . /// Tokenizes the input while keeping the text associated with each token. . pub fn tokenize_with_text(s: &str) -> impl Iterator { . let mut pos = 0; . tokenize(s, FrontmatterAllowed::No).map(move |t| { 4,778 ( 0.00%) let end = pos + t.len; 3 ( 0.00%) let range = pos as usize..end as usize; . let inner = InnerSpan::new(range.start, range.end); 1,645 ( 0.00%) pos = end; 6,464 ( 0.00%) (t.kind, s.get(range).unwrap_or_default(), inner) 812 ( 0.00%) }) . } . . /// Checks whether a given span has any comment token . /// This checks for all types of comment: line "//", block "/**", doc "///" "//!" . pub fn span_contains_comment<'sm>(sm: impl HasSourceMap<'sm>, span: Span) -> bool { . span.check_text(sm, |snippet| { . tokenize(snippet, FrontmatterAllowed::No).any(|token| { 2,339 ( 0.00%) matches!( . token.kind, . TokenKind::BlockComment { .. } | TokenKind::LineComment { .. } . ) . }) . }) . } . . /// Checks whether a given span has any significant token. A significant token is a non-whitespace -- line 2857 ---------------------------------------- -- line 2942 ---------------------------------------- . /// Binary operation traits like `LangItem::Add` . pub static BINOP_TRAITS: &[LangItem] = &[$(LangItem::$name,)*]; . . /// Operator-Assign traits like `LangItem::AddAssign` . pub static OP_ASSIGN_TRAITS: &[LangItem] = &[$(LangItem::$assign,)*]; . . /// Converts `BinOpKind::Add` to `(LangItem::Add, LangItem::AddAssign)`, for example . pub fn binop_traits(kind: hir::BinOpKind) -> Option<(LangItem, LangItem)> { 1,338 ( 0.00%) match kind { . $(hir::BinOpKind::$name => Some((LangItem::$name, LangItem::$assign)),)* . _ => None, . } . } . }; . } . . op_utils! { -- line 2958 ---------------------------------------- -- line 2966 ---------------------------------------- . BitOr BitOrAssign . Shl ShlAssign . Shr ShrAssign . } . . /// Returns `true` if the pattern is a `PatWild`, or is an ident prefixed with `_` . /// that is not locally used. . pub fn pat_is_wild<'tcx>(cx: &LateContext<'tcx>, pat: &'tcx PatKind<'_>, body: impl Visitable<'tcx>) -> bool { 28 ( 0.00%) match *pat { . PatKind::Wild => true, 10 ( 0.00%) PatKind::Binding(_, id, ident, None) if ident.as_str().starts_with('_') => { 38 ( 0.00%) => ???:::as_str (1x) . !visitors::is_local_used(cx, body, id) . }, . _ => false, . } 1 ( 0.00%) } . . #[derive(Clone, Copy)] . pub enum RequiresSemi { . Yes, . No, . } . impl RequiresSemi { . pub fn requires_semi(self) -> bool { -- line 2989 ---------------------------------------- -- line 3363 ---------------------------------------- . cx.tcx.parent_hir_node(id), . Node::Stmt(..) | Node::Block(Block { stmts: [], .. }) . ) . } . . /// Returns true if the given `expr` is a block or resembled as a block, . /// such as `if`, `loop`, `match` expressions etc. . pub fn is_block_like(expr: &Expr<'_>) -> bool { 4 ( 0.00%) matches!( 8 ( 0.00%) expr.kind, . ExprKind::Block(..) | ExprKind::ConstBlock(..) | ExprKind::If(..) | ExprKind::Loop(..) | ExprKind::Match(..) . ) . } . . /// Returns true if the given `expr` is binary expression that needs to be wrapped in parentheses. . pub fn binary_expr_needs_parentheses(expr: &Expr<'_>) -> bool { . fn contains_block(expr: &Expr<'_>, is_operand: bool) -> bool { . match expr.kind { -- line 3380 ---------------------------------------- -- line 3570 ---------------------------------------- . { . Some(into_future_arg) . } else { . None . } . } . . /// Checks if the given expression is a call to `Default::default()`. 58 ( 0.00%) pub fn is_expr_default<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) -> bool { 162 ( 0.00%) if let ExprKind::Call(fn_expr, []) = &expr.kind 12 ( 0.00%) && let ExprKind::Path(qpath) = &fn_expr.kind 27 ( 0.00%) && let Res::Def(_, def_id) = cx.qpath_res(qpath, fn_expr.hir_id) 234 ( 0.00%) => ???:::qpath_res (3x) . { 9 ( 0.00%) cx.tcx.is_diagnostic_item(sym::default_fn, def_id) 264 ( 0.00%) => ???:::is_diagnostic_item (3x) . } else { . false . } 58 ( 0.00%) } . . /// Checks if `expr` may be directly used as the return value of its enclosing body. . /// The following cases are covered: . /// - `expr` as the last expression of the body, or of a block that can be used as the return value . /// - `return expr` . /// - then or else part of a `if` in return position . /// - arm body of a `match` in a return position . /// - `break expr` or `break 'label expr` if the loop or block being exited is used as a return -- line 3595 ---------------------------------------- -- line 3671 ---------------------------------------- . )), . .. . }) . ) . } . . /// Checks if the chosen edition and `msrv` allows using `if let` chains. . pub fn can_use_if_let_chains(cx: &LateContext<'_>, msrv: Msrv) -> bool { 12 ( 0.00%) cx.tcx.sess.edition().at_least_rust_2024() && msrv.meets(cx, msrvs::LET_CHAINS) 4 ( 0.00%) } . . /// Returns an iterator over successive parent nodes paired with the ID of the node which . /// immediatly preceeded them. . #[inline] . pub fn hir_parent_with_src_iter(tcx: TyCtxt<'_>, mut id: HirId) -> impl Iterator, HirId)> { . tcx.hir_parent_id_iter(id) 7,636 ( 0.00%) .map(move |parent| (tcx.hir_node(parent), mem::replace(&mut id, parent))) 36,310 ( 0.00%) => ???:::hir_node (698x) . } 240,900 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/block_scrutinee.rs -------------------------------------------------------------------------------- Ir -- line 27 ---------------------------------------- . pub BLOCK_SCRUTINEE, . suspicious, . "warns when the scrutinee is wrapped in a block in older editions" . } . . declare_lint_pass!(BlockScrutinee => [BLOCK_SCRUTINEE]); . . impl<'tcx> LateLintPass<'tcx> for BlockScrutinee { 222,000 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 133,200 ( 0.00%) if cx.tcx.sess.edition() >= Edition::Edition2024 { . return; . } . 222,326 ( 0.00%) let (scrutinee, keyword_fallback) = match expr.kind { 6,603 ( 0.00%) ExprKind::Match(scrutinee, _, _) => (scrutinee, "`match`"), 326 ( 0.00%) ExprKind::Let(let_expr) => (let_expr.init, "`if let` / `while let`"), . _ => return, . }; . 5,308 ( 0.00%) if scrutinee.span.from_expansion() || expr.span.from_expansion() { . return; . } . 274 ( 0.00%) if let ExprKind::Block(block, _) = scrutinee.kind . && matches!(block.rules, BlockCheckMode::DefaultBlock) . && block.stmts.is_empty() . && let Some(inner_expr) = block.expr . { . let inner_snippet = snippet(cx, inner_expr.span, ".."); . . let main_msg = "this scrutinee is wrapped in a block"; . -- line 58 ---------------------------------------- -- line 102 ---------------------------------------- . vec![ . (outer_span.shrink_to_lo(), format!("let res = {inner_snippet};\n{pad}")), . (scrutinee.span, "res".to_string()), . ], . Applicability::MaybeIncorrect, . ); . }); . } 222,000 ( 0.00%) } . } 2,853 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/unit_types/unit_cmp.rs -------------------------------------------------------------------------------- Ir . use clippy_utils::diagnostics::span_lint; . use clippy_utils::macros::{find_assert_eq_args, root_macro_call_first_node}; . use clippy_utils::{is_unit_expr, sym}; . use rustc_hir::{BinOpKind, Expr, ExprKind}; . use rustc_lint::LateContext; . . use super::UNIT_CMP; . 399,600 ( 0.01%) pub(super) fn check(cx: &LateContext<'_>, expr: &Expr<'_>) { 88,800 ( 0.00%) if expr.span.from_expansion() { 1,337 ( 0.00%) if let Some(macro_call) = root_macro_call_first_node(cx, expr) 1,337 ( 0.00%) && let Some(diag_name) = cx.tcx.get_diagnostic_name(macro_call.def_id) 9,233 ( 0.00%) => ???:::get_diagnostic_name (191x) . { . let result = match diag_name { 180 ( 0.00%) sym::assert_eq_macro | sym::debug_assert_eq_macro => "succeed", . sym::assert_ne_macro | sym::debug_assert_ne_macro => "fail", . _ => return, . }; 36 ( 0.00%) let Some((lhs, rhs, _)) = find_assert_eq_args(cx, expr, macro_call.expn) else { 14,952 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::find_assert_eq_args (4x) . return; . }; . if is_unit_expr(lhs) || is_unit_expr(rhs) { . return; . } 4 ( 0.00%) if !cx.typeck_results().expr_ty(lhs).is_unit() { 160 ( 0.00%) => ???:::expr_ty (4x) . return; . } . span_lint( . cx, . UNIT_CMP, . macro_call.span, . format!( . "`{}` of unit values detected. This will always {result}", . cx.tcx.item_name(macro_call.def_id) . ), . ); . } . return; . } . 17,778 ( 0.00%) if let ExprKind::Binary(ref cmp, left, _) = expr.kind { 45 ( 0.00%) let op = cmp.node; 25 ( 0.00%) if op.is_comparison() && cx.typeck_results().expr_ty(left).is_unit() { 1,000 ( 0.00%) => ???:::expr_ty (25x) . let result = match op { . BinOpKind::Eq | BinOpKind::Le | BinOpKind::Ge => "true", . _ => "false", . }; . span_lint( . cx, . UNIT_CMP, . expr.span, . format!( . "{}-comparison of unit values detected. This will always be {result}", . op.as_str() . ), . ); . } . } 355,200 ( 0.00%) } 296 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/bool_comparison.rs -------------------------------------------------------------------------------- Ir -- line 31 ---------------------------------------- . pub BOOL_COMPARISON, . complexity, . "comparing a variable to a boolean, e.g., `if x == true` or `if x != true`" . } . . declare_lint_pass!(BoolComparison => [BOOL_COMPARISON]); . . impl<'tcx> LateLintPass<'tcx> for BoolComparison { 399,600 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, e: &'tcx Expr<'_>) { 133,200 ( 0.00%) if e.span.from_expansion() { . return; . } . 135 ( 0.00%) if let ExprKind::Binary(Spanned { node, .. }, left_side, right_side) = e.kind 270 ( 0.00%) && is_expn_of(left_side.span, sym::cfg).is_none() 1,665 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_expn_of (45x) 270 ( 0.00%) && is_expn_of(right_side.span, sym::cfg).is_none() 1,665 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_expn_of (45x) 225 ( 0.00%) && cx.typeck_results().expr_ty(left_side).is_bool() 1,800 ( 0.00%) => ???:::expr_ty (45x) . && cx.typeck_results().expr_ty(right_side).is_bool() . { . let ignore_case = None::<(fn(_) -> _, &str)>; . let ignore_no_literal = None::<(fn(_, _) -> _, &str)>; . match node { . BinOpKind::Eq => { . let true_case = Some((|h| h, "equality checks against true are unnecessary")); . let false_case = Some(( -- line 55 ---------------------------------------- -- line 94 ---------------------------------------- . Some(( . |l: Sugg<'tcx>, r: Sugg<'tcx>| l.bit_and(&(!r)), . "order comparisons between booleans can be simplified", . )), . ), . _ => (), . } . } 355,200 ( 0.00%) } . } . . fn check_comparison<'a, 'tcx>( . cx: &LateContext<'tcx>, . e: &'tcx Expr<'_>, . left_true: Option<(impl FnOnce(Sugg<'a>) -> Sugg<'a>, &'static str)>, . left_false: Option<(impl FnOnce(Sugg<'a>) -> Sugg<'a>, &'static str)>, . right_true: Option<(impl FnOnce(Sugg<'a>) -> Sugg<'a>, &'static str)>, -- line 110 ---------------------------------------- 17,778 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_data_structures/src/sharded.rs -------------------------------------------------------------------------------- Ir -- line 87 ---------------------------------------- . #[track_caller] . pub fn lock_shard_by_hash(&self, hash: u64) -> LockGuard<'_, T> { . self.lock_shard_by_index(get_shard_hash(hash)) . } . . #[inline] . #[track_caller] . pub fn lock_shard_by_index(&self, i: usize) -> LockGuard<'_, T> { 60,581 ( 0.00%) match self { . Self::Single(single) => { . // Synchronization is disabled so use the `lock_assume_no_sync` method optimized . // for that case. . . // SAFETY: We know `is_dyn_thread_safe` was false when creating the lock thus . // `might_be_dyn_thread_safe` was also false. . unsafe { single.lock_assume(Mode::NoSync) } . } -- line 103 ---------------------------------------- -- line 104 ---------------------------------------- . Self::Shards(shards) => { . // Synchronization is enabled so use the `lock_assume_sync` method optimized . // for that case. . . // SAFETY (get_unchecked): The index gets ANDed with the shard mask, ensuring it is . // always inbounds. . // SAFETY (lock_assume_sync): We know `is_dyn_thread_safe` was true when creating . // the lock thus `might_be_dyn_thread_safe` was also true. 30,178 ( 0.00%) unsafe { shards.get_unchecked(i & (SHARDS - 1)).0.lock_assume(Mode::Sync) } . } . } . } . . #[inline] . pub fn lock_shards(&self) -> impl Iterator> { . match self { . Self::Single(single) => Either::Left(iter::once(single.lock())), -- line 120 ---------------------------------------- -- line 148 ---------------------------------------- . } . pub fn len(&self) -> usize { . self.lock_shards().map(|shard| shard.len()).sum() . } . } . . impl ShardedHashMap { . #[inline] 73,953 ( 0.00%) pub fn get(&self, key: &Q) -> Option . where . K: Borrow, . Q: Hash + Eq, . V: Clone, . { . let hash = make_hash(key); . let shard = self.lock_shard_by_hash(hash); . let (_, value) = shard.find(hash, |(k, _)| k.borrow() == key)?; 56,805 ( 0.00%) Some(value.clone()) 89,258 ( 0.00%) } . . #[inline] . pub fn get_or_insert_with(&self, key: K, default: impl FnOnce() -> V) -> V . where . V: Copy, . { . let hash = make_hash(&key); . let mut shard = self.lock_shard_by_hash(hash); -- line 174 ---------------------------------------- -- line 288 ---------------------------------------- . /// instance, then `hash` must be computed with `FxHasher`. Otherwise, . /// `hash` can be computed with any hasher, so long as that hasher is used . /// consistently for each `Sharded` instance. . #[inline] . fn get_shard_hash(hash: u64) -> usize { . let hash_len = size_of::(); . // Ignore the top 7 bits as hashbrown uses these and get the next SHARD_BITS highest bits. . // hashbrown also uses the lowest bits, so we can't use those 30,168 ( 0.00%) (hash >> (hash_len * 8 - 7 - SHARD_BITS)) as usize . } 43,660 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/swap.rs -------------------------------------------------------------------------------- Ir -- line 72 ---------------------------------------- . pub MANUAL_SWAP, . complexity, . "manual swap of two variables" . } . . declare_lint_pass!(Swap => [ALMOST_SWAPPED, MANUAL_SWAP]); . . impl<'tcx> LateLintPass<'tcx> for Swap { 39,040 ( 0.00%) fn check_block(&mut self, cx: &LateContext<'tcx>, block: &'tcx Block<'_>) { . check_manual_swap(cx, block); . check_suspicious_swap(cx, block); . check_xor_swap(cx, block); 31,232 ( 0.00%) } . } . . #[expect(clippy::too_many_arguments)] . fn generate_swap_warning<'tcx>( . block: &'tcx Block<'tcx>, . cx: &LateContext<'tcx>, . e1: &'tcx Expr<'tcx>, . e2: &'tcx Expr<'tcx>, -- line 92 ---------------------------------------- -- line 163 ---------------------------------------- . diag.note(format!("or maybe you should use `{sugg}::mem::replace`?")); . } . }, . ); . } . . /// Implementation of the `MANUAL_SWAP` lint. . fn check_manual_swap<'tcx>(cx: &LateContext<'tcx>, block: &'tcx Block<'tcx>) { 11,712 ( 0.00%) if is_in_const_context(cx) { 1,148,399 ( 0.02%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_in_const_context (3,904x) . return; . } . . for [s1, s2, s3] in block.stmts.array_windows::<3>() { 2,001 ( 0.00%) if let StmtKind::Let(tmp) = s1.kind . // let t = foo(); 609 ( 0.00%) && let Some(tmp_init) = tmp.init 985 ( 0.00%) && let PatKind::Binding(.., ident, None) = tmp.pat.kind . . // foo() = bar(); 419 ( 0.00%) && let StmtKind::Semi(first) = s2.kind 50 ( 0.00%) && let ExprKind::Assign(lhs1, rhs1, _) = first.kind . . // bar() = t; 3 ( 0.00%) && let StmtKind::Semi(second) = s3.kind 3 ( 0.00%) && let ExprKind::Assign(lhs2, rhs2, _) = second.kind 2 ( 0.00%) && let ExprKind::Path(QPath::Resolved(None, rhs2_path)) = rhs2.kind . && rhs2_path.segments.len() == 1 . . && ident.name == rhs2_path.segments[0].ident.name . . && let ctxt = s1.span.ctxt() . && s2.span.ctxt() == ctxt . && s3.span.ctxt() == ctxt . && first.span.ctxt() == ctxt -- line 196 ---------------------------------------- -- line 203 ---------------------------------------- . generate_swap_warning(block, cx, lhs1, lhs2, rhs1, rhs2, span, false); . } . } . } . . /// Implementation of the `ALMOST_SWAPPED` lint. . fn check_suspicious_swap(cx: &LateContext<'_>, block: &Block<'_>) { . for [first, second] in block.stmts.array_windows() { 3,097 ( 0.00%) if let Some((lhs0, rhs0)) = parse(first) 1,366 ( 0.00%) && let Some((lhs1, rhs1)) = parse(second) 196 ( 0.00%) && let ctxt = first.span.ctxt() 392 ( 0.00%) && ctxt == second.span.ctxt() 784 ( 0.00%) && !ctxt.in_external_macro(cx.sess().source_map()) 40,267 ( 0.00%) => ???:::in_external_macro (196x) 948 ( 0.00%) && is_same(cx, ctxt, lhs0, rhs1) 8,587 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/swap.rs:clippy_lints::swap::is_same (158x) . && is_same(cx, ctxt, lhs1, rhs0) . && !is_same(cx, ctxt, lhs1, rhs1) // Ignore a = b; a = a (#10421) . && let Some(lhs_sugg) = match &lhs0 { . ExprOrIdent::Expr(expr) => Sugg::hir_opt(cx, expr), . ExprOrIdent::Ident(ident) => Some(Sugg::NonParen(ident.as_str().into())), . } . && let Some(rhs_sugg) = Sugg::hir_opt(cx, rhs0) . { -- line 224 ---------------------------------------- -- line 239 ---------------------------------------- . diag.note(format!("or maybe you should use `{sugg}::mem::replace`?")); . }, . ); . } . } . } . . fn is_same(cx: &LateContext<'_>, ctxt: SyntaxContext, lhs: ExprOrIdent<'_>, rhs: &Expr<'_>) -> bool { 316 ( 0.00%) match lhs { 6 ( 0.00%) ExprOrIdent::Expr(expr) => eq_expr_value(cx, ctxt, expr, rhs), 7,609 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:clippy_utils::hir_utils::eq_expr_value (3x) . ExprOrIdent::Ident(ident) => { 325 ( 0.00%) if let ExprKind::Path(QPath::Resolved(None, path)) = rhs.kind 9 ( 0.00%) && let [segment] = &path.segments . && segment.ident == ident . { . true . } else { . false . } . }, . } 155 ( 0.00%) } . . #[derive(Debug, Clone, Copy)] . enum ExprOrIdent<'a> { . Expr(&'a Expr<'a>), . Ident(Ident), . } . . fn parse<'a, 'hir>(stmt: &'a Stmt<'hir>) -> Option<(ExprOrIdent<'hir>, &'a Expr<'hir>)> { 4,112 ( 0.00%) if let StmtKind::Semi(expr) = stmt.kind { 667 ( 0.00%) if let ExprKind::Assign(lhs, rhs, _) = expr.kind { . return Some((ExprOrIdent::Expr(lhs), rhs)); . } . } else if let StmtKind::Let(expr) = stmt.kind 1,956 ( 0.00%) && let Some(rhs) = expr.init 3,564 ( 0.00%) && let PatKind::Binding(_, _, ident_l, _) = expr.pat.kind . { . return Some((ExprOrIdent::Ident(ident_l), rhs)); . } . None . } . . /// Implementation of the xor case for `MANUAL_SWAP` lint. . fn check_xor_swap<'tcx>(cx: &LateContext<'tcx>, block: &'tcx Block<'tcx>) { . for [s1, s2, s3] in block.stmts.array_windows::<3>() { 473 ( 0.00%) let ctxt = s1.span.ctxt(); 113 ( 0.00%) if let Some((lhs0, rhs0)) = extract_sides_of_xor_assign(s1, ctxt) . && let Some((lhs1, rhs1)) = extract_sides_of_xor_assign(s2, ctxt) . && let Some((lhs2, rhs2)) = extract_sides_of_xor_assign(s3, ctxt) . && eq_expr_value(cx, ctxt, lhs0, rhs1) . && eq_expr_value(cx, ctxt, lhs2, rhs1) . && eq_expr_value(cx, ctxt, lhs1, rhs0) . && eq_expr_value(cx, ctxt, lhs1, rhs2) . && s2.span.ctxt() == ctxt . && s3.span.ctxt() == ctxt -- line 294 ---------------------------------------- -- line 299 ---------------------------------------- . } . } . . /// Returns the lhs and rhs of an xor assignment statement. . fn extract_sides_of_xor_assign<'a, 'hir>( . stmt: &'a Stmt<'hir>, . ctxt: SyntaxContext, . ) -> Option<(&'a Expr<'hir>, &'a Expr<'hir>)> { 946 ( 0.00%) if let StmtKind::Semi(expr) = stmt.kind 228 ( 0.00%) && let ExprKind::AssignOp( . Spanned { . node: AssignOpKind::BitXorAssign, . .. . }, . lhs, . rhs, . ) = expr.kind . && expr.span.ctxt() == ctxt -- line 316 ---------------------------------------- 25,724 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/casts/cast_slice_different_sizes.rs -------------------------------------------------------------------------------- Ir -- line 4 ---------------------------------------- . use rustc_ast::Mutability; . use rustc_hir::{Expr, ExprKind, Node}; . use rustc_lint::LateContext; . use rustc_middle::ty::layout::LayoutOf as _; . use rustc_middle::ty::{self, Ty, TypeAndMut}; . . use super::CAST_SLICE_DIFFERENT_SIZES; . 488,400 ( 0.01%) pub(super) fn check<'tcx>(cx: &LateContext<'tcx>, expr: &Expr<'tcx>, msrv: Msrv) { . // if this cast is the child of another cast expression then don't emit something for it, the full . // chain will be analyzed 168,004 ( 0.00%) if is_child_of_cast(cx, expr) { . return; . } . 43,538 ( 0.00%) if let Some(CastChainInfo { . left_cast, . start_ty, . end_ty, 217,690 ( 0.00%) }) = expr_cast_chain_tys(cx, expr) 1,113,339 ( 0.02%) => site/frontend/rust-clippy/clippy_lints/src/casts/cast_slice_different_sizes.rs:clippy_lints::casts::cast_slice_different_sizes::expr_cast_chain_tys (43,538x) . && let (Ok(from_layout), Ok(to_layout)) = (cx.layout_of(start_ty.ty), cx.layout_of(end_ty.ty)) . { . let from_size = from_layout.size.bytes(); . let to_size = to_layout.size.bytes(); . if from_size != to_size . && from_size != 0 . && to_size != 0 . && msrv.meets(cx, msrvs::PTR_SLICE_RAW_PARTS) -- line 31 ---------------------------------------- -- line 58 ---------------------------------------- . format!("replace with `ptr::slice_from_raw_parts{mutbl_fn_str}`"), . sugg, . rustc_errors::Applicability::HasPlaceholders, . ); . }, . ); . } . } 355,200 ( 0.00%) } . . fn is_child_of_cast(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool { 88,800 ( 0.00%) let parent = cx.tcx.parent_hir_node(expr.hir_id); 4,382,080 ( 0.06%) => ???:::parent_hir_node (44,400x) 215,138 ( 0.00%) let expr = match parent { 3,431 ( 0.00%) Node::Block(block) => { 10,293 ( 0.00%) if let Some(parent_expr) = block.expr { . parent_expr . } else { . return false; . } . }, 62,746 ( 0.00%) Node::Expr(expr) => expr, . _ => return false, . }; . 34,804 ( 0.00%) matches!(expr.kind, ExprKind::Cast(..)) . } . . /// Returns the type T of the pointed to *const [T] or *mut [T] and the mutability of the slice if . /// the type is one of those slices . fn get_raw_slice_ty_mut(ty: Ty<'_>) -> Option> { 1,724 ( 0.00%) match ty.kind() { . ty::RawPtr(slice_ty, mutbl) => match slice_ty.kind() { . ty::Slice(ty) => Some(TypeAndMut { ty: *ty, mutbl: *mutbl }), . _ => None, . }, . _ => None, . } . } . -- line 96 ---------------------------------------- -- line 102 ---------------------------------------- . start_ty: TypeAndMut<'tcx>, . /// The final type of the cast chain . end_ty: TypeAndMut<'tcx>, . } . . /// Returns a `CastChainInfo` with the left-most cast in the chain and the original ptr T and final . /// ptr U if the expression is composed of casts. . /// Returns None if the expr is not a Cast 348,304 ( 0.00%) fn expr_cast_chain_tys<'tcx>(cx: &LateContext<'tcx>, expr: &Expr<'tcx>) -> Option> { 42,676 ( 0.00%) if let ExprKind::Cast(cast_expr, _cast_to_hir_ty) = expr.peel_blocks().kind { 2,586 ( 0.00%) let cast_to = cx.typeck_results().expr_ty(expr); 34,480 ( 0.00%) => ???:::expr_ty (862x) . let to_slice_ty = get_raw_slice_ty_mut(cast_to)?; . . // If the expression that makes up the source of this cast is itself a cast, recursively . // call `expr_cast_chain_tys` and update the end type with the final target type. . // Otherwise, this cast is not immediately nested, just construct the info for this cast . if let Some(prev_info) = expr_cast_chain_tys(cx, cast_expr) { . Some(CastChainInfo { . end_ty: to_slice_ty, -- line 120 ---------------------------------------- -- line 125 ---------------------------------------- . let from_slice_ty = get_raw_slice_ty_mut(cast_from)?; . Some(CastChainInfo { . left_cast: cast_expr, . start_ty: from_slice_ty, . end_ty: to_slice_ty, . }) . } . } else { 42,676 ( 0.00%) None . } 348,304 ( 0.00%) } 131,476 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/collapsible_if.rs -------------------------------------------------------------------------------- Ir -- line 90 ---------------------------------------- . pub fn new(conf: &'static Conf) -> Self { . Self { . msrv: conf.msrv.into(), . lint_commented_code: conf.lint_commented_code, . } . } . . fn check_collapsible_else_if(&self, cx: &LateContext<'_>, then_span: Span, else_block: &Block<'_>) { 48 ( 0.00%) if let Some(else_) = expr_block(else_block) 50 ( 0.00%) && !else_.span.from_expansion() 44 ( 0.00%) && let ExprKind::If(else_if_cond, ..) = else_.kind . && self.check_significant_tokens_and_expect_attrs(cx, else_block, else_, sym::collapsible_else_if) . { . span_lint_hir_and_then( . cx, . COLLAPSIBLE_ELSE_IF, . else_.hir_id, . else_block.span, . "this `else { if .. }` block can be collapsed", -- line 108 ---------------------------------------- -- line 160 ---------------------------------------- . ), . applicability, . ); . }, . ); . } . } . 112 ( 0.00%) fn check_collapsible_if_if(&self, cx: &LateContext<'_>, expr: &Expr<'_>, check: &Expr<'_>, then: &Block<'_>) { . if let Some(inner) = expr_block(then) 39 ( 0.00%) && let ExprKind::If(check_inner, _, None) = &inner.kind . && self.eligible_condition(cx, check_inner) . && expr.span.eq_ctxt(inner.span) . && self.check_significant_tokens_and_expect_attrs(cx, then, inner, sym::collapsible_if) . && let then_closing_bracket = { . let end = then.span.shrink_to_hi(); . end.with_lo(end.lo() - BytePos(1)) . } . && !span_contains_cfg(cx, inner.span.between(then_closing_bracket)) -- line 178 ---------------------------------------- -- line 209 ---------------------------------------- . . sugg.extend(parens_around(check)); . sugg.extend(parens_around(check_inner)); . . diag.multipart_suggestion("collapse nested if block", sugg, Applicability::MachineApplicable); . }, . ); . } 112 ( 0.00%) } . . fn eligible_condition(&self, cx: &LateContext<'_>, cond: &Expr<'_>) -> bool { 68 ( 0.00%) !matches!(cond.kind, ExprKind::Let(..)) || can_use_if_let_chains(cx, self.msrv) 24 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::can_use_if_let_chains (4x) . } . . // Check that nothing significant can be found between the initial `{` of `inner_if` and . // the beginning of `inner_if_expr`... . // . // Unless it's only an `#[expect(clippy::collapsible{,_else}_if)]` attribute, in which case we . // _do_ need to lint, in order to actually fulfill its expectation (#13365) . fn check_significant_tokens_and_expect_attrs( -- line 228 ---------------------------------------- -- line 256 ---------------------------------------- . . // There are other attributes, which are significant tokens -- check failed . _ => false, . } . } . } . . impl LateLintPass<'_> for CollapsibleIf { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'_>, expr: &Expr<'_>) { 88,800 ( 0.00%) if let ExprKind::If(cond, then, else_) = &expr.kind 1,232 ( 0.00%) && !expr.span.from_expansion() . { 162 ( 0.00%) if let Some(else_) = else_ . // Short circuit if both `if` branches contain only a single `if {..} else {}`, as . // collapsing such blocks can lead to less readable code (#4971) 36 ( 0.00%) && !(single_inner_if_else(then) && single_inner_if_else(else_)) 162 ( 0.00%) && let ExprKind::Block(else_, None) = else_.kind . { 30 ( 0.00%) self.check_collapsible_else_if(cx, then.span, else_); . } else if else_.is_none() 44 ( 0.00%) && self.eligible_condition(cx, cond) 84 ( 0.00%) && let ExprKind::Block(then, None) = then.kind . { 196 ( 0.00%) self.check_collapsible_if_if(cx, expr, cond, then); 399 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/collapsible_if.rs:::check_collapsible_if_if (14x) . } . } 355,088 ( 0.00%) } . } . . /// Returns true if `expr` is a block that contains only one `if {..} else {}` statement . fn single_inner_if_else(expr: &Expr<'_>) -> bool { 180 ( 0.00%) if let ExprKind::Block(block, None) = expr.kind 58 ( 0.00%) && let Some(inner_expr) = expr_block(block) 58 ( 0.00%) && let ExprKind::If(_, _, else_) = inner_expr.kind . && else_.is_some() . { . true . } else { . false . } . } . . /// If `block` is a block with either one expression or a statement containing an expression, . /// return the expression. We don't peel blocks recursively, as extra blocks might be intentional. . fn expr_block<'tcx>(block: &Block<'tcx>) -> Option<&'tcx Expr<'tcx>> { 192 ( 0.00%) match (block.stmts, block.expr) { 288 ( 0.00%) ([], expr) => expr, 42 ( 0.00%) ([stmt], None) if let StmtKind::Semi(expr) = stmt.kind => Some(expr), . _ => None, . } . } . . /// If the expression is a `||`, suggest parentheses around it. . pub(super) fn parens_around(expr: &Expr<'_>) -> Vec<(Span, String)> { . if let ExprKind::Binary(op, _, _) = expr.peel_drop_temps().kind . && op.node == BinOpKind::Or -- line 311 ---------------------------------------- 78 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/useless_vec.rs -------------------------------------------------------------------------------- Ir -- line 43 ---------------------------------------- . /// work, we get a false positive warning on the `$v.push(3)` which really requires `$v` to . /// be a vector. . span_to_state: BTreeMap, . allow_in_test: bool, . } . . impl UselessVec { . pub fn new(conf: &'static Conf) -> Self { 5 ( 0.00%) Self { . too_large_for_stack: conf.too_large_for_stack, . msrv: conf.msrv.into(), . span_to_state: BTreeMap::new(), 2 ( 0.00%) allow_in_test: conf.allow_useless_vec_in_tests, . } . } . } . . declare_clippy_lint! { . /// ### What it does . /// Checks for usage of `vec![..]` when using `[..]` would . /// be possible. -- line 63 ---------------------------------------- -- line 166 ---------------------------------------- . VecToArray::Impossible . } . }, . } . } . } . . impl<'tcx> LateLintPass<'tcx> for UselessVec { 399,600 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 177,600 ( 0.00%) if let Some(vec_args) = higher::VecArgs::hir(cx, expr.peel_borrows()) 2,156,854 ( 0.03%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir (44,400x) . // The `vec![]` or `&vec![]` invocation span. . && let vec_span = expr.span.parent_callsite().unwrap_or(expr.span) . && !vec_span.from_expansion() . { . if self.allow_in_test && is_in_test(cx.tcx, expr.hir_id) { . return; . } . -- line 183 ---------------------------------------- -- line 232 ---------------------------------------- . }); . } . }, . VecToArray::Impossible => { . self.span_to_state.insert(vec_span, VecState::NoChange); . }, . } . } 355,200 ( 0.00%) } . 8 ( 0.00%) fn check_crate_post(&mut self, cx: &LateContext<'tcx>) { 10 ( 0.00%) for (span, state) in mem::take(&mut self.span_to_state) { . if let VecState::Change { . suggest_ty, . vec_snippet, . expr_hir_id, . } = state . { . span_lint_hir_and_then(cx, USELESS_VEC, expr_hir_id, span, "useless use of `vec!`", |diag| { . let help_msg = format!("you can use {} directly", suggest_ty.desc()); -- line 251 ---------------------------------------- -- line 255 ---------------------------------------- . Applicability::Unspecified . } else { . Applicability::MachineApplicable . }; . diag.span_suggestion(span, help_msg, vec_snippet, applicability); . }); . } . } 8 ( 0.00%) } . } . . #[derive(Copy, Clone)] . pub(crate) enum SuggestedType { . /// Suggest using a slice `&[..]` / `&mut [..]` . SliceRef(Mutability), . /// Suggest using an array: `[..]` . Array, -- line 271 ---------------------------------------- 1 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.2/src/arch/generic/memchr.rs -------------------------------------------------------------------------------- Ir -- line 163 ---------------------------------------- . // Search a possibly unaligned chunk at `start`. This covers any part . // of the haystack prior to where aligned loads can start. . if let Some(cur) = self.search_chunk(start, topos) { . return Some(cur); . } . // Set `cur` to the first V-aligned pointer greater than `start`. . let mut cur = start.add(V::BYTES - (start.as_usize() & V::ALIGN)); . debug_assert!(cur > start && end.sub(V::BYTES) >= start); 7,325 ( 0.00%) if len >= Self::LOOP_SIZE { . while cur <= end.sub(Self::LOOP_SIZE) { . debug_assert_eq!(0, cur.as_usize() % V::BYTES); . . let a = V::load_aligned(cur); . let b = V::load_aligned(cur.add(1 * V::BYTES)); . let c = V::load_aligned(cur.add(2 * V::BYTES)); . let d = V::load_aligned(cur.add(3 * V::BYTES)); . let eqa = self.v1.cmpeq(a); -- line 179 ---------------------------------------- -- line 204 ---------------------------------------- . return Some(cur.add(3 * V::BYTES).add(topos(mask))); . } . cur = cur.add(Self::LOOP_SIZE); . } . } . // Handle any leftovers after the aligned loop above. We use unaligned . // loads here, but I believe we are guaranteed that they are aligned . // since `cur` is aligned. 6,668 ( 0.00%) while cur <= end.sub(V::BYTES) { . debug_assert!(end.distance(cur) >= V::BYTES); . if let Some(cur) = self.search_chunk(cur, topos) { . return Some(cur); . } . cur = cur.add(V::BYTES); . } . // Finally handle any remaining bytes less than the size of V. In this . // case, our pointer may indeed be unaligned and the load may overlap . // with the previous one. But that's okay since we know the previous . // load didn't lead to a match (otherwise we wouldn't be here). 4,170 ( 0.00%) if cur < end { . debug_assert!(end.distance(cur) < V::BYTES); . cur = cur.sub(V::BYTES - end.distance(cur)); . debug_assert_eq!(end.distance(cur), V::BYTES); . return self.search_chunk(cur, topos); . } . None . } . -- line 231 ---------------------------------------- -- line 415 ---------------------------------------- . #[inline(always)] . unsafe fn search_chunk( . &self, . cur: *const u8, . mask_to_offset: impl Fn(V::Mask) -> usize, . ) -> Option<*const u8> { . let chunk = V::load_unaligned(cur); . let mask = self.v1.cmpeq(chunk).movemask(); 11,178 ( 0.00%) if mask.has_non_zero() { . Some(cur.add(mask_to_offset(mask))) . } else { . None . } . } . } . . /// Finds all occurrences of two bytes in a haystack. -- line 431 ---------------------------------------- -- line 1147 ---------------------------------------- . #[inline(always)] . pub(crate) unsafe fn fwd_byte_by_byte bool>( . start: *const u8, . end: *const u8, . confirm: F, . ) -> Option<*const u8> { . debug_assert!(start <= end); . let mut ptr = start; 13,647 ( 0.00%) while ptr < end { . if confirm(*ptr) { . return Some(ptr); . } . ptr = ptr.offset(1); . } . None . } . -- line 1163 ---------------------------------------- 9,701 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/hir/map.rs -------------------------------------------------------------------------------- Ir -- line 30 ---------------------------------------- . tcx: TyCtxt<'tcx>, . // Cache the current value of `hir_owner_nodes` to avoid repeatedly calling the same query for . // the same owner, which will uselessly record many times the same query dependency. . current_owner_nodes: Option<&'tcx OwnerNodes<'tcx>>, . } . . impl<'tcx> ParentHirIterator<'tcx> { . fn new(tcx: TyCtxt<'tcx>, current_id: HirId) -> ParentHirIterator<'tcx> { 232 ( 0.00%) ParentHirIterator { current_id, tcx, current_owner_nodes: None } . } . } . . impl<'tcx> Iterator for ParentHirIterator<'tcx> { . type Item = HirId; . . fn next(&mut self) -> Option { . if self.current_id == CRATE_HIR_ID { -- line 46 ---------------------------------------- -- line 100 ---------------------------------------- . Some((self.current_id.owner, node)) . } . } . . impl<'tcx> TyCtxt<'tcx> { . #[inline] . pub fn local_def_id_to_hir_id(self, def_id: impl IntoQueryKey) -> HirId { . let def_id = def_id.into_query_key(); 44,101 ( 0.00%) match self.hir_owner(def_id) { . ProjectedMaybeOwner::Owner(_) => HirId::make_owner(def_id), . ProjectedMaybeOwner::NonOwner(hir_id) => hir_id, . } . } . . /// This function is used only inside eval-always query `analysis` . /// (`analysis -> run_required_analysis` -> `emit_delayed_lints`), so it is safe . /// to obtain delayed lints from non-eval-always `owner` query. -- line 116 ---------------------------------------- -- line 162 ---------------------------------------- . /// Retrieves the `hir::Node` corresponding to `id`. . pub fn hir_node(self, id: HirId) -> Node<'tcx> { . self.hir_owner_nodes(id.owner).nodes[id.local_id].node . } . . /// Retrieves the `hir::Node` corresponding to `id`. . #[inline] . pub fn hir_node_by_def_id(self, id: LocalDefId) -> Node<'tcx> { 11,516 ( 0.00%) self.hir_node(self.local_def_id_to_hir_id(id)) 3,484 ( 0.00%) => ???:::hir_node (67x) . } . . /// Returns `HirId` of the parent HIR node of node with this `hir_id`. . /// Returns the same `hir_id` if and only if `hir_id == CRATE_HIR_ID`. . /// . /// If calling repeatedly and iterating over parents, prefer [`TyCtxt::hir_parent_iter`]. . pub fn parent_hir_id(self, hir_id: HirId) -> HirId { . let HirId { owner, local_id } = hir_id; -- line 178 ---------------------------------------- -- line 303 ---------------------------------------- . self.hir_span(hir_id), . "body_owned_by: {} has no associated body", . self.hir_id_to_string(hir_id) . ); . }) . } . . pub fn hir_body_param_idents(self, id: BodyId) -> impl Iterator> { 7,704 ( 0.00%) self.hir_body(id).params.iter().map(|param| match param.pat.kind { 1,192 ( 0.00%) PatKind::Binding(_, _, ident, _) => Some(ident), 207 ( 0.00%) PatKind::Wild => Some(Ident::new(kw::Underscore, param.pat.span)), . _ => None, . }) . } . . /// Returns the `BodyOwnerKind` of this `LocalDefId`. . /// . /// Panics if `LocalDefId` does not have an associated body. 20,972 ( 0.00%) pub fn hir_body_owner_kind(self, def_id: impl Into) -> BodyOwnerKind { 5,984 ( 0.00%) let def_id = def_id.into(); 35,914 ( 0.00%) match self.def_kind(def_id) { . DefKind::Const { .. } | DefKind::AssocConst { .. } => { 13 ( 0.00%) BodyOwnerKind::Const { inline: false } . } . DefKind::AnonConst => BodyOwnerKind::Const { . inline: self.anon_const_kind(def_id) == ty::AnonConstKind::NonTypeSystemInline, 206 ( 0.00%) }, . DefKind::Ctor(..) | DefKind::Fn | DefKind::AssocFn => BodyOwnerKind::Fn, . DefKind::Closure | DefKind::SyntheticCoroutineBody => BodyOwnerKind::Closure, . DefKind::Static { safety: _, mutability, nested: false } => { . BodyOwnerKind::Static(mutability) . } . DefKind::GlobalAsm => BodyOwnerKind::GlobalAsm, . dk => bug!("{:?} is not a body node: {:?}", def_id, dk), . } 18,008 ( 0.00%) } . . /// Returns the `ConstContext` of the body associated with this `LocalDefId`. . /// . /// Panics if `LocalDefId` does not have an associated body. . /// . /// This should only be used for determining the context of a body, a return . /// value of `Some` does not always suggest that the owner of the body is `const`, . /// just that it has to be checked as if it were. -- line 346 ---------------------------------------- -- line 524 ---------------------------------------- . pub fn hir_parent_id_iter(self, current_id: HirId) -> impl Iterator { . ParentHirIterator::new(self, current_id) . } . . /// Returns an iterator for the nodes in the ancestor tree of the `current_id` . /// until the crate root is reached. Prefer this over your own loop using `parent_id`. . #[inline] . pub fn hir_parent_iter(self, current_id: HirId) -> impl Iterator)> { 219,859 ( 0.00%) self.hir_parent_id_iter(current_id).map(move |id| (id, self.hir_node(id))) 2,802 ( 0.00%) => ???:::hir_node (52x) . } . . /// Returns an iterator for the nodes in the ancestor tree of the `current_id` . /// until the crate root is reached. Prefer this over your own loop using `parent_id`. . #[inline] . pub fn hir_parent_owner_iter(self, current_id: HirId) -> ParentOwnerIterator<'tcx> { . ParentOwnerIterator { current_id, tcx: self } . } -- line 540 ---------------------------------------- 60,237 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/filter_map.rs -------------------------------------------------------------------------------- Ir -- line 16 ---------------------------------------- . #[stable(feature = "rust1", since = "1.0.0")] . #[derive(Clone)] . pub struct FilterMap { . iter: I, . f: F, . } . impl FilterMap { . pub(in crate::iter) const fn new(iter: I, f: F) -> FilterMap { 94,278 ( 0.00%) FilterMap { iter, f } . } . } . . #[stable(feature = "core_impl_debug", since = "1.9.0")] . impl fmt::Debug for FilterMap { . fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { . f.debug_struct("FilterMap").field("iter", &self.iter).finish() . } . } . . fn filter_map_fold( . mut f: impl FnMut(T) -> Option, . mut fold: impl FnMut(Acc, B) -> Acc, . ) -> impl FnMut(Acc, T) -> Acc { 157,410 ( 0.00%) move |acc, item| match f(item) { 74 ( 0.00%) Some(x) => fold(acc, x), 11,546 ( 0.00%) None => acc, . } . } . . fn filter_map_try_fold<'a, T, B, Acc, R: Try>( . f: &'a mut impl FnMut(T) -> Option, . mut fold: impl FnMut(Acc, B) -> R + 'a, . ) -> impl FnMut(Acc, T) -> R + 'a { 11,842 ( 0.00%) move |acc, item| match f(item) { 70 ( 0.00%) => ???:::get_diagnostic_name (1x) 28 ( 0.00%) Some(x) => fold(acc, x), . None => try { acc }, . } . } . . #[stable(feature = "rust1", since = "1.0.0")] . impl Iterator for FilterMap . where . F: FnMut(I::Item) -> Option, . { . type Item = B; . . #[inline] . fn next(&mut self) -> Option { 365 ( 0.00%) self.iter.find_map(&mut self.f) . } . . #[inline] . fn next_chunk( . &mut self, . ) -> Result<[Self::Item; N], array::IntoIter> { . let mut array: [MaybeUninit; N] = [const { MaybeUninit::uninit() }; N]; . -- line 72 ---------------------------------------- -- line 130 ---------------------------------------- . . #[inline] . fn try_fold(&mut self, init: Acc, fold: Fold) -> R . where . Self: Sized, . Fold: FnMut(Acc, Self::Item) -> R, . R: Try, . { 134 ( 0.00%) self.iter.try_fold(init, filter_map_try_fold(&mut self.f, fold)) . } . . #[inline] . fn fold(self, init: Acc, fold: Fold) -> Acc . where . Fold: FnMut(Acc, Self::Item) -> Acc, . { 1,082 ( 0.00%) self.iter.fold(init, filter_map_fold(self.f, fold)) . } . } . . #[stable(feature = "rust1", since = "1.0.0")] . impl DoubleEndedIterator for FilterMap . where . F: FnMut(I::Item) -> Option, . { -- line 154 ---------------------------------------- 199,225 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/edition.rs -------------------------------------------------------------------------------- Ir . use std::fmt; . use std::str::FromStr; . . use rustc_macros::{BlobDecodable, Encodable, StableHash}; . . /// The edition of the compiler. (See [RFC 2052](https://github.com/rust-lang/rfcs/blob/master/text/2052-epochs.md).) 186,594 ( 0.00%) #[derive(Clone, Copy, Hash, PartialEq, PartialOrd, Debug, Encodable, BlobDecodable, Eq)] . #[derive(StableHash)] . pub enum Edition { . // When adding new editions, be sure to do the following: . // . // - update the `ALL_EDITIONS` const . // - update the `EDITION_NAME_LIST` const . // - add a `rust_####()` function to the session . // - update the enum in Cargo's sources as well -- line 15 ---------------------------------------- -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/cognitive_complexity.rs -------------------------------------------------------------------------------- Ir -- line 62 ---------------------------------------- . decl: &'tcx FnDecl<'_>, . expr: &'tcx Expr<'_>, . body_span: Span, . ) { . if body_span.from_expansion() { . return; . } . 771 ( 0.00%) let mut cc = 1u64; 771 ( 0.00%) let mut returns = 0u64; 771 ( 0.00%) let mut prev_expr: Option<&ExprKind<'tcx>> = None; . let _: Option = for_each_expr_without_closures(expr, |e| { 89,216 ( 0.00%) match e.kind { . ExprKind::If(_, _, _) => { . cc += 1; . }, 658 ( 0.00%) ExprKind::Match(_, arms, _) => { 658 ( 0.00%) if arms.len() > 1 { 592 ( 0.00%) cc += 1; . } . cc += arms.iter().filter(|arm| arm.guard.is_some()).count() as u64; . }, 1,351 ( 0.00%) ExprKind::Ret(_) if !matches!(prev_expr, Some(ExprKind::Ret(_))) => { 193 ( 0.00%) returns += 1; . }, . _ => {}, . } 18,740 ( 0.00%) prev_expr = Some(&e.kind); . ControlFlow::Continue(()) . }); . 2,313 ( 0.00%) let ret_ty = cx.typeck_results().node_type(expr.hir_id); 31,611 ( 0.00%) => ???:::node_type (771x) 1,492 ( 0.00%) let ret_adjust = if ret_ty.is_diag_item(cx, sym::Result) { 656 ( 0.00%) returns . } else { . #[expect(clippy::integer_division)] 230 ( 0.00%) (returns / 2) . }; . . // prevent degenerate cases where unreachable code contains `return` statements 3,855 ( 0.00%) if cc >= ret_adjust { 1,542 ( 0.00%) cc -= ret_adjust; . } . 1,542 ( 0.00%) if cc > self.limit.limit() { . let fn_span = match kind { . FnKind::ItemFn(ident, _, _) | FnKind::Method(ident, _) => ident.span, . FnKind::Closure => { . let header_span = body_span.with_hi(decl.output.span().lo()); . if let Some(range) = header_span.map_range(cx, |_, src, range| { . let mut idxs = src.get(range.clone())?.match_indices('|'); . Some(range.start + idxs.next()?.0..range.start + idxs.next()?.0 + 1) . }) { -- line 114 ---------------------------------------- -- line 130 ---------------------------------------- . None, . "you could split it up into multiple smaller functions", . ); . } . } . } . . impl<'tcx> LateLintPass<'tcx> for CognitiveComplexity { 41,100 ( 0.00%) fn check_fn( . &mut self, . cx: &LateContext<'tcx>, . kind: FnKind<'tcx>, . decl: &'tcx FnDecl<'_>, . body: &'tcx Body<'_>, . span: Span, . def_id: LocalDefId, . ) { . #[allow(deprecated)] 2,740 ( 0.00%) if cx.tcx.get_attrs(def_id, sym::test).next().is_none() { 30,140 ( 0.00%) let expr = if kind.asyncness().is_async() { 27,438 ( 0.00%) => ???:::asyncness (2,740x) . match get_async_fn_body(cx.tcx, body) { . Some(b) => b, . None => { . return; . }, . } . } else { 2,740 ( 0.00%) body.value . }; . 13,700 ( 0.00%) self.check(cx, kind, decl, expr, span); . } 21,920 ( 0.00%) } . . fn check_attributes(&mut self, cx: &LateContext<'tcx>, attrs: &'tcx [Attribute]) { . self.limit.push_attrs(cx.sess(), attrs, sym::cognitive_complexity); . } . fn check_attributes_post(&mut self, cx: &LateContext<'tcx>, attrs: &'tcx [Attribute]) { . self.limit.pop_attrs(cx.sess(), attrs, sym::cognitive_complexity); . } . } -- line 170 ---------------------------------------- 19,061 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/utils/dump_hir.rs -------------------------------------------------------------------------------- Ir -- line 18 ---------------------------------------- . /// fn foo(input: u32) -> u64 { . /// input as u64 . /// } . /// ``` . DumpHir => [] . ); . . impl<'tcx> LateLintPass<'tcx> for DumpHir { 12,016 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx hir::Item<'_>) { 1,920 ( 0.00%) if has_attr(cx, item.hir_id()) { . println!("{item:#?}"); . } 12,016 ( 0.00%) } . 355,200 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx hir::Expr<'_>) { 133,203 ( 0.00%) if has_attr(cx, expr.hir_id) { . println!("{expr:#?}"); . } 355,200 ( 0.00%) } . 19,080 ( 0.00%) fn check_stmt(&mut self, cx: &LateContext<'tcx>, stmt: &'tcx hir::Stmt<'_>) { 9,708 ( 0.00%) match stmt.kind { 4,338 ( 0.00%) hir::StmtKind::Expr(e) | hir::StmtKind::Semi(e) if has_attr(cx, e.hir_id) => return, . _ => {}, . } 5,278 ( 0.00%) if has_attr(cx, stmt.hir_id) { . println!("{stmt:#?}"); . } 16,960 ( 0.00%) } . 1,464 ( 0.00%) fn check_trait_item(&mut self, cx: &LateContext<'_>, item: &TraitItem<'_>) { 361 ( 0.00%) if has_attr(cx, item.hir_id()) { . println!("{item:#?}"); . } 1,464 ( 0.00%) } . 24,408 ( 0.00%) fn check_impl_item(&mut self, cx: &LateContext<'_>, item: &hir::ImplItem<'_>) { 4,462 ( 0.00%) if has_attr(cx, item.hir_id()) { . println!("{item:#?}"); . } 24,408 ( 0.00%) } . } . . fn has_attr(cx: &LateContext<'_>, hir_id: hir::HirId) -> bool { 110,500 ( 0.00%) let attrs = cx.tcx.hir_attrs(hir_id); 2,364,000 ( 0.03%) => ???:::hir_attrs (44,400x) 2,015 ( 0.00%) get_builtin_attr(attrs, sym::dump).count() > 0 . } 4,024 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/cloned_ref_to_slice_refs.rs -------------------------------------------------------------------------------- Ir -- line 58 ---------------------------------------- . } . impl ClonedRefToSliceRefs { . pub fn new(conf: &Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl<'tcx> LateLintPass<'tcx> for ClonedRefToSliceRefs { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &Expr<'tcx>) { . // `&[foo.clone()]` expressions 92,246 ( 0.00%) if let ExprKind::AddrOf(_, mutability, arr) = &expr.kind . // mutable references would have a different meaning . && mutability.is_not() . . // check for single item arrays 4,426 ( 0.00%) && let ExprKind::Array([item]) = &arr.kind . . // check for clones 4 ( 0.00%) && let ExprKind::MethodCall(path, recv, _, _) = item.kind . . && self.msrv.meets(cx, { . if is_in_const_context(cx) { . msrvs::CONST_SLICE_FROM_REF . } else { . msrvs::SLICE_FROM_REF . } . }) -- line 84 ---------------------------------------- -- line 101 ---------------------------------------- . "unnecessary use of `{}` to create a slice from a reference", . path.ident.name . ), . "try", . format!("{builtin_crate}::slice::from_ref({adjustment}{sugg})"), . applicability, . ); . } 355,200 ( 0.00%) } . } . . /// Checks if a method call is a needless clone or equivalent. If so, returns the necessary . /// adjustments to use the method receiver directly without cloning. . /// For example, in the code below: . /// ```rust,no_run . /// use std::path::PathBuf; . /// -- line 117 ---------------------------------------- -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/cmp.rs -------------------------------------------------------------------------------- Ir -- line 268 ---------------------------------------- . /// . /// This default shouldn't be overridden without good reason, . /// such as when forwarding to another PartialEq implementation. . #[inline] . #[must_use] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_diagnostic_item = "cmp_partialeq_ne"] . fn ne(&self, other: &Rhs) -> bool { 21,206 ( 0.00%) !self.eq(other) 15 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_lexer/src/lib.rs:::eq (3x) . } . } . . /// Derive macro generating an impl of the trait [`PartialEq`]. . /// The behavior of this macro is described in detail [here](PartialEq#derivable). . #[rustc_builtin_macro] . #[stable(feature = "builtin_macro_prelude", since = "1.38.0")] . #[allow_internal_unstable(core_intrinsics, structural_match)] -- line 284 ---------------------------------------- -- line 402 ---------------------------------------- . /// . /// assert_eq!(1.cmp(&2), Ordering::Less); . /// . /// assert_eq!(1.cmp(&1), Ordering::Equal); . /// . /// assert_eq!(2.cmp(&1), Ordering::Greater); . /// ``` . #[derive(Copy, Debug, Hash)] 48 ( 0.00%) #[derive_const(Clone, Eq, PartialOrd, Ord, PartialEq)] . #[stable(feature = "rust1", since = "1.0.0")] . // This is a lang item only so that `BinOp::Cmp` in MIR can return it. . // It has no special behavior, but does require that the three variants . // `Less`/`Equal`/`Greater` remain `-1_i8`/`0_i8`/`+1_i8` respectively. . #[lang = "Ordering"] . #[repr(i8)] . pub enum Ordering { . /// An ordering where a compared value is less than another. -- line 418 ---------------------------------------- -- line 486 ---------------------------------------- . /// assert_eq!(Ordering::Equal.is_lt(), false); . /// assert_eq!(Ordering::Greater.is_lt(), false); . /// ``` . #[inline] . #[must_use] . #[rustc_const_stable(feature = "ordering_helpers", since = "1.53.0")] . #[stable(feature = "ordering_helpers", since = "1.53.0")] . pub const fn is_lt(self) -> bool { 9 ( 0.00%) self.as_raw() < 0 . } . . /// Returns `true` if the ordering is the `Greater` variant. . /// . /// # Examples . /// . /// ``` . /// use std::cmp::Ordering; -- line 502 ---------------------------------------- -- line 505 ---------------------------------------- . /// assert_eq!(Ordering::Equal.is_gt(), false); . /// assert_eq!(Ordering::Greater.is_gt(), true); . /// ``` . #[inline] . #[must_use] . #[rustc_const_stable(feature = "ordering_helpers", since = "1.53.0")] . #[stable(feature = "ordering_helpers", since = "1.53.0")] . pub const fn is_gt(self) -> bool { 32,161 ( 0.00%) self.as_raw() > 0 . } . . /// Returns `true` if the ordering is either the `Less` or `Equal` variant. . /// . /// # Examples . /// . /// ``` . /// use std::cmp::Ordering; -- line 521 ---------------------------------------- -- line 524 ---------------------------------------- . /// assert_eq!(Ordering::Equal.is_le(), true); . /// assert_eq!(Ordering::Greater.is_le(), false); . /// ``` . #[inline] . #[must_use] . #[rustc_const_stable(feature = "ordering_helpers", since = "1.53.0")] . #[stable(feature = "ordering_helpers", since = "1.53.0")] . pub const fn is_le(self) -> bool { 87 ( 0.00%) self.as_raw() <= 0 . } . . /// Returns `true` if the ordering is either the `Greater` or `Equal` variant. . /// . /// # Examples . /// . /// ``` . /// use std::cmp::Ordering; -- line 540 ---------------------------------------- -- line 543 ---------------------------------------- . /// assert_eq!(Ordering::Equal.is_ge(), true); . /// assert_eq!(Ordering::Greater.is_ge(), true); . /// ``` . #[inline] . #[must_use] . #[rustc_const_stable(feature = "ordering_helpers", since = "1.53.0")] . #[stable(feature = "ordering_helpers", since = "1.53.0")] . pub const fn is_ge(self) -> bool { 390,702 ( 0.01%) self.as_raw() >= 0 . } . . /// Reverses the `Ordering`. . /// . /// * `Less` becomes `Greater`. . /// * `Greater` becomes `Less`. . /// * `Equal` becomes `Equal`. . /// -- line 559 ---------------------------------------- -- line 1043 ---------------------------------------- . #[inline] . #[must_use] . #[rustc_diagnostic_item = "cmp_ord_max"] . fn max(self, other: Self) -> Self . where . Self: Sized + [const] Destruct, . { . if other < self { self } else { other } 58,024 ( 0.00%) } . . /// Compares and returns the minimum of two values. . /// . /// Returns the first argument if the comparison determines them to be equal. . /// . /// # Examples . /// . /// ``` -- line 1059 ---------------------------------------- -- line 1082 ---------------------------------------- . #[inline] . #[must_use] . #[rustc_diagnostic_item = "cmp_ord_min"] . fn min(self, other: Self) -> Self . where . Self: Sized + [const] Destruct, . { . if other < self { other } else { self } 7,811 ( 0.00%) } . . /// Restrict a value to a certain interval. . /// . /// Returns `max` if `self` is greater than `max`, and `min` if `self` is . /// less than `min`. Otherwise this returns `self`. . /// . /// # Panics . /// -- line 1098 ---------------------------------------- -- line 1615 ---------------------------------------- . #[stable(feature = "cmp_min_max_by", since = "1.53.0")] . #[rustc_const_unstable(feature = "const_cmp", issue = "143800")] . pub const fn min_by Ordering>( . v1: T, . v2: T, . compare: F, . ) -> T { . if compare(&v1, &v2).is_le() { v1 } else { v2 } 24 ( 0.00%) } . . /// Returns the element that gives the minimum value from the specified function. . /// . /// Returns the first argument if the comparison determines them to be equal. . /// . /// # Examples . /// . /// ``` -- line 1631 ---------------------------------------- -- line 1722 ---------------------------------------- . #[stable(feature = "cmp_min_max_by", since = "1.53.0")] . #[rustc_const_unstable(feature = "const_cmp", issue = "143800")] . pub const fn max_by Ordering>( . v1: T, . v2: T, . compare: F, . ) -> T { . if compare(&v1, &v2).is_gt() { v1 } else { v2 } 456 ( 0.00%) } . . /// Returns the element that gives the maximum value from the specified function. . /// . /// Returns the second argument if the comparison determines them to be equal. . /// . /// # Examples . /// . /// ``` -- line 1738 ---------------------------------------- -- line 1889 ---------------------------------------- . /// NOTE: Calling this on a non-primitive type (such as `()`) . /// leads to an infinitely-looping self-recursive implementation. . macro_rules! impl_partial_eq_for_primitive { . ($($t:ty)*) => ($( . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_cmp", issue = "143800")] . const impl PartialEq for $t { . #[inline] 691,751 ( 0.01%) fn eq(&self, other: &Self) -> bool { *self == *other } . // Override the default to use the primitive implementation for `!=`. . #[inline] . fn ne(&self, other: &Self) -> bool { *self != *other } . } . )*) . } . . impl_partial_eq_for_primitive! { -- line 1905 ---------------------------------------- -- line 1928 ---------------------------------------- . } . . eq_impl! { () bool char usize u8 u16 u32 u64 u128 isize i8 i16 i32 i64 i128 } . . #[rustfmt::skip] . macro_rules! partial_ord_methods_primitive_impl { . () => { . #[inline(always)] 34,911 ( 0.00%) fn lt(&self, other: &Self) -> bool { *self < *other } . #[inline(always)] 1 ( 0.00%) fn le(&self, other: &Self) -> bool { *self <= *other } . #[inline(always)] . fn gt(&self, other: &Self) -> bool { *self > *other } . #[inline(always)] . fn ge(&self, other: &Self) -> bool { *self >= *other } . . // These implementations are the same for `Ord` or `PartialOrd` types . // because if either is NAN the `==` test will fail so we end up in . // the `Break` case and the comparison will correctly return `false`. -- line 1946 ---------------------------------------- -- line 2023 ---------------------------------------- . partial_ord_methods_primitive_impl!(); . } . . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_cmp", issue = "143800")] . const impl Ord for $t { . #[inline] . fn cmp(&self, other: &Self) -> Ordering { 1,103 ( 0.00%) crate::intrinsics::three_way_compare(*self, *other) . } . . #[inline] . #[track_caller] . fn clamp(self, min: Self, max: Self) -> Self . { . const_assert!( . min <= max, -- line 2039 ---------------------------------------- -- line 2135 ---------------------------------------- . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_cmp", issue = "143800")] . const impl PartialEq<&B> for &A . where . A: [const] PartialEq, . { . #[inline] . fn eq(&self, other: &&B) -> bool { 5,041 ( 0.00%) PartialEq::eq(*self, *other) 228 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::eq (12x) . } . #[inline] . fn ne(&self, other: &&B) -> bool { . PartialEq::ne(*self, *other) . } . } . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_cmp", issue = "143800")] -- line 2151 ---------------------------------------- 37,154 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/unicode.rs -------------------------------------------------------------------------------- Ir -- line 74 ---------------------------------------- . . declare_lint_pass!(Unicode => [ . INVISIBLE_CHARACTERS, . NON_ASCII_LITERAL, . UNICODE_NOT_NFC, . ]); . . impl LateLintPass<'_> for Unicode { 177,600 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'_>, expr: &'_ Expr<'_>) { 89,256 ( 0.00%) if let ExprKind::Lit(lit) = expr.kind 5,673 ( 0.00%) && let LitKind::Str(_, _) | LitKind::Char(_) = lit.node . { 912 ( 0.00%) check_str(cx, lit.span, expr.hir_id); . } 222,000 ( 0.00%) } . } . . fn escape>(s: T) -> String { . let mut result = String::new(); . for c in s { . if c as u32 > 0x7F { . for d in c.escape_unicode() { . result.push(d); -- line 96 ---------------------------------------- -- line 98 ---------------------------------------- . } else { . result.push(c); . } . } . result . } . . fn check_str(cx: &LateContext<'_>, span: Span, id: HirId) { 1,824 ( 0.00%) if !span_is_local(span) { 62,300 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::span_is_local (456x) . return; . } . . let string = snippet(cx, span, ""); . // All three lints here can only fire when the snippet contains a non-ASCII character. Note . // that the snippet can contain non-ASCII characters even when the literal's value does not, . // e.g. the literal produced by `file!()` inside a macro spans the whole macro invocation. . if string.is_ascii() { -- line 114 ---------------------------------------- 912 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/casts/needless_type_cast.rs -------------------------------------------------------------------------------- Ir -- line 19 ---------------------------------------- . init: Option<&'a Expr<'a>>, . } . . struct UsageInfo<'a> { . cast_to: Option>, . in_generic_context: bool, . } . 23,712 ( 0.00%) pub(super) fn check<'a>(cx: &LateContext<'a>, body: &Body<'a>) { . let mut bindings: FxHashMap> = FxHashMap::default(); . 2,964 ( 0.00%) for_each_expr_without_closures(body.value, |expr| { 215,176 ( 0.00%) match expr.kind { 3,802 ( 0.00%) ExprKind::Block(block, _) => { 3,802 ( 0.00%) for stmt in block.stmts { 4,871 ( 0.00%) if let StmtKind::Let(let_stmt) = stmt.kind { 2,349 ( 0.00%) collect_binding_from_local(cx, let_stmt, &mut bindings); 108 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/casts/needless_type_cast.rs:clippy_lints::casts::needless_type_cast::collect_binding_from_local (6x) . } . } . }, 163 ( 0.00%) ExprKind::Let(let_expr) => { 489 ( 0.00%) collect_binding_from_let(cx, let_expr, &mut bindings); 2,934 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/casts/needless_type_cast.rs:clippy_lints::casts::needless_type_cast::collect_binding_from_let (163x) . }, . _ => {}, . } . ControlFlow::<()>::Continue(()) . }); . . #[allow(rustc::potential_query_instability)] 8,892 ( 0.00%) let mut binding_vec: Vec<_> = bindings.into_iter().collect(); . binding_vec.sort_by_key(|(_, info)| info.ty_span.lo()); . 2,996 ( 0.00%) for (hir_id, binding_info) in binding_vec { . check_binding_usages(cx, body, hir_id, &binding_info); . } 23,712 ( 0.00%) } . 1,141 ( 0.00%) fn collect_binding_from_let<'a>( . cx: &LateContext<'a>, . let_expr: &rustc_hir::LetExpr<'a>, . bindings: &mut FxHashMap>, . ) { 163 ( 0.00%) if let_expr.ty.is_none() . || let_expr.span.from_expansion() . || has_generic_return_type(cx, let_expr.init) . || contains_unsafe(let_expr.init) . { . return; . } . . if let PatKind::Binding(_, hir_id, _, _) = let_expr.pat.kind -- line 69 ---------------------------------------- -- line 76 ---------------------------------------- . BindingInfo { . source_ty: ty, . ty_span: ty_hir.span, . init: Some(let_expr.init), . }, . ); . } . } 1,304 ( 0.00%) } . 5,481 ( 0.00%) fn collect_binding_from_local<'a>( . cx: &LateContext<'a>, . let_stmt: &LetStmt<'a>, . bindings: &mut FxHashMap>, . ) { 783 ( 0.00%) if let_stmt.ty.is_none() 48 ( 0.00%) || let_stmt.span.from_expansion() 48 ( 0.00%) || let_stmt . .init 80 ( 0.00%) .is_some_and(|init| has_generic_return_type(cx, init) || contains_unsafe(init)) 1,000 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/casts/needless_type_cast.rs:clippy_lints::casts::needless_type_cast::has_generic_return_type (16x) . { . return; . } . 48 ( 0.00%) if let PatKind::Binding(_, hir_id, _, _) = let_stmt.pat.kind . && let Some(ty_hir) = let_stmt.ty . { 16 ( 0.00%) let ty = cx.typeck_results().pat_ty(let_stmt.pat); 640 ( 0.00%) => ???:::pat_ty (16x) . if ty.is_numeric() { . bindings.insert( . hir_id, 20 ( 0.00%) BindingInfo { . source_ty: ty, 4 ( 0.00%) ty_span: ty_hir.span, . init: let_stmt.init, . }, . ); . } . } 6,264 ( 0.00%) } . . fn contains_unsafe(expr: &Expr<'_>) -> bool { . for_each_expr_without_closures(expr, |e| { 328 ( 0.00%) if let ExprKind::Block(block, _) = e.kind 8 ( 0.00%) && let BlockCheckMode::UnsafeBlock(UnsafeSource::UserProvided) = block.rules . { . return ControlFlow::Break(()); . } . ControlFlow::Continue(()) . }) . .is_some() . } . 320 ( 0.00%) fn has_generic_return_type(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool { 208 ( 0.00%) match &expr.kind { . ExprKind::Block(block, _) => { 32 ( 0.00%) if let Some(tail_expr) = block.expr { . return has_generic_return_type(cx, tail_expr); . } . false . }, . ExprKind::If(_, then_block, else_expr) => { . has_generic_return_type(cx, then_block) || else_expr.is_some_and(|e| has_generic_return_type(cx, e)) . }, 80 ( 0.00%) ExprKind::Match(_, arms, _) => arms.iter().any(|arm| has_generic_return_type(cx, arm.body)), 416 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/casts/needless_type_cast.rs:clippy_lints::casts::needless_type_cast::has_generic_return_type'2 (16x) . ExprKind::Loop(block, label, ..) => for_each_expr_without_closures(*block, |e| { . match e.kind { . ExprKind::Loop(..) => { . // Unlabeled breaks inside nested loops target the inner loop, not ours . return ControlFlow::Continue(Descend::No); . }, . ExprKind::Break(dest, Some(break_expr)) => { . let targets_this_loop = -- line 148 ---------------------------------------- -- line 172 ---------------------------------------- . let ret_ty = sig.output().skip_binder(); . return ret_ty.has_param(); . } . } . false . }, . _ => false, . } 224 ( 0.00%) } . . fn is_generic_res(cx: &LateContext<'_>, res: Res) -> bool { . let has_type_params = |def_id| { . cx.tcx . .generics_of(def_id) . .own_params . .iter() . .any(|p| p.kind.is_ty_or_const()) -- line 188 ---------------------------------------- -- line 245 ---------------------------------------- . _ => false, . } . } . . fn check_binding_usages<'a>(cx: &LateContext<'a>, body: &Body<'a>, hir_id: HirId, binding_info: &BindingInfo<'a>) { . let mut usages = Vec::new(); . . for_each_expr(cx.tcx, body.value, |expr| { 440 ( 0.00%) if let ExprKind::Path(ref qpath) = expr.kind 208 ( 0.00%) && !expr.span.from_expansion() 964 ( 0.00%) && let Res::Local(id) = cx.qpath_res(qpath, expr.hir_id) 1,784 ( 0.00%) => ???:::qpath_res (68x) 80 ( 0.00%) && id == hir_id . { 40 ( 0.00%) let parent_id = cx.tcx.parent_hir_id(expr.hir_id); 424 ( 0.00%) => ???:::parent_hir_id (8x) 32 ( 0.00%) let parent = cx.tcx.hir_node(parent_id); 416 ( 0.00%) => ???:::hir_node (8x) . 24 ( 0.00%) let usage = if let rustc_hir::Node::Expr(parent_expr) = parent 24 ( 0.00%) && let ExprKind::Cast(..) = parent_expr.kind . && !parent_expr.span.from_expansion() . { . UsageInfo { . cast_to: Some(cx.typeck_results().expr_ty(parent_expr)), . in_generic_context: is_cast_in_generic_context(cx, parent_expr), . } . } else { . UsageInfo { . cast_to: None, . in_generic_context: false, . } . }; 8 ( 0.00%) usages.push(usage); . } . ControlFlow::<()>::Continue(()) . }); . . let Some(first_target) = usages . .first() 4 ( 0.00%) .and_then(|u| u.cast_to) . .filter(|&t| t != binding_info.source_ty) . .filter(|&t| usages.iter().all(|u| u.cast_to == Some(t) && !u.in_generic_context)) . else { . return; . }; . . // Don't lint if there's exactly one use and the initializer cannot be coerced to the . // target type (i.e., would require an explicit cast). In such cases, the fix would add -- line 290 ---------------------------------------- 26,527 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/control_flow.rs -------------------------------------------------------------------------------- Ir -- line 103 ---------------------------------------- . #[unstable(feature = "try_trait_v2", issue = "84277", old_name = "try_trait")] . #[rustc_const_unstable(feature = "const_try", issue = "74935")] . const impl ops::Try for ControlFlow { . type Output = C; . type Residual = ControlFlow; . . #[inline] . fn from_output(output: Self::Output) -> Self { 790 ( 0.00%) ControlFlow::Continue(output) . } . . #[inline] . fn branch(self) -> ControlFlow { 136,152 ( 0.00%) match self { . ControlFlow::Continue(c) => ControlFlow::Continue(c), 67 ( 0.00%) ControlFlow::Break(b) => ControlFlow::Break(ControlFlow::Break(b)), . } . } . } . . #[unstable(feature = "try_trait_v2", issue = "84277", old_name = "try_trait")] . #[rustc_const_unstable(feature = "const_try", issue = "74935")] . // Note: manually specifying the residual type instead of using the default to work around . // https://github.com/rust-lang/rust/issues/99940 . const impl ops::FromResidual> for ControlFlow { . #[inline] . fn from_residual(residual: ControlFlow) -> Self { . match residual { 635,862 ( 0.01%) ControlFlow::Break(b) => ControlFlow::Break(b), . } . } . } . . #[unstable(feature = "try_trait_v2_residual", issue = "91285")] . #[rustc_const_unstable(feature = "const_try_residual", issue = "91285")] . const impl ops::Residual for ControlFlow { . type TryType = ControlFlow; -- line 139 ---------------------------------------- -- line 149 ---------------------------------------- . /// . /// assert!(ControlFlow::<&str, i32>::Break("Stop right there!").is_break()); . /// assert!(!ControlFlow::<&str, i32>::Continue(3).is_break()); . /// ``` . #[inline] . #[stable(feature = "control_flow_enum_is", since = "1.59.0")] . #[rustc_const_stable(feature = "min_const_control_flow", since = "1.95.0")] . pub const fn is_break(&self) -> bool { 374 ( 0.00%) matches!(*self, ControlFlow::Break(_)) . } . . /// Returns `true` if this is a `Continue` variant. . /// . /// # Examples . /// . /// ``` . /// use std::ops::ControlFlow; -- line 165 ---------------------------------------- -- line 187 ---------------------------------------- . /// ``` . #[inline] . #[stable(feature = "control_flow_enum", since = "1.83.0")] . #[rustc_const_unstable(feature = "const_control_flow", issue = "148739")] . pub const fn break_value(self) -> Option . where . Self: [const] Destruct, . { 142,659 ( 0.00%) match self { 4,533 ( 0.00%) ControlFlow::Continue(..) => None, 196,285 ( 0.00%) ControlFlow::Break(x) => Some(x), . } . } . . /// Converts the `ControlFlow` into a `Result` which is `Ok` if the . /// `ControlFlow` was `Break` and `Err` if otherwise. . /// . /// # Examples . /// -- line 205 ---------------------------------------- -- line 300 ---------------------------------------- . /// ``` . #[inline] . #[stable(feature = "control_flow_enum", since = "1.83.0")] . #[rustc_const_unstable(feature = "const_control_flow", issue = "148739")] . pub const fn continue_value(self) -> Option . where . Self: [const] Destruct, . { 12 ( 0.00%) match self { . ControlFlow::Continue(x) => Some(x), . ControlFlow::Break(..) => None, . } . } . . /// Converts the `ControlFlow` into a `Result` which is `Ok` if the . /// `ControlFlow` was `Continue` and `Err` if otherwise. . /// -- line 316 ---------------------------------------- -- line 440 ---------------------------------------- . . /// Converts a `ControlFlow` into any type implementing `Try`. . #[inline] . #[rustc_const_unstable(feature = "const_control_flow", issue = "148739")] . pub(crate) const fn into_try(self) -> R . where . R: [const] ops::Try, . { 3 ( 0.00%) match self { . ControlFlow::Continue(v) => R::from_output(v), 8,820 ( 0.00%) ControlFlow::Break(v) => v, . } . } . } 257,153 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs -------------------------------------------------------------------------------- Ir -- line 47 ---------------------------------------- . /// Any decimal or hexadecimal digit depending on the location. . Num, . /// An attribute. . Attr(Symbol), . } . . /// Checks if the start and the end of the span's text matches the patterns. This will return false . /// if the span crosses multiple files or if source is not available. 32,280 ( 0.00%) fn span_matches_pat(sess: &Session, span: Span, start_pat: Pat, end_pat: Pat) -> bool { 16,140 ( 0.00%) let pos = sess.source_map().lookup_byte_offset(span.lo()); 464,832 ( 0.01%) => ???:::lookup_byte_offset (3,228x) 6,456 ( 0.00%) let Some(ref src) = pos.sf.src else { . return false; . }; . let end = span.hi() - pos.sf.start_pos; 25,824 ( 0.00%) src.get(pos.pos.0 as usize..end.0 as usize).is_some_and(|s| { . // Spans can be wrapped in a mixture or parenthesis, whitespace, and trailing commas. 3,238 ( 0.00%) let start_str = s.trim_start_matches(|c: char| c.is_whitespace() || c == '('); . let end_str = s.trim_end_matches(|c: char| c.is_whitespace() || c == ')' || c == ','); 41,964 ( 0.00%) (match start_pat { . Pat::Str(text) => start_str.starts_with(text), . Pat::MultiStr(texts) => texts.iter().any(|s| start_str.starts_with(s)), . Pat::OwnedMultiStr(texts) => texts.iter().any(|s| start_str.starts_with(s)), . Pat::Sym(sym) => start_str.starts_with(sym.as_str()), . Pat::Num => start_str.as_bytes().first().is_some_and(u8::is_ascii_digit), . Pat::Attr(sym) => { . let start_str = start_str . .strip_prefix("#[") . .or_else(|| start_str.strip_prefix("#![")) . .unwrap_or(start_str); . start_str.trim_start().starts_with(sym.as_str()) . }, 23,632 ( 0.00%) } && match end_pat { . Pat::Str(text) => end_str.ends_with(text), . Pat::MultiStr(texts) => texts.iter().any(|s| end_str.ends_with(s)), . Pat::OwnedMultiStr(texts) => texts.iter().any(|s| end_str.ends_with(s)), 265 ( 0.00%) Pat::Sym(sym) => end_str.ends_with(sym.as_str()), . Pat::Num => end_str.as_bytes().last().is_some_and(u8::is_ascii_hexdigit), . Pat::Attr(_) => false, . }) 9,410 ( 0.00%) }) 29,052 ( 0.00%) } . . /// Get the search patterns to use for the given literal . fn lit_search_pat(lit: &LitKind) -> (Pat, Pat) { 179 ( 0.00%) match lit { 63 ( 0.00%) LitKind::Str(_, StrStyle::Cooked) => (Pat::Str("\""), Pat::Str("\"")), . LitKind::Str(_, StrStyle::Raw(0)) => (Pat::Str("r"), Pat::Str("\"")), . LitKind::Str(_, StrStyle::Raw(_)) => (Pat::Str("r#"), Pat::Str("#")), . LitKind::ByteStr(_, StrStyle::Cooked) => (Pat::Str("b\""), Pat::Str("\"")), . LitKind::ByteStr(_, StrStyle::Raw(0)) => (Pat::Str("br\""), Pat::Str("\"")), . LitKind::ByteStr(_, StrStyle::Raw(_)) => (Pat::Str("br#\""), Pat::Str("#")), . LitKind::Byte(_) => (Pat::Str("b'"), Pat::Str("'")), . LitKind::Char(_) => (Pat::Str("'"), Pat::Str("'")), . LitKind::Int(_, LitIntType::Signed(IntTy::Isize)) => (Pat::Num, Pat::Str("isize")), . LitKind::Int(_, LitIntType::Unsigned(UintTy::Usize)) => (Pat::Num, Pat::Str("usize")), 4 ( 0.00%) LitKind::Int(..) => (Pat::Num, Pat::Num), . LitKind::Float(..) => (Pat::Num, Pat::Str("")), . LitKind::Bool(true) => (Pat::Str("true"), Pat::Str("true")), . LitKind::Bool(false) => (Pat::Str("false"), Pat::Str("false")), . _ => (Pat::Str(""), Pat::Str("")), . } 22 ( 0.00%) } . . /// Get the search patterns to use for the given path 622 ( 0.00%) fn qpath_search_pat(path: &QPath<'_>) -> (Pat, Pat) { 1,244 ( 0.00%) match path { . QPath::Resolved(ty, path) => { 621 ( 0.00%) let start = if ty.is_some() { . Pat::Str("<") . } else { 621 ( 0.00%) path.segments.first().map_or(Pat::Str(""), |seg| { 1,242 ( 0.00%) if seg.ident.name == kw::PathRoot { . Pat::Str("::") . } else { . Pat::Sym(seg.ident.name) . } . }) . }; . let end = path.segments.last().map_or(Pat::Str(""), |seg| { 621 ( 0.00%) if seg.args.is_some() { . Pat::Str(">") . } else { . Pat::Sym(seg.ident.name) . } . }); 3,726 ( 0.00%) (start, end) . }, 8 ( 0.00%) QPath::TypeRelative(_, name) => (Pat::Str(""), Pat::Sym(name.ident.name)), . } 622 ( 0.00%) } . . fn path_search_pat(path: &Path<'_>) -> (Pat, Pat) { . let (head, tail) = match path.segments { . [] => return (Pat::Str(""), Pat::Str("")), . [p] => (Pat::Sym(p.ident.name), p), . // QPath::Resolved can have a path that looks like `::baz` where . // the path (`Bar::baz`) has it's span covering the whole QPath. . [.., tail] => (Pat::Str(""), tail), -- line 144 ---------------------------------------- -- line 150 ---------------------------------------- . } else { . Pat::Sym(tail.ident.name) . }, . ) . } . . /// Get the search patterns to use for the given expression . fn expr_search_pat(tcx: TyCtxt<'_>, e: &Expr<'_>) -> (Pat, Pat) { 19,998 ( 0.00%) fn expr_search_pat_inner(tcx: TyCtxt<'_>, e: &Expr<'_>, outer_span: Span) -> (Pat, Pat) { . // The expression can have subexpressions in different contexts, in which case . // building up a search pattern from the macro expansion would lead to false positives; . // e.g. `return format!(..)` would be considered to be from a proc macro . // if we build up a pattern for the macro expansion and compare it to the invocation `format!()`. . // So instead we return an empty pattern such that `span_matches_pat` always returns true. 4,444 ( 0.00%) if !e.span.eq_ctxt(outer_span) { . return (Pat::Str(""), Pat::Str("")); . } . 6,937 ( 0.00%) match e.kind { 10 ( 0.00%) ExprKind::ConstBlock(_) => (Pat::Str("const"), Pat::Str("}")), . // Parenthesis are trimmed from the text before the search patterns are matched. . // See: `span_matches_pat` 30 ( 0.00%) ExprKind::Tup([]) => (Pat::Str(")"), Pat::Str("(")), 1,074 ( 0.00%) ExprKind::Unary(UnOp::Deref, e) => (Pat::Str("*"), expr_search_pat_inner(tcx, e, outer_span).1), 7,949 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::expr_search_pat::expr_search_pat_inner'2 (67x) . ExprKind::Unary(UnOp::Not, e) => (Pat::Str("!"), expr_search_pat_inner(tcx, e, outer_span).1), . ExprKind::Unary(UnOp::Neg, e) => (Pat::Str("-"), expr_search_pat_inner(tcx, e, outer_span).1), 242 ( 0.00%) ExprKind::Lit(lit) => lit_search_pat(&lit.node), 395 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::lit_search_pat (22x) 64 ( 0.00%) ExprKind::Array(_) | ExprKind::Repeat(..) => (Pat::Str("["), Pat::Str("]")), 106 ( 0.00%) ExprKind::Call(e, []) | ExprKind::MethodCall(_, e, [], _) => { 112 ( 0.00%) (expr_search_pat_inner(tcx, e, outer_span).0, Pat::Str("(")) 1,162 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::expr_search_pat::expr_search_pat_inner'2 (14x) . }, 20 ( 0.00%) ExprKind::Call(first, [.., last]) 6 ( 0.00%) | ExprKind::MethodCall(_, first, [.., last], _) . | ExprKind::Binary(_, first, last) . | ExprKind::Tup([first, .., last]) . | ExprKind::Assign(first, last, _) 52 ( 0.00%) | ExprKind::AssignOp(_, first, last) => ( 39 ( 0.00%) expr_search_pat_inner(tcx, first, outer_span).0, 329 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::expr_search_pat::expr_search_pat_inner'2 (2x) 104 ( 0.00%) expr_search_pat_inner(tcx, last, outer_span).1, 445 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::expr_search_pat::expr_search_pat_inner'2 (2x) . ), . ExprKind::Tup([e]) | ExprKind::DropTemps(e) => expr_search_pat_inner(tcx, e, outer_span), . ExprKind::Cast(e, _) | ExprKind::Type(e, _) => (expr_search_pat_inner(tcx, e, outer_span).0, Pat::Str("")), . ExprKind::Let(let_expr) => (Pat::Str("let"), expr_search_pat_inner(tcx, let_expr.init, outer_span).1), . ExprKind::If(..) => (Pat::Str("if"), Pat::Str("}")), . ExprKind::Loop(_, Some(_), _, _) | ExprKind::Block(_, Some(_)) => (Pat::Str("'"), Pat::Str("}")), . ExprKind::Loop(_, None, LoopSource::Loop, _) => (Pat::Str("loop"), Pat::Str("}")), . ExprKind::Loop(_, None, LoopSource::While, _) => (Pat::Str("while"), Pat::Str("}")), -- line 196 ---------------------------------------- -- line 199 ---------------------------------------- . }, . ExprKind::Match(_, _, MatchSource::Normal) => (Pat::Str("match"), Pat::Str("}")), . ExprKind::Match(e, _, MatchSource::TryDesugar(_)) => { . (expr_search_pat_inner(tcx, e, outer_span).0, Pat::Str("?")) . }, . ExprKind::Match(e, _, MatchSource::AwaitDesugar) | ExprKind::Yield(e, YieldSource::Await { .. }) => { . (expr_search_pat_inner(tcx, e, outer_span).0, Pat::Str("await")) . }, 3 ( 0.00%) ExprKind::Closure(&Closure { body, .. }) => ( 4 ( 0.00%) Pat::Str(""), 9 ( 0.00%) expr_search_pat_inner(tcx, tcx.hir_body(body).value, outer_span).1, 207 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::expr_search_pat::expr_search_pat_inner'2 (1x) 66 ( 0.00%) => ???:::hir_body (1x) . ), . ExprKind::Block( . Block { . rules: BlockCheckMode::UnsafeBlock(UnsafeSource::UserProvided), . .. . }, . None, . ) => (Pat::Str("unsafe"), Pat::Str("}")), . ExprKind::Block(_, None) => (Pat::Str("{"), Pat::Str("}")), 1,417 ( 0.00%) ExprKind::Field(e, name) => (expr_search_pat_inner(tcx, e, outer_span).0, Pat::Sym(name.name)), 1,660 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::expr_search_pat::expr_search_pat_inner'2 (20x) 600 ( 0.00%) ExprKind::Index(e, _, _) => (expr_search_pat_inner(tcx, e, outer_span).0, Pat::Str("]")), 7,884 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::expr_search_pat::expr_search_pat_inner'2 (55x) 6,842 ( 0.00%) ExprKind::Path(ref path) => qpath_search_pat(path), 11,118 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::qpath_search_pat (327x) 1,360 ( 0.00%) ExprKind::AddrOf(_, _, e) => (Pat::Str("&"), expr_search_pat_inner(tcx, e, outer_span).1), 19,548 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::expr_search_pat::expr_search_pat_inner'2 (170x) . ExprKind::Break(Destination { label: None, .. }, None) => (Pat::Str("break"), Pat::Str("break")), . ExprKind::Break(Destination { label: Some(name), .. }, None) => { . (Pat::Str("break"), Pat::Sym(name.ident.name)) . }, . ExprKind::Break(_, Some(e)) => (Pat::Str("break"), expr_search_pat_inner(tcx, e, outer_span).1), . ExprKind::Continue(Destination { label: None, .. }) => (Pat::Str("continue"), Pat::Str("continue")), . ExprKind::Continue(Destination { label: Some(name), .. }) => { . (Pat::Str("continue"), Pat::Sym(name.ident.name)) . }, . ExprKind::Ret(None) => (Pat::Str("return"), Pat::Str("return")), . ExprKind::Ret(Some(e)) => (Pat::Str("return"), expr_search_pat_inner(tcx, e, outer_span).1), . ExprKind::Struct(path, _, _) => (qpath_search_pat(path).0, Pat::Str("}")), . ExprKind::Yield(e, YieldSource::Yield) => (Pat::Str("yield"), expr_search_pat_inner(tcx, e, outer_span).1), . _ => (Pat::Str(""), Pat::Str("")), . } 3,736 ( 0.00%) } . 1,923 ( 0.00%) expr_search_pat_inner(tcx, e, e.span) 89,996 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::expr_search_pat::expr_search_pat_inner (641x) . } . . fn fn_header_search_pat(header: FnHeader) -> Pat { 248 ( 0.00%) if header.is_async() { . Pat::Str("async") 496 ( 0.00%) } else if matches!(header.constness, rustc_hir::Constness::Const { always: false }) { . Pat::Str("const") . } else if header.is_unsafe() { . Pat::Str("unsafe") 744 ( 0.00%) } else if header.abi != ExternAbi::Rust { . Pat::Str("extern") . } else { . Pat::MultiStr(&["fn", "extern"]) . } . } . . fn item_search_pat(item: &Item<'_>) -> (Pat, Pat) { 5,011 ( 0.00%) let (start_pat, end_pat) = match &item.kind { . ItemKind::ExternCrate(..) => (Pat::Str("extern"), Pat::Str(";")), . ItemKind::Static(..) => (Pat::Str("static"), Pat::Str(";")), . ItemKind::Const(..) => (Pat::Str("const"), Pat::Str(";")), 87 ( 0.00%) ItemKind::Fn { sig, .. } => (fn_header_search_pat(sig.header), Pat::Str("")), . ItemKind::ForeignMod { .. } => (Pat::Str("extern"), Pat::Str("}")), . ItemKind::TyAlias(..) => (Pat::Str("type"), Pat::Str(";")), . ItemKind::Enum(..) => (Pat::Str("enum"), Pat::Str("}")), . ItemKind::Struct(_, _, VariantData::Struct { .. }) => (Pat::Str("struct"), Pat::Str("}")), . ItemKind::Struct(..) => (Pat::Str("struct"), Pat::Str(";")), . ItemKind::Union(..) => (Pat::Str("union"), Pat::Str("}")), . ItemKind::Trait { . safety: Safety::Unsafe, .. -- line 270 ---------------------------------------- -- line 284 ---------------------------------------- . ItemKind::Macro(_, def, _) => ( . Pat::Str(if def.macro_rules { "macro_rules" } else { "macro" }), . Pat::Str(""), . ), . ItemKind::TraitAlias(..) => (Pat::Str("trait"), Pat::Str(";")), . ItemKind::GlobalAsm { .. } => return (Pat::Str("global_asm"), Pat::Str("")), . ItemKind::Use(..) => return (Pat::Str(""), Pat::Str("")), . }; 654 ( 0.00%) if item.vis_span.is_empty() { 2,844 ( 0.00%) (start_pat, end_pat) . } else { 88 ( 0.00%) (Pat::Str("pub"), end_pat) . } . } . . fn trait_item_search_pat(item: &TraitItem<'_>) -> (Pat, Pat) { 1,034 ( 0.00%) match &item.kind { . TraitItemKind::Const(..) => (Pat::Str("const"), Pat::Str(";")), . TraitItemKind::Type(..) => (Pat::Str("type"), Pat::Str(";")), 282 ( 0.00%) TraitItemKind::Fn(sig, ..) => (fn_header_search_pat(sig.header), Pat::Str("")), . } . } . . fn impl_item_search_pat(item: &ImplItem<'_>) -> (Pat, Pat) { 1,479 ( 0.00%) let (mut start_pat, end_pat) = match &item.kind { . ImplItemKind::Const(..) => (Pat::Str("const"), Pat::Str(";")), . ImplItemKind::Type(..) => (Pat::Str("type"), Pat::Str(";")), 174 ( 0.00%) ImplItemKind::Fn(sig, ..) => (fn_header_search_pat(sig.header), Pat::Str("")), . }; 239 ( 0.00%) if let ImplItemImplKind::Inherent { vis_span, .. } = item.impl_kind 65 ( 0.00%) && !vis_span.is_empty() . { 172 ( 0.00%) start_pat = Pat::Str("pub"); . } 1,044 ( 0.00%) (start_pat, end_pat) . } . . fn field_def_search_pat(def: &FieldDef<'_>) -> (Pat, Pat) { . if def.vis_span.is_empty() { . if def.is_positional() { . (Pat::Str(""), Pat::Str("")) . } else { . (Pat::Sym(def.ident.name), Pat::Str("")) -- line 326 ---------------------------------------- -- line 333 ---------------------------------------- . fn variant_search_pat(v: &Variant<'_>) -> (Pat, Pat) { . match v.data { . VariantData::Struct { .. } => (Pat::Sym(v.ident.name), Pat::Str("}")), . VariantData::Tuple(..) => (Pat::Sym(v.ident.name), Pat::Str("")), . VariantData::Unit(..) => (Pat::Sym(v.ident.name), Pat::Sym(v.ident.name)), . } . } . 342 ( 0.00%) fn fn_kind_pat(tcx: TyCtxt<'_>, kind: &FnKind<'_>, body: &Body<'_>, hir_id: HirId) -> (Pat, Pat) { 424 ( 0.00%) let (mut start_pat, end_pat) = match kind { 16 ( 0.00%) FnKind::ItemFn(.., header) => (fn_header_search_pat(*header), Pat::Str("")), 44 ( 0.00%) FnKind::Method(.., sig) => (fn_header_search_pat(sig.header), Pat::Str("")), . FnKind::Closure => return (Pat::Str(""), expr_search_pat(tcx, body.value).1), . }; 358 ( 0.00%) match tcx.hir_node(hir_id) { 1,976 ( 0.00%) => ???:::hir_node (38x) 48 ( 0.00%) Node::Item(Item { vis_span, .. }) . | Node::ImplItem(ImplItem { 22 ( 0.00%) impl_kind: ImplItemImplKind::Inherent { vis_span, .. }, . .. . }) => { 105 ( 0.00%) if !vis_span.is_empty() { . start_pat = Pat::Str("pub"); . } . }, . Node::ImplItem(_) | Node::TraitItem(_) => {}, . _ => start_pat = Pat::Str(""), . } 380 ( 0.00%) (start_pat, end_pat) 342 ( 0.00%) } . . fn attr_search_pat(attr: &Attribute) -> (Pat, Pat) { . match attr.kind { . AttrKind::Normal(..) => { . if let Some(name) = attr.name() { . // NOTE: This will likely have false positives, like `allow = 1` . (Pat::Attr(name), Pat::Str("")) . } else { -- line 369 ---------------------------------------- -- line 689 ---------------------------------------- . type Context: LintContext; . fn search_pat(&self, cx: &Self::Context) -> (Pat, Pat); . fn span(&self) -> Span; . } . macro_rules! impl_with_search_pat { . (($cx_ident:ident: $cx_ty:ident<$cx_lt:lifetime>, $self:tt: $ty:ty) => $fn:ident($($args:tt)*)) => { . impl<$cx_lt> WithSearchPat<$cx_lt> for $ty { . type Context = $cx_ty<$cx_lt>; 4,790 ( 0.00%) fn search_pat(&$self, $cx_ident: &Self::Context) -> (Pat, Pat) { . $fn($($args)*) 5,291 ( 0.00%) } . fn span(&self) -> Span { . self.span . } . } . }; . } 641 ( 0.00%) impl_with_search_pat!((cx: LateContext<'tcx>, self: Expr<'tcx>) => expr_search_pat(cx.tcx, self)); . impl_with_search_pat!((_cx: LateContext<'tcx>, self: Item<'_>) => item_search_pat(self)); . impl_with_search_pat!((_cx: LateContext<'tcx>, self: TraitItem<'_>) => trait_item_search_pat(self)); . impl_with_search_pat!((_cx: LateContext<'tcx>, self: ImplItem<'_>) => impl_item_search_pat(self)); . impl_with_search_pat!((_cx: LateContext<'tcx>, self: FieldDef<'_>) => field_def_search_pat(self)); . impl_with_search_pat!((_cx: LateContext<'tcx>, self: Variant<'_>) => variant_search_pat(self)); . impl_with_search_pat!((_cx: LateContext<'tcx>, self: Ty<'_>) => ty_search_pat(self)); . impl_with_search_pat!((_cx: LateContext<'tcx>, self: Ident) => ident_search_pat(*self)); . impl_with_search_pat!((_cx: LateContext<'tcx>, self: Lit) => lit_search_pat(&self.node)); -- line 714 ---------------------------------------- -- line 718 ---------------------------------------- . . impl_with_search_pat!((_cx: EarlyContext<'tcx>, self: Attribute) => attr_search_pat(self)); . impl_with_search_pat!((_cx: EarlyContext<'tcx>, self: ast::Ty) => ast_ty_search_pat(self)); . . impl<'cx> WithSearchPat<'cx> for (&FnKind<'cx>, &Body<'cx>, HirId, Span) { . type Context = LateContext<'cx>; . . fn search_pat(&self, cx: &Self::Context) -> (Pat, Pat) { 266 ( 0.00%) fn_kind_pat(cx.tcx, self.0, self.1, self.2) 7,104 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::fn_kind_pat (38x) . } . . fn span(&self) -> Span { . self.3 . } . } . . /// Checks if the item likely came from a proc-macro. . /// . /// This should be called after `in_external_macro` and the initial pattern matching of the ast as . /// it is significantly slower than both of those. 2,028 ( 0.00%) pub fn is_from_proc_macro<'cx, T: WithSearchPat<'cx>>(cx: &T::Context, item: &T) -> bool { 3,320 ( 0.00%) let (start_pat, end_pat) = item.search_pat(cx); 7,043 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:::search_pat (55x) 15,399 ( 0.00%) !span_matches_pat(cx.sess(), item.span(), start_pat, end_pat) 19,695 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::span_matches_pat (55x) 1,352 ( 0.00%) } . . /// Checks if the span actually refers to a match expression . pub fn is_span_match(cx: &impl LintContext, span: Span) -> bool { 26,533 ( 0.00%) span_matches_pat(cx.sess(), span, Pat::Str("match"), Pat::Str("}")) 738,685 ( 0.01%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::span_matches_pat (2,041x) . } . . /// Checks if the span actually refers to an if expression . pub fn is_span_if(cx: &impl LintContext, span: Span) -> bool { . span_matches_pat(cx.sess(), span, Pat::Str("if"), Pat::Str("}")) . } 31,635 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/mod.rs -------------------------------------------------------------------------------- Ir -- line 167 ---------------------------------------- . /// assert!(!s.is_empty()); . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_stable(feature = "const_str_is_empty", since = "1.39.0")] . #[rustc_no_implicit_autorefs] . #[must_use] . #[inline] . pub const fn is_empty(&self) -> bool { 75,767 ( 0.00%) self.len() == 0 . } . . /// Converts a slice of bytes to a string slice. . /// . /// A string slice ([`&str`]) is made of bytes ([`u8`]), and a byte slice . /// ([`&[u8]`][byteslice]) is made of bytes, so this function converts between . /// the two. Not all byte slices are valid string slices, however: [`&str`] requires . /// that it is valid UTF-8. `from_utf8()` checks to ensure that the bytes are valid -- line 183 ---------------------------------------- -- line 371 ---------------------------------------- . #[stable(feature = "is_char_boundary", since = "1.9.0")] . #[rustc_const_stable(feature = "const_is_char_boundary", since = "1.86.0")] . #[inline] . pub const fn is_char_boundary(&self, index: usize) -> bool { . // 0 is always ok. . // Test for 0 explicitly so that it can optimize out the check . // easily and skip reading string data for that case. . // Note that optimizing `self.get(..index)` relies on this. 2,774 ( 0.00%) if index == 0 { . return true; . } . 2,853 ( 0.00%) if index >= self.len() { . // For `true` we have two options: . // . // - index == self.len() . // Empty strings are valid, so return true . // - index > self.len() . // In this case return false . // . // The check is placed exactly here, because it improves generated . // code on higher opt-levels. See PR #84751 for more details. 75 ( 0.00%) index == self.len() . } else { . self.as_bytes()[index].is_utf8_char_boundary() . } . } . . /// Finds the closest `x` not exceeding `index` where [`is_char_boundary(x)`] is `true`. . /// . /// This method can help you truncate a string so that it's still valid UTF-8, but doesn't -- line 401 ---------------------------------------- -- line 934 ---------------------------------------- . /// assert_eq!(None, s.split_at_checked(16)); // Beyond the string length . /// ``` . #[inline] . #[must_use] . #[stable(feature = "split_at_checked", since = "1.80.0")] . #[rustc_const_stable(feature = "const_str_split_at", since = "1.86.0")] . pub const fn split_at_checked(&self, mid: usize) -> Option<(&str, &str)> { . // is_char_boundary checks that the index is in [0, .len()] 498 ( 0.00%) if self.is_char_boundary(mid) { . // SAFETY: just checked that `mid` is on a char boundary. . Some(unsafe { self.split_at_unchecked(mid) }) . } else { . None . } . } . . /// Divides one mutable string slice into two at an index. -- line 950 ---------------------------------------- -- line 997 ---------------------------------------- . #[inline] . const unsafe fn split_at_unchecked(&self, mid: usize) -> (&str, &str) { . let len = self.len(); . let ptr = self.as_ptr(); . // SAFETY: caller guarantees `mid` is on a char boundary. . unsafe { . ( . from_utf8_unchecked(slice::from_raw_parts(ptr, mid)), 231 ( 0.00%) from_utf8_unchecked(slice::from_raw_parts(ptr.add(mid), len - mid)), . ) . } . } . . /// Divides one string slice into two at an index. . /// . /// # Safety . /// -- line 1013 ---------------------------------------- -- line 1071 ---------------------------------------- . /// assert_eq!(Some('\u{0306}'), chars.next()); . /// . /// assert_eq!(None, chars.next()); . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . #[inline] . #[rustc_diagnostic_item = "str_chars"] . pub fn chars(&self) -> Chars<'_> { 28 ( 0.00%) Chars { iter: self.as_bytes().iter() } . } . . /// Returns an iterator over the [`char`]s of a string slice, and their . /// positions. . /// . /// As a string slice consists of valid UTF-8, we can iterate through a . /// string slice by [`char`]. This method returns an iterator of both . /// these [`char`]s, as well as their byte positions. -- line 1087 ---------------------------------------- -- line 1375 ---------------------------------------- . /// let bananas = "bananas"; . /// . /// assert!(bananas.contains("nana")); . /// assert!(!bananas.contains("apples")); . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . #[inline] . pub fn contains(&self, pat: P) -> bool { 854 ( 0.00%) pat.is_contained_in(self) 58,012 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/pattern.rs:<&str as core::str::pattern::Pattern>::is_contained_in (136x) . } . . /// Returns `true` if the given pattern matches a prefix of this . /// string slice. . /// . /// Returns `false` if it does not. . /// . /// The [pattern] can be a `&str`, in which case this function will return true if -- line 1391 ---------------------------------------- -- line 1489 ---------------------------------------- . /// let s = "Löwe 老虎 Léopard"; . /// let x: &[_] = &['1', '2']; . /// . /// assert_eq!(s.find(x), None); . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . #[inline] . pub fn find(&self, pat: P) -> Option { 71,058 ( 0.00%) pat.into_searcher(self).next_match().map(|(i, _)| i) 3,635,102 ( 0.05%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/pattern.rs:::next_match (23,686x) . } . . /// Returns the byte index for the first character of the last match of the pattern in . /// this string slice. . /// . /// Returns [`None`] if the pattern doesn't match. . /// . /// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a -- line 1505 ---------------------------------------- -- line 1663 ---------------------------------------- . /// ``` . /// . /// Use [`split_whitespace`] for this behavior. . /// . /// [`split_whitespace`]: str::split_whitespace . #[stable(feature = "rust1", since = "1.0.0")] . #[inline] . pub fn split(&self, pat: P) -> Split<'_, P> { 1,305 ( 0.00%) Split(SplitInternal { . start: 0, . end: self.len(), . matcher: pat.into_searcher(self), . allow_trailing_empty: true, . finished: false, . }) . } . -- line 1679 ---------------------------------------- -- line 1762 ---------------------------------------- . /// assert_eq!(v, ["ghi", "def", "abc"]); . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . #[inline] . pub fn rsplit(&self, pat: P) -> RSplit<'_, P> . where . for<'a> P::Searcher<'a>: ReverseSearcher<'a>, . { 11,429 ( 0.00%) RSplit(self.split(pat).0) . } . . /// Returns an iterator over substrings of the given string slice, separated . /// by characters matched by a pattern. . /// . /// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a . /// function or closure that determines if a character matches. . /// -- line 1778 ---------------------------------------- -- line 1977 ---------------------------------------- . /// ``` . /// assert_eq!("cfg".split_once('='), None); . /// assert_eq!("cfg=".split_once('='), Some(("cfg", ""))); . /// assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo"))); . /// assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar"))); . /// ``` . #[stable(feature = "str_split_once", since = "1.52.0")] . #[inline] 828 ( 0.00%) pub fn split_once(&self, delimiter: P) -> Option<(&'_ str, &'_ str)> { 171 ( 0.00%) let (start, end) = delimiter.into_searcher(self).next_match()?; 4,284 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/pattern.rs:::next_match (36x) . // SAFETY: `Searcher` is known to return valid indices. 108 ( 0.00%) unsafe { Some((self.get_unchecked(..start), self.get_unchecked(end..))) } 540 ( 0.00%) } . . /// Splits the string on the last occurrence of the specified delimiter and . /// returns prefix before delimiter and suffix after delimiter. . /// . /// # Examples . /// . /// ``` . /// assert_eq!("cfg".rsplit_once('='), None); -- line 1997 ---------------------------------------- -- line 2179 ---------------------------------------- . /// assert_eq!("Hello\tworld", s.trim()); . /// ``` . #[inline] . #[must_use = "this returns the trimmed string as a slice, \ . without modifying the original"] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_diagnostic_item = "str_trim"] . pub fn trim(&self) -> &str { 147,925 ( 0.00%) self.trim_matches(char::is_whitespace) 1,125,265 ( 0.02%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/mod.rs:::trim_matches::<::is_whitespace> (2,707x) . } . . /// Returns a string slice with leading whitespace removed. . /// . /// 'Whitespace' is defined according to the terms of the Unicode Derived . /// Core Property `White_Space`, which includes newlines. . /// . /// # Text directionality -- line 2195 ---------------------------------------- -- line 2218 ---------------------------------------- . /// assert!(Some('ע') == s.trim_start().chars().next()); . /// ``` . #[inline] . #[must_use = "this returns the trimmed string as a new slice, \ . without modifying the original"] . #[stable(feature = "trim_direction", since = "1.30.0")] . #[rustc_diagnostic_item = "str_trim_start"] . pub fn trim_start(&self) -> &str { 13,893 ( 0.00%) self.trim_start_matches(char::is_whitespace) 2,564,791 ( 0.03%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/mod.rs:::trim_start_matches::<::is_whitespace> (12,446x) . } . . /// Returns a string slice with trailing whitespace removed. . /// . /// 'Whitespace' is defined according to the terms of the Unicode Derived . /// Core Property `White_Space`, which includes newlines. . /// . /// # Text directionality -- line 2234 ---------------------------------------- -- line 2369 ---------------------------------------- . /// A more complex pattern, using a closure: . /// . /// ``` . /// assert_eq!("1foo1barXX".trim_matches(|c| c == '1' || c == 'X'), "foo1bar"); . /// ``` . #[must_use = "this returns the trimmed string as a new slice, \ . without modifying the original"] . #[stable(feature = "rust1", since = "1.0.0")] 214,419 ( 0.00%) pub fn trim_matches(&self, pat: P) -> &str . where . for<'a> P::Searcher<'a>: DoubleEndedSearcher<'a>, . { . let mut i = 0; . let mut j = 0; . let mut matcher = pat.into_searcher(self); . if let Some((a, b)) = matcher.next_reject() { . i = a; -- line 2385 ---------------------------------------- -- line 2386 ---------------------------------------- . j = b; // Remember earliest known match, correct it below if . // last match is different . } . if let Some((_, b)) = matcher.next_reject_back() { . j = b; . } . // SAFETY: `Searcher` is known to return valid indices. . unsafe { self.get_unchecked(i..j) } 214,419 ( 0.00%) } . . /// Returns a string slice with all prefixes that match a pattern . /// repeatedly removed. . /// . /// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a . /// function or closure that determines if a character matches. . /// . /// [`char`]: prim@char -- line 2402 ---------------------------------------- -- line 2416 ---------------------------------------- . /// assert_eq!("123foo1bar123".trim_start_matches(char::is_numeric), "foo1bar123"); . /// . /// let x: &[_] = &['1', '2']; . /// assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12"); . /// ``` . #[must_use = "this returns the trimmed string as a new slice, \ . without modifying the original"] . #[stable(feature = "trim_direction", since = "1.30.0")] 28,032 ( 0.00%) pub fn trim_start_matches(&self, pat: P) -> &str { . let mut i = self.len(); . let mut matcher = pat.into_searcher(self); . if let Some((a, _)) = matcher.next_reject() { . i = a; . } . // SAFETY: `Searcher` is known to return valid indices. . unsafe { self.get_unchecked(i..self.len()) } 14,016 ( 0.00%) } . . /// Returns a string slice with the prefix removed. . /// . /// If the string starts with the pattern `prefix`, returns the substring after the prefix, . /// wrapped in `Some`. Unlike [`trim_start_matches`], this method removes the prefix exactly once. . /// . /// If the string does not start with `prefix`, returns `None`. . /// -- line 2440 ---------------------------------------- -- line 2635 ---------------------------------------- . /// A more complex pattern, using a closure: . /// . /// ``` . /// assert_eq!("1fooX".trim_end_matches(|c| c == '1' || c == 'X'), "1foo"); . /// ``` . #[must_use = "this returns the trimmed string as a new slice, \ . without modifying the original"] . #[stable(feature = "trim_direction", since = "1.30.0")] 145 ( 0.00%) pub fn trim_end_matches(&self, pat: P) -> &str . where . for<'a> P::Searcher<'a>: ReverseSearcher<'a>, . { . let mut j = 0; . let mut matcher = pat.into_searcher(self); . if let Some((_, b)) = matcher.next_reject_back() { . j = b; . } . // SAFETY: `Searcher` is known to return valid indices. . unsafe { self.get_unchecked(0..j) } 145 ( 0.00%) } . . /// Returns a string slice with all prefixes that match a pattern . /// repeatedly removed. . /// . /// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a . /// function or closure that determines if a character matches. . /// . /// [`char`]: prim@char -- line 2662 ---------------------------------------- -- line 2774 ---------------------------------------- . /// ``` . /// let nope = "j".parse::(); . /// . /// assert!(nope.is_err()); . /// ``` . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . pub fn parse(&self) -> Result { 29 ( 0.00%) FromStr::from_str(self) 326 ( 0.00%) => ???:::from_str (2x) 324 ( 0.00%) => ???:::from_str (2x) . } . . /// Checks if all characters in this string are within the ASCII range. . /// . /// An empty string returns `true`. . /// . /// # Examples . /// -- line 2790 ---------------------------------------- -- line 3316 ---------------------------------------- . unsafe { from_utf8_unchecked_mut(&mut []) } . } . } . . impl_fn_for_zst! { . /// A nameable, cloneable fn type . #[derive(Clone)] . struct LinesMap impl<'a> Fn = |line: &'a str| -> &'a str { 12,506 ( 0.00%) let Some(line) = line.strip_suffix('\n') else { return line }; . let Some(line) = line.strip_suffix('\r') else { return line }; . line . }; . . #[derive(Clone)] . struct CharEscapeDebugContinue impl Fn = |c: char| -> char::EscapeDebug { . c.escape_debug_ext(EscapeDebugExtArgs { . escape_grapheme_extender: false, -- line 3332 ---------------------------------------- 103,046 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/float_literal.rs -------------------------------------------------------------------------------- Ir -- line 71 ---------------------------------------- . pub fn new(conf: &'static Conf) -> Self { . Self { . const_literal_digits_threshold: conf.const_literal_digits_threshold, . } . } . } . . impl<'tcx> LateLintPass<'tcx> for FloatLiteral { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx hir::Expr<'_>) { 88,800 ( 0.00%) if let hir::ExprKind::Lit(lit) = expr.kind 3,782 ( 0.00%) && let LitKind::Float(sym, lit_float_ty) = lit.node 24 ( 0.00%) && let ty::Float(fty) = *cx.typeck_results().expr_ty(expr).kind() 160 ( 0.00%) => ???:::expr_ty (4x) . { . let sym_str = sym.as_str(); . let formatter = FloatFormat::new(sym_str); . // Try to bail out if the float is for sure fine. . // If its within the 2 decimal digits of being out of precision we . // check if the parsed representation is the same as the string . // since we'll need the truncated string anyway. 4 ( 0.00%) let digits = count_digits(sym_str); . let max = max_digits(fty); 8 ( 0.00%) let type_suffix = match lit_float_ty { . LitFloatType::Suffixed(FloatTy::F16) => Some("f16"), . LitFloatType::Suffixed(FloatTy::F32) => Some("f32"), . LitFloatType::Suffixed(FloatTy::F64) => Some("f64"), . LitFloatType::Suffixed(FloatTy::F128) => Some("f128"), 8 ( 0.00%) LitFloatType::Unsuffixed => None, . }; 28 ( 0.00%) let (is_whole, is_inf, mut float_str) = match fty { . FloatTy::F16 | FloatTy::F128 => { . // FIXME(f16_f128): do a check like the others when parsing is available . return; . }, . FloatTy::F32 => { . let value = sym_str.parse::().unwrap(); . 6 ( 0.00%) (value.fract() == 0.0, value.is_infinite(), formatter.format(value)) . }, . FloatTy::F64 => { . let value = sym_str.parse::().unwrap(); . 6 ( 0.00%) (value.fract() == 0.0, value.is_infinite(), formatter.format(value)) . }, . }; . 4 ( 0.00%) if is_inf { . return; . } . 16 ( 0.00%) if is_whole && !sym_str.contains(['e', 'E']) { . // Normalize the literal by stripping the fractional portion 4 ( 0.00%) if sym_str.split('.').next().unwrap() != float_str { . span_lint_and_then( . cx, . LOSSY_FLOAT_LITERAL, . expr.span, . "literal cannot be represented as the underlying type without loss of precision", . |diag| { . // If the type suffix is missing the suggestion would be . // incorrectly interpreted as an integer so adding a `.0` -- line 130 ---------------------------------------- -- line 168 ---------------------------------------- . "consider changing the type or truncating it to", . numeric_literal::format(&float_str, type_suffix, true), . Applicability::MachineApplicable, . ); . }, . ); . } . } 355,200 ( 0.00%) } . } . . #[must_use] . fn max_digits(fty: FloatTy) -> u32 { 8 ( 0.00%) match fty { . FloatTy::F16 => f16::DIGITS, . FloatTy::F32 => f32::DIGITS, . FloatTy::F64 => f64::DIGITS, . FloatTy::F128 => f128::DIGITS, . } . } . . /// Counts the digits excluding leading zeros . #[must_use] . fn count_digits(s: &str) -> usize { . // Note that s does not contain the `f{16,32,64,128}` suffix, and underscores have been stripped . s.chars() 24 ( 0.00%) .filter(|c| *c != '-' && *c != '.') 24 ( 0.00%) .take_while(|c| *c != 'e' && *c != 'E') . .fold(0, |count, c| { . // leading zeros 56 ( 0.00%) if c == '0' && count == 0 { count } else { count + 1 } . }) . } . . enum FloatFormat { . LowerExp, . UpperExp, . Normal, . } . impl FloatFormat { . #[must_use] . fn new(s: &str) -> Self { . s.chars() 84 ( 0.00%) .find_map(|x| match x { . 'e' => Some(Self::LowerExp), . 'E' => Some(Self::UpperExp), . _ => None, . }) . .unwrap_or(Self::Normal) . } . fn format(&self, f: T) -> String . where . T: fmt::UpperExp + fmt::LowerExp + fmt::Display, . { 8 ( 0.00%) match self { . Self::LowerExp => format!("{f:e}"), . Self::UpperExp => format!("{f:E}"), 8 ( 0.00%) Self::Normal => format!("{f}"), . } . } . } . . fn maybe_let_stmt<'a>(cx: &LateContext<'a>, expr: &hir::Expr<'_>) -> Option<&'a hir::LetStmt<'a>> { . let parent = cx.tcx.parent_hir_node(expr.hir_id); . match parent { . hir::Node::LetStmt(let_stmt) => Some(let_stmt), -- line 233 ---------------------------------------- 1,915 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/unit_types/mod.rs -------------------------------------------------------------------------------- Ir -- line 105 ---------------------------------------- . . impl UnitTypes { . pub fn new(format_args: FormatArgsStorage) -> Self { . Self { format_args } . } . } . . impl<'tcx> LateLintPass<'tcx> for UnitTypes { 8,613 ( 0.00%) fn check_local(&mut self, cx: &LateContext<'tcx>, local: &'tcx LetStmt<'tcx>) { . let_unit_value::check(cx, &self.format_args, local); 6,264 ( 0.00%) } . . fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 133,200 ( 0.00%) unit_cmp::check(cx, expr); 31,707,074 ( 0.43%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/unit_types/unit_cmp.rs:clippy_lints::unit_types::unit_cmp::check (44,400x) 133,200 ( 0.00%) unit_arg::check(cx, expr); 2,852,863 ( 0.04%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/unit_types/unit_arg.rs:clippy_lints::unit_types::unit_arg::check (44,400x) . } . } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/pointers_in_nomem_asm_block.rs -------------------------------------------------------------------------------- Ir -- line 30 ---------------------------------------- . suspicious, . "pointers in nomem asm block" . } . . declare_lint_pass!(PointersInNomemAsmBlock => [POINTERS_IN_NOMEM_ASM_BLOCK]); . . impl<'tcx> LateLintPass<'tcx> for PointersInNomemAsmBlock { . fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &Expr<'tcx>) { 88,800 ( 0.00%) if let ExprKind::InlineAsm(asm) = &expr.kind { . check_asm(cx, asm); . } . } . } . . fn check_asm(cx: &LateContext<'_>, asm: &InlineAsm<'_>) { . if !asm.options.contains(InlineAsmOptions::NOMEM) { . return; -- line 46 ---------------------------------------- -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/non_octal_unix_permissions.rs -------------------------------------------------------------------------------- Ir -- line 34 ---------------------------------------- . pub NON_OCTAL_UNIX_PERMISSIONS, . correctness, . "use of non-octal value to set unix file permissions, which will be translated into octal" . } . . declare_lint_pass!(NonOctalUnixPermissions => [NON_OCTAL_UNIX_PERMISSIONS]); . . impl<'tcx> LateLintPass<'tcx> for NonOctalUnixPermissions { 177,600 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 209,824 ( 0.00%) match &expr.kind { 7,618 ( 0.00%) ExprKind::MethodCall(path, func, [param], _) => { 4,592 ( 0.00%) if let Some(adt) = cx.typeck_results().expr_ty(func).peel_refs().ty_adt_def() 92,308 ( 0.00%) => ???:::expr_ty (2,296x) 1,461 ( 0.00%) && matches!( 5,189 ( 0.00%) (cx.tcx.get_diagnostic_name(adt.did()), path.ident.name), 76,714 ( 0.00%) => ???:::get_diagnostic_name (1,461x) 1,612 ( 0.00%) (Some(sym::FsOpenOptions | sym::DirBuilder), sym::mode) . | (Some(sym::FsPermissions), sym::set_mode) . ) . && let ExprKind::Lit(_) = param.kind . && param.span.eq_ctxt(expr.span) . && param . .span . .check_text(cx, |src| !matches!(src.as_bytes(), [b'0', b'o' | b'b', ..])) . { . show_error(cx, param); . } . }, 12,176 ( 0.00%) ExprKind::Call(func, [param]) => { 18,284 ( 0.00%) if let ExprKind::Path(ref path) = func.kind 18,284 ( 0.00%) && let Some(def_id) = cx.qpath_res(path, func.hir_id).opt_def_id() 121,099 ( 0.00%) => ???:::qpath_res (4,571x) 22,855 ( 0.00%) && cx.tcx.is_diagnostic_item(sym::permissions_from_mode, def_id) 310,920 ( 0.00%) => ???:::is_diagnostic_item (4,571x) . && let ExprKind::Lit(_) = param.kind . && param.span.eq_ctxt(expr.span) . && param . .span . .check_text(cx, |src| !matches!(src.as_bytes(), [b'0', b'o' | b'b', ..])) . { . show_error(cx, param); . } . }, . _ => {}, . } 222,000 ( 0.00%) } . } . . fn show_error(cx: &LateContext<'_>, param: &Expr<'_>) { . let mut applicability = Applicability::MachineApplicable; . span_lint_and_sugg( . cx, . NON_OCTAL_UNIX_PERMISSIONS, . param.span, -- line 83 ---------------------------------------- 13,713 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/cell.rs -------------------------------------------------------------------------------- Ir -- line 550 ---------------------------------------- . /// ``` . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_stable(feature = "const_cell", since = "1.88.0")] . #[rustc_should_not_be_called_on_const_items] . pub const fn get(&self) -> T { . // SAFETY: This can cause data races if called from a separate thread, . // but `Cell` is `!Sync` so this won't happen. 325,269 ( 0.00%) unsafe { *self.value.get() } . } . . /// Updates the contained value using a function. . /// . /// # Examples . /// . /// ``` . /// use std::cell::Cell; -- line 566 ---------------------------------------- -- line 2050 ---------------------------------------- . } . . #[rustc_const_unstable(feature = "const_ref_cell", issue = "137844")] . const impl Drop for BorrowRefMut<'_> { . #[inline] . fn drop(&mut self) { . let borrow = self.borrow.get(); . debug_assert!(is_writing(borrow)); 1 ( 0.00%) self.borrow.replace(borrow + 1); . } . } . . impl<'b> BorrowRefMut<'b> { . #[inline] . const fn new(borrow: &'b Cell) -> Option> { . // NOTE: Unlike BorrowRefMut::clone, new is called to create the initial . // mutable reference, and so there must currently be no existing . // references. Thus, while clone increments the mutable refcount, here . // we explicitly only allow going from UNUSED to UNUSED - 1. 272 ( 0.00%) match borrow.get() { . UNUSED => { . borrow.replace(UNUSED - 1); . Some(BorrowRefMut { borrow }) . } . _ => None, . } . } . -- line 2077 ---------------------------------------- 3,655 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/octal_escapes.rs -------------------------------------------------------------------------------- Ir -- line 45 ---------------------------------------- . pub OCTAL_ESCAPES, . suspicious, . "string escape sequences looking like octal characters" . } . . declare_lint_pass!(OctalEscapes => [OCTAL_ESCAPES]); . . impl EarlyLintPass for OctalEscapes { 279,272 ( 0.00%) fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { 79,792 ( 0.00%) if let ExprKind::Lit(lit) = &expr.kind . // The number of bytes from the start of the token to the start of literal's text. 11,574 ( 0.00%) && let start_offset = BytePos::from_u32(match lit.kind { . LitKind::Str => 1, . LitKind::ByteStr | LitKind::CStr => 2, . _ => return, . }) 1,575 ( 0.00%) && !expr.span.in_external_macro(cx.sess().source_map()) . { . let s = lit.symbol.as_str(); . let mut iter = s.as_bytes().iter(); 8,618 ( 0.00%) while let Some(&c) = iter.next() { 17,246 ( 0.00%) if c == b'\\' . // Always move the iterator to read the escape char. 20 ( 0.00%) && let Some(b'0') = iter.next() . { . // C-style octal escapes read from one to three characters. . // The first character (`0`) has already been read. . let (tail, len, c_hi, c_lo) = match *iter.as_slice() { . [c_hi @ b'0'..=b'7', c_lo @ b'0'..=b'7', ref tail @ ..] => (tail, 4, c_hi, c_lo), . [c_lo @ b'0'..=b'7', ref tail @ ..] => (tail, 3, b'0', c_lo), . _ => continue, . }; -- line 76 ---------------------------------------- -- line 107 ---------------------------------------- . ); . }); . } else { . break; . } . } . } . } 319,168 ( 0.00%) } . } 4,745 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_utils/src/visitors.rs -------------------------------------------------------------------------------- Ir -- line 87 ---------------------------------------- . } . V::Result::output() . } . } . macro_rules! visitable_ref { . ($t:ident, $f:ident) => { . impl<'tcx> Visitable<'tcx> for &'tcx $t<'tcx> { . fn visit>(self, visitor: &mut V) -> V::Result { 2,975 ( 0.00%) visitor.$f(self) 171 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/visitors.rs: as rustc_hir::intravisit::Visitor>::visit_expr (3x) 42 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/visitors.rs: as rustc_hir::intravisit::Visitor>::visit_expr (1x) . } . } . }; . } . visitable_ref!(Arm, visit_arm); . visitable_ref!(Block, visit_block); . visitable_ref!(Body, visit_body); . visitable_ref!(Expr, visit_expr); . visitable_ref!(Stmt, visit_stmt); . . /// Calls the given function once for each expression contained. This does not enter any bodies or . /// nested items. 1,065 ( 0.00%) pub fn for_each_expr_without_closures<'tcx, B, C: Continue>( . node: impl Visitable<'tcx>, . f: impl FnMut(&'tcx Expr<'tcx>) -> ControlFlow, . ) -> Option { . struct V { . f: F, . } . impl<'tcx, B, C: Continue, F: FnMut(&'tcx Expr<'tcx>) -> ControlFlow> Visitor<'tcx> for V { . type Result = ControlFlow; . 50,095 ( 0.00%) fn visit_expr(&mut self, e: &'tcx Expr<'tcx>) -> Self::Result { 84,382 ( 0.00%) match (self.f)(e) { 261,187 ( 0.00%) ControlFlow::Continue(c) if c.descend() => walk_expr(self, e), 5,832 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_expr::::{closure#0}>>'2 (48x) 64 ( 0.00%) ControlFlow::Break(b) => ControlFlow::Break(b), 16 ( 0.00%) ControlFlow::Continue(_) => ControlFlow::Continue(()), . } 6,044 ( 0.00%) } . . // Avoid unnecessary `walk_*` calls. . fn visit_ty(&mut self, _: &'tcx hir::Ty<'tcx, AmbigArg>) -> Self::Result { . ControlFlow::Continue(()) . } . fn visit_pat(&mut self, _: &'tcx Pat<'tcx>) -> Self::Result { . ControlFlow::Continue(()) . } -- line 132 ---------------------------------------- -- line 133 ---------------------------------------- . fn visit_qpath(&mut self, _: &'tcx QPath<'tcx>, _: HirId, _: Span) -> Self::Result { . ControlFlow::Continue(()) . } . // Avoid monomorphising all `visit_*` functions. . fn visit_nested_item(&mut self, _: ItemId) -> Self::Result { . ControlFlow::Continue(()) . } . } 13,948 ( 0.00%) let mut v = V { f }; . node.visit(&mut v).break_value() 907 ( 0.00%) } . . /// Calls the given function once for each expression contained. This will enter bodies, but not . /// nested items. . pub fn for_each_expr<'tcx, B, C: Continue>( . tcx: TyCtxt<'tcx>, . node: impl Visitable<'tcx>, . f: impl FnMut(&'tcx Expr<'tcx>) -> ControlFlow, . ) -> Option { -- line 151 ---------------------------------------- -- line 156 ---------------------------------------- . impl<'tcx, B, C: Continue, F: FnMut(&'tcx Expr<'tcx>) -> ControlFlow> Visitor<'tcx> for V<'tcx, F> { . type NestedFilter = nested_filter::OnlyBodies; . type Result = ControlFlow; . . fn maybe_tcx(&mut self) -> Self::MaybeTyCtxt { . self.tcx . } . 3,066 ( 0.00%) fn visit_expr(&mut self, e: &'tcx Expr<'tcx>) -> Self::Result { 9 ( 0.00%) match (self.f)(e) { 791 ( 0.00%) ControlFlow::Continue(c) if c.descend() => walk_expr(self, e), 169,267 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_expr::> (30x) . ControlFlow::Break(b) => ControlFlow::Break(b), . ControlFlow::Continue(_) => ControlFlow::Continue(()), . } 3,088 ( 0.00%) } . . // Only walk closures . fn visit_anon_const(&mut self, _: &'tcx AnonConst) -> Self::Result { . ControlFlow::Continue(()) . } . // Avoid unnecessary `walk_*` calls. . fn visit_ty(&mut self, _: &'tcx hir::Ty<'tcx, AmbigArg>) -> Self::Result { . ControlFlow::Continue(()) -- line 178 ---------------------------------------- -- line 183 ---------------------------------------- . fn visit_qpath(&mut self, _: &'tcx QPath<'tcx>, _: HirId, _: Span) -> Self::Result { . ControlFlow::Continue(()) . } . // Avoid monomorphising all `visit_*` functions. . fn visit_nested_item(&mut self, _: ItemId) -> Self::Result { . ControlFlow::Continue(()) . } . } 279 ( 0.00%) let mut v = V { tcx, f }; . node.visit(&mut v).break_value() . } . . /// returns `true` if expr contains match expr desugared from try . fn contains_try(expr: &Expr<'_>) -> bool { . for_each_expr_without_closures(expr, |e| { . if matches!(e.kind, ExprKind::Match(_, _, hir::MatchSource::TryDesugar(_))) { . ControlFlow::Break(()) -- line 199 ---------------------------------------- -- line 307 ---------------------------------------- . } . ControlFlow::Continue(()) . }) . .is_some() . } . . /// Checks if the given local is used. . pub fn is_local_used<'tcx>(cx: &LateContext<'tcx>, visitable: impl Visitable<'tcx>, id: HirId) -> bool { 1 ( 0.00%) for_each_expr(cx.tcx, visitable, |e| { . if e.res_local_id() == Some(id) { . ControlFlow::Break(()) . } else { . ControlFlow::Continue(()) . } . }) . .is_some() . } . . /// Returns whether the given expression can be evaluated as a constant assuming that all its sub . /// expressions can be evaluated as constants. 3 ( 0.00%) fn is_const_evaluatable_helper<'tcx>(tcx: TyCtxt<'tcx>, typeck: &'tcx TypeckResults<'tcx>, e: &'tcx Expr<'_>) -> bool { 10 ( 0.00%) match e.kind { . ExprKind::Call( . &Expr { 1 ( 0.00%) kind: ExprKind::Path(ref p), . hir_id, . .. . }, . _, 3 ( 0.00%) ) if typeck 4 ( 0.00%) .qpath_res(p, hir_id) 67 ( 0.00%) => ???:::qpath_res (1x) . .opt_def_id() 5 ( 0.00%) .is_some_and(|id| is_stable_const_fn_at(tcx, CRATE_HIR_ID, id, Msrv::default())) => 132 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/qualify_min_const_fn.rs:clippy_utils::qualify_min_const_fn::is_stable_const_fn_at (1x) . { . true . }, . ExprKind::MethodCall(..) . if typeck . .type_dependent_def_id(e.hir_id) . .is_some_and(|id| is_stable_const_fn_at(tcx, CRATE_HIR_ID, id, Msrv::default())) => . { -- line 347 ---------------------------------------- -- line 392 ---------------------------------------- . | ExprKind::Repeat(..) . | ExprKind::Struct(..) . | ExprKind::Tup(_) . | ExprKind::Type(..) . | ExprKind::UnsafeBinderCast(..) => true, . . _ => false, . } 5 ( 0.00%) } . . /// Checks if the given expression can be evaluated as a constant at the specified node 3 ( 0.00%) pub fn is_const_evaluatable<'tcx>(tcx: TyCtxt<'tcx>, typeck: &'tcx TypeckResults<'tcx>, e: &'tcx Expr<'_>) -> bool { . for_each_expr(tcx, e, move |e| { 7 ( 0.00%) if !is_const_evaluatable_helper(tcx, typeck, e) { 238 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/visitors.rs:clippy_utils::visitors::is_const_evaluatable_helper (1x) . ControlFlow::Break(()) . } else if matches!(e.kind, ExprKind::ConstBlock(_)) { . ControlFlow::Continue(Descend::No) . } else { . ControlFlow::Continue(Descend::Yes) . } . }) . .is_none() 3 ( 0.00%) } . . /// Checks if the given expression can be used as a const parameter. . /// . /// This is more strict than `is_const_evaluatable` as it requires that the expression does not . /// contain any type parameters or any operations on const parameters. . pub fn is_const_param_evaluatable<'tcx>( . tcx: TyCtxt<'tcx>, . typeck: &'tcx TypeckResults<'tcx>, -- line 422 ---------------------------------------- 34,406 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_utils/src/source.rs -------------------------------------------------------------------------------- Ir -- line 46 ---------------------------------------- . #[inline] . fn source_map(self) -> &'sm SourceMap { . ::rustc_lint::LintContext::sess(self).source_map() . } . } . impl<'sm> HasSourceMap<'sm> for &LateContext<'sm> { . #[inline] . fn source_map(self) -> &'sm SourceMap { 3,570 ( 0.00%) self.tcx.sess.source_map() . } . } . . /// Conversion of a value into the range portion of a `Span`. . pub trait SpanRange: Sized { . fn into_range(self) -> Range; . } . impl SpanRange for Span { 34,180 ( 0.00%) fn into_range(self) -> Range { . let data = self.data(); 13,672 ( 0.00%) data.lo..data.hi 13,672 ( 0.00%) } . } . impl SpanRange for SpanData { . fn into_range(self) -> Range { . self.lo..self.hi . } . } . impl SpanRange for Range { . fn into_range(self) -> Range { -- line 74 ---------------------------------------- -- line 104 ---------------------------------------- . fn with_ctxt(self, ctxt: SyntaxContext) -> Span { . Span::new(self.start, self.end, ctxt, None) . } . } . . pub trait SpanExt: SpanRange { . /// Attempts to get a handle to the source text. Returns `None` if either the span is malformed, . /// or the source text is not accessible. 8 ( 0.00%) fn get_text<'sm>(self, sm: impl HasSourceMap<'sm>) -> Option { 9,987 ( 0.00%) get_source_range(sm.source_map(), self.into_range()).and_then(SourceText::new) 16,335 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/source.rs:clippy_utils::source::get_source_range (45x) 765 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/source.rs:::into_range (45x) 10 ( 0.00%) } . . /// Gets the source file, and range in the file, of the given span. Returns `None` if the span . /// extends through multiple files, or is malformed. . fn get_source_range<'sm>(self, sm: impl HasSourceMap<'sm>) -> Option { 1,332 ( 0.00%) get_source_range(sm.source_map(), self.into_range()) 52,635 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/source.rs:clippy_utils::source::get_source_range (145x) 2,465 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/source.rs:::into_range (145x) . } . . /// Calls the given function with the source text referenced and returns the value. Returns . /// `None` if the source text cannot be retrieved. 18,135 ( 0.00%) fn with_source_text<'sm, T>(self, sm: impl HasSourceMap<'sm>, f: impl for<'a> FnOnce(&'a str) -> T) -> Option { 12,392 ( 0.00%) with_source_text(sm.source_map(), self.into_range(), f) 34 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/source.rs:::into_range (2x) 20,445 ( 0.00%) } . . /// Checks if the referenced source text satisfies the given predicate. Returns `false` if the . /// source text cannot be retrieved. . fn check_text<'sm>(self, sm: impl HasSourceMap<'sm>, pred: impl for<'a> FnOnce(&'a str) -> bool) -> bool { 149 ( 0.00%) self.with_source_text(sm, pred).unwrap_or(false) 363,233 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/source.rs:::with_source_text::::{closure#0}> (34x) . } . . /// Calls the given function with the both the text of the source file and the referenced range, . /// and returns the value. Returns `None` if the source text cannot be retrieved. . fn with_source_text_and_range<'sm, T>( . self, . sm: impl HasSourceMap<'sm>, . f: impl for<'a> FnOnce(&'a str, Range) -> T, -- line 139 ---------------------------------------- -- line 177 ---------------------------------------- . } . } . impl SpanExt for T {} . . /// Handle to a range of text in a source file. . pub struct SourceText(SourceFileRange); . impl SourceText { . /// Takes ownership of the source file handle if the source text is accessible. 1,625 ( 0.00%) pub fn new(text: SourceFileRange) -> Option { . if text.as_str().is_some() { 6,500 ( 0.00%) Some(Self(text)) . } else { . None . } 1,625 ( 0.00%) } . . /// Gets the source text. . pub fn as_str(&self) -> &str { . self.0.as_str().unwrap() . } . . /// Converts this into an owned string. . pub fn to_owned(&self) -> String { . self.as_str().to_owned() . } . } . impl Deref for SourceText { . type Target = str; . fn deref(&self) -> &Self::Target { . self.as_str() 1,481 ( 0.00%) } . } . impl AsRef for SourceText { . fn as_ref(&self) -> &str { . self.as_str() . } . } . impl Index for SourceText . where -- line 215 ---------------------------------------- -- line 216 ---------------------------------------- . str: Index, . { . type Output = >::Output; . fn index(&self, idx: T) -> &Self::Output { . &self.as_str()[idx] . } . } . impl fmt::Display for SourceText { 144 ( 0.00%) fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { 144 ( 0.00%) self.as_str().fmt(f) 15,123 ( 0.00%) => ???:::fmt (144x) . } . } . impl fmt::Debug for SourceText { . fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { . self.as_str().fmt(f) . } . } . 68,790 ( 0.00%) fn get_source_range(sm: &SourceMap, sp: Range) -> Option { 55,032 ( 0.00%) let start = sm.lookup_byte_offset(sp.start); 953,356 ( 0.01%) => ???:::lookup_byte_offset (6,879x) 34,395 ( 0.00%) let end = sm.lookup_byte_offset(sp.end); 953,356 ( 0.01%) => ???:::lookup_byte_offset (6,879x) 20,637 ( 0.00%) if !Arc::ptr_eq(&start.sf, &end.sf) || start.pos > end.pos { . return None; . } 20,637 ( 0.00%) sm.ensure_source_file_source_present(&start.sf); 158,217 ( 0.00%) => ???:::ensure_source_file_source_present (6,879x) . let range = start.pos.to_usize()..end.pos.to_usize(); 27,516 ( 0.00%) Some(SourceFileRange { sf: start.sf, range }) 61,911 ( 0.00%) } . 77 ( 0.00%) fn with_source_text(sm: &SourceMap, sp: Range, f: impl for<'a> FnOnce(&'a str) -> T) -> Option { 50,239 ( 0.00%) if let Some(src) = get_source_range(sm, sp) 686 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/source.rs:clippy_utils::source::get_source_range (2x) 19,996 ( 0.00%) && let Some(src) = src.as_str() 56 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:::as_str (2x) . { . Some(f(src)) . } else { . None . } 56 ( 0.00%) } . . fn with_source_text_and_range( . sm: &SourceMap, . sp: Range, . f: impl for<'a> FnOnce(&'a str, Range) -> T, . ) -> Option { . if let Some(src) = get_source_range(sm, sp) . && let Some(text) = &src.sf.src -- line 261 ---------------------------------------- -- line 355 ---------------------------------------- . } . impl SourceFileRange { . /// Attempts to get the text from the source file. This can fail if the source text isn't . /// loaded. . pub fn as_str(&self) -> Option<&str> { . (self.sf.src.as_ref().map(|src| src.as_str())) . .or_else(|| self.sf.external_src.get()?.get_source()) . .and_then(|x| x.get(self.range.clone())) 5,025 ( 0.00%) } . } . . /// Like [`snippet_block`], but add braces if the expr is not an `ExprKind::Block` with no label. 24 ( 0.00%) pub fn expr_block<'sm>( . sm: impl HasSourceMap<'sm>, . expr: &Expr<'_>, . outer: SyntaxContext, . default: &str, . indent_relative_to: Option, . app: &mut Applicability, . ) -> String { 32 ( 0.00%) let (code, from_macro) = snippet_block_with_context(sm, expr.span, outer, default, indent_relative_to, app); 39,862 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/source.rs:clippy_utils::source::snippet_block_with_context::<&rustc_lint::context::LateContext> (4x) 20 ( 0.00%) if !from_macro 2 ( 0.00%) && let ExprKind::Block(block, None) = expr.kind . && block.rules != BlockCheckMode::UnsafeBlock(UnsafeSource::UserProvided) . { 8 ( 0.00%) code . } else { . // FIXME: add extra indent for the unsafe blocks: . // original code: unsafe { ... } . // result code: { unsafe { ... } } . // desired code: {\n unsafe { ... }\n} 6 ( 0.00%) format!("{{ {code} }}") . } 20 ( 0.00%) } . . /// Returns a new Span that extends the original Span to the first non-whitespace char of the first . /// line. . /// . /// ```rust,ignore . /// let x = (); . /// // ^^ . /// // will be converted to -- line 396 ---------------------------------------- -- line 413 ---------------------------------------- . /// . /// ```no_run . /// let x = (); . /// // ^^ . /// // will be converted to . /// let x = (); . /// // ^^^^^^^^^^^^^^ . /// ``` 32 ( 0.00%) fn line_span<'sm>(sm: impl HasSourceMap<'sm>, span: Span) -> Span { 16 ( 0.00%) let span = original_sp(span, DUMMY_SP); 88 ( 0.00%) => ???:rustc_span::source_map::original_sp (4x) 12 ( 0.00%) let SourceFileAndLine { sf, line } = sm.source_map().lookup_line(span.lo()).unwrap(); 1,096 ( 0.00%) => ???:::lookup_line (4x) 16 ( 0.00%) let line_start = sf.lines()[line]; 32 ( 0.00%) => ???:::lines (4x) . let line_start = sf.absolute_position(line_start); . span.with_lo(line_start) 32 ( 0.00%) } . . /// Returns the indentation of the line of a span . /// . /// ```rust,ignore . /// let x = (); . /// // ^^ -- will return 0 . /// let x = (); . /// // ^^ -- will return 4 . /// ``` 16 ( 0.00%) pub fn indent_of<'sm>(sm: impl HasSourceMap<'sm>, span: Span) -> Option { 20 ( 0.00%) snippet_opt(sm, line_span(sm, span)).and_then(|snip| snip.find(|c: char| !c.is_whitespace())) 1,536 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/source.rs:clippy_utils::source::line_span::<&rustc_lint::context::LateContext> (4x) 24 ( 0.00%) } . . /// Gets a snippet of the indentation of the line of a span . pub fn snippet_indent<'sm>(sm: impl HasSourceMap<'sm>, span: Span) -> Option { . snippet_opt(sm, line_span(sm, span)).map(|mut s| { . let len = s.len() - s.trim_start().len(); . s.truncate(len); . s . }) -- line 447 ---------------------------------------- -- line 485 ---------------------------------------- . } . break; . } . rpos . }) . } . . /// Reindent a multiline string with possibility of ignoring the first line. 44 ( 0.00%) pub fn reindent_multiline(s: &str, ignore_first: bool, indent: Option) -> String { 12 ( 0.00%) let s_space = reindent_multiline_inner(s, ignore_first, indent, ' '); 9,678 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/source.rs:clippy_utils::source::reindent_multiline_inner (4x) 28 ( 0.00%) let s_tab = reindent_multiline_inner(&s_space, ignore_first, indent, '\t'); 10,543 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/source.rs:clippy_utils::source::reindent_multiline_inner (4x) 28 ( 0.00%) reindent_multiline_inner(&s_tab, ignore_first, indent, ' ') 11,130 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/source.rs:clippy_utils::source::reindent_multiline_inner (4x) 36 ( 0.00%) } . 156 ( 0.00%) fn reindent_multiline_inner(s: &str, ignore_first: bool, indent: Option, ch: char) -> String { . let x = s . .lines() . .skip(usize::from(ignore_first)) . .filter_map(|l| { 36 ( 0.00%) if l.is_empty() { . None . } else { . // ignore empty lines 434 ( 0.00%) Some(l.char_indices().find(|&(_, x)| x != ch).unwrap_or((l.len(), ch)).0) . } . }) . .min() . .unwrap_or(0); . let indent = indent.unwrap_or(0); . s.lines() . .enumerate() . .map(|(i, l)| { 180 ( 0.00%) if (ignore_first && i == 0) || l.is_empty() { . l.to_owned() 132 ( 0.00%) } else if x > indent { . l.split_at(x - indent).1.to_owned() . } else { 6 ( 0.00%) " ".repeat(indent - x) + l . } . }) . .collect::>() . .join("\n") 96 ( 0.00%) } . . /// Converts a span to a code snippet if available, otherwise returns the default. . /// . /// This is useful if you want to provide suggestions for your lint or more generally, if you want . /// to convert a given `Span` to a `str`. . /// . /// To create suggestions consider using [`snippet_with_applicability`] to ensure that the . /// applicability stays correct. -- line 535 ---------------------------------------- -- line 541 ---------------------------------------- . /// // ^^^^^ ^^^^^^^^^^ . /// // span1 span2 . /// . /// // The snippet call would return the corresponding code snippet . /// snippet(cx, span1, "..") // -> "value" . /// snippet(cx, span2, "..") // -> "Vec::new()" . /// ``` . pub fn snippet<'a, 'sm>(sm: impl HasSourceMap<'sm>, span: Span, default: &'a str) -> Cow<'a, str> { 10 ( 0.00%) snippet_opt(sm, span).map_or_else(|| Cow::Borrowed(default), From::from) . } . . /// Same as [`snippet`], but it adapts the applicability level by following rules: . /// . /// - Applicability level `Unspecified` will never be changed. . /// - If the span is inside a macro, change the applicability level to `MaybeIncorrect`. . /// - If the default value is used and the applicability level is `MachineApplicable`, change it to . /// `HasPlaceholders` -- line 557 ---------------------------------------- -- line 559 ---------------------------------------- . /// If the span might realistically contain a macro call (e.g. `vec![]`), consider using . /// [`snippet_with_context`] instead. . pub fn snippet_with_applicability<'a, 'sm>( . sm: impl HasSourceMap<'sm>, . span: Span, . default: &'a str, . applicability: &mut Applicability, . ) -> Cow<'a, str> { 86 ( 0.00%) snippet_with_applicability_sm(sm.source_map(), span, default, applicability) 908 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/source.rs:clippy_utils::source::snippet_with_applicability_sm (2x) . } . 200 ( 0.00%) fn snippet_with_applicability_sm<'a>( . sm: &SourceMap, . span: Span, . default: &'a str, . applicability: &mut Applicability, . ) -> Cow<'a, str> { 26 ( 0.00%) if *applicability != Applicability::Unspecified && span.from_expansion() { . *applicability = Applicability::MaybeIncorrect; . } 110 ( 0.00%) if let Some(t) = snippet_opt(sm, span) { 20 ( 0.00%) Cow::Owned(t) . } else { . if *applicability == Applicability::MachineApplicable { . *applicability = Applicability::HasPlaceholders; . } . Cow::Borrowed(default) . } 160 ( 0.00%) } . . /// Converts a span to a code snippet. Returns `None` if not available. 438 ( 0.00%) pub fn snippet_opt<'sm>(sm: impl HasSourceMap<'sm>, span: Span) -> Option { 4,619 ( 0.00%) sm.source_map().span_to_snippet(span).ok() 3,134 ( 0.00%) => ???:::span_to_snippet (8x) 584 ( 0.00%) } . . /// Converts a span (from a block) to a code snippet if available, otherwise use default. . /// . /// This trims the code of indentation, except for the first line. Use it for blocks or block-like . /// things which need to be printed as such. . /// . /// The `indent_relative_to` arg can be used, to provide a span, where the indentation of the . /// resulting snippet of the given span. -- line 600 ---------------------------------------- -- line 646 ---------------------------------------- . applicability: &mut Applicability, . ) -> String { . let snip = snippet_with_applicability(sm, span, default, applicability); . let indent = indent_relative_to.and_then(|s| indent_of(sm, s)); . reindent_multiline(&snip, true, indent) . } . . /// Combination of [`snippet_block`] and [`snippet_with_context`]. 44 ( 0.00%) pub fn snippet_block_with_context<'sm>( . sm: impl HasSourceMap<'sm>, . span: Span, . outer: SyntaxContext, . default: &str, . indent_relative_to: Option, . app: &mut Applicability, . ) -> (String, bool) { 16 ( 0.00%) let (snip, from_macro) = snippet_with_context(sm, span, outer, default, app); 8 ( 0.00%) let indent = indent_relative_to.and_then(|s| indent_of(sm, s)); 4,944 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/source.rs:clippy_utils::source::indent_of::<&rustc_lint::context::LateContext> (4x) 36 ( 0.00%) (reindent_multiline(&snip, true, indent), from_macro) 31,867 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/source.rs:clippy_utils::source::reindent_multiline (4x) 36 ( 0.00%) } . . /// Same as [`snippet_with_applicability`], but first walks the span up to the given context. . /// . /// This will result in the macro call, rather than the expansion, if the span is from a child . /// context. If the span is not from a child context, it will be used directly instead. . /// . /// e.g. Given the expression `&vec![]`, getting a snippet from the span for `vec![]` as a HIR node . /// would result in `box []`. If given the context of the address of expression, this function will -- line 673 ---------------------------------------- -- line 676 ---------------------------------------- . /// This will also return whether or not the snippet is a macro call. . pub fn snippet_with_context<'a, 'sm>( . sm: impl HasSourceMap<'sm>, . span: Span, . outer: SyntaxContext, . default: &'a str, . applicability: &mut Applicability, . ) -> (Cow<'a, str>, bool) { 34 ( 0.00%) snippet_with_context_sm(sm.source_map(), span, outer, default, applicability) 1,322 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/source.rs:clippy_utils::source::snippet_with_context_sm (2x) . } . 78 ( 0.00%) fn snippet_with_context_sm<'a>( . sm: &SourceMap, . span: Span, . outer: SyntaxContext, . default: &'a str, . applicability: &mut Applicability, . ) -> (Cow<'a, str>, bool) { . // If it is just range desugaring, use the desugaring span since it may include parenthesis. 12 ( 0.00%) if span.desugaring_kind() == Some(DesugaringKind::RangeExpr) && span.parent_callsite().unwrap().ctxt() == outer { 606 ( 0.00%) => ???:::desugaring_kind (6x) . return (snippet_with_applicability_sm(sm, span, default, applicability), false); . } . . let (span, is_macro_call) = walk_span_to_context(span, outer).map_or_else( . || { . // The span is from a macro argument, and the outer context is the macro using the argument . if *applicability != Applicability::Unspecified { . *applicability = Applicability::MaybeIncorrect; -- line 703 ---------------------------------------- -- line 707 ---------------------------------------- . }, . |outer_span| (outer_span, span.ctxt() != outer), . ); . . ( . snippet_with_applicability_sm(sm, span, default, applicability), . is_macro_call, . ) 54 ( 0.00%) } . . /// Walks the span up to the target context, thereby returning the macro call site if the span is . /// inside a macro expansion, or the original span if it is not. . /// . /// Note this will return `None` in the case of the span being in a macro expansion, but the target . /// context is from expanding a macro argument. . /// . /// Given the following -- line 723 ---------------------------------------- -- line 736 ---------------------------------------- . /// ```rust,ignore . /// macro_rules! m { ($e:expr) => { n!($e, 0) }; } . /// macro_rules! n { ($e:expr, $f:expr) => { f($e, $f) }; } . /// g(m!(0)) . /// ``` . /// . /// If called with a span of the call to `f` and a context of the call to `g` this will return a . /// span containing `m!(0)`. 552 ( 0.00%) pub fn walk_span_to_context(span: Span, outer: SyntaxContext) -> Option { 300 ( 0.00%) let outer_span = hygiene::walk_chain(span, outer); 342 ( 0.00%) => ???:rustc_span::hygiene::walk_chain (6x) . (outer_span.ctxt() == outer).then_some(outer_span) 552 ( 0.00%) } . . /// Trims the whitespace from the start and the end of the span. . pub fn trim_span(sm: &SourceMap, span: Span) -> Span { . let data = span.data(); . let sf: &_ = &sm.lookup_source_file(data.lo); . let Some(src) = sf.src.as_deref() else { . return span; . }; -- line 755 ---------------------------------------- -- line 774 ---------------------------------------- . /// ``` . pub fn expand_past_previous_comma<'sm>(sm: impl HasSourceMap<'sm>, span: Span) -> Span { . let extended = sm.source_map().span_extend_to_prev_char(span, ',', true); . extended.with_lo(extended.lo() - BytePos(1)) . } . . /// Converts `expr` to a `char` literal if it's a `str` literal containing a single . /// character (or a single byte with `ascii_only`) 24 ( 0.00%) pub fn str_literal_to_char_literal<'sm>( . sm: impl HasSourceMap<'sm>, . expr: &Expr<'_>, . applicability: &mut Applicability, . ascii_only: bool, . ) -> Option { 8 ( 0.00%) if let ExprKind::Lit(lit) = &expr.kind . && let LitKind::Str(r, style) = lit.node . && let string = r.as_str() . && let len = if ascii_only { . string.len() . } else { . string.chars().count() . } . && len == 1 -- line 796 ---------------------------------------- -- line 812 ---------------------------------------- . r"\" => "\\\\", . "\\\"" => "\"", // no need to escape `"` in `'"'` . _ => ch, . } . ); . . Some(hint) . } else { 3 ( 0.00%) None . } 27 ( 0.00%) } . . #[cfg(test)] . mod test { . use super::reindent_multiline; . . #[test] . fn test_reindent_multiline_single_line() { . assert_eq!("", reindent_multiline("", false, None)); -- line 830 ---------------------------------------- 27,706 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs -------------------------------------------------------------------------------- Ir -- line 5094 ---------------------------------------- . allowed_dotfiles: FxHashSet<&'static str>, . format_args: FormatArgsStorage, . allow_unwrap_types: Vec, . unwrap_allowed_ids: FxHashSet, . unwrap_allowed_aliases: Vec, . } . . impl Methods { 10 ( 0.00%) pub fn new(conf: &'static Conf, format_args: FormatArgsStorage) -> Self { . let mut allowed_dotfiles: FxHashSet<_> = conf.allowed_dotfiles.iter().map(|s| &**s).collect(); . allowed_dotfiles.extend(DEFAULT_ALLOWED_DOTFILES); . 21 ( 0.00%) Self { 1 ( 0.00%) avoid_breaking_exported_api: conf.avoid_breaking_exported_api, 1 ( 0.00%) msrv: conf.msrv.into(), . allow_expect_in_tests: conf.allow_expect_in_tests, . allow_unwrap_in_tests: conf.allow_unwrap_in_tests, 1 ( 0.00%) allow_expect_in_consts: conf.allow_expect_in_consts, 1 ( 0.00%) allow_unwrap_in_consts: conf.allow_unwrap_in_consts, 6 ( 0.00%) allowed_dotfiles, 1 ( 0.00%) format_args, 3 ( 0.00%) allow_unwrap_types: conf.allow_unwrap_types.clone(), 33 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs: as core::clone::Clone>::clone (1x) . unwrap_allowed_ids: FxHashSet::default(), . unwrap_allowed_aliases: Vec::new(), . } 9 ( 0.00%) } . } . . /// Extracts a method call name, args, and `Span` of the method name. . /// This ensures that neither the receiver nor any of the arguments . /// come from expansion. 1,368 ( 0.00%) pub fn method_call<'tcx>(recv: &'tcx Expr<'tcx>) -> Option<(Symbol, &'tcx Expr<'tcx>, &'tcx [Expr<'tcx>], Span, Span)> { 7,873 ( 0.00%) if let ExprKind::MethodCall(path, receiver, args, call_span) = recv.kind 4,445 ( 0.00%) && !args.iter().any(|e| e.range_span().unwrap_or(e.span).from_expansion()) 1,806 ( 0.00%) => ???:::range_span (81x) 4,404 ( 0.00%) && !receiver.range_span().unwrap_or(receiver.span).from_expansion() 2,403 ( 0.00%) => ???:::range_span (101x) . { 3,409 ( 0.00%) Some((path.ident.name, receiver, args, path.ident.span, call_span)) . } else { 70 ( 0.00%) None . } 1,368 ( 0.00%) } . . impl<'tcx> LateLintPass<'tcx> for Methods { 8 ( 0.00%) fn check_crate(&mut self, cx: &LateContext<'tcx>) { . for s in &self.allow_unwrap_types { . let def_ids = clippy_utils::paths::lookup_path_str(cx.tcx, clippy_utils::paths::PathNS::Type, s); . for def_id in def_ids { . if cx.tcx.def_kind(def_id) == rustc_hir::def::DefKind::TyAlias { . self.unwrap_allowed_aliases.push(def_id); . } else { . self.unwrap_allowed_ids.insert(def_id); . } . } . } 8 ( 0.00%) } . 355,200 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 88,800 ( 0.00%) if expr.span.from_expansion() { . return; . } . 56,401 ( 0.00%) match expr.kind { 3,828 ( 0.00%) ExprKind::Call(func, args) => { 4,785 ( 0.00%) unnecessary_fallible_conversions::check_function(cx, expr, func); 195,492 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/unnecessary_fallible_conversions.rs:clippy_lints::methods::unnecessary_fallible_conversions::check_function (957x) 10,527 ( 0.00%) manual_c_str_literals::check(cx, expr, func, args, self.msrv); 26,931 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/manual_c_str_literals.rs:clippy_lints::methods::manual_c_str_literals::check (957x) 7,656 ( 0.00%) useless_nonzero_new_unchecked::check(cx, expr, func, args, self.msrv); 18,861 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/useless_nonzero_new_unchecked.rs:clippy_lints::methods::useless_nonzero_new_unchecked::check (957x) 7,656 ( 0.00%) io_other_error::check(cx, expr, func, args, self.msrv); 7,767 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/io_other_error.rs:clippy_lints::methods::io_other_error::check (957x) 9,570 ( 0.00%) swap_with_temporary::check(cx, expr, func, args); 87,809 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/swap_with_temporary.rs:clippy_lints::methods::swap_with_temporary::check (957x) 5,742 ( 0.00%) ip_constant::check(cx, expr, func, args); 26,861 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/ip_constant.rs:clippy_lints::methods::ip_constant::check (957x) 2,871 ( 0.00%) clone_on_copy::check_function(cx, expr); 220,279 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/clone_on_copy.rs:clippy_lints::methods::clone_on_copy::check_function (957x) 10,527 ( 0.00%) unwrap_expect_used::check_call( 74,806 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/unwrap_expect_used.rs:clippy_lints::methods::unwrap_expect_used::check_call (957x) . cx, . expr, . func, . args, 957 ( 0.00%) self.allow_unwrap_in_tests, 957 ( 0.00%) self.allow_expect_in_tests, 957 ( 0.00%) self.allow_unwrap_in_consts, 957 ( 0.00%) self.allow_expect_in_consts, 957 ( 0.00%) &self.unwrap_allowed_ids, . &self.unwrap_allowed_aliases, . ); . }, . ExprKind::MethodCall(..) => { 8,973 ( 0.00%) self.check_methods(cx, expr); 807,505 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:::check_methods (997x) . }, 225 ( 0.00%) ExprKind::Binary(op, lhs, rhs) if op.node == hir::BinOpKind::Eq || op.node == hir::BinOpKind::Ne => { 84 ( 0.00%) let mut info = BinaryExprInfo { . expr, . chain: lhs, . other: rhs, . eq: op.node == hir::BinOpKind::Eq, . }; . lint_binary_expr_with_method_call(cx, &mut info); . }, . ExprKind::Binary(op, lhs, rhs) if op.node == hir::BinOpKind::Or => { . manual_is_variant_and::check_or(cx, expr, lhs, rhs, self.msrv); . }, . _ => (), . } 347,224 ( 0.00%) } . 30,510 ( 0.00%) fn check_impl_item(&mut self, cx: &LateContext<'tcx>, impl_item: &'tcx hir::ImplItem<'_>) { 9,153 ( 0.00%) if impl_item.span.in_external_macro(cx.sess().source_map()) { . return; . } . 13,945 ( 0.00%) if let hir::ImplItemKind::Fn(ref sig, id) = impl_item.kind { 13,135 ( 0.00%) let parent = cx.tcx.hir_get_parent_item(impl_item.hir_id()).def_id; 258,302 ( 0.00%) => ???:::hir_get_parent_item (2,627x) 10,508 ( 0.00%) let item = cx.tcx.hir_expect_item(parent); 142,286 ( 0.00%) => ???:::hir_expect_item (2,627x) 7,881 ( 0.00%) let self_ty = cx.tcx.type_of(item.owner_id).instantiate_identity().skip_norm_wip(); 10,508 ( 0.00%) let implements_trait = matches!(item.kind, hir::ItemKind::Impl(hir::Impl { of_trait: Some(_), .. })); . . let method_sig = cx.tcx.fn_sig(impl_item.owner_id).instantiate_identity().skip_norm_wip(); 5,254 ( 0.00%) let method_sig = cx.tcx.instantiate_bound_regions_with_erased(method_sig); 1,133,375 ( 0.02%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/fold.rs:::instantiate_bound_regions_with_erased::> (2,627x) 2,627 ( 0.00%) let first_arg_ty_opt = method_sig.inputs().iter().next().copied(); 21,016 ( 0.00%) should_implement_trait::check_impl_item(cx, impl_item, self_ty, implements_trait, first_arg_ty_opt, sig); 48,838 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/should_implement_trait.rs:clippy_lints::methods::should_implement_trait::check_impl_item (2,627x) . 10,508 ( 0.00%) if sig.decl.implicit_self().has_implicit_self() 21,016 ( 0.00%) => ???:::implicit_self (2,627x) 4,730 ( 0.00%) && !(self.avoid_breaking_exported_api 11,825 ( 0.00%) && cx.effective_visibilities.is_exported(impl_item.owner_id.def_id)) 134,670 ( 0.00%) => ???:::is_exported (2,365x) 3,744 ( 0.00%) && let Some(first_arg) = iter_input_pats(sig.decl, cx.tcx.hir_body(id)).next() 53,299 ( 0.00%) => ???:::hir_body (936x) 1,872 ( 0.00%) && let Some(first_arg_ty) = first_arg_ty_opt . { 5,616 ( 0.00%) wrong_self_convention::check( 561,251 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/wrong_self_convention.rs:clippy_lints::methods::wrong_self_convention::check (936x) . cx, 936 ( 0.00%) impl_item.ident.name, . self_ty, . first_arg_ty, 1,872 ( 0.00%) first_arg.pat.span, . implements_trait, . false, . ); . } . . new_ret_no_self::check_impl_item(cx, impl_item, self_ty, implements_trait); . } 24,408 ( 0.00%) } . 1,281 ( 0.00%) fn check_trait_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx TraitItem<'_>) { 366 ( 0.00%) if let TraitItemKind::Fn(ref sig, _) = item.kind 740 ( 0.00%) && !item.span.in_external_macro(cx.tcx.sess.source_map()) . { 592 ( 0.00%) if sig.decl.implicit_self().has_implicit_self() 1,184 ( 0.00%) => ???:::implicit_self (148x) . && let Some(first_arg_hir_ty) = sig.decl.inputs.first() 137 ( 0.00%) && let Some(&first_arg_ty) = cx . .tcx 274 ( 0.00%) .fn_sig(item.owner_id) . .instantiate_identity() . .skip_norm_wip() . .inputs() . .skip_binder() . .first() . { . let self_ty = TraitRef::identity(cx.tcx, item.owner_id.to_def_id()).self_ty(); 822 ( 0.00%) wrong_self_convention::check( 80,916 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/wrong_self_convention.rs:clippy_lints::methods::wrong_self_convention::check (137x) . cx, 274 ( 0.00%) item.ident.name, . self_ty, . first_arg_ty, 137 ( 0.00%) first_arg_hir_ty.span, . false, . true, . ); . } . 444 ( 0.00%) new_ret_no_self::check_trait_item(cx, item); 2,516 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/new_ret_no_self.rs:clippy_lints::methods::new_ret_no_self::check_trait_item (148x) . } 1,464 ( 0.00%) } . } . . impl Methods { . #[expect(clippy::too_many_lines)] 6,979 ( 0.00%) fn check_methods<'tcx>(&self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { . // Handle method calls whose receiver and arguments may not come from expansion . if let Some((name, recv, args, span, call_span)) = method_call(expr) { . match (name, args) { 10,449 ( 0.00%) (sym::add | sym::sub | sym::wrapping_add | sym::wrapping_sub, [_arg]) => { . zst_offset::check(cx, expr, recv); . }, . (sym::all, [arg]) => { . needless_character_iteration::check(cx, expr, recv, arg, true); . match method_call(recv) { . Some((sym::cloned, recv2, [], _, _)) => { . iter_overeager_cloned::check( . cx, -- line 5279 ---------------------------------------- -- line 5331 ---------------------------------------- . manual_contains::check(cx, expr, iter_recv, arg); . }, . _ => {}, . } . }, . (sym::arg, [arg]) => { . suspicious_command_arg_space::check(cx, recv, arg, span); . }, 3,356 ( 0.00%) (sym::as_deref | sym::as_deref_mut, []) => { . needless_option_as_deref::check(cx, expr, recv, name); . }, . (sym::as_bytes, []) => { 91 ( 0.00%) if let Some((sym::as_str, recv, [], as_str_span, _)) = method_call(recv) { 260 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (13x) . redundant_as_str::check(cx, expr, recv, as_str_span, span); . } 39 ( 0.00%) sliced_string_as_bytes::check(cx, expr, recv); 221 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/sliced_string_as_bytes.rs:clippy_lints::methods::sliced_string_as_bytes::check (13x) . }, 3 ( 0.00%) (sym::as_mut | sym::as_ref, []) => useless_asref::check(cx, expr, name, recv), 444 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/useless_asref.rs:clippy_lints::methods::useless_asref::check (1x) . (sym::as_ptr, []) => manual_c_str_literals::check_as_ptr(cx, expr, recv, self.msrv), . (sym::assume_init, []) => uninit_assumed_init::check(cx, expr, recv), . (sym::bytes, []) => unbuffered_bytes::check(cx, expr, recv), . (sym::cloned, []) => { . cloned_instead_of_copied::check(cx, expr, recv, span, self.msrv); . if let Some((method @ (sym::as_ref | sym::as_mut), as_ref_recv, [], as_ref_ident_span, _)) = . method_call(recv) . { -- line 5356 ---------------------------------------- -- line 5375 ---------------------------------------- . Some((sym::drain, recv, args, ..)) => match args { . [arg] => drain_collect::check(cx, Some(arg), expr, recv), . [] => drain_collect::check(cx, None, expr, recv), . _ => {}, . }, . _ => {}, . } . }, 28 ( 0.00%) (sym::count, []) if cx.ty_based_def(expr).opt_parent(cx).is_diag_item(cx, sym::Iterator) => { 242 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/res.rs: as clippy_utils::res::MaybeDef>::opt_parent:: (2x) 10 ( 0.00%) match method_call(recv) { 40 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (2x) . Some((sym::cloned, recv2, [], _, _)) => { . iter_overeager_cloned::check( . cx, . expr, . recv, . recv2, . iter_overeager_cloned::Op::RmCloned, . false, -- line 5392 ---------------------------------------- -- line 5399 ---------------------------------------- . Some((sym::filter, recv2, [arg], _, _)) => bytecount::check(cx, expr, recv2, arg), . Some((sym::bytes, recv2, [], _, _)) => bytes_count_to_len::check(cx, expr, recv, recv2), . _ => {}, . } . }, . (sym::min | sym::max, [arg]) => { . unnecessary_min_or_max::check(cx, expr, name, recv, arg); . }, 738 ( 0.00%) (sym::drain, ..) => { . if let Node::Stmt(Stmt { hir_id: _, kind, .. }) = cx.tcx.parent_hir_node(expr.hir_id) . && matches!(kind, StmtKind::Semi(_)) . && args.len() <= 1 . { . clear_with_drain::check(cx, expr, recv, span, args.first()); . } else if let [arg] = args { . iter_with_drain::check(cx, expr, recv, span, arg); . } -- line 5415 ---------------------------------------- -- line 5417 ---------------------------------------- . (sym::ends_with, [arg]) => { . if let ExprKind::MethodCall(.., span) = expr.kind { . case_sensitive_file_extension_comparisons::check(cx, expr, span, recv, arg, self.msrv); . } . path_ends_with_ext::check(cx, recv, arg, expr, self.msrv, &self.allowed_dotfiles); . }, . (sym::expect, [_]) => { . match method_call(recv) { 4 ( 0.00%) Some((sym::ok, recv_inner, [], _, _)) => ok_expect::check(cx, expr, recv, recv_inner), . Some((sym::err, recv, [], err_span, _)) => { . err_expect::check(cx, expr, recv, span, err_span, self.msrv); . }, . _ => {}, . } 10 ( 0.00%) unnecessary_literal_unwrap::check(cx, expr, recv, name, args); . }, . (sym::unwrap_unchecked, []) => { . unnecessary_unwrap_unchecked::check(cx, expr, recv, call_span); . unnecessary_literal_unwrap::check(cx, expr, recv, name, args); . }, . (sym::expect_err, [_]) | (sym::unwrap_err | sym::unwrap_err_unchecked, []) => { . unnecessary_literal_unwrap::check(cx, expr, recv, name, args); . }, -- line 5439 ---------------------------------------- -- line 5541 ---------------------------------------- . }, . (sym::get_or_insert_with, [arg]) => { . unnecessary_lazy_eval::check(cx, expr, recv, arg, "get_or_insert", false); . }, . (sym::hash, [arg]) => { . unit_hash::check(cx, expr, recv, arg); . }, . (sym::is_empty, []) => { 21 ( 0.00%) match method_call(recv) { 60 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (3x) . Some((prev_method @ (sym::as_bytes | sym::bytes), prev_recv, [], _, _)) => { . needless_as_bytes::check(cx, prev_method, name, prev_recv, expr.span); . }, . Some((sym::as_str, recv, [], as_str_span, _)) => { . redundant_as_str::check(cx, expr, recv, as_str_span, span); . }, . _ => {}, . } 12 ( 0.00%) is_empty::check(cx, expr, recv); 1,059 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/is_empty.rs:clippy_lints::methods::is_empty::check (3x) . }, . (sym::is_file, []) => filetype_is_file::check(cx, expr, recv), . (sym::is_digit, [radix]) => is_digit_ascii_radix::check(cx, expr, recv, radix, self.msrv), 14 ( 0.00%) (sym::is_none, []) => check_is_some_is_none(cx, expr, recv, call_span, false, self.msrv), 46 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::check_is_some_is_none (2x) 106 ( 0.00%) (sym::is_some, []) => check_is_some_is_none(cx, expr, recv, call_span, true, self.msrv), 431 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::check_is_some_is_none (13x) . (sym::is_some_and, [arg]) => manual_is_variant_and::check_ok_is_some_and(cx, expr, recv, arg), . (sym::iter | sym::iter_mut | sym::into_iter, []) => { 77 ( 0.00%) iter_on_single_or_empty_collections::check(cx, expr, name, recv); 1,137 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/iter_on_single_or_empty_collections.rs:clippy_lints::methods::iter_on_single_or_empty_collections::check (19x) . }, . (sym::join, [join_arg]) => { . if let Some((sym::collect, _, _, span, _)) = method_call(recv) { . unnecessary_join::check(cx, expr, recv, join_arg, span); . } else { . join_absolute_paths::check(cx, recv, join_arg, expr.span); . } . }, -- line 5574 ---------------------------------------- -- line 5581 ---------------------------------------- . recv2, . iter_overeager_cloned::Op::LaterCloned, . false, . ); . } . double_ended_iterator_last::check(cx, expr, recv, call_span); . }, . (sym::len, []) => { 68 ( 0.00%) if let Some((prev_method @ (sym::as_bytes | sym::bytes), prev_recv, [], _, _)) = method_call(recv) { 340 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (17x) . needless_as_bytes::check(cx, prev_method, sym::len, prev_recv, expr.span); . } . }, . (sym::lock, []) => { 2 ( 0.00%) mut_mutex_lock::check(cx, expr, recv, span); 167 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/mut_mutex_lock.rs:clippy_lints::methods::mut_mutex_lock::check (1x) . }, . (name @ (sym::map | sym::map_err), [m_arg]) => { . if name == sym::map { 448 ( 0.00%) map_clone::check(cx, expr, recv, m_arg, self.msrv); 40,487 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/map_clone.rs:clippy_lints::methods::map_clone::check (56x) 448 ( 0.00%) map_with_unused_argument_over_ranges::check(cx, expr, recv, m_arg, self.msrv, span); 4,086 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/map_with_unused_argument_over_ranges.rs:clippy_lints::methods::map_with_unused_argument_over_ranges::check (56x) 280 ( 0.00%) manual_is_variant_and::check_map(cx, expr, self.msrv); 6,732 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/manual_is_variant_and.rs:clippy_lints::methods::manual_is_variant_and::check_map (56x) 502 ( 0.00%) match method_call(recv) { 6,313 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (56x) 1 ( 0.00%) Some((map_name @ (sym::iter | sym::into_iter), recv2, _, _, _)) => { 6 ( 0.00%) iter_kv_map::check(cx, map_name, expr, recv2, m_arg, self.msrv, sym::map); 33 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/iter_kv_map.rs:clippy_lints::methods::iter_kv_map::check (1x) . }, . Some((sym::cloned, recv2, [], _, _)) => iter_overeager_cloned::check( . cx, . expr, . recv, . recv2, . iter_overeager_cloned::Op::NeedlessMove(m_arg), . false, . ), . _ => {}, . } . } else { 50 ( 0.00%) map_err_ignore::check(cx, expr, m_arg); 10,254 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/map_err_ignore.rs:clippy_lints::methods::map_err_ignore::check (10x) . } 434 ( 0.00%) if let Some((name, recv2, args, span2, _)) = method_call(recv) { 6,958 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (66x) . match (name, args) { 312 ( 0.00%) (sym::as_mut, []) => option_as_ref_deref::check(cx, expr, recv2, m_arg, true, self.msrv), . (sym::as_ref, []) => option_as_ref_deref::check(cx, expr, recv2, m_arg, false, self.msrv), . (sym::filter, [f_arg]) => { . filter_map::check(cx, expr, recv2, f_arg, span2, recv, m_arg, span, false); . }, . (sym::find, [f_arg]) => { . filter_map::check(cx, expr, recv2, f_arg, span2, recv, m_arg, span, true); . }, . _ => {}, . } . } 528 ( 0.00%) map_identity::check(cx, expr, recv, m_arg, name, span); 36,719 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/map_identity.rs:clippy_lints::methods::map_identity::check (66x) 462 ( 0.00%) manual_inspect::check(cx, expr, m_arg, name, span, self.msrv); 10,252 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/manual_inspect.rs:clippy_lints::methods::manual_inspect::check (66x) . }, 3 ( 0.00%) (sym::map_or, [def, map]) => { 8 ( 0.00%) option_map_or_none::check(cx, expr, recv, def, map); 342 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/option_map_or_none.rs:clippy_lints::methods::option_map_or_none::check (1x) 7 ( 0.00%) manual_ok_or::check(cx, expr, recv, def, map); 597 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/manual_ok_or.rs:clippy_lints::methods::manual_ok_or::check (1x) 9 ( 0.00%) unnecessary_map_or::check(cx, expr, recv, def, map, span, self.msrv); 461 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/unnecessary_map_or.rs:clippy_lints::methods::unnecessary_map_or::check (1x) . }, . (sym::map_or_else, [def, map]) => { . result_map_or_else_none::check(cx, expr, recv, def, map); . unnecessary_map_or_else::check(cx, expr, recv, def, map, call_span); 1 ( 0.00%) }, . (sym::next, []) => { 32 ( 0.00%) if let Some((name2, recv2, args2, _, _)) = method_call(recv) { 160 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (8x) . match (name2, args2) { . (sym::cloned, []) => iter_overeager_cloned::check( . cx, . expr, . recv, . recv2, . iter_overeager_cloned::Op::LaterCloned, . false, -- line 5652 ---------------------------------------- -- line 5690 ---------------------------------------- . }, . (sym::offset | sym::wrapping_offset, [arg]) => { . zst_offset::check(cx, expr, recv); . . ptr_offset_with_cast::check(cx, name, expr, recv, arg, self.msrv); . ptr_offset_by_literal::check(cx, expr, self.msrv); . }, . (sym::ok_or_else, [arg]) => { 7 ( 0.00%) unnecessary_lazy_eval::check(cx, expr, recv, arg, "ok_or", true); . }, . (sym::open, [_]) => { . open_options::check(cx, expr, recv); . }, . (sym::or_else, [arg]) => { . if !bind_instead_of_map::check_or_else_err(cx, expr, recv, arg) { . unnecessary_lazy_eval::check(cx, expr, recv, arg, "or", false); . } . }, . (sym::peek, []) => { . by_ref_peekable_peek::check(cx, expr, recv); . }, . (sym::push, [arg]) => { 36 ( 0.00%) path_buf_push_overwrite::check(cx, expr, arg); 10,530 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/path_buf_push_overwrite.rs:clippy_lints::methods::path_buf_push_overwrite::check (18x) . }, . (sym::read_to_end, [_]) => { . verbose_file_reads::check(cx, expr, recv, verbose_file_reads::READ_TO_END_MSG); . }, . (sym::read_to_string, [_]) => { . verbose_file_reads::check(cx, expr, recv, verbose_file_reads::READ_TO_STRING_MSG); . }, . (sym::read_line, [arg]) => { -- line 5720 ---------------------------------------- -- line 5767 ---------------------------------------- . unnecessary_sort_by::check(cx, expr, call_span, arg, false); . }, . (sym::sort_unstable_by, [arg]) => { . unnecessary_sort_by::check(cx, expr, call_span, arg, true); . }, . (sym::split, [arg]) => { . str_split::check(cx, expr, recv, call_span, arg); . }, 510 ( 0.00%) (sym::splitn | sym::rsplitn, [count_arg, pat_arg]) => { . if let Some(Constant::Int(count)) = ConstEvalCtxt::new(cx).eval(count_arg) { . suspicious_splitn::check(cx, name, expr, recv, count); . str_splitn::check(cx, name, expr, recv, pat_arg, count, self.msrv); . } . }, . (sym::splitn_mut | sym::rsplitn_mut, [count_arg, _]) => { . if let Some(Constant::Int(count)) = ConstEvalCtxt::new(cx).eval(count_arg) { . suspicious_splitn::check(cx, name, expr, recv, count); . } . }, 3,890 ( 0.00%) (sym::step_by, [arg]) => iterator_step_by_zero::check(cx, expr, arg), 7 ( 0.00%) (sym::take, [arg]) => { . iter_out_of_bounds::check_take(cx, expr, recv, arg); . manual_repeat_n::check(cx, expr, recv, arg, self.msrv); . if let Some((sym::cloned, recv2, [], _span2, _)) = method_call(recv) { . iter_overeager_cloned::check( . cx, . expr, . recv, . recv2, . iter_overeager_cloned::Op::LaterCloned, . false, . ); . } . }, 28 ( 0.00%) (sym::take, []) => needless_option_take::check(cx, expr, recv), 195 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/needless_option_take.rs:clippy_lints::methods::needless_option_take::check (7x) . (sym::then, [arg]) => { . if !self.msrv.meets(cx, msrvs::BOOL_THEN_SOME) { . return; . } . unnecessary_lazy_eval::check(cx, expr, recv, arg, "then_some", true); 1 ( 0.00%) }, . (sym::try_into, []) if cx.ty_based_def(expr).opt_parent(cx).is_diag_item(cx, sym::TryInto) => { . unnecessary_fallible_conversions::check_method(cx, expr); . }, 12 ( 0.00%) (sym::to_owned, []) => { 24 ( 0.00%) if !suspicious_to_owned::check(cx, expr, span) { 2,610 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/suspicious_to_owned.rs:clippy_lints::methods::suspicious_to_owned::check (6x) 22 ( 0.00%) implicit_clone::check(cx, name, expr, recv); . } . }, 2,876 ( 0.00%) (sym::to_os_string | sym::to_path_buf | sym::to_string | sym::to_vec, []) => { 4 ( 0.00%) implicit_clone::check(cx, name, expr, recv); . }, . (sym::type_id, []) => { . type_id_on_box::check(cx, recv, expr.span); . }, . (sym::unwrap, []) => { 36 ( 0.00%) match method_call(recv) { 129 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (3x) . Some((sym::get, recv, [get_arg], _, _)) => { . get_unwrap::check(cx, expr, recv, get_arg, false); . }, . Some((sym::get_mut, recv, [get_arg], _, _)) => { . get_unwrap::check(cx, expr, recv, get_arg, true); . }, . Some((sym::or, recv, [or_arg], or_span, _)) => { . or_then_unwrap::check(cx, expr, recv, or_arg, or_span); . }, . _ => {}, . } 21 ( 0.00%) unnecessary_literal_unwrap::check(cx, expr, recv, name, args); 341 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/unnecessary_literal_unwrap.rs:clippy_lints::methods::unnecessary_literal_unwrap::check (3x) . }, 2,719 ( 0.00%) (sym::unwrap_or, [u_arg]) => { 15 ( 0.00%) match method_call(recv) { 60 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (3x) . Some((arith @ (sym::checked_add | sym::checked_sub | sym::checked_mul), lhs, [rhs], _, _)) => { . manual_saturating_arithmetic::check_unwrap_or(cx, expr, lhs, rhs, u_arg, arith); . }, . Some((sym::map, m_recv, [m_arg], span, _)) => { . map_unwrap_or::check(cx, expr, m_recv, m_arg, recv, u_arg, span, self.msrv); . }, . Some((then_method @ (sym::then | sym::then_some), t_recv, [t_arg], _, _)) => { . obfuscated_if_else::check( -- line 5846 ---------------------------------------- -- line 5849 ---------------------------------------- . t_recv, . t_arg, . then_method, . obfuscated_if_else::Unwrap::Or(u_arg), . ); . }, . _ => {}, . } 18 ( 0.00%) unnecessary_literal_unwrap::check(cx, expr, recv, name, args); . }, . (sym::unwrap_or_default, []) => { . match method_call(recv) { . Some((sym::checked_sub, lhs, [rhs], _, _)) => { . manual_saturating_arithmetic::check_sub_unwrap_or_default(cx, expr, lhs, rhs); . }, . Some((sym::map, m_recv, [arg], span, _)) => { . manual_is_variant_and::check_map_unwrap_or_default(cx, expr, m_recv, arg, span, self.msrv); -- line 5865 ---------------------------------------- -- line 5871 ---------------------------------------- . t_recv, . t_arg, . then_method, . obfuscated_if_else::Unwrap::OrDefault, . ); . }, . _ => {}, . } 74 ( 0.00%) unnecessary_literal_unwrap::check(cx, expr, recv, name, args); . }, . (sym::unwrap_or_else, [u_arg]) => { . match method_call(recv) { . Some((sym::map, recv, [map_arg], _, _)) . if map_unwrap_or_else::check(cx, expr, recv, map_arg, u_arg, self.msrv) => {}, . Some((then_method @ (sym::then | sym::then_some), t_recv, [t_arg], _, _)) => { . obfuscated_if_else::check( . cx, -- line 5887 ---------------------------------------- -- line 5899 ---------------------------------------- . unnecessary_literal_unwrap::check(cx, expr, recv, name, args); . }, . (sym::wake, []) => { . waker_clone_wake::check(cx, expr, recv); . }, . (sym::write, []) => { . readonly_write_lock::check(cx, expr, recv); . }, 2,168 ( 0.00%) (sym::zip, [arg]) => { 1 ( 0.00%) if let ExprKind::MethodCall(name, iter_recv, [], _) = recv.kind . && name.ident.name == sym::iter . { . range_zip_with_len::check(cx, expr, iter_recv, arg); . } . }, . _ => {}, . } . } . // Handle method calls whose receiver and arguments may come from expansion . if let ExprKind::MethodCall(path, recv, args, call_span) = expr.kind { 997 ( 0.00%) let method_span = path.ident.span; . . // Those methods do their own method name checking as they deal with multiple methods. 14,955 ( 0.00%) or_fun_call::check(cx, expr, method_span, path.ident.name, recv, args, self.msrv); 13,991 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/or_fun_call.rs:clippy_lints::methods::or_fun_call::check (997x) 8,973 ( 0.00%) unnecessary_to_owned::check(cx, expr, path.ident.name, recv, args, self.msrv); 427,987 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/unnecessary_to_owned.rs:clippy_lints::methods::unnecessary_to_owned::check (997x) . 997 ( 0.00%) match (path.ident.name, args) { 9,800 ( 0.00%) (sym::clone, []) => { 30 ( 0.00%) clone_on_ref_ptr::check(cx, expr, recv); 774 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/clone_on_ref_ptr.rs:clippy_lints::methods::clone_on_ref_ptr::check (5x) 25 ( 0.00%) clone_on_copy::check(cx, expr, recv); 3,450 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/clone_on_copy.rs:clippy_lints::methods::clone_on_copy::check (5x) . }, 4 ( 0.00%) (sym::expect, [arg]) => { 22 ( 0.00%) unwrap_expect_used::check( 5,798 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/unwrap_expect_used.rs:clippy_lints::methods::unwrap_expect_used::check (2x) . cx, . expr, . recv, . false, 2 ( 0.00%) self.allow_expect_in_consts, 2 ( 0.00%) self.allow_expect_in_tests, 2 ( 0.00%) &self.unwrap_allowed_ids, . &self.unwrap_allowed_aliases, . unwrap_expect_used::Variant::Expect, . ); 16 ( 0.00%) expect_fun_call::check(cx, &self.format_args, expr, method_span, recv, arg); 154 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/expect_fun_call.rs:clippy_lints::methods::expect_fun_call::check (2x) . }, . (sym::expect_err, [_]) => { . unwrap_expect_used::check( . cx, . expr, . recv, . true, . self.allow_expect_in_consts, . self.allow_expect_in_tests, . &self.unwrap_allowed_ids, . &self.unwrap_allowed_aliases, . unwrap_expect_used::Variant::Expect, . ); . }, . (sym::insert_str | sym::push_str, _) => { 2 ( 0.00%) single_char_add_str::check(cx, expr, recv, args); 410 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/single_char_add_str.rs:clippy_lints::methods::single_char_add_str::check (2x) . }, 26 ( 0.00%) (sym::into_iter, []) => { 13 ( 0.00%) into_iter_on_ref::check(cx, expr, method_span, recv); 1,127 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/into_iter_on_ref.rs:clippy_lints::methods::into_iter_on_ref::check (13x) . }, 3 ( 0.00%) (sym::map_or, [def, map]) => { 1 ( 0.00%) map_or_identity::check(cx, expr, recv, call_span, def, map); 395 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/map_or_identity.rs:clippy_lints::methods::map_or_identity::check (1x) 3 ( 0.00%) }, . 19 ( 0.00%) (sym::to_string, []) => { 2 ( 0.00%) inefficient_to_string::check(cx, expr, recv, self.msrv); 624 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/inefficient_to_string.rs:clippy_lints::methods::inefficient_to_string::check (2x) . }, 2 ( 0.00%) (sym::truncate, [arg]) => { 1 ( 0.00%) manual_clear::check(cx, expr, recv, arg, method_span); 172 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/manual_clear.rs:clippy_lints::methods::manual_clear::check (1x) 3 ( 0.00%) }, 6 ( 0.00%) (sym::unwrap, []) => { 24 ( 0.00%) unwrap_expect_used::check( . cx, . expr, . recv, . false, 3 ( 0.00%) self.allow_unwrap_in_consts, 3 ( 0.00%) self.allow_unwrap_in_tests, 3 ( 0.00%) &self.unwrap_allowed_ids, . &self.unwrap_allowed_aliases, . unwrap_expect_used::Variant::Unwrap, . ); . }, . (sym::unwrap_err, []) => { . unwrap_expect_used::check( . cx, . expr, -- line 5989 ---------------------------------------- -- line 5994 ---------------------------------------- . &self.unwrap_allowed_ids, . &self.unwrap_allowed_aliases, . unwrap_expect_used::Variant::Unwrap, . ); . }, . _ => {}, . } . } 7,976 ( 0.00%) } . } . 195 ( 0.00%) fn check_is_some_is_none<'tcx>( . cx: &LateContext<'tcx>, . expr: &'tcx Expr<'tcx>, . recv: &'tcx Expr<'tcx>, . call_span: Span, . is_some: bool, . msrv: Msrv, . ) { . match method_call(recv) { 4 ( 0.00%) Some((name @ (sym::find | sym::position | sym::rposition), f_recv, [arg], span, _)) => { . search_is_some::check(cx, expr, name, is_some, f_recv, arg, recv, span); . }, . Some((sym::get, f_recv, [arg], _, _)) => { . unnecessary_get_then_check::check(cx, call_span, recv, f_recv, arg, is_some); . }, 12 ( 0.00%) Some((sym::first, f_recv, [], _, _)) => { . unnecessary_first_then_check::check(cx, call_span, recv, f_recv, is_some); . }, . Some((sym::filter, f_recv, [arg], _, _)) => { . manual_is_variant_and::check_is_some_is_none(cx, call_span, f_recv, arg, is_some, msrv); . }, . _ => {}, . } 120 ( 0.00%) } . . /// Used for `lint_binary_expr_with_method_call`. . #[derive(Copy, Clone)] . struct BinaryExprInfo<'a> { . expr: &'a Expr<'a>, . chain: &'a Expr<'a>, . other: &'a Expr<'a>, . eq: bool, . } . . /// Checks for the `CHARS_NEXT_CMP` and `CHARS_LAST_CMP` lints. . fn lint_binary_expr_with_method_call(cx: &LateContext<'_>, info: &mut BinaryExprInfo<'_>) { . macro_rules! lint_with_both_lhs_and_rhs { . ($func:expr, $cx:expr, $info:ident) => { 168 ( 0.00%) if !$func($cx, $info) { . ::std::mem::swap(&mut $info.chain, &mut $info.other); 189 ( 0.00%) if $func($cx, $info) { 7,581 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/chars_last_cmp_with_unwrap.rs:clippy_lints::methods::chars_last_cmp_with_unwrap::check (21x) . return; . } . } . }; . } . . lint_with_both_lhs_and_rhs!(chars_next_cmp::check, cx, info); . lint_with_both_lhs_and_rhs!(chars_last_cmp::check, cx, info); -- line 6053 ---------------------------------------- 31,375 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/raw_strings.rs -------------------------------------------------------------------------------- Ir -- line 60 ---------------------------------------- . . pub struct RawStrings { . pub allow_one_hash_in_raw_strings: bool, . } . . impl RawStrings { . pub fn new(conf: &'static Conf) -> Self { . Self { 1 ( 0.00%) allow_one_hash_in_raw_strings: conf.allow_one_hash_in_raw_strings, . } . } . } . . impl EarlyLintPass for RawStrings { 359,064 ( 0.00%) fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { 195,596 ( 0.00%) if let ExprKind::FormatArgs(format_args) = &expr.kind 148 ( 0.00%) && !format_args.span.in_external_macro(cx.sess().source_map()) 37 ( 0.00%) && format_args.span.check_text(cx, |src| src.starts_with('r')) . && let Some(str) = snippet_opt(cx.sess(), format_args.span) . && let count_hash = str.bytes().skip(1).take_while(|b| *b == b'#').count() . && let Some(str) = str.get(count_hash + 2..str.len() - count_hash - 1) . { . self.check_raw_string( . cx, . str, . format_args.span, . "r", . u8::try_from(count_hash).unwrap(), . "string", . ); . } . 7,768 ( 0.00%) if let ExprKind::Lit(lit) = expr.kind 9,710 ( 0.00%) && let (prefix, max) = match lit.kind { . LitKind::StrRaw(max) => ("r", max), . LitKind::ByteStrRaw(max) => ("br", max), . LitKind::CStrRaw(max) => ("cr", max), . _ => return, . } . && !expr.span.in_external_macro(cx.sess().source_map()) . && expr.span.check_text(cx, |src| src.starts_with(prefix)) . { . self.check_raw_string(cx, lit.symbol.as_str(), expr.span, prefix, max, lit.kind.descr()); . } 319,168 ( 0.00%) } . } . . impl RawStrings { . fn check_raw_string(&self, cx: &EarlyContext<'_>, str: &str, lit_span: Span, prefix: &str, max: u8, descr: &str) { . if !str.contains(['\\', '"']) { . span_lint_and_then( . cx, . NEEDLESS_RAW_STRINGS, -- line 112 ---------------------------------------- -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/size_of_in_element_count.rs -------------------------------------------------------------------------------- Ir -- line 71 ---------------------------------------- . sym::add, . sym::wrapping_add, . sym::sub, . sym::wrapping_sub, . sym::offset, . sym::wrapping_offset, . ]; . 238,487 ( 0.00%) if let ExprKind::Call(func, [.., count]) = expr.kind . // Find calls to ptr::{copy, copy_nonoverlapping} . // and ptr::swap_nonoverlapping, 17,523 ( 0.00%) && let ExprKind::Path(ref func_qpath) = func.kind 29,205 ( 0.00%) && let Some(def_id) = cx.qpath_res(func_qpath, func.hir_id).opt_def_id() 156,371 ( 0.00%) => ???:::qpath_res (5,841x) 75,933 ( 0.00%) && matches!(cx.tcx.get_diagnostic_name(def_id), Some( 359,207 ( 0.00%) => ???:::get_diagnostic_name (5,841x) . sym::ptr_copy . | sym::ptr_copy_nonoverlapping . | sym::ptr_slice_from_raw_parts . | sym::ptr_slice_from_raw_parts_mut . | sym::ptr_swap_nonoverlapping . | sym::slice_from_raw_parts . | sym::slice_from_raw_parts_mut . )) . . // Get the pointee type . && let Some(pointee_ty) = cx.typeck_results().node_args(func.hir_id).types().next() . { . return Some((pointee_ty, count)); . } 21,399 ( 0.00%) if let ExprKind::MethodCall(method_path, ptr_self, [.., count], _) = expr.kind . // Find calls to copy_{from,to}{,_nonoverlapping} 2,493 ( 0.00%) && let method_ident = method_path.ident.name . && METHODS.contains(&method_ident) . . // Get the pointee type . && let ty::RawPtr(pointee_ty, _) = . cx.typeck_results().expr_ty(ptr_self).kind() . { . return Some((*pointee_ty, count)); . } . None . } . . impl<'tcx> LateLintPass<'tcx> for SizeOfInElementCount { 266,400 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { . const HELP_MSG: &str = "use a count of elements instead of a count of bytes\ . , it already gets multiplied by the size of the type"; . . const LINT_MSG: &str = "found a count of bytes \ . instead of a count of elements of `T`"; . . if let Some((pointee_ty, count_expr)) = get_pointee_ty_and_count_expr(cx, expr) . // Using a number of bytes for a byte type isn't suspicious -- line 122 ---------------------------------------- -- line 126 ---------------------------------------- . . // Find a size_of call in the count parameter expression and . // check that it's the same type . && let Some(ty_used_for_size_of) = get_size_of_ty(cx, count_expr, false) . && pointee_ty == ty_used_for_size_of . { . span_lint_and_help(cx, SIZE_OF_IN_ELEMENT_COUNT, count_expr.span, LINT_MSG, None, HELP_MSG); . } 266,400 ( 0.00%) } . } 11,682 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/iter.rs -------------------------------------------------------------------------------- Ir -- line 34 ---------------------------------------- . #[stable(feature = "rust1", since = "1.0.0")] . impl<'a> Iterator for Chars<'a> { . type Item = char; . . #[inline] . fn next(&mut self) -> Option { . // SAFETY: `str` invariant says `self.iter` is a valid UTF-8 string and . // the resulting `ch` is a valid Unicode Scalar Value. 14 ( 0.00%) unsafe { next_code_point(&mut self.iter).map(|ch| char::from_u32_unchecked(ch)) } 140 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:core::str::validations::next_code_point::> (14x) . } . . #[inline] . fn count(self) -> usize { . super::count::count_chars(self.as_str()) . } . . #[inline] -- line 50 ---------------------------------------- -- line 79 ---------------------------------------- . if !super::validations::utf8_is_cont_byte(b) { . break; . } . // SAFETY: We just peeked at the byte, therefore it exists . unsafe { self.iter.advance_by(1).unwrap_unchecked() }; . } . } . 664 ( 0.00%) while (remainder > 0) && (self.iter.len() > 0) { . remainder -= 1; 332 ( 0.00%) let b = self.iter.as_slice()[0]; . let slurp = super::validations::utf8_char_width(b); . // SAFETY: utf8 validity requires that the string must contain . // the continuation bytes (if any) . unsafe { self.iter.advance_by(slurp).unwrap_unchecked() }; . } . . NonZero::new(remainder).map_or(Ok(()), Err) . } -- line 97 ---------------------------------------- -- line 181 ---------------------------------------- . #[inline] . fn next(&mut self) -> Option<(usize, char)> { . let pre_len = self.iter.iter.len(); . match self.iter.next() { . None => None, . Some(ch) => { . let index = self.front_offset; . let len = self.iter.iter.len(); 151,632 ( 0.00%) self.front_offset += pre_len - len; . Some((index, ch)) . } . } . } . . #[inline] . fn count(self) -> usize { . self.iter.count() -- line 197 ---------------------------------------- -- line 504 ---------------------------------------- . } . . $(#[$common_stability_attribute])* . impl<'a, P: Pattern> Iterator for $forward_iterator<'a, P> { . type Item = $iterty; . . #[inline] . fn next(&mut self) -> Option<$iterty> { 118 ( 0.00%) self.0.next() 352 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/iter.rs:>::next (4x) . } . } . . $(#[$common_stability_attribute])* . impl<'a, P> Clone for $forward_iterator<'a, P> . where . P: Pattern: Clone>, . { -- line 520 ---------------------------------------- -- line 543 ---------------------------------------- . impl<'a, P> Iterator for $reverse_iterator<'a, P> . where . P: Pattern: ReverseSearcher<'a>>, . { . type Item = $iterty; . . #[inline] . fn next(&mut self) -> Option<$iterty> { 2,203 ( 0.00%) self.0.next_back() 11,001 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/iter.rs:>::next_back (79x) . } . } . . $(#[$common_stability_attribute])* . impl<'a, P> Clone for $reverse_iterator<'a, P> . where . P: Pattern: Clone>, . { -- line 559 ---------------------------------------- -- line 636 ---------------------------------------- . .finish() . } . } . . impl<'a, P: Pattern> SplitInternal<'a, P> { . #[inline] . fn get_end(&mut self) -> Option<&'a str> { . if !self.finished { 277 ( 0.00%) self.finished = true; . 703 ( 0.00%) if self.allow_trailing_empty || self.end - self.start > 0 { . // SAFETY: `self.start` and `self.end` always lie on unicode boundaries. 215 ( 0.00%) let string = unsafe { self.matcher.haystack().get_unchecked(self.start..self.end) }; . return Some(string); . } . } . . None . } . . #[inline] 798 ( 0.00%) fn next(&mut self) -> Option<&'a str> { 3,080 ( 0.00%) if self.finished { . return None; . } . 606 ( 0.00%) let haystack = self.matcher.haystack(); . match self.matcher.next_match() { . // SAFETY: `Searcher` guarantees that `a` and `b` lie on unicode boundaries. . Some((a, b)) => unsafe { 60 ( 0.00%) let elt = haystack.get_unchecked(self.start..a); 298 ( 0.00%) self.start = b; . Some(elt) 51 ( 0.00%) }, 315 ( 0.00%) None => self.get_end(), . } 1,026 ( 0.00%) } . . #[inline] . fn next_inclusive(&mut self) -> Option<&'a str> { 25,060 ( 0.00%) if self.finished { . return None; . } . 120 ( 0.00%) let haystack = self.matcher.haystack(); . match self.matcher.next_match() { . // SAFETY: `Searcher` guarantees that `b` lies on unicode boundary, . // and self.start is either the start of the original string, . // or `b` was assigned to it, so it also lies on unicode boundary. . Some((_, b)) => unsafe { 36 ( 0.00%) let elt = haystack.get_unchecked(self.start..b); 36 ( 0.00%) self.start = b; . Some(elt) 36 ( 0.00%) }, 5,460 ( 0.00%) None => self.get_end(), . } . } . . #[inline] 15,393 ( 0.00%) fn next_back(&mut self) -> Option<&'a str> . where . P::Searcher<'a>: ReverseSearcher<'a>, . { 4,398 ( 0.00%) if self.finished { . return None; . } . 2,282 ( 0.00%) if !self.allow_trailing_empty { . self.allow_trailing_empty = true; . match self.next_back() { . Some(elt) if !elt.is_empty() => return Some(elt), . _ => { . if self.finished { . return None; . } . } . } . } . 3,423 ( 0.00%) let haystack = self.matcher.haystack(); . match self.matcher.next_match_back() { . // SAFETY: `Searcher` guarantees that `a` and `b` lie on unicode boundaries. . Some((a, b)) => unsafe { 83 ( 0.00%) let elt = haystack.get_unchecked(b..self.end); 83 ( 0.00%) self.end = a; . Some(elt) . }, . // SAFETY: `self.start` and `self.end` always lie on unicode boundaries. . None => unsafe { 1,058 ( 0.00%) self.finished = true; 2,116 ( 0.00%) Some(haystack.get_unchecked(self.start..self.end)) . }, . } 17,675 ( 0.00%) } . . #[inline] . fn next_back_inclusive(&mut self) -> Option<&'a str> . where . P::Searcher<'a>: ReverseSearcher<'a>, . { . if self.finished { . return None; -- line 737 ---------------------------------------- -- line 1161 ---------------------------------------- . #[derive(Clone, Debug)] . pub struct Lines<'a>(pub(super) Map, LinesMap>); . . #[stable(feature = "rust1", since = "1.0.0")] . impl<'a> Iterator for Lines<'a> { . type Item = &'a str; . . #[inline] 588 ( 0.00%) fn next(&mut self) -> Option<&'a str> { . self.0.next() 756 ( 0.00%) } . . #[inline] . fn size_hint(&self) -> (usize, Option) { . self.0.size_hint() . } . . #[inline] . fn last(mut self) -> Option<&'a str> { -- line 1179 ---------------------------------------- 35,117 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/suspicious_trait_impl.rs -------------------------------------------------------------------------------- Ir -- line 55 ---------------------------------------- . . declare_lint_pass!(SuspiciousImpl => [ . SUSPICIOUS_ARITHMETIC_IMPL, . SUSPICIOUS_OP_ASSIGN_IMPL, . ]); . . impl<'tcx> LateLintPass<'tcx> for SuspiciousImpl { . fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx hir::Expr<'_>) { 177,586 ( 0.00%) match expr.kind { 416 ( 0.00%) hir::ExprKind::Binary(op, _, _) => { 1,664 ( 0.00%) check_expr_inner(cx, expr, op.node, op.span); . }, 14 ( 0.00%) hir::ExprKind::AssignOp(op, _, _) => { 21 ( 0.00%) check_expr_inner(cx, expr, op.node.into(), op.span); . }, . _ => {}, . } . } . } . 2,961 ( 0.00%) fn check_expr_inner<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx hir::Expr<'_>, binop: hir::BinOpKind, span: Span) { . if let Some((binop_trait_lang, op_assign_trait_lang)) = binop_traits(binop) 189 ( 0.00%) && let Some(binop_trait_id) = cx.tcx.lang_items().get(binop_trait_lang) 810 ( 0.00%) => ???:::lang_items (27x) 108 ( 0.00%) && let Some(op_assign_trait_id) = cx.tcx.lang_items().get(op_assign_trait_lang) 810 ( 0.00%) => ???:::lang_items (27x) . . // Check for more than one binary operation in the implemented function . // Linting when multiple operations are involved can result in false positives 108 ( 0.00%) && let parent_fn = cx.tcx.hir_get_parent_item(expr.hir_id).def_id 513 ( 0.00%) => ???:::hir_get_parent_item (27x) 69 ( 0.00%) && let hir::Node::ImplItem(impl_item) = cx.tcx.hir_node_by_def_id(parent_fn) 60 ( 0.00%) && let hir::ImplItemKind::Fn(_, body_id) = impl_item.kind 30 ( 0.00%) && let body = cx.tcx.hir_body(body_id) 836 ( 0.00%) => ???:::hir_body (15x) 60 ( 0.00%) && let parent_fn = cx.tcx.hir_get_parent_item(expr.hir_id) 285 ( 0.00%) => ???:::hir_get_parent_item (15x) 60 ( 0.00%) && let Some(trait_ref) = trait_ref_of_method(cx, parent_fn) 2,835 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::trait_ref_of_method (15x) 24 ( 0.00%) && let trait_id = trait_ref.path.res.def_id() . && ![binop_trait_id, op_assign_trait_id].contains(&trait_id) . && let Some(&(_, lint)) = [ . (&BINOP_TRAITS, SUSPICIOUS_ARITHMETIC_IMPL), . (&OP_ASSIGN_TRAITS, SUSPICIOUS_OP_ASSIGN_IMPL), . ] . .iter() 528 ( 0.00%) .find(|&(ts, _)| ts.iter().any(|&t| Some(trait_id) == cx.tcx.lang_items().get(t))) 7,200 ( 0.00%) => ???:::lang_items (240x) . && count_binops(body.value) == 1 . { . span_lint( . cx, . lint, . span, . format!( . "suspicious use of `{}` in `{}` impl", . binop.as_str(), . cx.tcx.item_name(trait_id) . ), . ); . } 3,384 ( 0.00%) } . . fn count_binops(expr: &hir::Expr<'_>) -> u32 { . let mut count = 0u32; . let _: Option = for_each_expr_without_closures(expr, |e| { . if matches!( . e.kind, . hir::ExprKind::Binary(..) . | hir::ExprKind::Unary(hir::UnOp::Not | hir::UnOp::Neg, _) -- line 117 ---------------------------------------- 1,023 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/memchr.rs -------------------------------------------------------------------------------- Ir -- line 19 ---------------------------------------- . x.wrapping_sub(LO_USIZE) & !x & HI_USIZE != 0 . } . . /// Returns the first index matching the byte `x` in `text`. . #[inline] . #[must_use] . pub const fn memchr(x: u8, text: &[u8]) -> Option { . // Fast path for small slices. 32,970 ( 0.00%) if text.len() < 2 * USIZE_BYTES { . return memchr_naive(x, text); . } . 52,314 ( 0.00%) memchr_aligned(x, text) 1,354,657 ( 0.02%) => ???:core::slice::memchr::memchr_aligned (11,990x) . } . . #[inline] . const fn memchr_naive(x: u8, text: &[u8]) -> Option { . let mut i = 0; . . // FIXME(const-hack): Replace with `text.iter().pos(|c| *c == x)`. 38,568 ( 0.00%) while i < text.len() { 30,730 ( 0.00%) if text[i] == x { . return Some(i); . } . 14,545 ( 0.00%) i += 1; . } . . None . } . . #[rustc_allow_const_fn_unstable(const_eval_select)] // fallback impl has same behavior . const fn memchr_aligned(x: u8, text: &[u8]) -> Option { . // The runtime version behaves the same as the compiletime version, it's -- line 52 ---------------------------------------- 13,049 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/sync/atomic.rs -------------------------------------------------------------------------------- Ir -- line 754 ---------------------------------------- . /// ``` . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_atomic", issue = "160078")] . #[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces . pub const fn load(&self, order: Ordering) -> bool { . // SAFETY: any data races are prevented by atomic intrinsics and the raw . // pointer passed in is valid because we got it from a reference. 120,513 ( 0.00%) unsafe { atomic_load(self.v.get().cast::(), order) != 0 } . } . . /// Stores a value into the bool. . /// . /// `store` takes an [`Ordering`] argument which describes the memory ordering . /// of this operation. Possible values are [`SeqCst`], [`Release`] and [`Relaxed`]. . /// . /// # Panics -- line 770 ---------------------------------------- -- line 3970 ---------------------------------------- . . #[inline] . #[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces . #[rustc_const_unstable(feature = "const_atomic", issue = "160078")] . const unsafe fn atomic_store(dst: *mut T, val: T, order: Ordering) { . // SAFETY: the caller must uphold the safety contract for `atomic_store`. . unsafe { . match order { 2 ( 0.00%) Relaxed => intrinsics::atomic_store::(dst, val), . Release => intrinsics::atomic_store::(dst, val), . SeqCst => intrinsics::atomic_store::(dst, val), . Acquire => panic!("there is no such thing as an acquire store"), . AcqRel => panic!("there is no such thing as an acquire-release store"), . } . } . } . . #[inline] . #[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces . #[rustc_const_unstable(feature = "const_atomic", issue = "160078")] . const unsafe fn atomic_load(dst: *const T, order: Ordering) -> T { . // SAFETY: the caller must uphold the safety contract for `atomic_load`. . unsafe { . match order { 104,695 ( 0.00%) Relaxed => intrinsics::atomic_load::(dst), 198,117 ( 0.00%) Acquire => intrinsics::atomic_load::(dst), . SeqCst => intrinsics::atomic_load::(dst), . Release => panic!("there is no such thing as a release load"), . AcqRel => panic!("there is no such thing as an acquire-release load"), . } . } . } . . #[inline] -- line 4003 ---------------------------------------- -- line 4005 ---------------------------------------- . #[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces . #[rustc_const_unstable(feature = "const_atomic", issue = "160078")] . const unsafe fn atomic_swap(dst: *mut T, val: T, order: Ordering) -> T { . // SAFETY: the caller must uphold the safety contract for `atomic_swap`. . unsafe { . match order { . Relaxed => intrinsics::atomic_xchg::(dst, val), . Acquire => intrinsics::atomic_xchg::(dst, val), 116 ( 0.00%) Release => intrinsics::atomic_xchg::(dst, val), . AcqRel => intrinsics::atomic_xchg::(dst, val), . SeqCst => intrinsics::atomic_xchg::(dst, val), . } . } . } . . /// Returns the previous value (like __sync_fetch_and_add). . #[inline] . #[cfg(target_has_atomic)] . #[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces . #[rustc_const_unstable(feature = "const_atomic", issue = "160078")] . const unsafe fn atomic_add(dst: *mut T, val: U, order: Ordering) -> T { . // SAFETY: the caller must uphold the safety contract for `atomic_add`. . unsafe { . match order { 6,586 ( 0.00%) Relaxed => intrinsics::atomic_xadd::(dst, val), . Acquire => intrinsics::atomic_xadd::(dst, val), . Release => intrinsics::atomic_xadd::(dst, val), . AcqRel => intrinsics::atomic_xadd::(dst, val), . SeqCst => intrinsics::atomic_xadd::(dst, val), . } . } . } . -- line 4037 ---------------------------------------- -- line 4041 ---------------------------------------- . #[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces . #[rustc_const_unstable(feature = "const_atomic", issue = "160078")] . const unsafe fn atomic_sub(dst: *mut T, val: U, order: Ordering) -> T { . // SAFETY: the caller must uphold the safety contract for `atomic_sub`. . unsafe { . match order { . Relaxed => intrinsics::atomic_xsub::(dst, val), . Acquire => intrinsics::atomic_xsub::(dst, val), 36,279 ( 0.00%) Release => intrinsics::atomic_xsub::(dst, val), . AcqRel => intrinsics::atomic_xsub::(dst, val), . SeqCst => intrinsics::atomic_xsub::(dst, val), . } . } . } . . /// Publicly exposed for stdarch; nobody else should use this. . #[inline] -- line 4057 ---------------------------------------- -- line 4075 ---------------------------------------- . } . (Relaxed, Acquire) => { . intrinsics::atomic_cxchg::(dst, old, new) . } . (Relaxed, SeqCst) => { . intrinsics::atomic_cxchg::(dst, old, new) . } . (Acquire, Relaxed) => { 174 ( 0.00%) intrinsics::atomic_cxchg::(dst, old, new) . } . (Acquire, Acquire) => { . intrinsics::atomic_cxchg::(dst, old, new) . } . (Acquire, SeqCst) => { . intrinsics::atomic_cxchg::(dst, old, new) . } . (Release, Relaxed) => { 748,239 ( 0.01%) intrinsics::atomic_cxchg::(dst, old, new) . } . (Release, Acquire) => { . intrinsics::atomic_cxchg::(dst, old, new) . } . (Release, SeqCst) => { . intrinsics::atomic_cxchg::(dst, old, new) . } . (AcqRel, Relaxed) => { -- line 4100 ---------------------------------------- -- line 4141 ---------------------------------------- . } . (Relaxed, Acquire) => { . intrinsics::atomic_cxchgweak::(dst, old, new) . } . (Relaxed, SeqCst) => { . intrinsics::atomic_cxchgweak::(dst, old, new) . } . (Acquire, Relaxed) => { 745,116 ( 0.01%) intrinsics::atomic_cxchgweak::(dst, old, new) . } . (Acquire, Acquire) => { . intrinsics::atomic_cxchgweak::(dst, old, new) . } . (Acquire, SeqCst) => { . intrinsics::atomic_cxchgweak::(dst, old, new) . } . (Release, Relaxed) => { -- line 4157 ---------------------------------------- 2,726 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/manual_pop_if.rs -------------------------------------------------------------------------------- Ir -- line 63 ---------------------------------------- . msrv: Msrv, . binary_heap_pop_if_feature_enabled: bool, . } . . impl ManualPopIf { . pub fn new(tcx: TyCtxt<'_>, conf: &'static Conf) -> Self { . Self { . msrv: conf.msrv.into(), 6 ( 0.00%) binary_heap_pop_if_feature_enabled: tcx.features().enabled(sym::binary_heap_pop_if), 30 ( 0.00%) => ???:::features (1x) 4 ( 0.00%) => ???:::enabled (1x) . } . } . . fn msrv_compatible(&self, cx: &LateContext<'_>, kind: ManualPopIfKind) -> bool { 1,384 ( 0.00%) match kind { . ManualPopIfKind::Vec => self.msrv.meets(cx, msrvs::VEC_POP_IF), . ManualPopIfKind::VecDequeBack => self.msrv.meets(cx, msrvs::VEC_DEQUE_POP_BACK_IF), . ManualPopIfKind::VecDequeFront => self.msrv.meets(cx, msrvs::VEC_DEQUE_POP_FRONT_IF), . ManualPopIfKind::BinaryHeap => self.binary_heap_pop_if_feature_enabled, . } . } . } . -- line 84 ---------------------------------------- -- line 199 ---------------------------------------- . cond: &'tcx Expr<'_>, . then_block: &'tcx Expr<'_>, . if_expr_span: Span, . kind: ManualPopIfKind, . ) -> Option> { . let peek_method = kind.peek_method(); . let pop_method = kind.pop_method(); . 4,208 ( 0.00%) if let ExprKind::MethodCall(path, receiver, [closure_arg], _) = cond.kind . && path.ident.name == sym::is_some_and . && let ExprKind::MethodCall(check_path, collection_expr, [], _) = receiver.kind . && check_path.ident.name == peek_method . && kind.is_diag_item(cx, collection_expr) . && let ExprKind::Closure(closure) = closure_arg.kind . && let body = cx.tcx.hir_body(closure.body) . && let Some((pop_collection, pop_span, suggestable)) = check_pop_unwrap(cx, then_block, pop_method) . && eq_expr_value(cx, if_expr_span.ctxt(), collection_expr, pop_collection) -- line 215 ---------------------------------------- -- line 243 ---------------------------------------- . cond: &'tcx Expr<'_>, . then_block: &'tcx Expr<'_>, . if_expr_span: Span, . kind: ManualPopIfKind, . ) -> Option> { . let peek_method = kind.peek_method(); . let pop_method = kind.pop_method(); . 3,152 ( 0.00%) if let ExprKind::Let(let_expr) = cond.kind 4,224 ( 0.00%) && let PatKind::TupleStruct(qpath, [binding_pat], _) = let_expr.pat.kind . { 2,304 ( 0.00%) let res = cx.qpath_res(&qpath, let_expr.pat.hir_id); 8,832 ( 0.00%) => ???:::qpath_res (384x) . . if let Some(def_id) = res.opt_def_id() 1,536 ( 0.00%) && is_lang_item_or_ctor(cx, def_id, LangItem::OptionSome) 107,520 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_lang_item_or_ctor (384x) 768 ( 0.00%) && let PatKind::Binding(_, binding_id, binding_name, _) = binding_pat.kind 1,124 ( 0.00%) && let ExprKind::MethodCall(path, collection_expr, [], _) = let_expr.init.kind . && path.ident.name == peek_method . && kind.is_diag_item(cx, collection_expr) . && let ExprKind::Block(block, _) = then_block.kind . { . // The inner if can be either a statement or a block expression . let inner_if = match (block.stmts, block.expr) { . ([stmt], _) => match stmt.kind { . StmtKind::Expr(expr) | StmtKind::Semi(expr) => expr, -- line 267 ---------------------------------------- -- line 307 ---------------------------------------- . cond: &'tcx Expr<'_>, . then_block: &'tcx Expr<'_>, . if_expr_span: Span, . kind: ManualPopIfKind, . ) -> Option> { . let peek_method = kind.peek_method(); . let pop_method = kind.pop_method(); . 2,896 ( 0.00%) if let ExprKind::Binary(op, left, right) = cond.kind 244 ( 0.00%) && op.node == rustc_ast::BinOpKind::And 256 ( 0.00%) && let ExprKind::Let(let_expr) = left.kind . && let PatKind::TupleStruct(qpath, [binding_pat], _) = let_expr.pat.kind . { . let res = cx.qpath_res(&qpath, let_expr.pat.hir_id); . . if let Some(def_id) = res.opt_def_id() . && is_lang_item_or_ctor(cx, def_id, LangItem::OptionSome) . && let PatKind::Binding(_, binding_id, binding_name, _) = binding_pat.kind . && let ExprKind::MethodCall(path, collection_expr, [], _) = let_expr.init.kind -- line 325 ---------------------------------------- -- line 355 ---------------------------------------- . cond: &'tcx Expr<'_>, . then_block: &'tcx Expr<'_>, . if_expr_span: Span, . kind: ManualPopIfKind, . ) -> Option> { . let peek_method = kind.peek_method(); . let pop_method = kind.pop_method(); . 4,208 ( 0.00%) if let ExprKind::MethodCall(unwrap_path, receiver, [default_arg], _) = cond.kind . && unwrap_path.ident.name == sym::unwrap_or . && matches!(default_arg.kind, ExprKind::Lit(lit) if matches!(lit.node, LitKind::Bool(false))) . && let ExprKind::MethodCall(map_path, map_receiver, [closure_arg], _) = receiver.kind . && map_path.ident.name == sym::map . && let ExprKind::MethodCall(check_path, collection_expr, [], _) = map_receiver.kind . && check_path.ident.name == peek_method . && kind.is_diag_item(cx, collection_expr) . && let ExprKind::Closure(closure) = closure_arg.kind -- line 371 ---------------------------------------- -- line 455 ---------------------------------------- . ControlFlow::Break((collection_expr, span, false)) . } else { . ControlFlow::Continue(()) . } . }) . } . . impl<'tcx> LateLintPass<'tcx> for ManualPopIf { 355,200 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 91,070 ( 0.00%) let ExprKind::If(cond, then_block, None) = expr.kind else { . return; . }; . 1,730 ( 0.00%) let in_else_clause = is_else_clause(cx.tcx, expr); 53,612 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_else_clause (346x) . 8,996 ( 0.00%) for kind in [ . ManualPopIfKind::Vec, . ManualPopIfKind::VecDequeBack, . ManualPopIfKind::VecDequeFront, . ManualPopIfKind::BinaryHeap, . ] { . if let Some(mut pattern) = check_is_some_and_pattern(cx, cond, then_block, expr.span, kind) 1,536 ( 0.00%) .or_else(|| check_if_let_pattern(cx, cond, then_block, expr.span, kind)) . .or_else(|| check_let_chain_pattern(cx, cond, then_block, expr.span, kind)) . .or_else(|| check_map_unwrap_or_pattern(cx, cond, then_block, expr.span, kind)) . && self.msrv_compatible(cx, kind) . { . if in_else_clause { . pattern.suggestable = false; . } . . pattern.emit_lint(cx); . return; . } . } 355,200 ( 0.00%) } . } 3,726 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/format.rs -------------------------------------------------------------------------------- Ir -- line 47 ---------------------------------------- . . impl UselessFormat { . pub fn new(format_args: FormatArgsStorage) -> Self { . Self { format_args } . } . } . . impl<'tcx> LateLintPass<'tcx> for UselessFormat { 444,000 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { . // Loosened from `root_macro_call_first_node` so the lint also fires when `format!` is . // the tail of a block emitted by another macro. The `!= macro_call.expn` check filters . // HIR nodes inside `format!`'s own expansion (its outer block's tail, its nested . // `format_args!`), which would otherwise also pass `first_node_in_macro` and cause the . // lint to fire multiple times per call. 222,000 ( 0.00%) if let Some(macro_call) = matching_root_macro_call(cx, expr.span, sym::format_macro) 19,387,606 ( 0.26%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::matching_root_macro_call (44,400x) . && first_node_in_macro(cx, expr).is_some_and(|p_expn| p_expn != macro_call.expn) . && let Some(format_args) = self.format_args.get(cx, expr, macro_call.expn) . { . let mut applicability = Applicability::MachineApplicable; . let call_site = macro_call.span; . . match (format_args.arguments.all_args(), &format_args.template[..]) { . ([], []) => span_useless_format_empty(cx, call_site, "String::new()".to_owned(), applicability), -- line 69 ---------------------------------------- -- line 101 ---------------------------------------- . format!("{}.to_string()", sugg.maybe_paren()) . }; . span_useless_format(cx, call_site, sugg, applicability); . } . }, . _ => {}, . } . } 355,200 ( 0.00%) } . } . . fn span_useless_format_empty(cx: &LateContext<'_>, span: Span, sugg: String, applicability: Applicability) { . span_lint_and_sugg( . cx, . USELESS_FORMAT, . span, . "useless use of `format!`", -- line 117 ---------------------------------------- 44,400 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/repeat_vec_with_capacity.rs -------------------------------------------------------------------------------- Ir -- line 72 ---------------------------------------- . diag.note(note); . diag.span_suggestion_verbose(span, sugg_msg, sugg, Applicability::MaybeIncorrect); . }, . ); . } . . /// Checks `vec![Vec::with_capacity(x); n]` . fn check_vec_macro(cx: &LateContext<'_>, expr: &Expr<'_>) { 133,200 ( 0.00%) if let Some(VecArgs::Repeat(repeat_expr, len_expr)) = VecArgs::hir(cx, expr) 2,156,386 ( 0.03%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir (44,400x) . && matching_root_macro_call(cx, expr.span, sym::vec_macro).is_some() . && fn_def_id(cx, repeat_expr).is_some_and(|did| cx.tcx.is_diagnostic_item(sym::vec_with_capacity, did)) . && !len_expr.span.from_expansion() . && let Some(Constant::Int(2..)) = ConstEvalCtxt::new(cx).eval(expr_or_init(cx, len_expr)) . { . emit_lint( . cx, . expr.span.source_callsite(), -- line 88 ---------------------------------------- -- line 95 ---------------------------------------- . snippet(cx, repeat_expr.span, "..") . ), . ); . } . } . . /// Checks `iter::repeat(Vec::with_capacity(x))` . fn check_repeat_fn(cx: &LateContext<'_>, expr: &Expr<'_>, msrv: Msrv) { 88,800 ( 0.00%) if !expr.span.from_expansion() 42,299 ( 0.00%) && fn_def_id(cx, expr).is_some_and(|did| cx.tcx.is_diagnostic_item(sym::iter_repeat, did)) 505,584 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::fn_def_id (8,889x) 126,058 ( 0.00%) => ???:::is_diagnostic_item (1,954x) . && let ExprKind::Call(_, [repeat_expr]) = expr.kind . && fn_def_id(cx, repeat_expr).is_some_and(|did| cx.tcx.is_diagnostic_item(sym::vec_with_capacity, did)) . && !repeat_expr.span.from_expansion() . && let Some(exec_context) = std_or_core(cx) . && msrv.meets(cx, msrvs::REPEAT_WITH) . { . emit_lint( . cx, -- line 112 ---------------------------------------- -- line 118 ---------------------------------------- . "{exec_context}::iter::repeat_with(|| {})", . snippet(cx, repeat_expr.span, "..") . ), . ); . } . } . . impl LateLintPass<'_> for RepeatVecWithCapacity { 488,400 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'_>, expr: &Expr<'_>) { . check_vec_macro(cx, expr); 44,400 ( 0.00%) check_repeat_fn(cx, expr, self.msrv); 355,200 ( 0.00%) } . } -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs -------------------------------------------------------------------------------- Ir -- line 454 ---------------------------------------- . /// let mut vec: Vec = Vec::new(); . /// ``` . #[inline] . #[rustc_const_stable(feature = "const_vec_new", since = "1.39.0")] . #[rustc_diagnostic_item = "vec_new"] . #[stable(feature = "rust1", since = "1.0.0")] . #[must_use] . pub const fn new() -> Self { 323,655 ( 0.00%) Vec { buf: RawVec::new(), len: 0 } . } . . /// Constructs a new, empty `Vec` with at least the specified capacity. . /// . /// The vector will be able to hold at least `capacity` elements without . /// reallocating. This method is allowed to allocate for more elements than . /// `capacity`. If `capacity` is zero, the vector will not allocate. . /// -- line 470 ---------------------------------------- -- line 961 ---------------------------------------- . /// // A vector of a zero-sized type will always over-allocate, since no . /// // allocation is necessary . /// let vec_units = Vec::<(), System>::with_capacity_in(10, System); . /// assert_eq!(vec_units.capacity(), usize::MAX); . /// ``` . #[inline] . #[unstable(feature = "allocator_api", issue = "32838")] . pub fn with_capacity_in(capacity: usize, alloc: A) -> Self { 213,018 ( 0.00%) Vec { buf: RawVec::with_capacity_in(capacity, alloc), len: 0 } . } . . /// Appends an element to the back of a collection. . /// . /// # Panics . /// . /// Panics if the new capacity exceeds `isize::MAX` _bytes_. . /// -- line 977 ---------------------------------------- -- line 1021 ---------------------------------------- . /// capacity after the push, *O*(*capacity*) time is taken to copy the . /// vector's elements to a larger allocation. This expensive operation is . /// offset by the *capacity* *O*(1) insertions it allows. . #[inline] . #[stable(feature = "push_mut", since = "1.95.0")] . #[must_use = "if you don't need a reference to the value, use `Vec::push` instead"] . pub fn push_mut(&mut self, value: T) -> &mut T { . // Inform codegen that the length does not change across grow_one(). 38,886 ( 0.00%) let len = self.len; . // This will panic or abort if we would allocate > isize::MAX bytes . // or if the length increment would overflow for zero-sized types. 86,028 ( 0.00%) if len == self.buf.capacity() { 12,243 ( 0.00%) self.buf.grow_one(); 1,703 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/raw_vec/mod.rs:>::grow_one (17x) 935 ( 0.00%) => ???:>::grow_one (17x) . } . unsafe { . let end = self.as_mut_ptr().add(len); . ptr::write(end, value); 85,231 ( 0.00%) self.len = len + 1; . // SAFETY: We just wrote a value to the pointer that will live the lifetime of the reference. . &mut *end . } . } . } . . impl Vec { . /// Constructs a new, empty `Vec`. -- line 1046 ---------------------------------------- -- line 1188 ---------------------------------------- . capacity: usize, . alloc: A, . ) -> Self { . ub_checks::assert_unsafe_precondition!( . check_library_ub, . "Vec::from_raw_parts_in requires that length <= capacity", . (length: usize = length, capacity: usize = capacity) => length <= capacity . ); 1,220 ( 0.00%) unsafe { Vec { buf: RawVec::from_raw_parts_in(ptr, capacity, alloc), len: length } } . } . . #[doc(alias = "from_non_null_parts_in")] . /// Creates a `Vec` directly from a `NonNull` pointer, a length, a capacity, . /// and an allocator. . /// . /// # Safety . /// -- line 1204 ---------------------------------------- -- line 1453 ---------------------------------------- . /// let mut vec = vec![1]; . /// vec.reserve(10); . /// assert!(vec.capacity() >= 11); . /// ``` . #[cfg(not(no_global_oom_handling))] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_diagnostic_item = "vec_reserve"] . pub fn reserve(&mut self, additional: usize) { 6,586 ( 0.00%) self.buf.reserve(self.len, additional); . } . . /// Reserves the minimum capacity for at least `additional` more elements to . /// be inserted in the given `Vec`. Unlike [`reserve`], this will not . /// deliberately over-allocate to speculatively avoid frequent allocations. . /// After calling `reserve_exact`, capacity will be greater than or equal to . /// `self.len() + additional`. Does nothing if the capacity is already . /// sufficient. -- line 1469 ---------------------------------------- -- line 1590 ---------------------------------------- . /// ``` . #[cfg(not(no_global_oom_handling))] . #[stable(feature = "rust1", since = "1.0.0")] . #[inline] . pub fn shrink_to_fit(&mut self) { . // The capacity is never less than the length, and there's nothing to do when . // they are equal, so we can avoid the panic case in `RawVec::shrink_to_fit` . // by only calling it with a greater capacity. 5,803 ( 0.00%) if self.capacity() > self.len { . self.buf.shrink_to_fit(self.len); . } . } . . /// Shrinks the capacity of the vector with a lower bound. . /// . /// The capacity will remain at least as large as both the length . /// and the supplied value. -- line 1606 ---------------------------------------- -- line 1815 ---------------------------------------- . // case avoids creating an invalid slice, and . // * the `len` of the vector is shrunk before calling `drop_in_place`, . // such that no value will be dropped twice in case `drop_in_place` . // were to panic once (if it panics twice, the program aborts). . unsafe { . // Note: It's intentional that this is `>` and not `>=`. . // Changing it to `>=` has negative performance . // implications in some cases. See #78884 for more. 59,538 ( 0.00%) if len > self.len { . return; . } . let remaining_len = self.len - len; . let s = self.as_mut_ptr().add(len).cast_slice(remaining_len); 24,652 ( 0.00%) self.len = len; . ptr::drop_in_place(s); . } . } . . /// Extracts a slice containing the entire vector. . /// . /// Equivalent to `&s[..]`. . /// -- line 1836 ---------------------------------------- -- line 1857 ---------------------------------------- . // * obeys size and address-wrapping constraints . // . // * We only construct `&mut` references to `self.buf` through `&mut self` methods; borrow- . // check ensures that it is not possible to mutably alias `self.buf` within the . // returned lifetime. . unsafe { . // normally this would use `slice::from_raw_parts`, but it's . // instantiated often enough that avoiding the UB check is worth it 588,818 ( 0.01%) &*core::intrinsics::aggregate_raw_ptr::<*const [T], _, _>(self.as_ptr(), self.len) . } . } . . /// Extracts a mutable slice of the entire vector. . /// . /// Equivalent to `&mut s[..]`. . /// . /// # Examples -- line 1873 ---------------------------------------- -- line 1896 ---------------------------------------- . // * obeys size and address-wrapping constraints . // . // * We only construct references to `self.buf` through `&self` and `&mut self` methods; . // borrow-check ensures that it is not possible to construct a reference to `self.buf` . // within the returned lifetime. . unsafe { . // normally this would use `slice::from_raw_parts_mut`, but it's . // instantiated often enough that avoiding the UB check is worth it 96,642 ( 0.00%) &mut *core::intrinsics::aggregate_raw_ptr::<*mut [T], _, _>(self.as_mut_ptr(), self.len) . } . } . . /// Returns a raw pointer to the vector's buffer, or a dangling raw pointer . /// valid for zero sized reads if the vector didn't allocate. . /// . /// The caller must ensure that the vector outlives the pointer this . /// function returns, or else it will end up dangling. -- line 1912 ---------------------------------------- -- line 2216 ---------------------------------------- . #[rustc_const_unstable(feature = "const_heap", issue = "79597")] . pub const unsafe fn set_len(&mut self, new_len: usize) { . ub_checks::assert_unsafe_precondition!( . check_library_ub, . "Vec::set_len requires that new_len <= capacity()", . (new_len: usize = new_len, capacity: usize = self.capacity()) => new_len <= capacity . ); . 8,565 ( 0.00%) self.len = new_len; . } . . /// Removes an element from the vector and returns it. . /// . /// The removed element is replaced by the last element of the vector. . /// . /// This does not preserve ordering of the remaining elements, but is *O*(1). . /// If you need to preserve the element order, use [`remove`] instead. -- line 2232 ---------------------------------------- -- line 2254 ---------------------------------------- . #[cold] . #[cfg_attr(not(panic = "immediate-abort"), inline(never))] . #[optimize(size)] . fn assert_failed(index: usize, len: usize) -> ! { . panic!("swap_remove index (is {index}) should be < len (is {len})"); . } . . let len = self.len(); 280 ( 0.00%) if index >= len { . assert_failed(index, len); . } . unsafe { . // We replace self[index] with the last element. Note that if the . // bounds check above succeeds there must be a last element (which . // can be self[index] itself). . let value = ptr::read(self.as_ptr().add(index)); . let base_ptr = self.as_mut_ptr(); 140 ( 0.00%) ptr::copy(base_ptr.add(len - 1), base_ptr.add(index), 1); . self.set_len(len - 1); . value . } . } . . /// Inserts an element at position `index` within the vector, shifting all . /// elements after it to the right. . /// -- line 2279 ---------------------------------------- -- line 2478 ---------------------------------------- . /// assert_eq!(vec, [2, 3, 5]); . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . pub fn retain(&mut self, mut f: F) . where . F: FnMut(&T) -> bool, . { . self.retain_mut(|elem| f(elem)); 98 ( 0.00%) } . . /// Retains only the elements specified by the predicate, passing a mutable reference to it. . /// . /// In other words, remove all elements `e` such that `f(&mut e)` returns `false`. . /// This method operates in place, visiting each element exactly once in the . /// original order, and preserves the order of the retained elements. . /// . /// # Examples -- line 2494 ---------------------------------------- -- line 2505 ---------------------------------------- . /// ``` . #[stable(feature = "vec_retain_mut", since = "1.61.0")] . pub fn retain_mut(&mut self, mut f: F) . where . F: FnMut(&mut T) -> bool, . { . let original_len = self.len(); . 228 ( 0.00%) if original_len == 0 { . // Empty case: explicit return allows better optimization, vs letting compiler infer it . return; . } . . // Vec: [Kept, Kept, Hole, Hole, Hole, Hole, Unchecked, Unchecked] . // | ^- write ^- read | . // |<- original_len ->| . // Kept: Elements which predicate returns true on. -- line 2521 ---------------------------------------- -- line 2550 ---------------------------------------- . } . } . } . . let mut read = 0; . loop { . // SAFETY: read < original_len . let cur = unsafe { self.get_unchecked_mut(read) }; 984 ( 0.00%) if hint::unlikely(!f(cur)) { . break; . } 416 ( 0.00%) read += 1; 832 ( 0.00%) if read == original_len { . // All elements are kept, return early. . return; . } . } . . // Critical section starts here and at least one element is going to be removed. . // Advance `g.read` early to avoid double drop if `drop_in_place` panicked. . let mut g = PanicGuard { v: self, read: read + 1, write: read, original_len }; . // SAFETY: previous `read` is always less than original_len. . unsafe { ptr::drop_in_place(&mut *g.v.as_mut_ptr().add(read)) }; . 2,084 ( 0.00%) while g.read < g.original_len { . // SAFETY: `read` is always less than original_len. . let cur = unsafe { &mut *g.v.as_mut_ptr().add(g.read) }; 944 ( 0.00%) if !f(cur) { . // Advance `read` early to avoid double drop if `drop_in_place` panicked. . g.read += 1; . // SAFETY: We never touch this element again after dropped. . unsafe { ptr::drop_in_place(cur) }; . } else { . // SAFETY: `read` > `write`, so the slots don't overlap. . // We use copy for move, and never touch the source element again. . unsafe { . let hole = g.v.as_mut_ptr().add(g.write); . ptr::copy_nonoverlapping(cur, hole, 1); . } 944 ( 0.00%) g.write += 1; . g.read += 1; . } . } . . // We are leaving the critical section and no panic happened, . // Commit the length change and forget the guard. . // SAFETY: `write` is always less than or equal to original_len. . unsafe { g.v.set_len(g.write) }; -- line 2597 ---------------------------------------- -- line 2865 ---------------------------------------- . /// . /// # Time complexity . /// . /// Takes *O*(1) time. . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_diagnostic_item = "vec_pop"] . pub fn pop(&mut self) -> Option { 54,489 ( 0.00%) if self.len == 0 { . None . } else { . unsafe { 36,954 ( 0.00%) self.len -= 1; . core::hint::assert_unchecked(self.len < self.capacity()); 242 ( 0.00%) Some(ptr::read(self.as_ptr().add(self.len()))) . } . } . } . . /// Removes and returns the last element from a vector if the predicate . /// returns `true`, or [`None`] if the predicate returns false or the vector . /// is empty (the predicate will not be called in that case). . /// -- line 2887 ---------------------------------------- -- line 2973 ---------------------------------------- . Ok(()) . } . . /// Appends elements to `self` from other buffer without reserving additional capacity. . #[inline] . unsafe fn append_elements_unreserved(&mut self, other: *const [T]) { . let count = other.len(); . let len = self.len(); 6,269 ( 0.00%) if count > 0 { . unsafe { . ptr::copy_nonoverlapping(other as *const T, self.as_mut_ptr().add(len), count) . }; . } 12,627 ( 0.00%) self.len += count; . } . . /// Removes the subslice indicated by the given range from the vector, . /// returning a double-ended iterator over the removed subslice. . /// . /// If the iterator is dropped before being fully consumed, . /// it drops the remaining removed elements. . /// -- line 2994 ---------------------------------------- -- line 3074 ---------------------------------------- . . // SAFETY: . // - `elems` comes directly from `as_mut_slice` and is therefore valid. . // - Setting `self.len` before calling `drop_in_place` means that, . // if an element's `Drop` impl panics, the vector's `Drop` impl will . // do nothing (leaking the rest of the elements) instead of dropping . // some twice. . unsafe { 1,736 ( 0.00%) self.len = 0; . ptr::drop_in_place(elems); . } . } . . /// Returns the number of elements in the vector, also referred to . /// as its 'length'. . /// . /// # Examples -- line 3090 ---------------------------------------- -- line 3093 ---------------------------------------- . /// let a = vec![1, 2, 3]; . /// assert_eq!(a.len(), 3); . /// ``` . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_stable(feature = "const_vec_string_slice", since = "1.87.0")] . #[rustc_confusables("length", "size")] . pub const fn len(&self) -> usize { 36,572 ( 0.00%) let len = self.len; . . // SAFETY: The maximum capacity of `Vec` is `isize::MAX` bytes, so the maximum value can . // be returned is `usize::checked_div(size_of::()).unwrap_or(usize::MAX)`, which . // matches the definition of `T::MAX_SLICE_LEN`. . unsafe { intrinsics::assume(len <= T::MAX_SLICE_LEN) }; . . len . } -- line 3109 ---------------------------------------- -- line 3118 ---------------------------------------- . /// . /// v.push(1); . /// assert!(!v.is_empty()); . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_diagnostic_item = "vec_is_empty"] . #[rustc_const_stable(feature = "const_vec_string_slice", since = "1.87.0")] . pub const fn is_empty(&self) -> bool { 22,250 ( 0.00%) self.len() == 0 . } . . /// Splits the collection into two at the given index. . /// . /// Returns a newly allocated vector containing the elements in the range . /// `[at, len)`. After the call, the original vector will be left containing . /// the elements `[0, at)` with its previous capacity unchanged. . /// -- line 3134 ---------------------------------------- -- line 3868 ---------------------------------------- . #[cfg(not(no_global_oom_handling))] . #[stable(feature = "rust1", since = "1.0.0")] . impl Clone for Vec { . /// Creates a new `Vec` by deep-copying the contents of an existing `Vec`. . /// . /// This method will allocate a new `Vec` and `clone` all of `self`'s contents . /// into it. The capacity of the duplicate `Vec` is not forced to match the . /// capacity of the original. 10,039 ( 0.00%) fn clone(&self) -> Self { . let alloc = self.allocator().clone(); 36 ( 0.00%) <[T]>::to_vec_in(&**self, alloc) 12,873 ( 0.00%) } . . /// Overwrites the contents of `self` with a clone of the contents of `source`. . /// . /// This method is preferred over simply assigning `source.clone()` to `self`, . /// as it avoids reallocation if possible. Additionally, if the element type . /// `T` overrides `clone_from()`, this will reuse the resources of `self`'s . /// elements as well. . /// -- line 3887 ---------------------------------------- -- line 3915 ---------------------------------------- . /// let v: Vec = vec![0xa8, 0x3c, 0x09]; . /// let s: &[u8] = &[0xa8, 0x3c, 0x09]; . /// assert_eq!(b.hash_one(v), b.hash_one(s)); . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . impl Hash for Vec { . #[inline] . fn hash(&self, state: &mut H) { 28 ( 0.00%) Hash::hash(&**self, state) . } . } . . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_index", issue = "143775")] . const impl, A: Allocator> Index for Vec { . type Output = I::Output; . -- line 3931 ---------------------------------------- -- line 3988 ---------------------------------------- . /// LONG_LIVED.lock().unwrap().push(result); . /// } . /// ``` . #[cfg(not(no_global_oom_handling))] . #[stable(feature = "rust1", since = "1.0.0")] . impl FromIterator for Vec { . #[inline] . fn from_iter>(iter: I) -> Vec { 4,549 ( 0.00%) >::from_iter(iter.into_iter()) 1,933,669 ( 0.03%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs: as alloc::vec::spec_from_iter::SpecFromIter, ::check_item_kind::{closure#0}>, ::check_item_kind::{closure#1}>, core::option::Option>>>::from_iter (4,533x) . } . } . . #[stable(feature = "rust1", since = "1.0.0")] . impl IntoIterator for Vec { . type Item = T; . type IntoIter = IntoIter; . -- line 4004 ---------------------------------------- -- line 4026 ---------------------------------------- . let buf = me.buf.non_null(); . let begin = buf.as_ptr(); . let end = if T::IS_ZST { . begin.wrapping_byte_add(me.len()) . } else { . begin.add(me.len()) as *const T . }; . let cap = me.buf.capacity(); 7 ( 0.00%) IntoIter { buf, phantom: PhantomData, cap, alloc, ptr: buf, end } . } . } . } . . #[stable(feature = "rust1", since = "1.0.0")] . impl<'a, T, A: Allocator> IntoIterator for &'a Vec { . type Item = &'a T; . type IntoIter = slice::Iter<'a, T>; -- line 4042 ---------------------------------------- -- line 4056 ---------------------------------------- . } . } . . #[cfg(not(no_global_oom_handling))] . #[stable(feature = "rust1", since = "1.0.0")] . impl Extend for Vec { . #[inline] . fn extend>(&mut self, iter: I) { 1 ( 0.00%) >::spec_extend(self, iter.into_iter()) 519 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs: as alloc::vec::spec_extend::SpecExtend>>::spec_extend (1x) . } . . #[inline] . fn extend_one(&mut self, item: T) { . self.push(item); . } . . #[inline] -- line 4072 ---------------------------------------- -- line 4084 ---------------------------------------- . } . } . } . . impl Vec { . // leaf method to which various SpecFrom/SpecExtend implementations delegate when . // they have no further optimizations to apply . #[cfg(not(no_global_oom_handling))] 10 ( 0.00%) fn extend_desugared>(&mut self, mut iterator: I) { . // This is the case for a general iterator. . // . // This function should be the moral equivalent of: . // . // for item in iterator { . // self.push(item); . // } 22,545 ( 0.00%) while let Some(element) = iterator.next() { 54 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/chain.rs:, clippy_driver::main::{closure#1}::{closure#4}>, alloc::vec::into_iter::IntoIter> as core::iter::traits::iterator::Iterator>::next (2x) . let len = self.len(); 8,007 ( 0.00%) if len == self.capacity() { . let (lower, _) = iterator.size_hint(); . self.reserve(lower.saturating_add(1)); . } . unsafe { . ptr::write(self.as_mut_ptr().add(len), element); . // Since next() executes user code which can panic we have to bump the length . // after each step. . // NB can't overflow since we would have had to alloc the address space 4,000 ( 0.00%) self.set_len(len + 1); . } . } 8 ( 0.00%) } . . // specific extend for `TrustedLen` iterators, called both by the specializations . // and internal places where resolving specialization makes compilation slower . #[cfg(not(no_global_oom_handling))] . fn extend_trusted(&mut self, iterator: impl iter::TrustedLen) { . let (low, high) = iterator.size_hint(); . if let Some(additional) = high { . debug_assert_eq!( -- line 4122 ---------------------------------------- -- line 4124 ---------------------------------------- . additional, . "TrustedLen iterator's size hint is not exact: {:?}", . (low, high) . ); . self.reserve(additional); . unsafe { . let ptr = self.as_mut_ptr(); . let mut local_len = SetLenOnDrop::new(&mut self.len); 84 ( 0.00%) iterator.for_each(move |element| { . ptr::write(ptr.add(local_len.current_len()), element); . // Since the loop executes user code which can panic we have to update . // the length every step to correctly drop what we've written. . // NB can't overflow since we would have had to alloc the address space . local_len.increment_len(1); . }); . } . } else { -- line 4140 ---------------------------------------- -- line 4345 ---------------------------------------- . } . } . . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_heap", issue = "79597")] . const unsafe impl<#[may_dangle] T: [const] Destruct, A: [const] Allocator + [const] Destruct> Drop . for Vec . { 3,787 ( 0.00%) fn drop(&mut self) { . unsafe { . // use drop for [T] . // use a raw slice to refer to the elements of the vector as weakest necessary type; . // could avoid questions of validity in certain cases 10,957 ( 0.00%) self.as_mut_ptr().cast_slice(self.len).drop_in_place() . } . // RawVec handles deallocation 4,732 ( 0.00%) } . } . . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_default", issue = "143894")] . const impl Default for Vec { . /// Creates an empty `Vec`. . /// . /// The vector will not allocate until elements are pushed onto it. -- line 4369 ---------------------------------------- 150,423 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/attrs/mixed_attributes_style.rs -------------------------------------------------------------------------------- Ir -- line 2 ---------------------------------------- . use clippy_utils::diagnostics::span_lint; . use rustc_ast::{AttrKind, AttrStyle, Attribute, SyntheticAttr}; . use rustc_data_structures::fx::FxHashSet; . use rustc_lint::{EarlyContext, LintContext as _}; . use rustc_span::source_map::SourceMap; . use rustc_span::{SourceFile, Span, Symbol}; . use std::sync::Arc; . 17,115 ( 0.00%) #[derive(Hash, PartialEq, Eq)] . enum SimpleAttrKind { . Doc, . /// A normal attribute, with its name symbols. . Normal(Vec), . CfgTrace, . CfgAttrTrace, . } . . impl From<&AttrKind> for SimpleAttrKind { . fn from(value: &AttrKind) -> Self { 7,674 ( 0.00%) match value { . AttrKind::Normal(attr) => { 28 ( 0.00%) let path_symbols = attr . .item . .path . .segments . .iter() . .map(|seg| seg.ident.name) . .collect::>(); . Self::Normal(path_symbols) . }, 352 ( 0.00%) AttrKind::Synthetic(synthetic) => match &**synthetic { . SyntheticAttr::CfgTrace(_) => Self::CfgTrace, . SyntheticAttr::CfgAttrTrace(_) => Self::CfgAttrTrace, . }, . AttrKind::DocComment(..) => Self::Doc, . } . } . } . 12,990 ( 0.00%) pub(super) fn check(cx: &EarlyContext<'_>, item_span: Span, attrs: &[Attribute]) { . let mut inner_attr_kind: FxHashSet = FxHashSet::default(); . let mut outer_attr_kind: FxHashSet = FxHashSet::default(); . . let source_map = cx.sess().source_map(); 3,897 ( 0.00%) let item_src = source_map.lookup_source_file(item_span.lo()); 167,571 ( 0.00%) => ???:::lookup_source_file (1,299x) . . for attr in attrs { 9,412 ( 0.00%) if attr.span.from_expansion() || !attr_in_same_src_as_item(source_map, &item_src, attr.span) { . continue; . } . . let kind: SimpleAttrKind = (&attr.kind).into(); 3,092 ( 0.00%) match attr.style { . AttrStyle::Inner => { . if outer_attr_kind.contains(&kind) { . lint_mixed_attrs(cx, attrs); . return; . } . inner_attr_kind.insert(kind); . }, . AttrStyle::Outer => { 3,092 ( 0.00%) if inner_attr_kind.contains(&kind) { . lint_mixed_attrs(cx, attrs); . return; . } 6,184 ( 0.00%) outer_attr_kind.insert(kind); . }, . } . } 10,392 ( 0.00%) } . . fn lint_mixed_attrs(cx: &EarlyContext<'_>, attrs: &[Attribute]) { . let mut attrs_iter = attrs.iter().filter(|attr| !attr.span.from_expansion()); . let span = if let (Some(first), Some(last)) = (attrs_iter.next(), attrs_iter.next_back()) { . first.span.with_hi(last.span.hi()) . } else { . return; . }; -- line 79 ---------------------------------------- -- line 81 ---------------------------------------- . cx, . MIXED_ATTRIBUTES_STYLE, . span, . "item has both inner and outer attributes", . ); . } . . fn attr_in_same_src_as_item(source_map: &SourceMap, item_src: &Arc, attr_span: Span) -> bool { 7,160 ( 0.00%) let attr_src = source_map.lookup_source_file(attr_span.lo()); 230,910 ( 0.00%) => ???:::lookup_source_file (1,790x) . Arc::ptr_eq(item_src, &attr_src) . } 13,304 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/casts/cast_ptr_alignment.rs -------------------------------------------------------------------------------- Ir -- line 4 ---------------------------------------- . use rustc_hir::{Expr, ExprKind, GenericArg}; . use rustc_lint::LateContext; . use rustc_middle::ty::layout::LayoutOf as _; . use rustc_middle::ty::{self, Ty}; . . use super::CAST_PTR_ALIGNMENT; . . pub(super) fn check<'tcx>(cx: &LateContext<'tcx>, expr: &Expr<'_>, cast_from: Ty<'tcx>, cast_to: Ty<'tcx>) { 5,172 ( 0.00%) lint_cast_ptr_alignment(cx, expr, cast_from, cast_to); 14,654 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/casts/cast_ptr_alignment.rs:clippy_lints::casts::cast_ptr_alignment::lint_cast_ptr_alignment (862x) . } . 222,000 ( 0.00%) pub(super) fn check_cast_method(cx: &LateContext<'_>, expr: &Expr<'_>) { 96,418 ( 0.00%) if let ExprKind::MethodCall(method_path, self_arg, [], _) = &expr.kind 2,632 ( 0.00%) && method_path.ident.name == sym::cast . && let Some(generic_args) = method_path.args . && let [GenericArg::Type(cast_to)] = generic_args.args . // There probably is no obvious reason to do this, just to be consistent with `as` cases. . && !is_hir_ty_cfg_dependant(cx, cast_to.as_unambig_ty()) . { . let (cast_from, cast_to) = (cx.typeck_results().expr_ty(self_arg), cx.typeck_results().expr_ty(expr)); . lint_cast_ptr_alignment(cx, expr, cast_from, cast_to); . } 266,400 ( 0.00%) } . 6,896 ( 0.00%) fn lint_cast_ptr_alignment<'tcx>(cx: &LateContext<'tcx>, expr: &Expr<'_>, cast_from: Ty<'tcx>, cast_to: Ty<'tcx>) { 1,724 ( 0.00%) if let ty::RawPtr(from_ptr_ty, _) = *cast_from.kind() . && let ty::RawPtr(to_ptr_ty, _) = *cast_to.kind() . && let Ok(from_layout) = cx.layout_of(from_ptr_ty) . && let Ok(to_layout) = cx.layout_of(to_ptr_ty) . && from_layout.align.abi < to_layout.align.abi . // with c_void, we inherently need to trust the user . && !is_c_void(cx, from_ptr_ty) . // when casting from a ZST, we don't know enough to properly lint . && !from_layout.is_zst() -- line 37 ---------------------------------------- -- line 44 ---------------------------------------- . expr.span, . format!( . "casting from `{cast_from}` to a more-strictly-aligned pointer (`{cast_to}`) ({} < {} bytes)", . from_layout.align.bytes(), . to_layout.align.bytes(), . ), . ); . } 6,034 ( 0.00%) } . . fn is_used_as_unaligned(cx: &LateContext<'_>, e: &Expr<'_>) -> bool { . let Some(parent) = get_parent_expr(cx, e) else { . return false; . }; . match parent.kind { . ExprKind::MethodCall(name, self_arg, ..) if self_arg.hir_id == e.hir_id => { . if matches!(name.ident.name, sym::read_unaligned | sym::write_unaligned) -- line 60 ---------------------------------------- -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/needless_update.rs -------------------------------------------------------------------------------- Ir -- line 44 ---------------------------------------- . pub NEEDLESS_UPDATE, . complexity, . "using `Foo { ..base }` when there are no missing fields" . } . . declare_lint_pass!(NeedlessUpdate => [NEEDLESS_UPDATE]); . . impl<'tcx> LateLintPass<'tcx> for NeedlessUpdate { 222,000 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 89,098 ( 0.00%) if let ExprKind::Struct(_, fields, StructTailExpr::Base(base)) = expr.kind { . let ty = cx.typeck_results().expr_ty(expr); . if let ty::Adt(def, _) = ty.kind() . && fields.len() == def.non_enum_variant().fields.len() . && !def.variant(0_usize.into()).is_field_list_non_exhaustive() . { . span_lint( . cx, . NEEDLESS_UPDATE, . base.span, . "struct update has no effect, all the fields in the struct have already been specified", . ); . } . } 266,400 ( 0.00%) } . } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/permissions_set_readonly_false.rs -------------------------------------------------------------------------------- Ir -- line 27 ---------------------------------------- . "Checks for calls to `std::fs::Permissions.set_readonly` with argument `false`" . } . . declare_lint_pass!(PermissionsSetReadonlyFalse => [ . PERMISSIONS_SET_READONLY_FALSE, . ]); . . impl<'tcx> LateLintPass<'tcx> for PermissionsSetReadonlyFalse { 133,200 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 98,714 ( 0.00%) if let ExprKind::MethodCall(path, receiver, [arg], _) = &expr.kind 4,592 ( 0.00%) && let ExprKind::Lit(lit) = &arg.kind 2,030 ( 0.00%) && LitKind::Bool(false) == lit.node 1,450 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_ast/src/ast.rs:::eq (290x) . && path.ident.name == sym::set_readonly . && cx . .typeck_results() . .expr_ty(receiver) . .is_diag_item(cx, sym::FsPermissions) . { . span_lint_and_then( . cx, -- line 46 ---------------------------------------- -- line 51 ---------------------------------------- . diag.note("on Unix platforms this results in the file being world writable"); . diag.help( . "you can set the desired permissions using `PermissionsExt`. For more information, see\n\ . https://doc.rust-lang.org/std/os/unix/fs/trait.PermissionsExt.html", . ); . }, . ); . } 177,600 ( 0.00%) } . } 290 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/temporary_assignment.rs -------------------------------------------------------------------------------- Ir -- line 21 ---------------------------------------- . pub TEMPORARY_ASSIGNMENT, . complexity, . "assignments to temporaries" . } . . declare_lint_pass!(TemporaryAssignment => [TEMPORARY_ASSIGNMENT]); . . fn is_temporary(expr: &Expr<'_>) -> bool { 216 ( 0.00%) matches!(&expr.kind, ExprKind::Struct(..) | ExprKind::Tup(..)) . } . . impl<'tcx> LateLintPass<'tcx> for TemporaryAssignment { . fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 88,800 ( 0.00%) if let ExprKind::Assign(target, ..) = &expr.kind { . let mut base = target; 384 ( 0.00%) while let ExprKind::Field(f, _) | ExprKind::Index(f, _, _) = &base.kind { . base = f; . } . if is_temporary(base) && !is_adjusted(cx, base) { . span_lint(cx, TEMPORARY_ASSIGNMENT, expr.span, "assignment to temporary"); . } . } . } . } -- line 44 ---------------------------------------- 108 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/regex.rs -------------------------------------------------------------------------------- Ir -- line 110 ---------------------------------------- . #[derive(Copy, Clone)] . enum RegexKind { . Unicode, . UnicodeSet, . Bytes, . BytesSet, . } . 7 ( 0.00%) #[derive(Default)] . pub struct Regex { . definitions: DefIdMap, . loop_stack: Vec<(OwnerId, Span)>, . } . . impl<'tcx> LateLintPass<'tcx> for Regex { 7 ( 0.00%) fn check_crate(&mut self, cx: &LateContext<'tcx>) { . let mut resolve = |path: &PathLookup, kind: RegexKind| { . for &id in path.get(cx) { . self.definitions.insert(id, kind); . } . }; . . resolve(&paths::REGEX_NEW, RegexKind::Unicode); . resolve(&paths::REGEX_BUILDER_NEW, RegexKind::Unicode); . resolve(&paths::REGEX_SET_NEW, RegexKind::UnicodeSet); . resolve(&paths::REGEX_BYTES_NEW, RegexKind::Bytes); . resolve(&paths::REGEX_BYTES_BUILDER_NEW, RegexKind::Bytes); . resolve(&paths::REGEX_BYTES_SET_NEW, RegexKind::BytesSet); 6 ( 0.00%) } . 355,200 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 359,771 ( 0.00%) if let ExprKind::Call(fun, [arg]) = expr.kind 4,571 ( 0.00%) && let Some(def_id) = fun.res(cx).opt_def_id() . && let Some(regex_kind) = self.definitions.get(&def_id) . { . if let Some(&(loop_item_id, loop_span)) = self.loop_stack.last() . && loop_item_id == fun.hir_id.owner . && (matches!(arg.kind, ExprKind::Lit(_)) || const_str(cx, arg).is_some()) . { . span_lint_and_help( . cx, -- line 150 ---------------------------------------- -- line 157 ---------------------------------------- . } . . match regex_kind { . RegexKind::Unicode => check_regex(cx, arg, true), . RegexKind::UnicodeSet => check_set(cx, arg, true), . RegexKind::Bytes => check_regex(cx, arg, false), . RegexKind::BytesSet => check_set(cx, arg, false), . } 88,902 ( 0.00%) } else if let ExprKind::Loop(block, _, _, span) = expr.kind { 102 ( 0.00%) self.loop_stack.push((block.hir_id.owner, span)); . } 355,200 ( 0.00%) } . . fn check_expr_post(&mut self, _: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 310,800 ( 0.00%) if matches!(expr.kind, ExprKind::Loop(..)) { . self.loop_stack.pop(); . } . } . } . . fn lint_syntax_error(cx: &LateContext<'_>, error: ®ex_syntax::Error, unescaped: &str, base: Span, offset: u8) { . let parts: Option<(_, _, &dyn Display)> = match &error { . regex_syntax::Error::Parse(e) => Some((e.span(), e.auxiliary_span(), e.kind())), -- line 179 ---------------------------------------- 4,572 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/functions/mod.rs -------------------------------------------------------------------------------- Ir -- line 493 ---------------------------------------- . RESULT_LARGE_ERR, . RESULT_UNIT_ERR, . TOO_MANY_ARGUMENTS, . TOO_MANY_LINES, . ]); . . impl EarlyLintPass for EarlyFunctions { . fn check_fn(&mut self, cx: &EarlyContext<'_>, fn_kind: visit::FnKind<'_>, _: Span, _: ast::NodeId) { 8,490 ( 0.00%) duplicate_underscore_argument::check(cx, fn_kind); 3,547,059 ( 0.05%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/functions/duplicate_underscore_argument.rs:clippy_lints::functions::duplicate_underscore_argument::check (2,830x) . } . } . . pub struct Functions { . too_many_arguments_threshold: u64, . too_many_lines_threshold: u64, . large_error_threshold: u64, . large_error_ignored: DefIdSet, -- line 509 ---------------------------------------- -- line 510 ---------------------------------------- . avoid_breaking_exported_api: bool, . /// A set of resolved `def_id` of traits that are configured to allow . /// function params renaming. . trait_ids: DefIdSet, . msrv: Msrv, . } . . impl Functions { 10 ( 0.00%) pub fn new(tcx: TyCtxt<'_>, conf: &'static Conf) -> Self { 8 ( 0.00%) Self { 2 ( 0.00%) too_many_arguments_threshold: conf.too_many_arguments_threshold, . too_many_lines_threshold: conf.too_many_lines_threshold, 1 ( 0.00%) large_error_threshold: conf.large_error_threshold, . large_error_ignored: conf . .large_error_ignored . .iter() . .flat_map(|ignored_ty| lookup_path_str(tcx, PathNS::Type, ignored_ty)) . .collect(), 1 ( 0.00%) avoid_breaking_exported_api: conf.avoid_breaking_exported_api, . trait_ids: conf . .allow_renamed_params_for . .iter() . .flat_map(|p| lookup_path_str(tcx, PathNS::Type, p)) . .collect(), 2 ( 0.00%) msrv: conf.msrv.into(), . } 9 ( 0.00%) } . } . . impl<'tcx> LateLintPass<'tcx> for Functions { 32,880 ( 0.00%) fn check_fn( . &mut self, . cx: &LateContext<'tcx>, . kind: intravisit::FnKind<'tcx>, . decl: &'tcx hir::FnDecl<'_>, . body: &'tcx hir::Body<'_>, . span: Span, . def_id: LocalDefId, . ) { 2,740 ( 0.00%) let hir_id = cx.tcx.local_def_id_to_hir_id(def_id); 27,400 ( 0.00%) too_many_arguments::check_fn(cx, kind, decl, hir_id, def_id, self.too_many_arguments_threshold); 10,960 ( 0.00%) too_many_lines::check_fn(cx, kind, body, span, def_id, self.too_many_lines_threshold); . not_unsafe_ptr_arg_deref::check_fn(cx, kind, decl, body, def_id); 35,620 ( 0.00%) misnamed_getters::check_fn(cx, kind, decl, body, span); 83,000 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/functions/misnamed_getters.rs:clippy_lints::functions::misnamed_getters::check_fn (2,740x) 22 ( 0.00%) impl_trait_in_params::check_fn(cx, &kind, body, hir_id); 35,620 ( 0.00%) ref_option::check_fn( 668,502 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/functions/ref_option.rs:clippy_lints::functions::ref_option::check_fn (2,740x) . cx, . kind, . decl, . span, . hir_id, . def_id, . body, 5,480 ( 0.00%) self.avoid_breaking_exported_api, . ); 19,180 ( 0.00%) } . . fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx hir::Item<'_>) { 4,506 ( 0.00%) must_use::check_item(cx, item); 271,855 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/functions/must_use.rs:clippy_lints::functions::must_use::check_item (1,502x) 4,506 ( 0.00%) result::check_item( 82,202 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/functions/result.rs:clippy_lints::functions::result::check_item (1,502x) . cx, . item, 1,502 ( 0.00%) self.large_error_threshold, 1,502 ( 0.00%) &self.large_error_ignored, 1,502 ( 0.00%) self.msrv, . ); . } . 30,510 ( 0.00%) fn check_impl_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx hir::ImplItem<'_>) { 9,153 ( 0.00%) must_use::check_impl_item(cx, item); 2,320,432 ( 0.03%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/functions/must_use.rs:clippy_lints::functions::must_use::check_impl_item (3,051x) 9,153 ( 0.00%) result::check_impl_item( 1,821,019 ( 0.02%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/functions/result.rs:clippy_lints::functions::result::check_impl_item (3,051x) . cx, . item, 3,051 ( 0.00%) self.large_error_threshold, 3,051 ( 0.00%) &self.large_error_ignored, 3,051 ( 0.00%) self.msrv, . ); . impl_trait_in_params::check_impl_item(cx, item); 15,255 ( 0.00%) renamed_function_params::check_impl_item(cx, item, &self.trait_ids); 848,187 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/functions/renamed_function_params.rs:clippy_lints::functions::renamed_function_params::check_impl_item (3,051x) 24,408 ( 0.00%) } . 1,830 ( 0.00%) fn check_trait_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx hir::TraitItem<'_>) { 148 ( 0.00%) too_many_arguments::check_trait_item(cx, item, self.too_many_arguments_threshold); . not_unsafe_ptr_arg_deref::check_trait_item(cx, item); 549 ( 0.00%) must_use::check_trait_item(cx, item); 284,219 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/functions/must_use.rs:clippy_lints::functions::must_use::check_trait_item (183x) 549 ( 0.00%) result::check_trait_item( 603,076 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/functions/result.rs:clippy_lints::functions::result::check_trait_item (183x) . cx, . item, 183 ( 0.00%) self.large_error_threshold, 183 ( 0.00%) &self.large_error_ignored, 183 ( 0.00%) self.msrv, . ); 183 ( 0.00%) impl_trait_in_params::check_trait_item(cx, item, self.avoid_breaking_exported_api); 732 ( 0.00%) ref_option::check_trait_item(cx, item, self.avoid_breaking_exported_api); 37,680 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/functions/ref_option.rs:clippy_lints::functions::ref_option::check_trait_item (183x) 1,464 ( 0.00%) } . . fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx hir::Expr<'tcx>) { 222,000 ( 0.00%) result::check_expr(cx, expr, self.large_error_threshold, &self.large_error_ignored); 756,927 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/functions/result.rs:clippy_lints::functions::result::check_expr (44,400x) . } . } 38,404 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/needless_nonzero_get.rs -------------------------------------------------------------------------------- Ir -- line 59 ---------------------------------------- . . impl NeedlessNonzeroGet { . pub fn new(conf: &'static Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl<'tcx> LateLintPass<'tcx> for NeedlessNonzeroGet { 355,200 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &Expr<'tcx>) { 294,732 ( 0.00%) match expr.kind { . // `.get().()` 7,618 ( 0.00%) ExprKind::MethodCall(method, get_call, [], _) 15,792 ( 0.00%) if let Some((recv, nz_ty, nonzero_did, get_span)) = nonzero_get(cx, get_call) 19,986 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/needless_nonzero_get.rs:clippy_lints::needless_nonzero_get::nonzero_get (1,316x) . // The outer call must resolve to an inherent method. A trait method of the same . // name could resolve differently once the receiver becomes a `NonZero`. . && let Some(method_did) = cx.typeck_results().type_dependent_def_id(expr.hir_id) . && cx.tcx.trait_of_assoc(method_did).is_none() . // Dropping `get` must leave the expression's type unchanged. Methods whose . // `NonZero` version returns a `NonZero` deliberately do not match. . && let ret_ty = cx.typeck_results().expr_ty(expr) . && has_matching_method(cx, nonzero_did, nz_ty, method.ident.name, ret_ty, self.msrv) => . { . emit_unnecessary_get(cx, expr, get_call, recv, get_span, method.ident.name.as_str()); . }, . . // ` / .get()` and ` % .get()` . ExprKind::Binary(op, lhs, get_call) 1,664 ( 0.00%) if matches!(op.node, BinOpKind::Div | BinOpKind::Rem) 40 ( 0.00%) && let Some((recv, nz_ty, _, get_span)) = nonzero_get(cx, get_call) 60 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/needless_nonzero_get.rs:clippy_lints::needless_nonzero_get::nonzero_get (4x) . && let Some((trait_lang_item, _)) = binop_traits(op.node) . && let Some(trait_id) = cx.tcx.lang_items().get(trait_lang_item) . && has_nonzero_operator(cx, lhs, recv, nz_ty, trait_id, self.msrv) => . { . emit_unnecessary_get(cx, expr, get_call, recv, get_span, op.node.as_str()); . }, . . // ` /= .get()` and ` %= .get()` . ExprKind::AssignOp(op, lhs, get_call) 28 ( 0.00%) if matches!(op.node, AssignOpKind::DivAssign | AssignOpKind::RemAssign) 10 ( 0.00%) && let Some((recv, nz_ty, _, get_span)) = nonzero_get(cx, get_call) 15 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/needless_nonzero_get.rs:clippy_lints::needless_nonzero_get::nonzero_get (1x) . && let Some((_, trait_lang_item)) = binop_traits(op.node.into()) . && let Some(trait_id) = cx.tcx.lang_items().get(trait_lang_item) . && has_nonzero_operator(cx, lhs, recv, nz_ty, trait_id, self.msrv) => . { . emit_unnecessary_get(cx, expr, get_call, recv, get_span, op.node.as_str()); . }, . . _ => {}, . } 355,200 ( 0.00%) } . } . . /// Returns the receiver, its `NonZero` type and definition, and the `get` identifier span when . /// `expr` is an inherent `NonZero::get()` call. 6,605 ( 0.00%) fn nonzero_get<'tcx>( . cx: &LateContext<'tcx>, . expr: &'tcx Expr<'tcx>, . ) -> Option<(&'tcx Expr<'tcx>, Ty<'tcx>, DefId, Span)> { 2,812 ( 0.00%) let ExprKind::MethodCall(get, recv, [], get_span) = expr.kind else { . return None; . }; 38 ( 0.00%) if get.ident.name != sym::get { . return None; . } . let get_did = cx.typeck_results().type_dependent_def_id(expr.hir_id)?; . if cx.tcx.trait_of_assoc(get_did).is_some() { . return None; . } . let nz_ty = cx.typeck_results().expr_ty_adjusted(recv); . let ty::Adt(adt, _) = nz_ty.kind() else { . return None; . }; . if !cx.tcx.is_diagnostic_item(sym::NonZero, adt.did()) { . return None; . } . . Some((recv, nz_ty, adt.did(), get_span)) 7,926 ( 0.00%) } . . fn emit_unnecessary_get<'tcx>( . cx: &LateContext<'tcx>, . expr: &Expr<'tcx>, . get_call: &Expr<'tcx>, . recv: &Expr<'tcx>, . get_span: Span, . operation: &str, -- line 144 ---------------------------------------- 3,963 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/manual_retain.rs -------------------------------------------------------------------------------- Ir -- line 52 ---------------------------------------- . . impl ManualRetain { . pub fn new(conf: &'static Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl<'tcx> LateLintPass<'tcx> for ManualRetain { 222,000 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx hir::Expr<'_>) { 88,800 ( 0.00%) if let Assign(left_expr, collect_expr, _) = &expr.kind 162 ( 0.00%) && let hir::ExprKind::MethodCall(seg, target_expr, [], _) = &collect_expr.kind . && seg.args.is_none() . && let Some(collect_def_id) = cx.typeck_results().type_dependent_def_id(collect_expr.hir_id) . && cx.tcx.is_diagnostic_item(sym::iterator_collect_fn, collect_def_id) . { . check_into_iter(cx, left_expr, target_expr, expr.span, self.msrv); . check_iter(cx, left_expr, target_expr, expr.span, self.msrv); . check_to_owned(cx, left_expr, target_expr, expr.span, self.msrv); . } 266,400 ( 0.00%) } . } . . fn check_into_iter( . cx: &LateContext<'_>, . left_expr: &hir::Expr<'_>, . target_expr: &hir::Expr<'_>, . parent_expr_span: Span, . msrv: Msrv, -- line 79 ---------------------------------------- -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/unnecessary_map_on_constructor.rs -------------------------------------------------------------------------------- Ir -- line 32 ---------------------------------------- . "using `map`/`map_err` on `Option` or `Result` constructors" . } . . declare_lint_pass!(UnnecessaryMapOnConstructor => [ . UNNECESSARY_MAP_ON_CONSTRUCTOR, . ]); . . impl<'tcx> LateLintPass<'tcx> for UnnecessaryMapOnConstructor { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx rustc_hir::Expr<'tcx>) { 133,200 ( 0.00%) if !expr.span.from_expansion() 3,815 ( 0.00%) && let hir::ExprKind::MethodCall(path, recv, [map_arg], ..) = expr.kind 1,214 ( 0.00%) && !map_arg.span.from_expansion() 2,718 ( 0.00%) && let hir::ExprKind::Path(fun) = map_arg.kind 1,230 ( 0.00%) && let Some(sym::Option | sym::Result) = cx.typeck_results().expr_ty(recv).opt_diag_name(cx) 15,100 ( 0.00%) => ???:::expr_ty (376x) . { 174 ( 0.00%) let (constructor_path, constructor_item) = if let hir::ExprKind::Call(constructor, [arg, ..]) = recv.kind 60 ( 0.00%) && let hir::ExprKind::Path(constructor_path) = constructor.kind 24 ( 0.00%) && !constructor.span.from_expansion() 24 ( 0.00%) && !arg.span.from_expansion() . { . (constructor_path, arg) . } else { . return; . }; 24 ( 0.00%) let constructor_symbol = match constructor_path { . hir::QPath::Resolved(_, path) => { 6 ( 0.00%) if let Some(path_segment) = path.segments.last() { 6 ( 0.00%) path_segment.ident.name . } else { . return; . } . }, 18 ( 0.00%) hir::QPath::TypeRelative(_, path) => path.ident.name, . }; . match constructor_symbol { 72 ( 0.00%) sym::Some | sym::Ok if path.ident.name == sym::map => (), . sym::Err if path.ident.name == sym::map_err => (), . _ => return, . } . . let mut app = Applicability::MachineApplicable; . let fun_snippet = snippet_with_applicability(cx, fun.span(), "_", &mut app); . let constructor_snippet = snippet_with_applicability(cx, constructor_path.span(), "_", &mut app); . let constructor_arg_snippet = snippet_with_applicability(cx, constructor_item.span, "_", &mut app); -- line 75 ---------------------------------------- -- line 81 ---------------------------------------- . "unnecessary `{}` on constructor `{constructor_snippet}(_)`", . path.ident.name . ), . "try", . format!("{constructor_snippet}({fun_snippet}({constructor_arg_snippet}))"), . app, . ); . } 355,200 ( 0.00%) } . } 17,802 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/matches/rest_pat_in_fully_bound_struct.rs -------------------------------------------------------------------------------- Ir . use clippy_utils::diagnostics::span_lint_and_then; . use rustc_hir::{Pat, PatKind, QPath}; . use rustc_lint::LateContext; . use rustc_middle::ty; . . use super::REST_PAT_IN_FULLY_BOUND_STRUCTS; . 104,195 ( 0.00%) pub(crate) fn check(cx: &LateContext<'_>, pat: &Pat<'_>) { 29,770 ( 0.00%) if !pat.span.from_expansion() 5,086 ( 0.00%) && let PatKind::Struct(QPath::Resolved(_, path), fields, Some(dotdot)) = pat.kind . && let Some(def_id) = path.res.opt_def_id() . && let ty = cx.tcx.type_of(def_id).instantiate_identity().skip_norm_wip() . && let ty::Adt(def, _) = ty.kind() . && (def.is_struct() || def.is_union()) . && fields.len() == def.non_enum_variant().fields.len() . && !def.non_enum_variant().is_field_list_non_exhaustive() . { . span_lint_and_then( -- line 18 ---------------------------------------- -- line 25 ---------------------------------------- . dotdot, . "consider removing `..` from this binding", . "", . rustc_errors::Applicability::MachineApplicable, . ); . }, . ); . } 119,080 ( 0.00%) } -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs -------------------------------------------------------------------------------- Ir -- line 584 ---------------------------------------- . use crate::num::NonZero; . use crate::ops::{self, ControlFlow, Deref, DerefMut, Residual, Try}; . use crate::panicking::{panic, panic_display}; . use crate::pin::Pin; . use crate::{cmp, convert, hint, mem, slice}; . . /// The `Option` type. See [the module level documentation](self) for more. . #[doc(search_unbox)] 2,242 ( 0.00%) #[derive(Copy, Debug, Hash)] 108 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::hash:: (3x) . #[derive_const(Eq)] . #[rustc_diagnostic_item = "Option"] . #[lang = "Option"] . #[stable(feature = "rust1", since = "1.0.0")] . #[allow(clippy::derived_hash_with_manual_eq)] // PartialEq is manually implemented equivalently . pub enum Option { . /// No value. . #[lang = "None"] -- line 600 ---------------------------------------- -- line 626 ---------------------------------------- . /// let x: Option = None; . /// assert_eq!(x.is_some(), false); . /// ``` . #[must_use = "if you intended to assert that this has a value, consider `.unwrap()` instead"] . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_stable(feature = "const_option_basics", since = "1.48.0")] . pub const fn is_some(&self) -> bool { 300,989 ( 0.00%) matches!(*self, Some(_)) . } . . /// Returns `true` if the option is a [`Some`] and the value inside of it matches a predicate. . /// . /// # Examples . /// . /// ``` . /// let x: Option = Some(2); -- line 642 ---------------------------------------- -- line 652 ---------------------------------------- . /// assert_eq!(x.as_ref().is_some_and(|x| x.len() > 1), true); . /// println!("still alive {:?}", x); . /// ``` . #[must_use] . #[inline] . #[stable(feature = "is_some_and", since = "1.70.0")] . #[rustc_const_unstable(feature = "const_option_ops", issue = "143956")] . pub const fn is_some_and(self, f: impl [const] FnOnce(T) -> bool + [const] Destruct) -> bool { 53,202 ( 0.00%) match self { . None => false, 24,895 ( 0.00%) Some(x) => f(x), 8,035 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/only_used_in_recursion.rs:::check_expr::{closure#0} (518x) . } . } . . /// Returns `true` if the option is a [`None`] value. . /// . /// # Examples . /// . /// ``` -- line 670 ---------------------------------------- -- line 675 ---------------------------------------- . /// assert_eq!(x.is_none(), true); . /// ``` . #[must_use = "if you intended to assert that this doesn't have a value, consider \ . wrapping this in an `assert!()` instead"] . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_stable(feature = "const_option_basics", since = "1.48.0")] . pub const fn is_none(&self) -> bool { 30 ( 0.00%) !self.is_some() . } . . /// Returns `true` if the option is a [`None`] or the value inside of it matches a predicate. . /// . /// # Examples . /// . /// ``` . /// let x: Option = Some(2); -- line 691 ---------------------------------------- -- line 701 ---------------------------------------- . /// assert_eq!(x.as_ref().is_none_or(|x| x.len() > 1), true); . /// println!("still alive {:?}", x); . /// ``` . #[must_use] . #[inline] . #[stable(feature = "is_none_or", since = "1.82.0")] . #[rustc_const_unstable(feature = "const_option_ops", issue = "143956")] . pub const fn is_none_or(self, f: impl [const] FnOnce(T) -> bool + [const] Destruct) -> bool { 266,484 ( 0.00%) match self { . None => true, . Some(x) => f(x), . } . } . . ///////////////////////////////////////////////////////////////////////// . // Adapter for working with references . ///////////////////////////////////////////////////////////////////////// -- line 717 ---------------------------------------- -- line 735 ---------------------------------------- . /// // then consume *that* with `map`, leaving `text` on the stack. . /// let text_length: Option = text.as_ref().map(|s| s.len()); . /// println!("still can print text: {text:?}"); . /// ``` . #[inline] . #[rustc_const_stable(feature = "const_option_basics", since = "1.48.0")] . #[stable(feature = "rust1", since = "1.0.0")] . pub const fn as_ref(&self) -> Option<&T> { 49,113 ( 0.00%) match *self { . Some(ref x) => Some(x), . None => None, . } . } . . /// Converts from `&mut Option` to `Option<&mut T>`. . /// . /// # Examples -- line 751 ---------------------------------------- -- line 757 ---------------------------------------- . /// None => {}, . /// } . /// assert_eq!(x, Some(42)); . /// ``` . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_stable(feature = "const_option", since = "1.83.0")] . pub const fn as_mut(&mut self) -> Option<&mut T> { 63,133 ( 0.00%) match *self { . Some(ref mut x) => Some(x), . None => None, . } . } . . /// Converts from [Pin]<[&]Option\> to Option<[Pin]<[&]T>>. . /// . /// [&]: reference "shared reference" -- line 773 ---------------------------------------- -- line 802 ---------------------------------------- . None => None, . } . } . } . . #[inline] . const fn len(&self) -> usize { . // Using the intrinsic avoids emitting a branch to get the 0 or 1. 9,458 ( 0.00%) let discriminant: isize = crate::intrinsics::discriminant_value(self); . discriminant as usize . } . . /// Returns a slice of the contained value, if any. If this is `None`, an . /// empty slice is returned. This can be useful to have a single type of . /// iterator over an `Option` or slice. . /// . /// Note: Should you have an `Option<&T>` and wish to get a slice of `T`, -- line 818 ---------------------------------------- -- line 959 ---------------------------------------- . /// Styles"](../../std/error/index.html#common-message-styles) in the [`std::error`](../../std/error/index.html) module docs. . #[inline] . #[track_caller] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_diagnostic_item = "option_expect"] . #[rustc_allow_const_fn_unstable(const_precise_live_drops)] . #[rustc_const_stable(feature = "const_option", since = "1.83.0")] . pub const fn expect(self, msg: &str) -> T { 254,038 ( 0.00%) match self { 2,112 ( 0.00%) Some(val) => val, . None => expect_failed(msg), . } . } . . /// Returns the contained [`Some`] value, consuming the `self` value. . /// . /// Because this function may panic, its use is generally discouraged. . /// Panics are meant for unrecoverable errors, and -- line 976 ---------------------------------------- -- line 1004 ---------------------------------------- . /// ``` . #[inline(always)] . #[track_caller] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_diagnostic_item = "option_unwrap"] . #[rustc_allow_const_fn_unstable(const_precise_live_drops)] . #[rustc_const_stable(feature = "const_option", since = "1.83.0")] . pub const fn unwrap(self) -> T { 3,648 ( 0.00%) match self { 1,320 ( 0.00%) Some(val) => val, . None => unwrap_failed(), . } . } . . /// Returns the contained [`Some`] value or a provided default. . /// . /// Arguments passed to `unwrap_or` are eagerly evaluated; if you are passing . /// the result of a function call, it is recommended to use [`unwrap_or_else`], -- line 1021 ---------------------------------------- -- line 1032 ---------------------------------------- . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_allow_const_fn_unstable(const_precise_live_drops)] . #[rustc_const_unstable(feature = "const_option_ops", issue = "143956")] . pub const fn unwrap_or(self, default: T) -> T . where . T: [const] Destruct, . { 113,083 ( 0.00%) match self { 3,080 ( 0.00%) Some(x) => x, . None => default, . } . } . . /// Returns the contained [`Some`] value or computes it from a closure. . /// . /// # Examples . /// -- line 1049 ---------------------------------------- -- line 1055 ---------------------------------------- . #[inline] . #[track_caller] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_option_ops", issue = "143956")] . pub const fn unwrap_or_else(self, f: F) -> T . where . F: [const] FnOnce() -> T + [const] Destruct, . { 9,447 ( 0.00%) match self { 3,627 ( 0.00%) Some(x) => x, . None => f(), . } . } . . /// Returns the contained [`Some`] value or a default. . /// . /// Consumes the `self` argument then, if [`Some`], returns the contained . /// value, otherwise if [`None`], returns the [default value] for that -- line 1072 ---------------------------------------- -- line 1087 ---------------------------------------- . /// [`FromStr`]: crate::str::FromStr . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_option_ops", issue = "143956")] . pub const fn unwrap_or_default(self) -> T . where . T: [const] Default, . { 9,129 ( 0.00%) match self { 13,599 ( 0.00%) Some(x) => x, . None => T::default(), . } . } . . /// Returns the contained [`Some`] value, consuming the `self` value, . /// without checking that the value is not [`None`]. . /// . /// # Safety -- line 1104 ---------------------------------------- -- line 1154 ---------------------------------------- . /// ``` . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_option_ops", issue = "143956")] . pub const fn map(self, f: F) -> Option . where . F: [const] FnOnce(T) -> U + [const] Destruct, . { 204,372 ( 0.00%) match self { 14,561 ( 0.00%) Some(x) => Some(f(x)), 100 ( 0.00%) None => None, . } 24 ( 0.00%) } . . /// Calls a function with a reference to the contained value if [`Some`]. . /// . /// Returns the original option. . /// . /// # Examples . /// . /// ``` -- line 1174 ---------------------------------------- -- line 1219 ---------------------------------------- . #[stable(feature = "rust1", since = "1.0.0")] . #[must_use = "if you don't need the returned value, use `if let` instead"] . #[rustc_const_unstable(feature = "const_option_ops", issue = "143956")] . pub const fn map_or(self, default: U, f: F) -> U . where . F: [const] FnOnce(T) -> U + [const] Destruct, . U: [const] Destruct, . { 36,535 ( 0.00%) match self { 2,703 ( 0.00%) Some(t) => f(t), 336 ( 0.00%) None => default, . } 5,704 ( 0.00%) } 276 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:core::ptr::drop_glue:: (46x) . . /// Computes a default function result (if none), or . /// applies a different function to the contained value (if any). . /// . /// # Basic examples . /// . /// ``` . /// let k = 21; -- line 1239 ---------------------------------------- -- line 1266 ---------------------------------------- . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_option_ops", issue = "143956")] . pub const fn map_or_else(self, default: D, f: F) -> U . where . D: [const] FnOnce() -> U + [const] Destruct, . F: [const] FnOnce(T) -> U + [const] Destruct, . { 2,381 ( 0.00%) match self { 5 ( 0.00%) Some(t) => f(t), . None => default(), . } 327 ( 0.00%) } . . /// Maps an `Option` to a `U` by applying function `f` to the contained . /// value if the option is [`Some`], otherwise if [`None`], returns the . /// [default value] for the type `U`. . /// . /// # Examples . /// . /// ``` -- line 1286 ---------------------------------------- -- line 1533 ---------------------------------------- . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_confusables("flat_map", "flatmap")] . #[rustc_const_unstable(feature = "const_option_ops", issue = "143956")] . pub const fn and_then(self, f: F) -> Option . where . F: [const] FnOnce(T) -> Option + [const] Destruct, . { 25,499 ( 0.00%) match self { 26,599 ( 0.00%) Some(x) => f(x), 1,796 ( 0.00%) None => None, . } . } . . /// Returns [`None`] if the option is [`None`], otherwise calls `predicate` . /// with the wrapped value and returns: . /// . /// - [`Some(t)`] if `predicate` returns `true` (where `t` is the wrapped . /// value), and -- line 1551 ---------------------------------------- -- line 1571 ---------------------------------------- . #[inline] . #[stable(feature = "option_filter", since = "1.27.0")] . #[rustc_const_unstable(feature = "const_option_ops", issue = "143956")] . pub const fn filter

(self, predicate: P) -> Self . where . P: [const] FnOnce(&T) -> bool + [const] Destruct, . T: [const] Destruct, . { 187,791 ( 0.00%) if let Some(x) = self { 77,588 ( 0.00%) if predicate(&x) { 1,390 ( 0.00%) return Some(x); . } . } 46,726 ( 0.00%) None 4 ( 0.00%) } . . /// Returns the option if it contains a value, otherwise returns `optb`. . /// . /// Arguments passed to `or` are eagerly evaluated; if you are passing the . /// result of a function call, it is recommended to use [`or_else`], which is . /// lazily evaluated. . /// . /// [`or_else`]: Option::or_else -- line 1593 ---------------------------------------- -- line 1613 ---------------------------------------- . /// ``` . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_option_ops", issue = "143956")] . pub const fn or(self, optb: Option) -> Option . where . T: [const] Destruct, . { 108 ( 0.00%) match self { . x @ Some(_) => x, . None => optb, . } . } . . /// Returns the option if it contains a value, otherwise calls `f` and . /// returns the result. . /// -- line 1629 ---------------------------------------- -- line 1642 ---------------------------------------- . #[rustc_const_unstable(feature = "const_option_ops", issue = "143956")] . pub const fn or_else(self, f: F) -> Option . where . F: [const] FnOnce() -> Option + [const] Destruct, . //FIXME(const_hack): this `T: [const] Destruct` is unnecessary, but even precise live drops can't tell . // no value of type `T` gets dropped here . T: [const] Destruct, . { 1,437 ( 0.00%) match self { 1,528 ( 0.00%) x @ Some(_) => x, . None => f(), . } 74 ( 0.00%) } . . /// Returns [`Some`] if exactly one of `self`, `optb` is [`Some`], otherwise returns [`None`]. . /// . /// # Examples . /// . /// ``` . /// let x = Some(2); . /// let y: Option = None; -- line 1662 ---------------------------------------- -- line 1714 ---------------------------------------- . #[must_use = "if you intended to set a value, consider assignment instead"] . #[inline] . #[stable(feature = "option_insert", since = "1.53.0")] . #[rustc_const_unstable(feature = "const_option_ops", issue = "143956")] . pub const fn insert(&mut self, value: T) -> &mut T . where . T: [const] Destruct, . { 21,037 ( 0.00%) *self = Some(value); . . // SAFETY: the code above just filled the option . unsafe { self.as_mut().unwrap_unchecked() } . } . . /// Inserts `value` into the option if it is [`None`], then . /// returns a mutable reference to the contained value. . /// -- line 1730 ---------------------------------------- -- line 1801 ---------------------------------------- . /// ``` . #[inline] . #[stable(feature = "option_entry", since = "1.20.0")] . #[rustc_const_unstable(feature = "const_option_ops", issue = "143956")] . pub const fn get_or_insert_with(&mut self, f: F) -> &mut T . where . F: [const] FnOnce() -> T + [const] Destruct, . { 828 ( 0.00%) if let None = self { . // The effect of the following statement is identical to . // *self = Some(f()); . // except that it does not drop the old value of `*self`. This is not a leak, because . // we just checked that the old value is `None`, which contains no fields to drop. . // This implementation strategy . // . // * avoids needing a `T: [const] Destruct` bound, to the benefit of `const` callers, . // * and avoids possibly compiling needless drop code (as would sometimes happen in the -- line 1817 ---------------------------------------- -- line 1976 ---------------------------------------- . /// ``` . #[stable(feature = "option_zip_option", since = "1.46.0")] . #[rustc_const_unstable(feature = "const_option_ops", issue = "143956")] . pub const fn zip(self, other: Option) -> Option<(T, U)> . where . T: [const] Destruct, . U: [const] Destruct, . { 35 ( 0.00%) match (self, other) { . (Some(a), Some(b)) => Some((a, b)), . _ => None, . } . } . . /// Combines the value in `self` with the value in another `Option`, using the function `f`. . /// . /// If `self` is `Some(s)` and `other` is `Some(o)`, this method returns `Some(f(s, o))`. -- line 1992 ---------------------------------------- -- line 2130 ---------------------------------------- . #[rustc_const_stable(feature = "const_option", since = "1.83.0")] . pub const fn copied(self) -> Option . where . T: Copy, . { . // FIXME(const-hack): this implementation, which sidesteps using `Option::map` since it's not const . // ready yet, should be reverted when possible to avoid code repetition . match self { 63,607 ( 0.00%) Some(&v) => Some(v), . None => None, . } . } . . /// Maps an `Option<&T>` to an `Option` by cloning the contents of the . /// option. . /// . /// # Examples -- line 2146 ---------------------------------------- -- line 2266 ---------------------------------------- . const impl Clone for Option . where . // FIXME(const_hack): the T: [const] Destruct should be inferred from the Self: [const] Destruct in clone_from. . // See https://github.com/rust-lang/rust/issues/144207 . T: [const] Clone + [const] Destruct, . { . #[inline] . fn clone(&self) -> Self { 1,306,515 ( 0.02%) match self { . Some(x) => Some(x.clone()), . None => None, . } . } . . #[inline] . fn clone_from(&mut self, source: &Self) { . match (self, source) { -- line 2282 ---------------------------------------- -- line 2431 ---------------------------------------- . impl crate::marker::StructuralPartialEq for Option {} . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_cmp", issue = "143800")] . const impl PartialEq for Option { . #[inline] . fn eq(&self, other: &Self) -> bool { . // Spelling out the cases explicitly optimizes better than . // `_ => false` 858,629 ( 0.01%) match (self, other) { 4 ( 0.00%) (Some(l), Some(r)) => *l == *r, 78 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::eq (2x) . (Some(_), None) => false, . (None, Some(_)) => false, . (None, None) => true, . } . } . } . . // Manually implementing here somewhat improves codegen for -- line 2448 ---------------------------------------- -- line 2844 ---------------------------------------- . /// assert_eq!(res, None); . /// assert_eq!(shared, 6); . /// ``` . /// . /// Since the third element caused an underflow, no further elements were taken, . /// so the final value of `shared` is 6 (= `3 + 2 + 1`), not 16. . #[inline] . fn from_iter>>(iter: I) -> Option { 15 ( 0.00%) iter::try_process(iter.into_iter(), |i| i.collect()) 2,234 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/mod.rs:core::iter::adapters::try_process::, ::multi::{closure#0}>, clippy_utils::consts::Constant, core::option::Option, > as core::iter::traits::collect::FromIterator>>::from_iter, ::multi::{closure#0}>>::{closure#0}, alloc::vec::Vec> (15x) . } . } . . #[unstable(feature = "try_trait_v2", issue = "84277", old_name = "try_trait")] . #[rustc_const_unstable(feature = "const_try", issue = "74935")] . const impl ops::Try for Option { . type Output = T; . type Residual = Option; -- line 2860 ---------------------------------------- -- line 2861 ---------------------------------------- . . #[inline] . fn from_output(output: Self::Output) -> Self { . Some(output) . } . . #[inline] . fn branch(self) -> ControlFlow { 248,164 ( 0.00%) match self { 23,110 ( 0.00%) Some(v) => ControlFlow::Continue(v), . None => ControlFlow::Break(None), . } . } . } . . #[unstable(feature = "try_trait_v2", issue = "84277", old_name = "try_trait")] . #[rustc_const_unstable(feature = "const_try", issue = "74935")] . // Note: manually specifying the residual type instead of using the default to work around . // https://github.com/rust-lang/rust/issues/99940 . const impl ops::FromResidual> for Option { . #[inline] . fn from_residual(residual: Option) -> Self { . match residual { 1,873 ( 0.00%) None => None, . } . } . } . . #[diagnostic::do_not_recommend] . #[unstable(feature = "try_trait_v2_yeet", issue = "96374")] . #[rustc_const_unstable(feature = "const_try", issue = "74935")] . const impl ops::FromResidual> for Option { -- line 2892 ---------------------------------------- 301,217 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/loops/mod.rs -------------------------------------------------------------------------------- Ir -- line 852 ---------------------------------------- . Self { . msrv: conf.msrv.into(), . enforce_iter_loop_reborrow: conf.enforce_iter_loop_reborrow, . } . } . } . . impl<'tcx> LateLintPass<'tcx> for Loops { 488,400 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 88,800 ( 0.00%) let for_loop = higher::ForLoop::hir(expr); 678,616 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir (44,400x) 44,400 ( 0.00%) if let Some(higher::ForLoop { 76 ( 0.00%) pat, 76 ( 0.00%) arg, 76 ( 0.00%) body, 76 ( 0.00%) loop_id, 76 ( 0.00%) span, 304 ( 0.00%) label, 88,800 ( 0.00%) }) = for_loop . { . // we don't want to check expanded macros . // this check is not at the top of the function . // since higher::for_loop expressions are marked as expansions 152 ( 0.00%) if body.span.from_expansion() { . return; . } 36 ( 0.00%) self.check_for_loop(cx, pat, arg, body, expr, span, label); 36 ( 0.00%) if let ExprKind::Block(block, _) = body.kind { 24 ( 0.00%) never_loop::check(cx, block, loop_id, span, for_loop.as_ref()); 36,936 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/loops/never_loop.rs:clippy_lints::loops::never_loop::check (12x) . } . } . . // we don't want to check expanded macros 88,672 ( 0.00%) if expr.span.from_expansion() { . return; . } . . // check for never_loop 26,681 ( 0.00%) if let ExprKind::Loop(block, ..) = expr.kind { 140 ( 0.00%) never_loop::check(cx, block, expr.hir_id, expr.span, None); 108,182 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/loops/never_loop.rs:clippy_lints::loops::never_loop::check (14x) . } . . // check for `loop { if let {} else break }` that could be `while let` . // (also matches an explicit "match" instead of "if let") . // (even if the "match" or "if let" is used for declaration) . // (also matches on `let {} else break`) 42 ( 0.00%) if let ExprKind::Loop(block, label, LoopSource::Loop, _) = expr.kind { . // also check for empty `loop {}` statements, skipping those in #[panic_handler] . empty_loop::check(cx, expr, block); . while_let_loop::check(cx, expr, block); . infinite_loop::check(cx, expr, block, label); . } . 17,778 ( 0.00%) while_let_on_iterator::check(cx, expr); 154,192 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/loops/while_let_on_iterator.rs:clippy_lints::loops::while_let_on_iterator::check (8,889x) . 1 ( 0.00%) if let Some(higher::While { . condition, body, span, .. 1 ( 0.00%) }) = higher::While::hir(expr) . { 4 ( 0.00%) while_immutable_condition::check(cx, condition, body); 173 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/loops/while_immutable_condition.rs:clippy_lints::loops::while_immutable_condition::check (1x) 3 ( 0.00%) while_float::check(cx, condition); 13 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/loops/while_float.rs:clippy_lints::loops::while_float::check (1x) . missing_spin_loop::check(cx, condition, body); 4 ( 0.00%) manual_while_let_some::check(cx, condition, body, span); 15 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/loops/manual_while_let_some.rs:clippy_lints::loops::manual_while_let_some::check (1x) . } . 21,738 ( 0.00%) if let ExprKind::MethodCall(path, recv, args, _) = expr.kind { 997 ( 0.00%) let name = path.ident.name; . 12 ( 0.00%) let is_iterator_method = || { 14 ( 0.00%) cx.ty_based_def(expr) 2 ( 0.00%) .assoc_fn_parent(cx) . .is_diag_item(cx, sym::Iterator) 16 ( 0.00%) }; . . // is_iterator_method is a bit expensive, so we call it last in each match arm . match (name, args) { 9,182 ( 0.00%) (sym::for_each | sym::all | sym::any, [arg]) => { . if let ExprKind::Closure(closure) = arg.kind . && is_iterator_method() . { . unused_enumerate_index::check_method(cx, recv, arg, closure); . never_loop::check_iterator_reduction(cx, expr, recv, closure); . } . }, . . (sym::filter_map | sym::find_map | sym::flat_map | sym::map, [arg]) => { 116 ( 0.00%) if let ExprKind::Closure(closure) = arg.kind 24 ( 0.00%) && is_iterator_method() 1,136 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/loops/mod.rs:::check_expr::{closure#0} (4x) . { . unused_enumerate_index::check_method(cx, recv, arg, closure); . } . }, . 228 ( 0.00%) (sym::try_for_each | sym::reduce, [arg]) | (sym::fold | sym::try_fold, [_, arg]) => { 7 ( 0.00%) if let ExprKind::Closure(closure) = arg.kind 4 ( 0.00%) && is_iterator_method() . { 8 ( 0.00%) never_loop::check_iterator_reduction(cx, expr, recv, closure); 266 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/loops/never_loop.rs:clippy_lints::loops::never_loop::check_iterator_reduction (2x) . } . }, . . _ => {}, . } . } 355,200 ( 0.00%) } . } . . impl Loops { . #[expect(clippy::too_many_arguments)] . fn check_for_loop<'tcx>( . &self, . cx: &LateContext<'tcx>, . pat: &'tcx Pat<'_>, . arg: &'tcx Expr<'_>, . body: &'tcx Expr<'_>, . expr: &'tcx Expr<'_>, . span: Span, . label: Option, . b: Option, . } . impl Chain { . pub(in super::super) const fn new(a: A, b: B) -> Chain { 13,685 ( 0.00%) Chain { a: Some(a), b: Some(b) } . } . } . . /// Converts the arguments to iterators and links them together, in a chain. . /// . /// See the documentation of [`Iterator::chain`] for more. . /// . /// # Examples -- line 45 ---------------------------------------- -- line 73 ---------------------------------------- . impl Iterator for Chain . where . A: Iterator, . B: Iterator, . { . type Item = A::Item; . . #[inline] 1,311 ( 0.00%) fn next(&mut self) -> Option { 570 ( 0.00%) and_then_or_clear(&mut self.a, Iterator::next).or_else(|| self.b.as_mut()?.next()) 1,343 ( 0.00%) } . . #[inline] . #[rustc_inherit_overflow_checks] . fn count(self) -> usize { . let a_count = match self.a { . Some(a) => a.count(), . None => 0, . }; . let b_count = match self.b { . Some(b) => b.count(), . None => 0, . }; . a_count + b_count . } . 1,956 ( 0.00%) fn try_fold(&mut self, mut acc: Acc, mut f: F) -> R . where . Self: Sized, . F: FnMut(Acc, Self::Item) -> R, . R: Try, . { 732 ( 0.00%) if let Some(ref mut a) = self.a { . acc = a.try_fold(acc, &mut f)?; 2 ( 0.00%) self.a = None; . } 2 ( 0.00%) if let Some(ref mut b) = self.b { 4 ( 0.00%) acc = b.try_fold(acc, f)?; . // we don't fuse the second iterator . } . try { acc } 2,439 ( 0.00%) } . . fn fold(self, mut acc: Acc, mut f: F) -> Acc . where . F: FnMut(Acc, Self::Item) -> Acc, . { 13,590 ( 0.00%) if let Some(a) = self.a { . acc = a.fold(acc, &mut f); . } 10,450 ( 0.00%) if let Some(b) = self.b { . acc = b.fold(acc, f); . } . acc . } . . #[inline] . fn advance_by(&mut self, mut n: usize) -> Result<(), NonZero> { . if let Some(ref mut a) = self.a { -- line 131 ---------------------------------------- -- line 175 ---------------------------------------- . // Must exhaust a before b. . let a_last = self.a.and_then(Iterator::last); . let b_last = self.b.and_then(Iterator::last); . b_last.or(a_last) . } . . #[inline] . fn size_hint(&self) -> (usize, Option) { 70,971 ( 0.00%) match self { . Chain { a: Some(a), b: Some(b) } => { . let (a_lower, a_upper) = a.size_hint(); 10,450 ( 0.00%) let (b_lower, b_upper) = b.size_hint(); . . let lower = a_lower.saturating_add(b_lower); . . let upper = match (a_upper, b_upper) { . (Some(x), Some(y)) => x.checked_add(y), . _ => None, . }; . -- line 194 ---------------------------------------- -- line 325 ---------------------------------------- . fn default() -> Self { . Chain::new(Default::default(), Default::default()) . } . } . . #[inline] . fn and_then_or_clear(opt: &mut Option, f: impl FnOnce(&mut T) -> Option) -> Option { . let x = f(opt.as_mut()?); 420 ( 0.00%) if x.is_none() { 2,505 ( 0.00%) *opt = None; . } . x . } 18,213 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/no_effect.rs -------------------------------------------------------------------------------- Ir -- line 74 ---------------------------------------- . } . . impl_lint_pass!(NoEffect => [ . NO_EFFECT, . NO_EFFECT_UNDERSCORE_BINDING, . UNNECESSARY_OPERATION, . ]); . 10 ( 0.00%) #[derive(Default)] . pub struct NoEffect { . underscore_bindings: HirIdMap, . local_bindings: Vec>, . } . . impl<'tcx> LateLintPass<'tcx> for NoEffect { 19,080 ( 0.00%) fn check_stmt(&mut self, cx: &LateContext<'tcx>, stmt: &'tcx Stmt<'_>) { . if self.check_no_effect(cx, stmt) { . return; . } . check_unnecessary_operation(cx, stmt); 16,960 ( 0.00%) } . . fn check_block(&mut self, _: &LateContext<'tcx>, _: &'tcx rustc_hir::Block<'tcx>) { 2 ( 0.00%) self.local_bindings.push(Vec::default()); . } . 27,328 ( 0.00%) fn check_block_post(&mut self, cx: &LateContext<'tcx>, _: &'tcx rustc_hir::Block<'tcx>) { . for hir_id in self.local_bindings.pop().unwrap() { . if let Some(span) = self.underscore_bindings.swap_remove(&hir_id) { . span_lint_hir( . cx, . NO_EFFECT_UNDERSCORE_BINDING, . hir_id, . span, . "binding to `_` prefixed variable with no side-effect", . ); . } . } 31,232 ( 0.00%) } . . fn check_expr(&mut self, _: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 36,192 ( 0.00%) if let Some(def_id) = expr.res_local_id() { 12,064 ( 0.00%) self.underscore_bindings.swap_remove(&def_id); 253,344 ( 0.00%) => /rust/deps/indexmap-2.14.0/src/map.rs:>::swap_remove:: (12,064x) . } . } . } . . impl NoEffect { . fn check_no_effect<'tcx>(&mut self, cx: &LateContext<'tcx>, stmt: &Stmt<'tcx>) -> bool { 9,672 ( 0.00%) if let StmtKind::Semi(expr) = stmt.kind { . // Covered by rustc `path_statements` lint 1,276 ( 0.00%) if matches!(expr.kind, ExprKind::Path(_)) { . return true; . } . 2,552 ( 0.00%) if expr.range_span().unwrap_or(expr.span).from_expansion() { 14,188 ( 0.00%) => ???:::range_span (638x) . return false; . } . let expr = peel_blocks(expr); . . if is_operator_overridden(cx, expr) { . // Return `true`, to prevent `check_unnecessary_operation` from . // linting on this statement as well. . return true; . } 430 ( 0.00%) if has_no_effect(cx, expr) { 2,532 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/no_effect.rs:clippy_lints::no_effect::has_no_effect (86x) . span_lint_hir_and_then( . cx, . NO_EFFECT, . expr.hir_id, . stmt.span, . "statement with no effect", . |diag| { . for parent in cx.tcx.hir_parent_iter(stmt.hir_id) { -- line 147 ---------------------------------------- -- line 176 ---------------------------------------- . ); . } . } . } . }, . ); . return true; . } 783 ( 0.00%) } else if let StmtKind::Let(local) = stmt.kind 5,481 ( 0.00%) && !is_lint_allowed(cx, NO_EFFECT_UNDERSCORE_BINDING, local.hir_id) 725,316 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_lint_allowed (783x) . && !matches!(local.source, LocalSource::AsyncFn) . && let Some(init) = local.init . && local.els.is_none() . && !local.span.from_expansion() . && has_no_effect(cx, init) . && let PatKind::Binding(_, hir_id, ident, _) = local.pat.kind . && ident.name.to_ident_string().starts_with('_') . && !in_automatically_derived(cx.tcx, local.hir_id) -- line 193 ---------------------------------------- -- line 203 ---------------------------------------- . } . } . . fn is_operator_overridden(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool { . // It's very hard or impossible to check whether overridden operator have side-effect this lint. . // So, this function assume user-defined operator is overridden with an side-effect. . // The definition of user-defined structure here is ADT-type, . // Althrough this will weaken the ability of this lint, less error lint-fix happen. 258 ( 0.00%) match expr.kind { . ExprKind::Binary(..) | ExprKind::Unary(..) => { . // No need to check type of `lhs` and `rhs` . // because if the operator is overridden, at least one operand is ADT type . . // reference: rust/compiler/rustc_middle/src/ty/typeck_results.rs: `is_method_call`. . // use this function to check whether operator is overridden in `ExprKind::{Binary, Unary}`. . cx.typeck_results().is_method_call(expr) . }, -- line 219 ---------------------------------------- -- line 222 ---------------------------------------- . } . . /// Checks if dropping `expr` might have a visible side effect. . fn expr_ty_has_significant_drop(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool { . let ty = cx.typeck_results().expr_ty(expr); . ty.has_significant_drop(cx.tcx, cx.typing_env()) . } . 946 ( 0.00%) fn has_no_effect(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool { 688 ( 0.00%) match expr.kind { . ExprKind::Lit(..) | ExprKind::Closure { .. } => true, . ExprKind::Path(..) => !expr_ty_has_significant_drop(cx, expr), . ExprKind::Index(a, b, _) | ExprKind::Binary(_, a, b) => has_no_effect(cx, a) && has_no_effect(cx, b), . ExprKind::Array(v) | ExprKind::Tup(v) => v.iter().all(|val| has_no_effect(cx, val)), . ExprKind::Repeat(inner, _) . | ExprKind::Cast(inner, _) . | ExprKind::Type(inner, _) . | ExprKind::Unary(_, inner) -- line 239 ---------------------------------------- -- line 242 ---------------------------------------- . ExprKind::Struct(_, fields, base) => { . !expr_ty_has_significant_drop(cx, expr) . && fields.iter().all(|field| has_no_effect(cx, field.expr)) . && match &base { . StructTailExpr::None | StructTailExpr::NoneWithError(_) | StructTailExpr::DefaultFields(_) => true, . StructTailExpr::Base(base) => has_no_effect(cx, base), . } . }, 1 ( 0.00%) ExprKind::Call(callee, args) => { 2 ( 0.00%) if let ExprKind::Path(ref qpath) = callee.kind { 5 ( 0.00%) if cx.typeck_results().type_dependent_def(expr.hir_id).is_some() { 41 ( 0.00%) => ???:::type_dependent_def (1x) . // type-dependent function call like `impl FnOnce for X` . return false; . } 4 ( 0.00%) let def_matched = matches!( 10 ( 0.00%) cx.qpath_res(qpath, callee.hir_id), 23 ( 0.00%) => ???:::qpath_res (1x) . Res::Def(DefKind::Struct | DefKind::Variant | DefKind::Ctor(..), ..) . ); 4 ( 0.00%) if def_matched || is_range_literal(expr) { 21 ( 0.00%) => ???:rustc_hir::hir::is_range_literal (1x) . !expr_ty_has_significant_drop(cx, expr) && args.iter().all(|arg| has_no_effect(cx, arg)) . } else { . false . } . } else { . false . } . }, . _ => false, . } 688 ( 0.00%) } . . fn check_unnecessary_operation(cx: &LateContext<'_>, stmt: &Stmt<'_>) { 1,656 ( 0.00%) if let StmtKind::Semi(expr) = stmt.kind 1,926 ( 0.00%) && !stmt.span.in_external_macro(cx.sess().source_map()) . && let ctxt = stmt.span.ctxt() 2,504 ( 0.00%) && expr.range_span().unwrap_or(expr.span).ctxt() == ctxt 13,868 ( 0.00%) => ???:::range_span (626x) 3,756 ( 0.00%) && let Some(reduced) = reduce_expression(cx, expr) 39,611 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/no_effect.rs:clippy_lints::no_effect::reduce_expression (626x) . && reduced.iter().all(|e| e.span.ctxt() == ctxt) . { . if let ExprKind::Index(..) = &expr.kind { . if !is_inside_always_const_context(cx.tcx, expr.hir_id) . && let [arr, func] = &*reduced . && let Some(arr) = arr.span.get_text(cx) . && let Some(func) = func.span.get_text(cx) . { -- line 286 ---------------------------------------- -- line 325 ---------------------------------------- . Applicability::MachineApplicable, . ); . }, . ); . } . } . } . 6,886 ( 0.00%) fn reduce_expression<'a>(cx: &LateContext<'_>, expr: &'a Expr<'a>) -> Option>> { 2,504 ( 0.00%) if expr.range_span().unwrap_or(expr.span).from_expansion() { 13,868 ( 0.00%) => ???:::range_span (626x) . return None; . } 602 ( 0.00%) match expr.kind { . ExprKind::Index(a, b, _) => Some(vec![a, b]), . ExprKind::Binary(ref binop, a, b) if binop.node != BinOpKind::And && binop.node != BinOpKind::Or => { . Some(vec![a, b]) . }, . ExprKind::Array(v) | ExprKind::Tup(v) => Some(v.iter().collect()), . ExprKind::Repeat(inner, _) . | ExprKind::Type(inner, _) . | ExprKind::Unary(_, inner) -- line 345 ---------------------------------------- -- line 359 ---------------------------------------- . } else { . let base = match base { . StructTailExpr::Base(base) => Some(base), . StructTailExpr::None | StructTailExpr::NoneWithError(_) | StructTailExpr::DefaultFields(_) => None, . }; . Some(fields.iter().map(|f| &f.expr).chain(base).map(Deref::deref).collect()) . } . }, 1 ( 0.00%) ExprKind::Call(callee, args) => { 2 ( 0.00%) if let ExprKind::Path(ref qpath) = callee.kind { 6 ( 0.00%) if cx.typeck_results().type_dependent_def(expr.hir_id).is_some() { 41 ( 0.00%) => ???:::type_dependent_def (1x) . // type-dependent function call like `impl FnOnce for X` . return None; . } 5 ( 0.00%) let res = cx.qpath_res(qpath, callee.hir_id); 23 ( 0.00%) => ???:::qpath_res (1x) 14 ( 0.00%) match res { . Res::Def(DefKind::Struct | DefKind::Variant | DefKind::Ctor(..), ..) . if !has_drop(cx, cx.typeck_results().expr_ty(expr)) => . { . Some(args.iter().collect()) . }, . _ => None, . } . } else { -- line 382 ---------------------------------------- -- line 394 ---------------------------------------- . } . }) . } else { . None . } . }, . _ => None, . } 5,008 ( 0.00%) } 2,701 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs -------------------------------------------------------------------------------- Ir -- line 136 ---------------------------------------- . . impl Lifetimes { . pub fn new(conf: &'static Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl<'tcx> LateLintPass<'tcx> for Lifetimes { 13,518 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'_>) { 2,886 ( 0.00%) if let ItemKind::Fn { . ref sig, 22 ( 0.00%) generics, 66 ( 0.00%) body: id, . .. 3,004 ( 0.00%) } = item.kind . { 132 ( 0.00%) check_fn_inner(cx, sig, Some(id), None, generics, item.span, true, self.msrv, || { . is_from_proc_macro(cx, item) . }); . } else if let ItemKind::Impl(impl_) = &item.kind 1,620 ( 0.00%) && !item.span.from_expansion() 596 ( 0.00%) && !is_from_proc_macro(cx, item) . { . report_extra_impl_lifetimes(cx, impl_); . } 12,016 ( 0.00%) } . 30,330 ( 0.00%) fn check_poly_trait_ref(&mut self, cx: &LateContext<'tcx>, poly_trait_ref: &'tcx PolyTraitRef<'tcx>) { 6,740 ( 0.00%) if !poly_trait_ref.span.from_expansion() { 1,746 ( 0.00%) report_extra_trait_object_lifetimes(cx, poly_trait_ref.bound_generic_params, &poly_trait_ref.trait_ref); . } 26,960 ( 0.00%) } . 21,357 ( 0.00%) fn check_impl_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx ImplItem<'_>) { 20,142 ( 0.00%) if let ImplItemKind::Fn(ref sig, id) = item.kind { 7,938 ( 0.00%) let report_extra_lifetimes = trait_ref_of_method(cx, item.owner_id).is_none(); 522,970 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::trait_ref_of_method (2,646x) 2,646 ( 0.00%) check_fn_inner( . cx, . sig, . Some(id), . None, 5,292 ( 0.00%) item.generics, 2,646 ( 0.00%) item.span, . report_extra_lifetimes, 2,646 ( 0.00%) self.msrv, . || is_from_proc_macro(cx, item), . ); . } 24,408 ( 0.00%) } . 1,281 ( 0.00%) fn check_trait_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx TraitItem<'_>) { 732 ( 0.00%) if let TraitItemKind::Fn(ref sig, ref body) = item.kind { 1,628 ( 0.00%) let (body, trait_sig) = match *body { . TraitFn::Required(sig) => (None, Some(sig)), . TraitFn::Provided(id) => (Some(id), None), . }; 296 ( 0.00%) check_fn_inner( . cx, . sig, . body, . trait_sig, 296 ( 0.00%) item.generics, 148 ( 0.00%) item.span, . true, 148 ( 0.00%) self.msrv, . || is_from_proc_macro(cx, item), . ); . } 1,464 ( 0.00%) } . } . . #[expect(clippy::too_many_arguments)] . fn check_fn_inner<'tcx>( . cx: &LateContext<'tcx>, . sig: &'tcx FnSig<'_>, . body: Option, . trait_sig: Option<&[Option]>, . generics: &'tcx Generics<'_>, . span: Span, . report_extra_lifetimes: bool, . msrv: Msrv, . is_from_proc_macro: impl FnOnce() -> bool, . ) { 28,008 ( 0.00%) if span.in_external_macro(cx.sess().source_map()) || has_where_lifetimes(cx, generics) { 1,745,376 ( 0.02%) => site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:clippy_lints::lifetimes::has_where_lifetimes (2,627x) . return; . } . 2,486 ( 0.00%) let types = generics . .params . .iter() 1,730 ( 0.00%) .filter(|param| matches!(param.kind, GenericParamKind::Type { .. })); . . for typ in types { 681 ( 0.00%) if !typ.span.eq_ctxt(span) { . return; . } . . for pred in generics.bounds_for_param(typ.def_id) { 667 ( 0.00%) if pred.origin == PredicateOrigin::WhereClause { . // has_where_lifetimes checked that this predicate contains no lifetime. . continue; . } . 2 ( 0.00%) for bound in pred.bounds { . let mut visitor = RefVisitor::new(cx); 6 ( 0.00%) walk_param_bound(&mut visitor, bound); 214 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_param_bound:: (1x) . if visitor.lts.iter().any(|lt| matches!(lt.kind, LifetimeKind::Param(_))) { . return; . } 4 ( 0.00%) if let GenericBound::Trait(ref trait_ref) = *bound { 6 ( 0.00%) let params = &trait_ref . .trait_ref . .path . .segments . .last() . .expect("a path must have at least one segment") . .args; 6 ( 0.00%) if let Some(params) = *params { . let lifetimes = params.args.iter().filter_map(|arg| match arg { . GenericArg::Lifetime(lt) => Some(lt), . _ => None, . }); . for bound in lifetimes { . if bound.kind != LifetimeKind::Static && !bound.is_elided() { . return; . } . } . } . } 2 ( 0.00%) } 10 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:core::ptr::drop_glue:: (1x) . } . } . 15,973 ( 0.00%) let elidable = could_use_elision(cx, sig.decl, body, trait_sig, generics.params, msrv); 2,337,143 ( 0.03%) => site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:clippy_lints::lifetimes::could_use_elision (1,135x) . let has_elidable_lts = elidable . .as_ref() . .is_some_and(|(_, usages)| !usages.iter().any(|usage| !usage.ident.span.eq_ctxt(span))); . . // Only check is_from_proc_macro if we're about to emit a lint (it's an expensive check) 1,516 ( 0.00%) if (has_elidable_lts || report_extra_lifetimes) && is_from_proc_macro() { . return; . } . 163 ( 0.00%) if let Some((elidable_lts, usages)) = elidable . && has_elidable_lts . { . // async functions have usages whose spans point at the lifetime declaration which messes up . // suggestions . let include_suggestions = !sig.header.is_async(); . report_elidable_lifetimes(cx, generics, &elidable_lts, &usages, include_suggestions); . } . 55 ( 0.00%) if report_extra_lifetimes { 815 ( 0.00%) self::report_extra_lifetimes(cx, sig.decl, generics); 18,815 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:clippy_lints::lifetimes::report_extra_lifetimes (55x) . } . } . 18,645 ( 0.00%) fn could_use_elision<'tcx>( . cx: &LateContext<'tcx>, . func: &'tcx FnDecl<'_>, . body: Option, . trait_sig: Option<&[Option]>, . named_generics: &'tcx [GenericParam<'_>], . msrv: Msrv, . ) -> Option<(Vec, Vec)> { . // There are two scenarios where elision works: -- line 301 ---------------------------------------- -- line 307 ---------------------------------------- . // check named LTs . let allowed_lts = allowed_lts_from(named_generics); . . // these will collect all the lifetimes for references in arg/return types . let mut input_visitor = RefVisitor::new(cx); . let mut output_visitor = RefVisitor::new(cx); . . // extract lifetimes in input argument types 1,243 ( 0.00%) for arg in func.inputs { . input_visitor.visit_ty_unambig(arg); . } . // extract lifetimes in output type 3,728 ( 0.00%) if let Return(ty) = func.output { . output_visitor.visit_ty_unambig(ty); . } . for lt in named_generics { . input_visitor.visit_generic_param(lt); . } . 4,972 ( 0.00%) if input_visitor.abort() || output_visitor.abort() { . return None; . } . 4,972 ( 0.00%) let input_lts = input_visitor.lts; 6,215 ( 0.00%) let output_lts = output_visitor.lts; . 7,473 ( 0.00%) if let Some(&[trait_sig]) = trait_sig 90 ( 0.00%) && non_elidable_self_type(cx, func, trait_sig, msrv) 405 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:clippy_lints::lifetimes::non_elidable_self_type (15x) . { . return None; . } . 2,486 ( 0.00%) if let Some(body_id) = body { 7,146 ( 0.00%) let body = cx.tcx.hir_body(body_id); 66,699 ( 0.00%) => ???:::hir_body (1,191x) . 2,372 ( 0.00%) let first_ident = body.params.first().and_then(|param| param.pat.simple_ident()); 7,146 ( 0.00%) if non_elidable_self_type(cx, func, first_ident, msrv) { 33,445 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:clippy_lints::lifetimes::non_elidable_self_type (1,191x) . return None; . } . . let mut checker = BodyLifetimeChecker::new(cx); 3,573 ( 0.00%) if checker.visit_expr(body.value).is_break() { . return None; . } . } . . // check for lifetimes from higher scopes . for lt in input_lts.iter().chain(output_lts.iter()) { . if let Some(id) = named_lifetime(lt) . && !allowed_lts.contains(&id) . { . return None; . } . } . . // check for higher-ranked trait bounds 2,422 ( 0.00%) if !input_visitor.nested_elision_site_lts.is_empty() || !output_visitor.nested_elision_site_lts.is_empty() { . let allowed_lts: FxHashSet<_> = allowed_lts.iter().map(|id| cx.tcx.item_name(id.to_def_id())).collect(); . for lt in input_visitor.nested_elision_site_lts { . if allowed_lts.contains(<.ident.name) { . return None; . } . } . for lt in output_visitor.nested_elision_site_lts { . if allowed_lts.contains(<.ident.name) { -- line 371 ---------------------------------------- -- line 376 ---------------------------------------- . . // A lifetime can be newly elided if: . // - It occurs only once among the inputs. . // - If there are multiple input lifetimes, then the newly elided lifetime does not occur among the . // outputs (because eliding such an lifetime would create an ambiguity). . let elidable_lts = named_lifetime_occurrences(&input_lts) . .into_iter() . .filter_map(|(def_id, occurrences)| { 6 ( 0.00%) if occurrences == 1 2 ( 0.00%) && (input_lts.len() == 1 || !output_lts.iter().any(|lt| named_lifetime(lt) == Some(def_id))) . { . Some(def_id) . } else { . None . } . }) . .collect::>(); . 1,211 ( 0.00%) if elidable_lts.is_empty() { 1,211 ( 0.00%) return None; . } . . let usages = itertools::chain(input_lts, output_lts).collect(); . . Some((elidable_lts, usages)) 17,402 ( 0.00%) } . . fn allowed_lts_from(named_generics: &[GenericParam<'_>]) -> FxIndexSet { . named_generics . .iter() . .filter_map(|par| { 5,190 ( 0.00%) if let GenericParamKind::Lifetime { .. } = par.kind { . Some(par.def_id) . } else { . None . } . }) . .collect() . } . . // elision doesn't work for explicit self types before Rust 1.81, see rust-lang/rust#69064 4,824 ( 0.00%) fn non_elidable_self_type<'tcx>(cx: &LateContext<'tcx>, func: &FnDecl<'tcx>, ident: Option, msrv: Msrv) -> bool { 2,412 ( 0.00%) if let Some(ident) = ident 1,199 ( 0.00%) && ident.name == kw::SelfLower 3,396 ( 0.00%) && !func.implicit_self().has_implicit_self() 9,056 ( 0.00%) => ???:::implicit_self (1,132x) . && let Some(self_ty) = func.inputs.first() . && !msrv.meets(cx, msrvs::EXPLICIT_SELF_TYPE_ELISION) . { . let mut visitor = RefVisitor::new(cx); . visitor.visit_ty_unambig(self_ty); . . !visitor.all_lts().is_empty() . } else { . false . } 6,030 ( 0.00%) } . . /// Number of times each named lifetime occurs in the given slice. Returns a vector to preserve . /// relative order. . #[must_use] . fn named_lifetime_occurrences(lts: &[Lifetime]) -> Vec<(LocalDefId, usize)> { . let mut occurrences = Vec::new(); . for lt in lts { . if let Some(curr_def_id) = named_lifetime(lt) { . if let Some(pair) = occurrences . .iter_mut() . .find(|(prev_def_id, _)| *prev_def_id == curr_def_id) . { 4 ( 0.00%) pair.1 += 1; . } else { . occurrences.push((curr_def_id, 1)); . } . } . } 2,300 ( 0.00%) occurrences . } . . fn named_lifetime(lt: &Lifetime) -> Option { 12,557 ( 0.00%) match lt.kind { 3,773 ( 0.00%) LifetimeKind::Param(id) if !lt.is_anonymous() => Some(id), . _ => None, . } . } . . struct RefVisitor<'a, 'tcx> { . cx: &'a LateContext<'tcx>, . lts: Vec, . nested_elision_site_lts: Vec, . unelided_trait_object_lifetime: bool, . } . . impl<'a, 'tcx> RefVisitor<'a, 'tcx> { . fn new(cx: &'a LateContext<'tcx>) -> Self { 41,129 ( 0.00%) Self { . cx, . lts: Vec::new(), . nested_elision_site_lts: Vec::new(), . unelided_trait_object_lifetime: false, . } . } . . fn all_lts(&self) -> Vec { -- line 477 ---------------------------------------- -- line 488 ---------------------------------------- . } . . impl<'tcx> Visitor<'tcx> for RefVisitor<'_, 'tcx> { . // for lifetimes as parameters of generics . fn visit_lifetime(&mut self, lifetime: &'tcx Lifetime) { . self.lts.push(*lifetime); . } . 20,529 ( 0.00%) fn visit_poly_trait_ref(&mut self, poly_tref: &'tcx PolyTraitRef<'tcx>) { 2,281 ( 0.00%) let trait_ref = &poly_tref.trait_ref; 6,843 ( 0.00%) if let Some(id) = trait_ref.trait_def_id() 29,653 ( 0.00%) => ???:::trait_def_id (2,281x) 4,562 ( 0.00%) && lang_items::FN_TRAITS . .iter() 13,686 ( 0.00%) .any(|&item| self.cx.tcx.lang_items().get(item) == Some(id)) 205,290 ( 0.00%) => ???:::lang_items (6,843x) . { . let mut sub_visitor = RefVisitor::new(self.cx); . sub_visitor.visit_trait_ref(trait_ref); . self.nested_elision_site_lts.append(&mut sub_visitor.all_lts()); . } else { . walk_poly_trait_ref(self, poly_tref); . } 18,248 ( 0.00%) } . 75,840 ( 0.00%) fn visit_ty(&mut self, ty: &'tcx Ty<'_, AmbigArg>) { 47,400 ( 0.00%) match ty.kind { . TyKind::FnPtr(&FnPtrTy { decl, .. }) => { . let mut sub_visitor = RefVisitor::new(self.cx); . sub_visitor.visit_fn_decl(decl); . self.nested_elision_site_lts.append(&mut sub_visitor.all_lts()); . }, 15 ( 0.00%) TyKind::TraitObject(bounds, lt) => { . if !lt.is_elided() { . self.unelided_trait_object_lifetime = true; . } . for bound in bounds { 10 ( 0.00%) self.visit_poly_trait_ref(bound); 950 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:::visit_poly_trait_ref (5x) . } . }, 85,275 ( 0.00%) _ => walk_ty(self, ty), 614,798 ( 0.01%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_ty:: (5,813x) . } 40 ( 0.00%) } . } . . /// Are any lifetimes mentioned in the `where` clause? If so, we don't try to . /// reason about elision. 22,376 ( 0.00%) fn has_where_lifetimes<'tcx>(cx: &LateContext<'tcx>, generics: &'tcx Generics<'_>) -> bool { . for predicate in generics.predicates { 11,110 ( 0.00%) match *predicate.kind { . WherePredicateKind::RegionPredicate(..) => return true, . WherePredicateKind::BoundPredicate(ref pred) => { . // a predicate like F: Trait or F: for<'a> Trait<'a> . let mut visitor = RefVisitor::new(cx); . // walk the type F, it may not contain LT refs 2,220 ( 0.00%) walk_unambig_ty(&mut visitor, pred.bounded_ty); 2,220 ( 0.00%) if !visitor.all_lts().is_empty() { . return true; . } . // if the bounds define new lifetimes, they are fine to occur 4,440 ( 0.00%) let allowed_lts = allowed_lts_from(pred.bound_generic_params); . // now walk the bounds 2,220 ( 0.00%) for bound in pred.bounds { . walk_param_bound(&mut visitor, bound); . } . // and check that all lifetimes are allowed 3,104 ( 0.00%) for lt in visitor.all_lts() { . if let Some(id) = named_lifetime(<) . && !allowed_lts.contains(&id) . { . return true; . } . } . }, . } . } . false 22,376 ( 0.00%) } . . #[expect(clippy::struct_excessive_bools)] . struct Usage { . lifetime: Lifetime, . in_where_predicate: bool, . in_bounded_ty: bool, . in_generics_arg: bool, . lifetime_elision_impossible: bool, -- line 571 ---------------------------------------- -- line 583 ---------------------------------------- . . impl<'cx, 'tcx, F> LifetimeChecker<'cx, 'tcx, F> . where . F: NestedFilter<'tcx>, . { . fn new(cx: &'cx LateContext<'tcx>, generic_params: &'tcx [GenericParam<'_>]) -> LifetimeChecker<'cx, 'tcx, F> { . let map = generic_params . .iter() 1,834 ( 0.00%) .filter_map(|par| match par.kind { . GenericParamKind::Lifetime { . kind: LifetimeParamKind::Explicit, 244 ( 0.00%) } => Some((par.def_id, Vec::new())), . _ => None, . }) . .collect(); . 5,336 ( 0.00%) Self { . cx, . map, . where_predicate_depth: 0, . bounded_ty_depth: 0, . generic_args_depth: 0, . lifetime_elision_impossible: false, . phantom: std::marker::PhantomData, . } -- line 607 ---------------------------------------- -- line 613 ---------------------------------------- . &mut self, . hir_id: HirId, . bounded_ty: &'tcx Ty<'tcx>, . bounds: &'tcx [GenericBound<'tcx>], . bound_generic_params: &'tcx [GenericParam<'tcx>], . ) { . try_visit!(self.visit_id(hir_id)); . 3,783 ( 0.00%) self.bounded_ty_depth += 1; . try_visit!(self.visit_ty_unambig(bounded_ty)); 3,783 ( 0.00%) self.bounded_ty_depth -= 1; . . walk_list!(self, visit_param_bound, bounds); . walk_list!(self, visit_generic_param, bound_generic_params); . } . } . . impl<'tcx, F> Visitor<'tcx> for LifetimeChecker<'_, 'tcx, F> . where . F: NestedFilter<'tcx>, . { . type MaybeTyCtxt = TyCtxt<'tcx>; . type NestedFilter = F; . . // for lifetimes as parameters of generics . fn visit_lifetime(&mut self, lifetime: &'tcx Lifetime) { 14,992 ( 0.00%) if let LifetimeKind::Param(def_id) = lifetime.kind 10,084 ( 0.00%) && let Some(usages) = self.map.get_mut(&def_id) 4,328 ( 0.00%) => /rust/deps/indexmap-2.14.0/src/map.rs:, rustc_hash::FxBuildHasher>>::get_mut:: (359x) . { . usages.push(Usage { . lifetime: *lifetime, 3,369 ( 0.00%) in_where_predicate: self.where_predicate_depth != 0, 3,359 ( 0.00%) in_bounded_ty: self.bounded_ty_depth != 0, 3,393 ( 0.00%) in_generics_arg: self.generic_args_depth != 0, 1,678 ( 0.00%) lifetime_elision_impossible: self.lifetime_elision_impossible, . }); . } . } . 7,596 ( 0.00%) fn visit_where_predicate(&mut self, predicate: &'tcx WherePredicate<'tcx>) { 1,266 ( 0.00%) self.where_predicate_depth += 1; 1,266 ( 0.00%) if let &WherePredicateKind::BoundPredicate(WhereBoundPredicate { 1,261 ( 0.00%) bounded_ty, 2,522 ( 0.00%) bounds, 2,522 ( 0.00%) bound_generic_params, . origin: _, 2,532 ( 0.00%) }) = predicate.kind . { . self.visit_where_bound_predicate(predicate.hir_id, bounded_ty, bounds, bound_generic_params); . } else { 10 ( 0.00%) walk_where_predicate(self, predicate); 2,250 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_where_predicate::> (5x) . } 1,266 ( 0.00%) self.where_predicate_depth -= 1; 7,596 ( 0.00%) } . 3,336 ( 0.00%) fn visit_generic_args(&mut self, generic_args: &'tcx GenericArgs<'tcx>) -> Self::Result { 3,727 ( 0.00%) self.generic_args_depth += 1; . walk_generic_args(self, generic_args); 5,604 ( 0.00%) self.generic_args_depth -= 1; 3,336 ( 0.00%) } . . fn visit_fn_decl(&mut self, fd: &'tcx FnDecl<'tcx>) -> Self::Result { 1,422 ( 0.00%) self.lifetime_elision_impossible = !is_candidate_for_elision(fd); . walk_fn_decl(self, fd); 1,308 ( 0.00%) self.lifetime_elision_impossible = false; . } . . fn maybe_tcx(&mut self) -> Self::MaybeTyCtxt { 2,948 ( 0.00%) self.cx.tcx . } . } . . /// Check if `fd` supports function elision with an anonymous (or elided) lifetime, . /// and has a lifetime somewhere in its output type. . fn is_candidate_for_elision(fd: &FnDecl<'_>) -> bool { . struct V; . . impl Visitor<'_> for V { . type Result = ControlFlow; . . fn visit_lifetime(&mut self, lifetime: &Lifetime) -> Self::Result { 61 ( 0.00%) ControlFlow::Break(lifetime.is_elided() || lifetime.is_anonymous()) . } . } . 6,540 ( 0.00%) if fd.lifetime_elision_allowed() 374 ( 0.00%) && let Return(ret_ty) = fd.output 374 ( 0.00%) && walk_unambig_ty(&mut V, ret_ty).is_break() . { . // The first encountered input lifetime will either be one on `self`, or will be the only lifetime. 57 ( 0.00%) fd.inputs . .iter() . .find_map(|ty| walk_unambig_ty(&mut V, ty).break_value()) . .unwrap() . } else { . false . } . } . -- line 711 ---------------------------------------- -- line 717 ---------------------------------------- . let mut checker = LifetimeChecker::::new(cx, generic_params); . . for param in generic_params { . walk_generic_param(&mut checker, param); . } . . walk_trait_ref(&mut checker, trait_ref); . 3,494 ( 0.00%) for (def_id, usages) in checker.map { . if usages . .iter() . .all(|usage| usage.in_where_predicate && !usage.in_bounded_ty && !usage.in_generics_arg) . { . span_lint( . cx, . EXTRA_UNUSED_LIFETIMES, . cx.tcx.def_span(def_id), . "this lifetime isn't used in the type", . ); . } . } . } . 1,630 ( 0.00%) fn report_extra_lifetimes<'tcx>(cx: &LateContext<'tcx>, func: &'tcx FnDecl<'_>, generics: &'tcx Generics<'_>) { 326 ( 0.00%) let mut checker = LifetimeChecker::::new(cx, generics.params); . 489 ( 0.00%) walk_generics(&mut checker, generics); 14,972 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_generics::> (163x) . walk_fn_decl(&mut checker, func); . 654 ( 0.00%) for (def_id, usages) in checker.map { . if usages . .iter() . .all(|usage| usage.in_where_predicate && !usage.in_bounded_ty && !usage.in_generics_arg) . { . span_lint( . cx, . EXTRA_UNUSED_LIFETIMES, . cx.tcx.def_span(def_id), . "this lifetime isn't used in the function definition", . ); . } . } 1,304 ( 0.00%) } . . fn report_extra_impl_lifetimes<'tcx>(cx: &LateContext<'tcx>, impl_: &'tcx Impl<'_>) { 894 ( 0.00%) let mut checker = LifetimeChecker::::new(cx, impl_.generics.params); . 1,192 ( 0.00%) walk_generics(&mut checker, impl_.generics); 64,444 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_generics::> (298x) 894 ( 0.00%) if let Some(of_trait) = impl_.of_trait { . walk_trait_ref(&mut checker, &of_trait.trait_ref); . } 298 ( 0.00%) walk_unambig_ty(&mut checker, impl_.self_ty); 1,728 ( 0.00%) for &item in impl_.items { . walk_impl_item_ref(&mut checker, item); . } . 239 ( 0.00%) for (&def_id, usages) in &checker.map { . if usages . .iter() . .all(|usage| usage.in_where_predicate && !usage.in_bounded_ty && !usage.in_generics_arg) . { . span_lint( . cx, . EXTRA_UNUSED_LIFETIMES, . cx.tcx.def_span(def_id), . "this lifetime isn't used in the impl", . ); . } . } . 612 ( 0.00%) report_elidable_impl_lifetimes(cx, impl_, &checker.map); . } . . // An `impl` lifetime is elidable if it satisfies the following conditions: . // - It is used exactly once. . // - That single use is not in a `WherePredicate`. . fn report_elidable_impl_lifetimes<'tcx>( . cx: &LateContext<'tcx>, . impl_: &'tcx Impl<'_>, . map: &FxIndexMap>, . ) { 1,490 ( 0.00%) let (elidable_lts, usages): (Vec<_>, Vec<_>) = map . .iter() . .filter_map(|(def_id, usages)| { 776 ( 0.00%) if let [ . Usage { . lifetime, . in_where_predicate: false, . lifetime_elision_impossible: false, . .. . }, . ] = usages.as_slice() . { . Some((def_id, lifetime)) . } else { . None . } . }) 596 ( 0.00%) .unzip(); 25,232 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:>, clippy_lints::lifetimes::report_elidable_impl_lifetimes::{closure#0}> as core::iter::traits::iterator::Iterator>::unzip::<&rustc_span::def_id::LocalDefId, &rustc_hir::hir::Lifetime, alloc::vec::Vec, alloc::vec::Vec> (298x) . 298 ( 0.00%) if elidable_lts.is_empty() { . return; . } . 402 ( 0.00%) report_elidable_lifetimes(cx, impl_.generics, &elidable_lts, &usages, true); 301,535 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:clippy_lints::lifetimes::report_elidable_lifetimes (67x) . } . . #[derive(Copy, Clone)] . enum ElidableUsage { . /// Used in a ref (`&'a T`), can be removed . Ref(Span), . /// Used as a generic param (`T<'a>`) or an impl lifetime (`impl T + 'a`), can be replaced . /// with `'_` . Other(Span), . } . . /// Generate diagnostic messages for elidable lifetimes. 1,005 ( 0.00%) fn report_elidable_lifetimes( . cx: &LateContext<'_>, . generics: &Generics<'_>, . elidable_lts: &[LocalDefId], . usages: &[Lifetime], . include_suggestions: bool, . ) { . let lts = elidable_lts . .iter() . // In principle, the result of the call to `Node::ident` could be `unwrap`ped, as `DefId` should refer to a . // `Node::GenericParam`. 296 ( 0.00%) .filter_map(|&def_id| cx.tcx.hir_node_by_def_id(def_id).ident()) 938 ( 0.00%) => ???:::ident (67x) . .format(", "); . . let elidable_usages: Vec = usages . .iter() . .filter(|usage| named_lifetime(usage).is_some_and(|id| elidable_lts.contains(&id))) 775 ( 0.00%) .map(|usage| match cx.tcx.parent_hir_node(usage.hir_id) { 6,512 ( 0.00%) => ???:::parent_hir_node (74x) . Node::Ty(Ty { . kind: TyKind::Ref(..), .. . }) => ElidableUsage::Ref(usage.ident.span), . _ => ElidableUsage::Other(usage.ident.span), . }) . .collect(); . . let lint = if elidable_usages . .iter() 67 ( 0.00%) .any(|usage| matches!(usage, ElidableUsage::Other(_))) . { . ELIDABLE_LIFETIME_NAMES . } else { . NEEDLESS_LIFETIMES . }; . 469 ( 0.00%) span_lint_and_then( 89,699 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/diagnostics.rs:clippy_utils::diagnostics::span_lint_and_then::, alloc::string::String, clippy_lints::lifetimes::report_elidable_lifetimes::{closure#6}> (67x) . cx, . lint, . elidable_lts . .iter() 74 ( 0.00%) .map(|<| cx.tcx.def_span(lt)) . .chain(usages.iter().filter_map(|usage| { 148 ( 0.00%) if let LifetimeKind::Param(def_id) = usage.kind . && elidable_lts.contains(&def_id) . { 74 ( 0.00%) return Some(usage.ident.span); . } . . None . })) . .collect_vec(), 201 ( 0.00%) format!("the following explicit lifetimes could be elided: {lts}"), 536 ( 0.00%) |diag| { . if !include_suggestions { . return; . } . . if let Some(suggestions) = elision_suggestions(cx, generics, elidable_lts, &elidable_usages) { . diag.multipart_suggestion("elide the lifetimes", suggestions, Applicability::MachineApplicable); . } . }, . ); 536 ( 0.00%) } . . fn elision_suggestions( . cx: &LateContext<'_>, . generics: &Generics<'_>, . elidable_lts: &[LocalDefId], . usages: &[ElidableUsage], . ) -> Option> { . let explicit_params = generics -- line 903 ---------------------------------------- -- line 971 ---------------------------------------- . } . . struct BodyLifetimeChecker<'tcx> { . tcx: TyCtxt<'tcx>, . } . . impl<'tcx> BodyLifetimeChecker<'tcx> { . fn new(cx: &LateContext<'tcx>) -> Self { 1,191 ( 0.00%) Self { tcx: cx.tcx } . } . } . . impl<'tcx> Visitor<'tcx> for BodyLifetimeChecker<'tcx> { . type Result = ControlFlow<()>; . type NestedFilter = middle_nested_filter::OnlyBodies; . . fn maybe_tcx(&mut self) -> Self::MaybeTyCtxt { . self.tcx . } . // for lifetimes as parameters of generics . fn visit_lifetime(&mut self, lifetime: &'tcx Lifetime) -> ControlFlow<()> { 126 ( 0.00%) if !lifetime.is_anonymous() && lifetime.ident.name != kw::StaticLifetime { . return ControlFlow::Break(()); . } . ControlFlow::Continue(()) . } . } 61,811 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/sync.rs -------------------------------------------------------------------------------- Ir -- line 2128 ---------------------------------------- . // `ArcInner` structure itself is `Sync` because the inner data is . // `Sync` as well, so we're ok loaning out an immutable pointer to these . // contents. . unsafe { self.ptr.as_ref() } . } . . // Non-inlined part of `drop`. . #[inline(never)] 2 ( 0.00%) unsafe fn drop_slow(&mut self) { . // Drop the weak ref collectively held by all strong references when this . // variable goes out of scope. This ensures that the memory is deallocated . // even if the destructor of `T` panics. . // Take a reference to `self.alloc` instead of cloning because 1. it'll last long . // enough, and 2. you should be able to drop `Arc`s with unclonable allocators 2 ( 0.00%) let _weak = Weak { ptr: self.ptr, alloc: &self.alloc }; . . // Destroy the data at this time, even though we must not free the box . // allocation itself (there might still be weak pointers lying around). . // We cannot use `get_mut_unchecked` here, because `self.alloc` is borrowed. . unsafe { ptr::drop_in_place(&mut (*self.ptr.as_ptr()).data) }; . } . . /// Returns `true` if the two `Arc`s point to the same allocation in a vein similar to -- line 2150 ---------------------------------------- -- line 2424 ---------------------------------------- . // the worst already happened and we actually do overflow the `usize` counter. However, that . // requires the counter to grow from `isize::MAX` to `usize::MAX` between the increment . // above and the `abort` below, which seems exceedingly unlikely. . // . // This is a global invariant, and also applies when using a compare-exchange loop to increment . // counters in other methods. . // Otherwise, the counter could be brought to an almost-overflow using a compare-exchange loop, . // and then overflow using a few `fetch_add`s. 6,586 ( 0.00%) if old_size > MAX_REFCOUNT { . abort(); . } . 13,150 ( 0.00%) unsafe { Self::from_inner_in(self.ptr, self.alloc.clone()) } . } . } . . #[unstable(feature = "ergonomic_clones", issue = "132290")] . impl UseCloned for Arc {} . . #[unstable(feature = "share_trait", issue = "156756")] . impl Share for Arc {} . . #[stable(feature = "rust1", since = "1.0.0")] . impl Deref for Arc { . type Target = T; . . #[inline] . fn deref(&self) -> &T { 335,535 ( 0.00%) &self.inner().data . } . } . . #[unstable(feature = "pin_coerce_unsized_trait", issue = "150112")] . unsafe impl PinCoerceUnsized for Arc {} . . #[unstable(feature = "deref_pure_trait", issue = "87121")] . unsafe impl DerefPure for Arc {} -- line 2460 ---------------------------------------- -- line 2850 ---------------------------------------- . /// drop(foo); // Doesn't print anything . /// drop(foo2); // Prints "dropped!" . /// ``` . #[inline] . fn drop(&mut self) { . // Because `fetch_sub` is already atomic, we do not need to synchronize . // with other threads unless we are going to delete the object. This . // same logic applies to the below `fetch_sub` to the `weak` count. 33,697 ( 0.00%) if self.inner().strong.fetch_sub(1, Release) != 1 { . return; . } . . // This fence is needed to prevent reordering of use of the data and . // deletion of the data. Because it is marked `Release`, the decreasing . // of the reference count synchronizes with this `Acquire` fence. This . // means that use of the data happens before decreasing the reference . // count, which happens before this fence, which happens before the -- line 2866 ---------------------------------------- -- line 2893 ---------------------------------------- . // used by Default::default. . debug_assert!( . !ptr::addr_eq(self.ptr.as_ptr(), &STATIC_INNER_SLICE.inner), . "Arcs backed by a static should never reach a strong count of 0. \ . Likely decrement_strong_count or from_raw were called too many times.", . ); . . unsafe { 6 ( 0.00%) self.drop_slow(); 16,597 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/sync.rs:>>>::drop_slow (1x) 4,140 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/sync.rs:>>>::drop_slow (1x) . } . } . } . . impl Arc { . /// Attempts to downcast the `Arc` to a concrete type. . /// . /// # Examples -- line 2909 ---------------------------------------- -- line 3372 ---------------------------------------- . } . } . . /// Returns `None` when the pointer is dangling and there is no allocated `ArcInner`, . /// (i.e., when this `Weak` was created by `Weak::new`). . #[inline] . fn inner(&self) -> Option> { . let ptr = self.ptr.as_ptr(); 2 ( 0.00%) if is_dangling(ptr) { . None . } else { . // We are careful to *not* create a reference covering the "data" field, as . // the field may be mutated concurrently (for example, if the last `Arc` . // is dropped, the data field will be dropped in-place). . Some(unsafe { WeakInner { strong: &(*ptr).strong, weak: &(*ptr).weak } }) . } . } -- line 3388 ---------------------------------------- -- line 3524 ---------------------------------------- . // the memory orderings . // . // It's not necessary to check for the locked state here, because the . // weak count can only be locked if there was precisely one weak ref, . // meaning that drop could only subsequently run ON that remaining weak . // ref, which can only happen after the lock is released. . let inner = if let Some(inner) = self.inner() { inner } else { return }; . 2 ( 0.00%) if inner.weak.fetch_sub(1, Release) == 1 { . acquire!(inner.weak); . . // Make sure we aren't trying to "deallocate" the shared static for empty slices . // used by Default::default. . debug_assert!( . !ptr::addr_eq(self.ptr.as_ptr(), &STATIC_INNER_SLICE.inner), . "Arc/Weaks backed by a static should never be deallocated. \ . Likely decrement_strong_count or from_raw were called too many times.", -- line 3540 ---------------------------------------- 1,188,347 ( 0.02%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/manual_clamp.rs -------------------------------------------------------------------------------- Ir -- line 134 ---------------------------------------- . struct InputMinMax<'tcx> { . input: &'tcx Expr<'tcx>, . min: &'tcx Expr<'tcx>, . max: &'tcx Expr<'tcx>, . is_float: bool, . } . . impl<'tcx> LateLintPass<'tcx> for ManualClamp { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { . // Cheap kind check before the costlier const context query. 44,400 ( 0.00%) if matches!( 88,800 ( 0.00%) expr.kind, . ExprKind::If(..) | ExprKind::Match(..) | ExprKind::MethodCall(..) | ExprKind::Call(..) 25,428 ( 0.00%) ) && !expr.span.from_expansion() 8,612 ( 0.00%) && !is_in_const_context(cx) 574,291 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_in_const_context (2,153x) . { . let suggestion = is_if_elseif_else_pattern(cx, expr) 4,266 ( 0.00%) .or_else(|| is_max_min_pattern(cx, expr)) . .or_else(|| is_call_max_min_pattern(cx, expr)) . .or_else(|| is_match_pattern(cx, expr)) . .or_else(|| is_if_elseif_pattern(cx, expr)); . if let Some(suggestion) = suggestion . && self.msrv.meets(cx, msrvs::CLAMP) . { . maybe_emit_suggestion(cx, &suggestion); . } . } 355,200 ( 0.00%) } . 27,328 ( 0.00%) fn check_block(&mut self, cx: &LateContext<'tcx>, block: &'tcx Block<'tcx>) { . // Cheap `if`-statement check before the costlier const context query. 3,904 ( 0.00%) if !block . .stmts . .iter() 4,300 ( 0.00%) .any(|stmt| matches!(stmt.kind, StmtKind::Expr(e) if matches!(e.kind, ExprKind::If(..)))) . { . return; . } . 1,342 ( 0.00%) if is_in_const_context(cx) || !self.msrv.meets(cx, msrvs::CLAMP) { 36,988 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_in_const_context (122x) 3,294 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/msrvs.rs:::meets (122x) . return; . } . for suggestion in is_two_if_pattern(cx, block) { . maybe_emit_suggestion(cx, &suggestion); . } 31,232 ( 0.00%) } . } . . fn maybe_emit_suggestion<'tcx>(cx: &LateContext<'tcx>, suggestion: &ClampSuggestion<'tcx>) { . if !suggestion.min_less_than_max(cx) { . return; . } . let ClampSuggestion { . params: InputMinMax { -- line 187 ---------------------------------------- -- line 227 ---------------------------------------- . Float, . Ord, . } . . impl TypeClampability { . fn is_clampable<'tcx>(cx: &LateContext<'tcx>, ty: Ty<'tcx>) -> Option { . if ty.is_floating_point() { . Some(TypeClampability::Float) 12 ( 0.00%) } else if cx . .tcx 8 ( 0.00%) .get_diagnostic_item(sym::Ord) 288 ( 0.00%) => ???:::get_diagnostic_item (4x) 24 ( 0.00%) .is_some_and(|id| implements_trait(cx, ty, id, &[])) 70,342 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::implements_trait (4x) . { . Some(TypeClampability::Ord) . } else { . None . } . } . . fn is_float(self) -> bool { -- line 246 ---------------------------------------- -- line 269 ---------------------------------------- . r#else: Some(else_if), . }) = If::hir(expr) . && let Some(If { . cond: else_if_cond, . then: else_if_then, . r#else: Some(else_body), . }) = If::hir(peel_blocks(else_if)) . { 24 ( 0.00%) let params = is_clamp_meta_pattern( 71,161 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/manual_clamp.rs:clippy_lints::manual_clamp::is_clamp_meta_pattern (4x) . cx, 5 ( 0.00%) expr.span.ctxt(), 12 ( 0.00%) &BinaryOp::new(peel_blocks(cond))?, 8 ( 0.00%) &BinaryOp::new(peel_blocks(else_if_cond))?, . peel_blocks(then), . peel_blocks(else_if_then), 20 ( 0.00%) None, . )?; . // Contents of the else should be the resolved input. . if !eq_expr_value(cx, expr.span.ctxt(), params.input, peel_blocks(else_body)) { . return None; . } . Some(ClampSuggestion { . params, . span: expr.span, -- line 292 ---------------------------------------- -- line 302 ---------------------------------------- . /// . /// ```no_run . /// # let (input, min_value, max_value) = (0, -3, 12); . /// . /// input.max(min_value).min(max_value) . /// # ; . /// ``` . fn is_max_min_pattern<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) -> Option> { 6,867 ( 0.00%) if let ExprKind::MethodCall(seg_second, receiver, [arg_second], _) = expr.kind 1,375 ( 0.00%) && let ExprKind::MethodCall(seg_first, input, [arg_first], _) = &receiver.kind . // Match method names before the costlier type queries. 129 ( 0.00%) && let Some((min, max)) = match (seg_first.ident.name, seg_second.ident.name) { 172 ( 0.00%) (sym::min, sym::max) => Some((arg_second, arg_first)), . (sym::max, sym::min) => Some((arg_first, arg_second)), . _ => None, . } . && (cx.typeck_results().expr_ty_adjusted(receiver).is_floating_point() . || cx.ty_based_def(expr).assoc_fn_parent(cx).is_diag_item(cx, sym::Ord)) . && (cx.typeck_results().expr_ty_adjusted(input).is_floating_point() . || cx.ty_based_def(receiver).assoc_fn_parent(cx).is_diag_item(cx, sym::Ord)) . { -- line 322 ---------------------------------------- -- line 367 ---------------------------------------- . } . . enum FunctionType<'tcx> { . CmpMin, . CmpMax, . OrdOrFloat(&'tcx PathSegment<'tcx>), . } . 2,448 ( 0.00%) fn check<'tcx>( . cx: &LateContext<'tcx>, . outer_fn: &'tcx Expr<'tcx>, . inner_call: &'tcx Expr<'tcx>, . outer_arg: &'tcx Expr<'tcx>, . span: Span, . ) -> Option> { 616 ( 0.00%) if let ExprKind::Call(inner_fn, [first, second]) = &inner_call.kind . && let Some(inner_seg) = segment(cx, inner_fn) . && let Some(outer_seg) = segment(cx, outer_fn) . { . let typeck = cx.typeck_results(); . let (input, inner_arg) = match ( . is_const_evaluatable(cx.tcx, typeck, first), . is_const_evaluatable(cx.tcx, typeck, second), . ) { -- line 390 ---------------------------------------- -- line 412 ---------------------------------------- . max, . is_float, . }, . span, . make_assignment: None, . hir_with_ignore_attr: None, . }) . } else { 272 ( 0.00%) None . } 2,176 ( 0.00%) } . 12,480 ( 0.00%) if let ExprKind::Call(outer_fn, [first, second]) = &expr.kind { 2,584 ( 0.00%) check(cx, outer_fn, first, second, expr.span).or_else(|| check(cx, outer_fn, second, first, expr.span)) 5,512 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/manual_clamp.rs:clippy_lints::manual_clamp::is_call_max_min_pattern::check (272x) . } else { . None . } . } . . /// Targets patterns like . /// . /// ```no_run -- line 433 ---------------------------------------- -- line 436 ---------------------------------------- . /// match input { . /// input if input > max => max, . /// input if input < min => min, . /// input => input, . /// } . /// # ; . /// ``` . fn is_match_pattern<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) -> Option> { 3,133 ( 0.00%) if let ExprKind::Match(value, [first_arm, second_arm, last_arm], rustc_hir::MatchSource::Normal) = &expr.kind { . // Find possible min/max branches . let minmax_values = |a: &'tcx Arm<'tcx>| { 63 ( 0.00%) if let PatKind::Binding(_, var_hir_id, _, None) = &a.pat.kind . && let Some(e) = a.guard . { . Some((e, var_hir_id, a.body)) . } else { . None . } . }; . let (first, first_hir_id, first_expr) = minmax_values(first_arm)?; -- line 455 ---------------------------------------- -- line 608 ---------------------------------------- . left: &'tcx Expr<'tcx>, . right: &'tcx Expr<'tcx>, . } . . impl<'tcx> BinaryOp<'tcx> { . fn new(e: &'tcx Expr<'tcx>) -> Option> { . match &e.kind { . ExprKind::Binary(op, left, right) => Some(BinaryOp { 8 ( 0.00%) op: op.node, 8 ( 0.00%) left, . right, . }), . _ => None, . } . } . . fn flip(&self) -> Self { . Self { -- line 625 ---------------------------------------- -- line 651 ---------------------------------------- . /// - `Range` . /// - `RangeInclusive` . /// . /// And all other range types are not accepted. For the purposes of `clamp` it's irrelevant . /// whether the range is inclusive or not, the output is the same. . /// . /// - The result of each if statement must be equal to the argument unique to that if statement. The . /// result can not be the shared argument in either case. 36 ( 0.00%) fn is_clamp_meta_pattern<'tcx>( . cx: &LateContext<'tcx>, . ctxt: SyntaxContext, . first_bin: &BinaryOp<'tcx>, . second_bin: &BinaryOp<'tcx>, . first_expr: &'tcx Expr<'tcx>, . second_expr: &'tcx Expr<'tcx>, . // This parameters is exclusively for the match pattern. . // It exists because the variable bindings used in that pattern -- line 667 ---------------------------------------- -- line 708 ---------------------------------------- . let exprs = [ . first_bin.left, . first_bin.right, . second_bin.left, . second_bin.right, . first_expr, . second_expr, . ]; 20 ( 0.00%) let clampability = TypeClampability::is_clampable(cx, cx.typeck_results().expr_ty(first_expr))?; 160 ( 0.00%) => ???:::expr_ty (4x) . let is_float = clampability.is_float(); 10 ( 0.00%) if exprs.iter().any(|e| peel_blocks(e).can_have_side_effects()) { 91 ( 0.00%) => ???:::can_have_side_effects (5x) . return None; . } . let first_bin = try_normalize_unsigned_eq_to_ord(cx, first_bin, first_expr).unwrap_or(*first_bin); . let second_bin = try_normalize_unsigned_eq_to_ord(cx, second_bin, second_expr).unwrap_or(*second_bin); . let (first_bin, second_bin) = (&first_bin, &second_bin); . if !(is_ord_op(first_bin.op) && is_ord_op(second_bin.op)) { . return None; . } -- line 726 ---------------------------------------- -- line 750 ---------------------------------------- . &first, . second_expr, . first_expr, . input_hir_ids.map(|(l, r)| (r, l)), . is_float, . ) . }) . }) 32 ( 0.00%) } . . fn block_stmt_with_last<'tcx>(block: &'tcx Block<'tcx>) -> impl Iterator> { . block . .stmts . .iter() . .map(|s| MaybeBorrowedStmtKind::Borrowed(&s.kind)) . .chain( . block -- line 766 ---------------------------------------- 77,985 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/question_mark.rs -------------------------------------------------------------------------------- Ir -- line 602 ---------------------------------------- . . impl QuestionMark { . fn inside_try_block(&self) -> bool { . self.try_block_depth_stack.last() > Some(&0) . } . } . . fn is_try_block(cx: &LateContext<'_>, bl: &Block<'_>) -> bool { 15,616 ( 0.00%) if let Some(expr) = bl.expr 19,868 ( 0.00%) && let ExprKind::Call(callee, [_]) = expr.kind 13,496 ( 0.00%) && let ExprKind::Path(qpath) = callee.kind 3,856 ( 0.00%) && cx.tcx.qpath_is_lang_item(qpath, LangItem::TryTraitFromOutput) 95,461 ( 0.00%) => ???:::qpath_is_lang_item (964x) . { . true . } else { . false . } . } . . fn is_inferred_ret_closure(expr: &Expr<'_>) -> bool { 303,934 ( 0.00%) let ExprKind::Closure(closure) = expr.kind else { . return false; . }; . 84 ( 0.00%) match closure.fn_decl.output { . FnRetTy::Return(ret_ty) => ret_ty.is_suggestable_infer_ty(), . FnRetTy::DefaultReturn(_) => true, . } . } . . impl<'tcx> LateLintPass<'tcx> for QuestionMark { 14,840 ( 0.00%) fn check_stmt(&mut self, cx: &LateContext<'tcx>, stmt: &'tcx Stmt<'_>) { . // Cheap `let` check before the costlier lint level and const context queries. 4,240 ( 0.00%) if !matches!(stmt.kind, StmtKind::Let(..)) { . return; . } . 6,264 ( 0.00%) if !is_lint_allowed(cx, QUESTION_MARK_USED, stmt.hir_id) || !self.msrv.meets(cx, msrvs::QUESTION_MARK_OPERATOR) 707,921 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_lint_allowed (783x) . { . return; . } . . if !self.inside_try_block() && !is_in_const_context(cx) { . check_let_some_else_return_none(cx, stmt); . } . self.check_manual_let_else(cx, stmt); 16,960 ( 0.00%) } . 444,000 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 133,200 ( 0.00%) if is_inferred_ret_closure(expr) { 14 ( 0.00%) self.inferred_ret_closure_stack += 1; . return; . } . . // Cheap `if`/`match` check before the costlier lint level and const context queries. . if matches!(expr.kind, ExprKind::If(..) | ExprKind::Match(..)) 8,451 ( 0.00%) && !self.inside_try_block() 11,268 ( 0.00%) && !is_in_const_context(cx) 850,775 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_in_const_context (2,817x) 19,719 ( 0.00%) && is_lint_allowed(cx, QUESTION_MARK_USED, expr.hir_id) 2,904,766 ( 0.04%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_lint_allowed (2,817x) . && self.msrv.meets(cx, msrvs::QUESTION_MARK_OPERATOR) . { . check_is_none_or_err_and_early_return(cx, expr); . check_if_let_some_or_err_and_early_return(cx, expr); . . if self.inferred_ret_closure_stack == 0 { . check_if_try_match(cx, expr); . } . } 355,214 ( 0.00%) } . . fn check_expr_post(&mut self, _: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 14 ( 0.00%) if is_inferred_ret_closure(expr) { 14 ( 0.00%) self.inferred_ret_closure_stack -= 1; . } . } . . fn check_block(&mut self, cx: &LateContext<'tcx>, block: &'tcx Block<'tcx>) { 6,796 ( 0.00%) if is_try_block(cx, block) { . *self . .try_block_depth_stack . .last_mut() . .expect("blocks are always part of bodies and must have a depth") += 1; . } . } . . fn check_body(&mut self, _: &LateContext<'tcx>, _: &Body<'tcx>) { -- line 687 ---------------------------------------- -- line 688 ---------------------------------------- . self.try_block_depth_stack.push(0); . } . . fn check_body_post(&mut self, _: &LateContext<'tcx>, _: &Body<'tcx>) { . self.try_block_depth_stack.pop(); . } . . fn check_block_post(&mut self, cx: &LateContext<'tcx>, block: &'tcx Block<'tcx>) { 6,796 ( 0.00%) if is_try_block(cx, block) { . *self . .try_block_depth_stack . .last_mut() . .expect("blocks are always part of bodies and must have a depth") -= 1; . } . } . } 3,132 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/fold.rs -------------------------------------------------------------------------------- Ir -- line 97 ---------------------------------------- . . /// This cache only tracks the `DebruijnIndex` and assumes that it does not matter . /// for the delegate how often its methods get used. . cache: DelayedMap<(ty::DebruijnIndex, Ty<'tcx>), Ty<'tcx>>, . } . . impl<'tcx, D: BoundVarReplacerDelegate<'tcx>> BoundVarReplacer<'tcx, D> { . fn new(tcx: TyCtxt<'tcx>, delegate: D) -> Self { 20,485 ( 0.00%) BoundVarReplacer { tcx, current_index: ty::INNERMOST, delegate, cache: Default::default() } . } . } . . impl<'tcx, D> TypeFolder> for BoundVarReplacer<'tcx, D> . where . D: BoundVarReplacerDelegate<'tcx>, . { . fn cx(&self) -> TyCtxt<'tcx> { -- line 113 ---------------------------------------- -- line 116 ---------------------------------------- . . fn fold_binder>>( . &mut self, . t: ty::Binder<'tcx, T>, . ) -> ty::Binder<'tcx, T> { . self.current_index.shift_in(1); . let t = t.super_fold_with(self); . self.current_index.shift_out(1); 2,526 ( 0.00%) t . } . 18,584 ( 0.00%) fn fold_ty(&mut self, t: Ty<'tcx>) -> Ty<'tcx> { 9,292 ( 0.00%) match *t.kind() { . ty::Bound(ty::BoundVarIndexKind::Bound(debruijn), bound_ty) . if debruijn == self.current_index => . { . let ty = self.delegate.replace_ty(bound_ty); . debug_assert!(!ty.has_vars_bound_above(ty::INNERMOST)); . ty::shift_vars(self.tcx, ty, self.current_index.as_u32()) . } . _ => { 9,292 ( 0.00%) if !t.has_vars_bound_at_or_above(self.current_index) { . t 4,406 ( 0.00%) } else if let Some(&t) = self.cache.get(&(self.current_index, t)) { . t . } else { 6,609 ( 0.00%) let res = t.super_fold_with(self); 1,317,216 ( 0.02%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/structural_impls.rs:>::super_fold_with::> (1,533x) . assert!(self.cache.insert((self.current_index, t), res)); . res . } . } . } 18,584 ( 0.00%) } . . fn fold_region(&mut self, r: ty::Region<'tcx>) -> ty::Region<'tcx> { 13,158 ( 0.00%) match r.kind() { . ty::ReBound(ty::BoundVarIndexKind::Bound(debruijn), br) 2,193 ( 0.00%) if debruijn == self.current_index => . { 8,472 ( 0.00%) let region = self.delegate.replace_region(br); 615,542 ( 0.01%) => ???:::replace_region (1,457x) 13,158 ( 0.00%) if let ty::ReBound(ty::BoundVarIndexKind::Bound(debruijn1), br) = region.kind() { . // If the callback returns a bound region, . // that region should always use the INNERMOST . // debruijn index. Then we adjust it to the . // correct depth. . assert_eq!(debruijn1, ty::INNERMOST); . ty::Region::new_bound(self.tcx, debruijn, br) . } else { . region -- line 164 ---------------------------------------- -- line 210 ---------------------------------------- . mut fld_r: F, . ) -> (T, FxIndexMap, ty::Region<'tcx>>) . where . F: FnMut(ty::BoundRegion<'tcx>) -> ty::Region<'tcx>, . T: TypeFoldable>, . { . let mut region_map = FxIndexMap::default(); . let real_fld_r = 25,829 ( 0.00%) |br: ty::BoundRegion<'tcx>| *region_map.entry(br).or_insert_with(|| fld_r(br)); . let value = self.instantiate_bound_regions_uncached(value, real_fld_r); 4,655 ( 0.00%) (value, region_map) . } . . pub fn instantiate_bound_regions_uncached( . self, . value: Binder<'tcx, T>, . mut replace_regions: F, . ) -> T . where . F: FnMut(ty::BoundRegion<'tcx>) -> ty::Region<'tcx>, . T: TypeFoldable>, . { . let value = value.skip_binder(); 6,861 ( 0.00%) if !value.has_escaping_bound_vars() { 56,874 ( 0.00%) value . } else { . let delegate = FnMutDelegate { . regions: &mut replace_regions, . types: &mut |b| bug!("unexpected bound ty in binder: {b:?}"), . consts: &mut |b| bug!("unexpected bound ct in binder: {b:?}"), . }; . let mut replacer = BoundVarReplacer::new(self, delegate); 4 ( 0.00%) value.fold_with(&mut replacer) 2,217 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/generic_args.rs:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::Ty> as rustc_type_ir::fold::TypeFoldable>::fold_with::> (2x) 2 ( 0.00%) } . } . . /// Replaces all escaping bound vars. The `fld_r` closure replaces escaping . /// bound regions; the `fld_t` closure replaces escaping bound types and the `fld_c` . /// closure replaces escaping bound consts. . pub fn replace_escaping_bound_vars_uncached>>( . self, . value: T, -- line 251 ---------------------------------------- -- line 312 ---------------------------------------- . ty::Const::new_bound(self, ty::INNERMOST, ty::BoundConst::new(shift_bv(c.var))) . }, . }, . ) . } . . /// Replaces any late-bound regions bound in `value` with `'erased`. Useful in codegen but also . /// method lookup and a few other places where precise region relationships are not required. 107,519 ( 0.00%) pub fn instantiate_bound_regions_with_erased(self, value: Binder<'tcx, T>) -> T . where . T: TypeFoldable>, . { 55,092 ( 0.00%) self.instantiate_bound_regions(value, |_| self.lifetimes.re_erased).0 85,364 ( 0.00%) } . . /// Anonymize all bound variables in `value`, this is mostly used to improve caching. . pub fn anonymize_bound_vars(self, value: Binder<'tcx, T>) -> Binder<'tcx, T> . where . T: TypeFoldable>, . { . struct Anonymize<'a, 'tcx> { . tcx: TyCtxt<'tcx>, -- line 333 ---------------------------------------- 18,224 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/swap_ptr_to_ref.rs -------------------------------------------------------------------------------- Ir -- line 35 ---------------------------------------- . pub SWAP_PTR_TO_REF, . suspicious, . "call to `mem::swap` using pointer derived references" . } . . declare_lint_pass!(SwapPtrToRef => [SWAP_PTR_TO_REF]); . . impl LateLintPass<'_> for SwapPtrToRef { 355,200 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'_>, e: &Expr<'_>) { 102,202 ( 0.00%) if let ExprKind::Call(fn_expr, [arg1, arg2]) = e.kind 4,600 ( 0.00%) && fn_expr.basic_res().is_diag_item(cx, sym::mem_swap) . && let ctxt = e.span.ctxt() . && let (from_ptr1, arg1_span) = is_ptr_to_ref(cx, arg1, ctxt) . && let (from_ptr2, arg2_span) = is_ptr_to_ref(cx, arg2, ctxt) . && (from_ptr1 || from_ptr2) . { . span_lint_and_then( . cx, . SWAP_PTR_TO_REF, -- line 53 ---------------------------------------- -- line 63 ---------------------------------------- . "use ptr::swap", . format!("core::ptr::swap({snip1}, {snip2})"), . app, . ); . } . }, . ); . } 355,200 ( 0.00%) } . } . . /// Checks if the expression converts a mutable pointer to a mutable reference. If it is, also . /// returns the span of the pointer expression if it's suitable for making a suggestion. . fn is_ptr_to_ref(cx: &LateContext<'_>, e: &Expr<'_>, ctxt: SyntaxContext) -> (bool, Option) { . if let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Mut, borrowed_expr) = e.kind . && let ExprKind::Unary(UnOp::Deref, derefed_expr) = borrowed_expr.kind . && cx.typeck_results().expr_ty(derefed_expr).is_raw_ptr() -- line 79 ---------------------------------------- -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/suspicious_operation_groupings.rs -------------------------------------------------------------------------------- Ir -- line 67 ---------------------------------------- . . #[derive(Default)] . pub struct SuspiciousOperationGroupings { . // Spans already linted. . linted_spans: FxHashSet, . } . . impl EarlyLintPass for SuspiciousOperationGroupings { 359,064 ( 0.00%) fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { 79,792 ( 0.00%) if expr.span.from_expansion() { . return; . } . 24,465 ( 0.00%) if let Some(binops) = extract_related_binops(&expr.kind) { . check_binops(cx, &binops.iter().collect::>(), &mut self.linted_spans); . . let mut op_types = Vec::with_capacity(binops.len()); . // We could use a hashmap, etc. to avoid being O(n*m) here, but . // we want the lints to be emitted in a consistent order. Besides, . // m, (the number of distinct `BinOpKind`s in `binops`) . // will often be small, and does have an upper limit. . binops.iter().map(|b| b.op).for_each(|op| { -- line 88 ---------------------------------------- -- line 92 ---------------------------------------- . }); . . for op_type in op_types { . let ops: Vec<_> = binops.iter().filter(|b| b.op == op_type).collect(); . . check_binops(cx, &ops, &mut self.linted_spans); . } . } 319,168 ( 0.00%) } . } . . fn check_binops(cx: &EarlyContext<'_>, binops: &[&BinaryOp<'_>], linted_spans: &mut FxHashSet) { . let binop_count = binops.len(); . if binop_count < 2 { . // Single binary operation expressions would likely be false . // positives. . return; -- line 108 ---------------------------------------- -- line 356 ---------------------------------------- . _ => { . return output; . }, . }; . } . } . . fn extract_related_binops(kind: &ExprKind) -> Option>> { 24,465 ( 0.00%) append_opt_vecs(chained_binops(kind), if_statement_binops(kind)) 206,899 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/suspicious_operation_groupings.rs:clippy_lints::suspicious_operation_groupings::if_statement_binops (8,155x) 179,410 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/suspicious_operation_groupings.rs:clippy_lints::suspicious_operation_groupings::append_opt_vecs:: (8,155x) . } . 57,932 ( 0.00%) fn if_statement_binops(kind: &ExprKind) -> Option>> { 57,847 ( 0.00%) match kind { 131 ( 0.00%) ExprKind::If(condition, _, _) => chained_binops(&condition.kind), 15 ( 0.00%) ExprKind::Paren(e) => if_statement_binops(&e.kind), . ExprKind::Block(block, _) => { 93 ( 0.00%) let mut output = None; 93 ( 0.00%) for stmt in &block.stmts { 644 ( 0.00%) match &stmt.kind { . StmtKind::Expr(e) | StmtKind::Semi(e) => { 1,694 ( 0.00%) output = append_opt_vecs(output, if_statement_binops(&e.kind)); 2,992 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/suspicious_operation_groupings.rs:clippy_lints::suspicious_operation_groupings::if_statement_binops'2 (121x) 2,662 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/suspicious_operation_groupings.rs:clippy_lints::suspicious_operation_groupings::append_opt_vecs:: (121x) . }, . _ => {}, . } . } 651 ( 0.00%) output . }, . _ => None, . } 66,032 ( 0.00%) } . 57,932 ( 0.00%) fn append_opt_vecs(target_opt: Option>, source_opt: Option>) -> Option> { 41,380 ( 0.00%) match (target_opt, source_opt) { . (Some(mut target), Some(source)) => { . target.reserve(source.len()); . for op in source { . target.push(op); . } . Some(target) . }, . (Some(v), None) | (None, Some(v)) => Some(v), 16,552 ( 0.00%) (None, None) => None, . } 66,208 ( 0.00%) } . . fn chained_binops(kind: &ExprKind) -> Option>> { 57,921 ( 0.00%) match kind { 542 ( 0.00%) ExprKind::Binary(_, left_outer, right_outer) => chained_binops_helper(left_outer, right_outer), 1,574 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/suspicious_operation_groupings.rs:clippy_lints::suspicious_operation_groupings::chained_binops_helper (50x) 117 ( 0.00%) ExprKind::Paren(e) | ExprKind::Unary(_, e) => chained_binops(&e.kind), 8,105 ( 0.00%) _ => None, . } . } . 720 ( 0.00%) fn chained_binops_helper<'expr>(left_outer: &'expr Expr, right_outer: &'expr Expr) -> Option>> { 516 ( 0.00%) match (&left_outer.kind, &right_outer.kind) { . ( . ExprKind::Paren(left_e) | ExprKind::Unary(_, left_e), . ExprKind::Paren(right_e) | ExprKind::Unary(_, right_e), . ) => chained_binops_helper(left_e, right_e), . (ExprKind::Paren(left_e) | ExprKind::Unary(_, left_e), _) => chained_binops_helper(left_e, right_outer), . (_, ExprKind::Paren(right_e) | ExprKind::Unary(_, right_e)) => chained_binops_helper(left_outer, right_e), . ( . ExprKind::Binary(Spanned { node: left_op, .. }, left_left, left_right), -- line 418 ---------------------------------------- -- line 436 ---------------------------------------- . right_ops.insert(0, BinaryOp::new(*left_op, left_outer.span, (left_left, left_right))); . Some(right_ops) . }, . (None, None) => Some(vec![ . BinaryOp::new(*left_op, left_outer.span, (left_left, left_right)), . BinaryOp::new(*right_op, right_outer.span, (right_left, right_right)), . ]), . }, 72 ( 0.00%) _ => None, . } 576 ( 0.00%) } . . #[derive(Clone, Copy, PartialEq, Eq, Default, Debug)] . struct IdentLocation { . index: usize, . } . . impl Add for IdentLocation { . type Output = IdentLocation; -- line 454 ---------------------------------------- 49,587 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/functions/too_many_lines.rs -------------------------------------------------------------------------------- Ir -- line 13 ---------------------------------------- . kind: FnKind<'_>, . body: &hir::Body<'_>, . span: Span, . def_id: LocalDefId, . too_many_lines_threshold: u64, . ) { . // Closures must be contained in a parent body, which will be checked for `too_many_lines`. . // Don't check closures for `too_many_lines` to avoid duplicated lints. 9,418 ( 0.00%) if matches!(kind, FnKind::Closure) || (span.from_expansion() && span.in_external_macro(cx.sess().source_map())) { . return; . } . 5,414 ( 0.00%) let mut line_count: u64 = 0; 2,707 ( 0.00%) let too_many = body.value.span.check_text(cx, |src| { . let mut in_comment = false; . let mut code_in_line; . 8,121 ( 0.00%) let function_lines = if matches!(body.value.kind, hir::ExprKind::Block(..)) 2,707 ( 0.00%) && src.as_bytes().first().copied() == Some(b'{') 2,707 ( 0.00%) && src.as_bytes().last().copied() == Some(b'}') . { . // Removing the braces from the enclosing block . &src[1..src.len() - 1] . } else { . src . } . .trim() // Remove leading and trailing blank lines . .lines(); . . for mut line in function_lines { . code_in_line = false; . loop { . line = line.trim_start(); 12,446 ( 0.00%) if line.is_empty() { . break; . } 23,686 ( 0.00%) if in_comment { . if let Some(i) = line.find("*/") { . line = &line[i + 2..]; . in_comment = false; . continue; . } . } else { . let multi_idx = line.find("/*").unwrap_or(line.len()); . let single_idx = line.find("//").unwrap_or(line.len()); 71,058 ( 0.00%) code_in_line |= multi_idx > 0 && single_idx > 0; . // Implies multi_idx is below line.len() 23,686 ( 0.00%) if multi_idx < single_idx { . line = &line[multi_idx + 2..]; . in_comment = true; . continue; . } . } . break; . } 23,686 ( 0.00%) if code_in_line { 46,876 ( 0.00%) line_count += 1; . } . } 10,828 ( 0.00%) line_count > too_many_lines_threshold . }); . . if too_many { . span_lint( . cx, . TOO_MANY_LINES, . cx.tcx.def_span(def_id), 12 ( 0.00%) format!("this function has too many lines ({line_count}/{too_many_lines_threshold})"), . ); . } . } 131,696 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/byte_char_slices.rs -------------------------------------------------------------------------------- Ir -- line 32 ---------------------------------------- . pub BYTE_CHAR_SLICES, . style, . "hard to read byte char slice" . } . . declare_lint_pass!(ByteCharSlice => [BYTE_CHAR_SLICES]); . . impl<'tcx> LateLintPass<'tcx> for ByteCharSlice { 399,600 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 88,800 ( 0.00%) if !expr.span.from_expansion() . && let Some((has_ref, slice)) = is_byte_char_slices(cx, expr) . { . span_lint_and_then( . cx, . BYTE_CHAR_SLICES, . expr.span, . "can be more succinctly written as a byte str", . |diag| { -- line 49 ---------------------------------------- -- line 64 ---------------------------------------- . if !has_ref && !cx.typeck_results().expr_ty_adjusted(expr).is_array_slice() { . sugg = sugg.deref(); . } . . diag.span_suggestion(expr.span, "try", sugg, app); . }, . ); . } 355,200 ( 0.00%) } . } . . /// Checks whether the slice is that of byte chars, and if so, builds a byte-string out of it . fn is_byte_char_slices<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) -> Option<(bool, Vec)> { 27,500 ( 0.00%) let (has_ref, expr) = if let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, inner) = expr.kind { . (true, inner) 43,680 ( 0.00%) } else if let Some(parent) = get_parent_expr(cx, expr) // Already checked by the parent expr. 882,098 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_parent_expr (8,736x) 13,149 ( 0.00%) && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, _) = parent.kind . { . return None; . } else { . (false, expr) . }; . 17,863 ( 0.00%) if let ExprKind::Array(members) = expr.kind 16 ( 0.00%) && !members.is_empty() 7 ( 0.00%) && !span_contains_comment(cx, expr.span) 35 ( 0.00%) && !span_contains_cfg(cx, expr.span) 3,725 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/attrs.rs:clippy_utils::attrs::span_contains_cfg (7x) . { . return members . .iter() . .try_fold(Vec::new(), |mut acc, member| { 14 ( 0.00%) if let ExprKind::Lit(lit) = member.kind 14 ( 0.00%) && let LitKind::Byte(_) = lit.node . && expr.span.eq_ctxt(member.span) . { . acc.push(lit.span); . return Some(acc); . } . None . }) . .map(|s| (has_ref, s)); -- line 104 ---------------------------------------- 34,360 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/manual_slice_size_calculation.rs -------------------------------------------------------------------------------- Ir -- line 47 ---------------------------------------- . . impl ManualSliceSizeCalculation { . pub fn new(conf: &Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl<'tcx> LateLintPass<'tcx> for ManualSliceSizeCalculation { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 88,800 ( 0.00%) if let ExprKind::Binary(ref op, left, right) = expr.kind 416 ( 0.00%) && BinOpKind::Mul == op.node 2 ( 0.00%) && !expr.span.from_expansion() 2 ( 0.00%) && let Some((receiver, refs_count)) = simplify(cx, left, right) . && (!is_in_const_context(cx) || self.msrv.meets(cx, msrvs::CONST_SIZE_OF_VAL)) . { . let ctxt = expr.span.ctxt(); . let mut app = Applicability::MachineApplicable; . let deref = if refs_count > 0 { . "*".repeat(refs_count - 1) . } else { . "&".into() -- line 67 ---------------------------------------- -- line 74 ---------------------------------------- . MANUAL_SLICE_SIZE_CALCULATION, . expr.span, . "manual slice size calculation", . "try", . format!("{sugg}::mem::size_of_val({deref}{val_name})"), . app, . ); . } 355,200 ( 0.00%) } . } . . fn simplify<'tcx>( . cx: &LateContext<'tcx>, . expr1: &'tcx Expr<'tcx>, . expr2: &'tcx Expr<'tcx>, . ) -> Option<(&'tcx Expr<'tcx>, usize)> { 4 ( 0.00%) let expr1 = expr_or_init(cx, expr1); 26 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::expr_or_init (1x) 4 ( 0.00%) let expr2 = expr_or_init(cx, expr2); 26 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::expr_or_init (1x) . 8 ( 0.00%) simplify_half(cx, expr1, expr2).or_else(|| simplify_half(cx, expr2, expr1)) 54 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/manual_slice_size_calculation.rs:clippy_lints::manual_slice_size_calculation::simplify_half (2x) . } . 14 ( 0.00%) fn simplify_half<'tcx>( . cx: &LateContext<'tcx>, . expr1: &'tcx Expr<'tcx>, . expr2: &'tcx Expr<'tcx>, . ) -> Option<(&'tcx Expr<'tcx>, usize)> { 10 ( 0.00%) if !expr1.span.from_expansion() . // expr1 is `[T1].len()`? . && let ExprKind::MethodCall(method_path, receiver, [], _) = expr1.kind . && method_path.ident.name == sym::len . && let receiver_ty = cx.typeck_results().expr_ty(receiver) . && let (receiver_ty, refs_count, _) = peel_and_count_ty_refs(receiver_ty) . && let ty::Slice(ty1) = receiver_ty.kind() . // expr2 is `size_of::()`? . && let ExprKind::Call(func, []) = expr2.kind -- line 109 ---------------------------------------- -- line 113 ---------------------------------------- . && let Some(ty2) = cx.typeck_results().node_args(func.hir_id).types().next() . // T1 == T2? . && *ty1 == ty2 . { . Some((receiver, refs_count)) . } else { . None . } 18 ( 0.00%) } 4 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/strings.rs -------------------------------------------------------------------------------- Ir -- line 278 ---------------------------------------- . } . } . } . . // Max length a b"foo" string can take . const MAX_LENGTH_BYTE_STRING_LIT: usize = 32; . . impl<'tcx> LateLintPass<'tcx> for StringLitAsBytes { 399,600 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, e: &'tcx Expr<'_>) { . use rustc_ast::LitKind; . 359,771 ( 0.00%) if let ExprKind::Call(fun, [bytes_arg]) = e.kind . // Find `std::str::converts::from_utf8` or `std::primitive::str::from_utf8` 13,713 ( 0.00%) && let Some(sym::str_from_utf8 | sym::str_inherent_from_utf8) = 4,571 ( 0.00%) fun.res(cx).opt_diag_name(cx) . . // Find string::as_bytes 28 ( 0.00%) && let ExprKind::AddrOf(BorrowKind::Ref, _, args) = bytes_arg.kind . && let ExprKind::Index(left, right, _) = args.kind . && let (method_names, expressions, _) = method_calls(left, 1) . && method_names == [sym::as_bytes] . && expressions.len() == 1 . && expressions[0].1.is_empty() . . // Check for slicer . && let ExprKind::Struct(&qpath, _, _) = right.kind -- line 303 ---------------------------------------- -- line 315 ---------------------------------------- . e.span, . "calling a slice of `as_bytes()` with `from_utf8` should be not necessary", . "try", . format!("Some(&{snippet_app}[{right_snip}])"), . applicability, . ); . } . 96,418 ( 0.00%) if !e.span.in_external_macro(cx.sess().source_map()) . && let ExprKind::MethodCall(path, receiver, ..) = &e.kind 7,572 ( 0.00%) && path.ident.name == sym::as_bytes 26 ( 0.00%) && let ExprKind::Lit(lit) = &receiver.kind . && let LitKind::Str(lit_content, _) = &lit.node . { . let callsite = snippet(cx, receiver.span.source_callsite(), r#""foo""#); . let mut applicability = Applicability::MachineApplicable; . if callsite.starts_with("include_str!") { . span_lint_and_sugg( . cx, . STRING_LIT_AS_BYTES, -- line 334 ---------------------------------------- -- line 362 ---------------------------------------- . snippet_with_applicability(cx, receiver.span, r#""foo""#, &mut applicability) . ), . applicability, . ); . } . } . } . 52,018 ( 0.00%) if let ExprKind::MethodCall(path, recv, [], _) = &e.kind 2,632 ( 0.00%) && path.ident.name == sym::into_bytes 10 ( 0.00%) && let ExprKind::MethodCall(path, recv, [], _) = &recv.kind . && matches!(path.ident.name, sym::to_owned | sym::to_string) . && let ExprKind::Lit(lit) = &recv.kind . && let LitKind::Str(lit_content, _) = &lit.node . && lit_content.as_str().is_ascii() . && lit_content.as_str().len() <= MAX_LENGTH_BYTE_STRING_LIT . && !recv.span.from_expansion() . { . let mut applicability = Applicability::MachineApplicable; -- line 380 ---------------------------------------- -- line 387 ---------------------------------------- . "consider using a byte string literal instead", . format!( . "b{}.to_vec()", . snippet_with_applicability(cx, recv.span, r#""..""#, &mut applicability) . ), . applicability, . ); . } 355,200 ( 0.00%) } . } . . impl<'tcx> LateLintPass<'tcx> for StrToString { . fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &Expr<'_>) { . if expr.span.from_expansion() { . return; . } . -- line 403 ---------------------------------------- -- line 438 ---------------------------------------- . "str::to_owned".to_string(), . Applicability::MachineApplicable, . ); . } . } . } . . impl<'tcx> LateLintPass<'tcx> for TrimSplitWhitespace { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &Expr<'_>) { . let tyckres = cx.typeck_results(); 97,734 ( 0.00%) if let ExprKind::MethodCall(path, split_recv, [], split_ws_span) = expr.kind 1,316 ( 0.00%) && path.ident.name == sym::split_whitespace . && let Some(split_ws_def_id) = tyckres.type_dependent_def_id(expr.hir_id) . && cx.tcx.is_diagnostic_item(sym::str_split_whitespace, split_ws_def_id) . && let ExprKind::MethodCall(path, _trim_recv, [], trim_span) = split_recv.kind . && let trim_fn_name @ (sym::trim | sym::trim_start | sym::trim_end) = path.ident.name . && let Some(trim_def_id) = tyckres.type_dependent_def_id(split_recv.hir_id) . && is_one_of_trim_diagnostic_items(cx, trim_def_id) . { . span_lint_and_sugg( -- line 457 ---------------------------------------- -- line 459 ---------------------------------------- . TRIM_SPLIT_WHITESPACE, . trim_span.with_hi(split_ws_span.lo()), . format!("found call to `str::{trim_fn_name}` before `str::split_whitespace`"), . format!("remove `{trim_fn_name}()`"), . String::new(), . Applicability::MachineApplicable, . ); . } 355,200 ( 0.00%) } . } . . fn is_one_of_trim_diagnostic_items(cx: &LateContext<'_>, trim_def_id: DefId) -> bool { . matches!( . cx.tcx.get_diagnostic_name(trim_def_id), . Some(sym::str_trim | sym::str_trim_start | sym::str_trim_end) . ) . } -- line 475 ---------------------------------------- 48,971 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/unused_rounding.rs -------------------------------------------------------------------------------- Ir -- line 29 ---------------------------------------- . pub UNUSED_ROUNDING, . nursery, . "Uselessly rounding a whole number floating-point literal" . } . . declare_lint_pass!(UnusedRounding => [UNUSED_ROUNDING]); . . fn is_useless_rounding(cx: &EarlyContext<'_>, expr: &Expr) -> Option<(Symbol, String)> { 79,792 ( 0.00%) if let ExprKind::MethodCall(MethodCall { . seg: name_ident, . receiver, . .. . }) = &expr.kind 3,809 ( 0.00%) && let method_name = name_ident.ident.name 22,854 ( 0.00%) && matches!(method_name, sym::ceil | sym::floor | sym::round) . && let ExprKind::Lit(token_lit) = &receiver.kind . && token_lit.is_semantic_float() . && let Ok(f) = token_lit.symbol.as_str().replace('_', "").parse::() . && f.fract() == 0.0 . { . Some((method_name, snippet(cx, receiver.span, "..").into())) . } else { . None . } . } . . impl EarlyLintPass for UnusedRounding { 279,272 ( 0.00%) fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { 3,809 ( 0.00%) if let Some((method_name, float)) = is_useless_rounding(cx, expr) { . span_lint_and_sugg( . cx, . UNUSED_ROUNDING, . expr.span, . format!("used the `{method_name}` method with a whole number float"), . format!("remove the `{method_name}` method call"), . float, . Applicability::MachineApplicable, . ); . } 319,168 ( 0.00%) } . } 3,809 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/default_constructed_unit_structs.rs -------------------------------------------------------------------------------- Ir -- line 46 ---------------------------------------- . "unit structs can be constructed without calling `default`" . } . . declare_lint_pass!(DefaultConstructedUnitStructs => [ . DEFAULT_CONSTRUCTED_UNIT_STRUCTS, . ]); . . fn is_alias(ty: hir::Ty<'_>) -> bool { 735 ( 0.00%) if let hir::TyKind::Path(ref qpath) = ty.kind { 245 ( 0.00%) is_ty_alias(qpath) 3,443 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_ty_alias (245x) . } else { . false . } . } . . impl LateLintPass<'_> for DefaultConstructedUnitStructs { 310,800 ( 0.00%) fn check_expr<'tcx>(&mut self, cx: &LateContext<'tcx>, expr: &'tcx hir::Expr<'tcx>) { 101,223 ( 0.00%) if let ExprKind::Call(fn_expr, &[]) = expr.kind . // make sure we have a call to `Default::default` 1,233 ( 0.00%) && let ExprKind::Path(ref qpath @ hir::QPath::TypeRelative(base, _)) = fn_expr.kind . // make sure this isn't a type alias: . // `::Assoc` cannot be used as a constructor 1,960 ( 0.00%) && !is_alias(*base) 2,450 ( 0.00%) && let Res::Def(_, def_id) = cx.qpath_res(qpath, fn_expr.hir_id) 19,110 ( 0.00%) => ???:::qpath_res (245x) 1,225 ( 0.00%) && cx.tcx.is_diagnostic_item(sym::default_fn, def_id) 17,722 ( 0.00%) => ???:::is_diagnostic_item (245x) . // make sure we have a struct with no fields (unit struct) 8 ( 0.00%) && let ty::Adt(def, ..) = cx.typeck_results().expr_ty(expr).kind() 80 ( 0.00%) => ???:::expr_ty (2x) . && def.is_struct() . && let var @ ty::VariantDef { ctor: Some((hir::def::CtorKind::Const, _)), .. } = def.non_enum_variant() . && !var.is_field_list_non_exhaustive() . && !expr.span.from_expansion() && !qpath.span().from_expansion() . // do not suggest replacing an expression by a type name with placeholders . && !base.is_suggestable_infer_ty() . { . let mut removals = vec![(expr.span.with_lo(qpath.qself_span().hi()), String::new())]; -- line 80 ---------------------------------------- -- line 91 ---------------------------------------- . diag.multipart_suggestion( . "remove this call to `default`", . removals, . Applicability::MachineApplicable, . ); . }, . ); . } 355,200 ( 0.00%) } . } 980 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/manual_float_methods.rs -------------------------------------------------------------------------------- Ir -- line 128 ---------------------------------------- . | DefKind::Ctor(..) . | DefKind::AssocConst { .. } => false, . . DefKind::Fn | DefKind::AssocFn | DefKind::Closure => tcx.constness(def_id) == Constness::NotConst, . } . } . . impl<'tcx> LateLintPass<'tcx> for ManualFloatMethods { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 89,287 ( 0.00%) if let ExprKind::Binary(kind, lhs, rhs) = expr.kind 900 ( 0.00%) && let ExprKind::Binary(lhs_kind, lhs_lhs, lhs_rhs) = lhs.kind 278 ( 0.00%) && let ExprKind::Binary(rhs_kind, rhs_lhs, rhs_rhs) = rhs.kind . // Checking all possible scenarios using a function would be a hopeless task, as we have . // 16 possible alignments of constants/operands. For now, let's use `partition`. 204 ( 0.00%) && let mut exprs = [lhs_lhs, lhs_rhs, rhs_lhs, rhs_rhs] 184 ( 0.00%) && exprs.iter_mut().partition_in_place(|i| i.res_local_id().is_some()) == 2 . && !expr.span.in_external_macro(cx.sess().source_map()) . && ( . is_not_const(cx.tcx, cx.tcx.hir_enclosing_body_owner(expr.hir_id).into()) . || self.msrv.meets(cx, msrvs::CONST_FLOAT_CLASSIFY) . ) . && let [first, second, const_1, const_2] = exprs . && let ecx = ConstEvalCtxt::new(cx) . && let ctxt = expr.span.ctxt() -- line 151 ---------------------------------------- -- line 197 ---------------------------------------- . "or, for conciseness", . format!("!{local_snippet}.is_infinite()"), . Applicability::MaybeIncorrect, . ); . }, . } . }); . } 355,200 ( 0.00%) } . } 272 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_data_structures/src/profiling.rs -------------------------------------------------------------------------------- Ir -- line 96 ---------------------------------------- . use parking_lot::RwLock; . use smallvec::SmallVec; . use tracing::warn; . . use crate::fx::FxHashMap; . use crate::outline; . use crate::sync::AtomicU64; . 172,845 ( 0.00%) bitflags::bitflags! { . #[derive(Clone, Copy)] . struct EventFilter: u16 { . const GENERIC_ACTIVITIES = 1 << 0; . const QUERY_PROVIDERS = 1 << 1; . /// Store detailed instant events, including timestamp and thread ID, . /// per each query cache hit. Note that this is quite expensive. . const QUERY_CACHE_HITS = 1 << 2; . const QUERY_BLOCKED = 1 << 3; -- line 112 ---------------------------------------- -- line 432 ---------------------------------------- . |profiler| profiler.query_cache_hit_event_kind, . query_invocation_id, . ); . } . } . . // We check both kinds of query cache hit events at once, to reduce overhead in the . // common case (with self-profile disabled). 86,422 ( 0.00%) if self.event_filter_mask.intersects(EventFilter::QUERY_CACHE_HIT_COMBINED) { . hint::cold_path(); . cold_call(self, query_invocation_id); . } . } . . /// Start profiling a query being blocked on a concurrent execution. . /// Profiling continues until the TimingGuard returned from this call is . /// dropped. -- line 448 ---------------------------------------- 699 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_resolve/src/rustdoc.rs -------------------------------------------------------------------------------- Ir -- line 199 ---------------------------------------- . . pub fn attrs_to_doc_fragments<'a, A: AttributeExt + Clone + 'a>( . attrs: impl Iterator)>, . doc_only: bool, . ) -> (Vec, ThinVec) { . let (min_size, max_size) = attrs.size_hint(); . let size_hint = max_size.unwrap_or(min_size); . let mut doc_fragments = Vec::with_capacity(size_hint); 129,428 ( 0.00%) let mut other_attrs = ThinVec::::with_capacity(if doc_only { 0 } else { size_hint }); . for (attr, item_id) in attrs { . if let Some((doc_str, fragment_kind)) = attr.doc_str_and_fragment_kind() { 10,419 ( 0.00%) let doc = beautify_doc_string(doc_str, fragment_kind.comment_kind()); 389,363 ( 0.01%) => ???:rustc_ast::util::comments::beautify_doc_string (3,473x) 13,892 ( 0.00%) let attr_span = attr.span(); 7,006 ( 0.00%) let (span, from_expansion) = match fragment_kind { . DocFragmentKind::Sugared(_) => (attr_span, attr_span.from_expansion()), . DocFragmentKind::Raw(value_span) => { . (value_span.with_ctxt(attr_span.ctxt()), value_span.from_expansion()) . } . }; . let fragment = . DocFragment { span, doc, kind: fragment_kind, item_id, indent: 0, from_expansion }; . doc_fragments.push(fragment); -- line 220 ---------------------------------------- -- line 221 ---------------------------------------- . } else if !doc_only { . other_attrs.push(attr.clone()); . } . } . . doc_fragments.shrink_to_fit(); . other_attrs.shrink_to_fit(); . 62,692 ( 0.00%) unindent_doc_fragments(&mut doc_fragments); 2,262,769 ( 0.03%) => ???:rustc_resolve::rustdoc::unindent_doc_fragments (62,692x) . 376,152 ( 0.01%) (doc_fragments, other_attrs) . } . . /// Return the doc-comments on this item, grouped by the module they came from. . /// The module can be different if this is a re-export with added documentation. . /// . /// The last newline is not trimmed so the produced strings are reusable between . /// early and late doc link resolution regardless of their position. . pub fn prepare_to_doc_link_resolution( -- line 239 ---------------------------------------- 10,990 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_type_ir/src/fast_reject.rs -------------------------------------------------------------------------------- Ir -- line 144 ---------------------------------------- . ty::Foreign(def_id) => Some(SimplifiedType::Foreign(def_id.into())), . ty::Error(_) => Some(SimplifiedType::Error), . ty::Bound(..) | ty::Infer(_) => None, . } . } . . impl SimplifiedType { . pub fn def(self) -> Option { 14,570 ( 0.00%) match self { . SimplifiedType::Adt(d) . | SimplifiedType::Foreign(d) . | SimplifiedType::Trait(d) . | SimplifiedType::Closure(d) . | SimplifiedType::Coroutine(d) . | SimplifiedType::CoroutineWitness(d) => Some(d), . _ => None, . } -- line 160 ---------------------------------------- 56,588 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/strlen_on_c_strings.rs -------------------------------------------------------------------------------- Ir -- line 45 ---------------------------------------- . . impl StrlenOnCStrings { . pub fn new(conf: &Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl<'tcx> LateLintPass<'tcx> for StrlenOnCStrings { 355,200 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 133,200 ( 0.00%) if !expr.span.from_expansion() 2,675 ( 0.00%) && let ExprKind::Call(func, [recv]) = expr.kind 2,283 ( 0.00%) && let ExprKind::Path(path) = &func.kind 3,805 ( 0.00%) && let Some(did) = cx.qpath_res(path, func.hir_id).opt_def_id() 23,569 ( 0.00%) => ???:::qpath_res (761x) 3,805 ( 0.00%) && match_libc_symbol(cx, did, sym::strlen) 32,723 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::match_libc_symbol (761x) . && let ExprKind::MethodCall(path, self_arg, [], _) = recv.kind . && !recv.span.from_expansion() . && path.ident.name == sym::as_ptr . && let typeck = cx.typeck_results() . && typeck . .expr_ty_adjusted(self_arg) . .peel_refs() . .is_lang_item(cx, LangItem::CStr) -- line 66 ---------------------------------------- -- line 100 ---------------------------------------- . } else { . format!("{val_name}.to_bytes().len()") . }; . . diag.span_suggestion(span, "use", suggestion, app); . }, . ); . } 355,200 ( 0.00%) } . } 20,061 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs -------------------------------------------------------------------------------- Ir -- line 82 ---------------------------------------- . #[inline(always)] . const unsafe fn get_offset_len_noubcheck( . ptr: *const [T], . offset: usize, . len: usize, . ) -> *const [T] { . let ptr = ptr as *const T; . // SAFETY: The caller already checked these preconditions 32,426 ( 0.00%) let ptr = unsafe { crate::intrinsics::offset(ptr, offset) }; . crate::intrinsics::aggregate_raw_ptr(ptr, len) . } . . #[inline(always)] . const unsafe fn get_offset_len_mut_noubcheck( . ptr: *mut [T], . offset: usize, . len: usize, . ) -> *mut [T] { . let ptr = ptr as *mut T; . // SAFETY: The caller already checked these preconditions 613 ( 0.00%) let ptr = unsafe { crate::intrinsics::offset(ptr, offset) }; . crate::intrinsics::aggregate_raw_ptr(ptr, len) . } . . /// A helper trait used for indexing operations. . /// . /// Implementations of this trait have to promise that if the argument . /// to `get_unchecked(_mut)` is a safe reference, then so is the result. . #[stable(feature = "slice_get_slice", since = "1.28.0")] -- line 110 ---------------------------------------- -- line 176 ---------------------------------------- . /// The methods `index` and `index_mut` panic if the index is out of bounds. . #[stable(feature = "slice_get_slice_impls", since = "1.15.0")] . #[rustc_const_unstable(feature = "const_index", issue = "143775")] . const unsafe impl SliceIndex<[T]> for usize { . type Output = T; . . #[inline] . fn get(self, slice: &[T]) -> Option<&T> { 585,149 ( 0.01%) if self < slice.len() { . // SAFETY: `self` is checked to be in bounds. 16,305 ( 0.00%) unsafe { Some(slice_get_unchecked(slice, self)) } . } else { . None . } . } . . #[inline] . #[rustc_no_writable] . fn get_mut(self, slice: &mut [T]) -> Option<&mut T> { 1,328 ( 0.00%) if self < slice.len() { . // SAFETY: `self` is checked to be in bounds. . unsafe { Some(slice_get_unchecked(slice, self)) } . } else { . None . } . } . . #[inline] -- line 203 ---------------------------------------- -- line 211 ---------------------------------------- . // SAFETY: the caller guarantees that `slice` is not dangling, so it . // cannot be longer than `isize::MAX`. They also guarantee that . // `self` is in bounds of `slice` so `self` cannot overflow an `isize`, . // so the call to `add` is safe. . unsafe { . // Use intrinsics::assume instead of hint::assert_unchecked so that we don't check the . // precondition of this function twice. . crate::intrinsics::assume(self < slice.len()); 32,822 ( 0.00%) slice_get_unchecked(slice, self) . } . } . . #[inline] . #[track_caller] . unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut T { . assert_unsafe_precondition!( . check_library_ub, . "slice::get_unchecked_mut requires that the index is within the slice", . (this: usize = self, len: usize = slice.len()) => this < len . ); . // SAFETY: see comments for `get_unchecked` above. 923 ( 0.00%) unsafe { slice_get_unchecked(slice, self) } . } . . #[inline] . fn index(self, slice: &[T]) -> &T { . // N.B., use intrinsic indexing 1,154,173 ( 0.02%) &(*slice)[self] . } . . #[inline] . #[rustc_no_writable] . fn index_mut(self, slice: &mut [T]) -> &mut T { . // N.B., use intrinsic indexing 17,427 ( 0.00%) &mut (*slice)[self] . } . } . . /// Because `IndexRange` guarantees `start <= end`, fewer checks are needed here . /// than there are for a general `Range` (which might be `100..3`). . #[rustc_const_unstable(feature = "const_index", issue = "143775")] . const unsafe impl SliceIndex<[T]> for ops::IndexRange { . type Output = [T]; -- line 253 ---------------------------------------- -- line 391 ---------------------------------------- . ( . start: usize = self.start, . end: usize = self.end, . len: usize = slice.len() . ) => end >= start && end <= len . ); . // SAFETY: see comments for `get_unchecked` above. . unsafe { 14 ( 0.00%) let new_len = crate::intrinsics::unchecked_sub(self.end, self.start); . get_offset_len_mut_noubcheck(slice, self.start, new_len) . } . } . . #[inline(always)] . fn index(self, slice: &[T]) -> &[T] { . // Using checked_sub is a safe way to get `SubUnchecked` in MIR . if let Some(new_len) = usize::checked_sub(self.end, self.start) 464 ( 0.00%) && self.end <= slice.len() . { . // SAFETY: `self` is checked to be valid and in bounds above. . unsafe { &*get_offset_len_noubcheck(slice, self.start, new_len) } . } else { . slice_index_fail(self.start, self.end, slice.len()) . } . } . -- line 416 ---------------------------------------- -- line 536 ---------------------------------------- . #[inline] . unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut [T] { . // SAFETY: the caller has to uphold the safety contract for `get_unchecked_mut`. . unsafe { (self.start..slice.len()).get_unchecked_mut(slice) } . } . . #[inline] . fn index(self, slice: &[T]) -> &[T] { 298 ( 0.00%) if self.start > slice.len() { . slice_index_fail(self.start, slice.len(), slice.len()) . } . // SAFETY: `self` is checked to be valid and in bounds above. . unsafe { 4 ( 0.00%) let new_len = crate::intrinsics::unchecked_sub(slice.len(), self.start); . &*get_offset_len_noubcheck(slice, self.start, new_len) . } . } . . #[inline] . #[rustc_no_writable] . fn index_mut(self, slice: &mut [T]) -> &mut [T] { . if self.start > slice.len() { -- line 557 ---------------------------------------- 99,261 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/macro_metavars_in_unsafe.rs -------------------------------------------------------------------------------- Ir -- line 106 ---------------------------------------- . /// } . /// } . /// ``` . metavar_expns: BTreeMap, . } . . impl ExprMetavarsInUnsafe { . pub fn new(conf: &'static Conf) -> Self { 3 ( 0.00%) Self { . warn_unsafe_macro_metavars_in_private_macros: conf.warn_unsafe_macro_metavars_in_private_macros, . metavar_expns: BTreeMap::new(), . } . } . } . . struct BodyVisitor<'a, 'tcx> { . /// Stack of unsafe blocks -- the top item always represents the last seen unsafe block from -- line 122 ---------------------------------------- -- line 147 ---------------------------------------- . . fn is_public_macro(cx: &LateContext<'_>, def_id: LocalDefId) -> bool { . (cx.effective_visibilities.is_exported(def_id) || find_attr!(cx.tcx, def_id, MacroExport { .. })) . && !cx.tcx.is_doc_hidden(def_id) . } . . impl<'tcx> Visitor<'tcx> for BodyVisitor<'_, 'tcx> { . fn visit_stmt(&mut self, s: &'tcx Stmt<'tcx>) { 4,198 ( 0.00%) let from_expn = s.span.from_expansion(); . if from_expn { 1,728 ( 0.00%) self.expn_depth += 1; . } . walk_stmt(self, s); . if from_expn { 1,736 ( 0.00%) self.expn_depth -= 1; . } . } . 351,800 ( 0.00%) fn visit_expr(&mut self, e: &'tcx Expr<'tcx>) { 43,975 ( 0.00%) let ctxt = e.span.ctxt(); . 87,950 ( 0.00%) if let ExprKind::Block(block, _) = e.kind 9,534 ( 0.00%) && let BlockCheckMode::UnsafeBlock(UnsafeSource::UserProvided) = block.rules . && !ctxt.is_root() . && let Some(macro_def_id) = ctxt.outer_expn_data().macro_def_id . && let Some(macro_def_id) = macro_def_id.as_local() . && (self.lint.warn_unsafe_macro_metavars_in_private_macros || is_public_macro(self.cx, macro_def_id)) . { . self.macro_unsafe_blocks.push(block.hir_id); . self.expn_depth += 1; . walk_block(self, block); . self.expn_depth -= 1; . self.macro_unsafe_blocks.pop(); 105,018 ( 0.00%) } else if ctxt.is_root() && self.expn_depth > 0 { . let unsafe_block = self.macro_unsafe_blocks.last().copied(); . 2,182 ( 0.00%) match (self.lint.metavar_expns.entry(e.span), unsafe_block) { 3,620 ( 0.00%) (Entry::Vacant(e), None) => { 724 ( 0.00%) e.insert(MetavarState::ReferencedInSafe); . }, . (Entry::Vacant(e), Some(unsafe_block)) => { . e.insert(MetavarState::ReferencedInUnsafe { . unsafe_blocks: vec![unsafe_block], . }); . }, . (Entry::Occupied(mut e), None) => { 1,101 ( 0.00%) if let MetavarState::ReferencedInUnsafe { .. } = *e.get() { . e.insert(MetavarState::ReferencedInSafe); . } . }, . (Entry::Occupied(mut e), Some(unsafe_block)) => { . if let MetavarState::ReferencedInUnsafe { unsafe_blocks } = e.get_mut() . && !unsafe_blocks.contains(&unsafe_block) . { . unsafe_blocks.push(unsafe_block); . } . }, . } . . // NB: No need to visit descendant nodes. They're guaranteed to represent the same . // metavariable . } else { 128,652 ( 0.00%) walk_expr(self, e); 5,573,942 ( 0.08%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_expr:: (2,964x) . } 351,800 ( 0.00%) } . } . . impl<'tcx> LateLintPass<'tcx> for ExprMetavarsInUnsafe { 26,676 ( 0.00%) fn check_body(&mut self, cx: &LateContext<'tcx>, body: &rustc_hir::Body<'tcx>) { 23,712 ( 0.00%) if is_lint_allowed(cx, MACRO_METAVARS_IN_UNSAFE, body.value.hir_id) { 4,515,195 ( 0.06%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_lint_allowed (2,964x) . return; . } . . // This BodyVisitor is separate and not part of the lint pass because there is no . // `check_stmt_post` on `(Late)LintPass`, which we'd need to detect when we're leaving a macro span . 17,784 ( 0.00%) let mut vis = BodyVisitor { . macro_unsafe_blocks: Vec::new(), . #[expect(clippy::bool_to_int_with_if)] // obfuscates the meaning 5,928 ( 0.00%) expn_depth: if body.value.span.from_expansion() { 1 } else { 0 }, . cx, . lint: self . }; . vis.visit_body(body); 20,748 ( 0.00%) } . . fn check_crate_post(&mut self, cx: &LateContext<'tcx>) { . // Aggregate all unsafe blocks from all spans: . // ``` . // macro_rules! x { . // ($w:expr, $x:expr, $y:expr) => { $w; unsafe { $w; $x; }; unsafe { $x; $y; }; } . // } . // $w: [] (unsafe#0 is never added because it was referenced in a safe context) . // $x: [unsafe#0, unsafe#1] . // $y: [unsafe#1] . // ``` . // We want to lint unsafe blocks #0 and #1 . let bad_unsafe_blocks = self . .metavar_expns . .values() 724 ( 0.00%) .filter_map(|state| match state { . MetavarState::ReferencedInUnsafe { unsafe_blocks } => Some(unsafe_blocks.as_slice()), . MetavarState::ReferencedInSafe => None, . }) . .flatten() . .copied() . .inspect(|&unsafe_block| { . let level_spec = cx.tcx.lint_level_spec_at_node(MACRO_METAVARS_IN_UNSAFE, unsafe_block); . if level_spec.is_expect() { -- line 255 ---------------------------------------- -- line 266 ---------------------------------------- . // The invocation doesn't matter. Also we want to dedupe by the unsafe block and not by anything . // related to the callsite. . let span = cx.tcx.hir_span(id); . . (id, Span::new(span.lo(), span.hi(), SyntaxContext::root(), None)) . }) . .dedup_by(|&(_, a), &(_, b)| a == b); . 20 ( 0.00%) for (id, span) in bad_unsafe_blocks { 29,107 ( 0.00%) => /home/moon/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itertools-0.15.0/src/adaptors/coalesce.rs:, ::check_crate_post::{closure#0}>>>, ::check_crate_post::{closure#1}>, ::check_crate_post::{closure#2}>, itertools::adaptors::coalesce::DedupPred2CoalescePred<::check_crate_post::{closure#3}>, itertools::adaptors::coalesce::NoCount> as core::iter::traits::iterator::Iterator>::next (1x) . span_lint_hir_and_then( . cx, . MACRO_METAVARS_IN_UNSAFE, . id, . span, . "this macro expands metavariables in an unsafe block", . |diag| { . diag.note("this allows the user of the macro to write unsafe code outside of an unsafe block"); -- line 282 ---------------------------------------- -- line 284 ---------------------------------------- . "consider expanding any metavariables outside of this block, e.g. by storing them in a variable", . ); . diag.help( . "... or also expand referenced metavariables in a safe context to require an unsafe block at callsite", . ); . }, . ); . } 8 ( 0.00%) } . } 186,908 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/ineffective_open_options.rs -------------------------------------------------------------------------------- Ir -- line 38 ---------------------------------------- . pub INEFFECTIVE_OPEN_OPTIONS, . suspicious, . "usage of both `write(true)` and `append(true)` on same `OpenOptions`" . } . . declare_lint_pass!(IneffectiveOpenOptions => [INEFFECTIVE_OPEN_OPTIONS]); . . impl<'tcx> LateLintPass<'tcx> for IneffectiveOpenOptions { 177,600 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 98,714 ( 0.00%) if let ExprKind::MethodCall(name, recv, [_], _) = expr.kind 2,296 ( 0.00%) && name.ident.name == sym::open . && !expr.span.from_expansion() . && cx . .typeck_results() . .expr_ty(recv) . .peel_refs() . .is_diag_item(cx, sym::FsOpenOptions) . { . let mut append = false; -- line 56 ---------------------------------------- -- line 94 ---------------------------------------- . write_span, . "unnecessary use of `.write(true)` because there is `.append(true)`", . "remove `.write(true)`", . String::new(), . Applicability::MachineApplicable, . ); . } . } 177,600 ( 0.00%) } . } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/misc_early/unneeded_wildcard_pattern.rs -------------------------------------------------------------------------------- Ir -- line 2 ---------------------------------------- . use rustc_ast::ast::{Pat, PatFieldsRest, PatKind}; . use rustc_errors::Applicability; . use rustc_lint::{EarlyContext, LintContext as _}; . use rustc_span::Span; . . use super::UNNEEDED_WILDCARD_PATTERN; . . pub(super) fn check(cx: &EarlyContext<'_>, pat: &Pat) { 125,714 ( 0.00%) if let PatKind::TupleStruct(_, _, ref patterns) | PatKind::Tuple(ref patterns) = pat.kind . && let Some(rest_index) = patterns.iter().position(Pat::is_rest) . { . if let Some((left_index, left_pat)) = patterns[..rest_index] . .iter() . .rev() . .take_while(|pat| matches!(pat.kind, PatKind::Wild)) . .enumerate() . .last() -- line 18 ---------------------------------------- -- line 29 ---------------------------------------- . && !pat.span.in_external_macro(cx.sess().source_map()) . { . span_lint( . cx, . patterns[rest_index].span.shrink_to_hi().to(right_pat.span), . right_index == 0, . ); . } 14,774 ( 0.00%) } else if let PatKind::Struct(_, _, patfields, rest) = &pat.kind . && let PatFieldsRest::Rest(rspan) = rest . && let Some((right_index, _right_pat)) = patfields . .iter() . .rev() . .take_while(|patfield| matches!(patfield.pat.kind, PatKind::Wild)) . .enumerate() . .last() . // Only run if `rest_pattern_accessible_field` is Allow, as they otherwise will contradict each other. -- line 45 ---------------------------------------- 85 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/types/mod.rs -------------------------------------------------------------------------------- Ir -- line 406 ---------------------------------------- . . pub struct Types { . vec_box_size_threshold: u64, . type_complexity_threshold: u64, . avoid_breaking_exported_api: bool, . } . . impl<'tcx> LateLintPass<'tcx> for Types { 32,880 ( 0.00%) fn check_fn( . &mut self, . cx: &LateContext<'tcx>, . fn_kind: FnKind<'_>, . decl: &FnDecl<'tcx>, . _: &Body<'_>, . _: Span, . def_id: LocalDefId, . ) { 13,685 ( 0.00%) let is_in_trait_impl = if let hir::Node::Item(item) = cx . .tcx 5,480 ( 0.00%) .hir_node_by_def_id(cx.tcx.hir_get_parent_item(cx.tcx.local_def_id_to_hir_id(def_id)).def_id) 268,026 ( 0.00%) => ???:::hir_get_parent_item (2,740x) . { 13,388 ( 0.00%) matches!(item.kind, ItemKind::Impl(hir::Impl { of_trait: Some(_), .. })) . } else { . false . }; . 5,480 ( 0.00%) let is_exported = cx.effective_visibilities.is_exported(def_id); 155,535 ( 0.00%) => ???:::is_exported (2,740x) . 306 ( 0.00%) self.check_fn_decl( . cx, . decl, . CheckTyContext { . is_in_trait_impl, 10,960 ( 0.00%) in_body: matches!(fn_kind, FnKind::Closure), . is_exported, . ..CheckTyContext::default() . }, . ); 21,920 ( 0.00%) } . . fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'tcx>) { 4,506 ( 0.00%) let is_exported = cx.effective_visibilities.is_exported(item.owner_id.def_id); 81,249 ( 0.00%) => ???:::is_exported (1,502x) . 7,500 ( 0.00%) match item.kind { 90 ( 0.00%) ItemKind::Static(_, _, ty, _) | ItemKind::Const(_, _, ty, _) => self.check_ty( 5,410 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/types/mod.rs:::check_ty (18x) . cx, . ty, . CheckTyContext { . is_exported, . ..CheckTyContext::default() . }, . ), . // functions, enums, structs, impls and traits are covered . _ => (), . } . } . 21,357 ( 0.00%) fn check_impl_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx ImplItem<'tcx>) { 6,102 ( 0.00%) match item.kind { . ImplItemKind::Const(ty, _) => { . let is_in_trait_impl = if let hir::Node::Item(item) = cx . .tcx . .hir_node_by_def_id(cx.tcx.hir_get_parent_item(item.hir_id()).def_id) . { . matches!(item.kind, ItemKind::Impl(hir::Impl { of_trait: Some(_), .. })) . } else { . false -- line 472 ---------------------------------------- -- line 481 ---------------------------------------- . }, . ); . }, . // Methods are covered by check_fn. . // Type aliases are ignored because oftentimes it's impossible to . // make type alias declaration in trait simpler, see #1013 . ImplItemKind::Fn(..) | ImplItemKind::Type(..) => (), . } 24,408 ( 0.00%) } . . fn check_field_def(&mut self, cx: &LateContext<'tcx>, field: &hir::FieldDef<'tcx>) { 612 ( 0.00%) if field.span.from_expansion() { . return; . } . 696 ( 0.00%) let is_exported = cx.effective_visibilities.is_exported(field.def_id); 11,109 ( 0.00%) => ???:::is_exported (232x) . 1,160 ( 0.00%) self.check_ty( 251,580 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/types/mod.rs:::check_ty (232x) . cx, 232 ( 0.00%) field.ty, . CheckTyContext { . is_exported, . ..CheckTyContext::default() . }, . ); . } . 1,830 ( 0.00%) fn check_trait_item(&mut self, cx: &LateContext<'tcx>, item: &TraitItem<'tcx>) { 549 ( 0.00%) let is_exported = cx.effective_visibilities.is_exported(item.owner_id.def_id); 10,431 ( 0.00%) => ???:::is_exported (183x) . . let context = CheckTyContext { . is_exported, . ..CheckTyContext::default() . }; . 1,569 ( 0.00%) match item.kind { . TraitItemKind::Const(ty, _) | TraitItemKind::Type(_, Some(ty)) => { . self.check_ty(cx, ty, context); . }, . TraitItemKind::Fn(ref sig, trait_method) => { . // Check only methods without body . // Methods with body are covered by check_fn. 296 ( 0.00%) if let TraitFn::Required(_) = trait_method { 270 ( 0.00%) self.check_fn_decl(cx, sig.decl, context); . } . }, . TraitItemKind::Type(..) => (), . } 744 ( 0.00%) } . . fn check_local(&mut self, cx: &LateContext<'tcx>, local: &LetStmt<'tcx>) { 2,349 ( 0.00%) if let Some(ty) = local.ty { 72 ( 0.00%) self.check_ty( 5,244 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/types/mod.rs:::check_ty (24x) . cx, . ty, . CheckTyContext { . in_body: true, . ..CheckTyContext::default() . }, . ); . } . } . } . . impl Types { . pub fn new(conf: &'static Conf) -> Self { . Self { 2 ( 0.00%) vec_box_size_threshold: conf.vec_box_size_threshold, 1 ( 0.00%) type_complexity_threshold: conf.type_complexity_threshold, 1 ( 0.00%) avoid_breaking_exported_api: conf.avoid_breaking_exported_api, . } . } . . fn check_fn_decl<'tcx>(&mut self, cx: &LateContext<'tcx>, decl: &FnDecl<'tcx>, context: CheckTyContext) { . // Ignore functions in trait implementations as they are usually forced by the trait definition. . // . // FIXME: ideally we would like to warn *if the complicated type can be simplified*, but it's hard . // to check. 8,220 ( 0.00%) if context.is_in_trait_impl { . return; . } . 243 ( 0.00%) for input in decl.inputs { 1,660 ( 0.00%) self.check_ty(cx, input, context); 47,631 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/types/mod.rs:::check_ty (191x) . } . 714 ( 0.00%) if let FnRetTy::Return(ty) = decl.output { 912 ( 0.00%) self.check_ty(cx, ty, context); 116,739 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/types/mod.rs:::check_ty (138x) . } . } . . /// Recursively check for `TypePass` lints in the given type. Stop at the first . /// lint found. . /// . /// The parameter `is_local` distinguishes the context of the type. 17,842 ( 0.00%) fn check_ty<'tcx>(&mut self, cx: &LateContext<'tcx>, hir_ty: &hir::Ty<'tcx>, mut context: CheckTyContext) { 7,557 ( 0.00%) if hir_ty.span.from_expansion() { . return; . } . . // Skip trait implementations; see issue #605. . if context.is_in_trait_impl { . return; . } . 4,016 ( 0.00%) if !context.is_nested_call && type_complexity::check(cx, hir_ty, self.type_complexity_threshold) { . return; . } . 13,971 ( 0.00%) match hir_ty.kind { 4,539 ( 0.00%) TyKind::Path(ref qpath) if !context.in_body => { 2,994 ( 0.00%) let hir_id = hir_ty.hir_id; 4,491 ( 0.00%) let res = cx.qpath_res(qpath, hir_id); 19,519 ( 0.00%) => ???:::qpath_res (829x) . if let Some(def_id) = res.opt_def_id() . && self.is_type_change_allowed(context) . { . // All lints that are being checked in this block are guarded by . // the `avoid_breaking_exported_api` configuration. When adding a . // new lint, please also add the name to the configuration documentation . // in `clippy_config::conf` . . let mut triggered = false; 1,758 ( 0.00%) triggered |= box_collection::check(cx, hir_ty, qpath, def_id); 9,271 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/types/box_collection.rs:clippy_lints::types::box_collection::check (158x) 2,344 ( 0.00%) triggered |= redundant_allocation::check(cx, hir_ty, qpath, def_id); 21,057 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/types/redundant_allocation.rs:clippy_lints::types::redundant_allocation::check (158x) 2,051 ( 0.00%) triggered |= rc_buffer::check(cx, hir_ty, qpath, def_id); 14,710 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/types/rc_buffer.rs:clippy_lints::types::rc_buffer::check (158x) 2,637 ( 0.00%) triggered |= vec_box::check(cx, hir_ty, qpath, def_id, self.vec_box_size_threshold); 16,500 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/types/vec_box.rs:clippy_lints::types::vec_box::check (158x) 2,051 ( 0.00%) triggered |= option_option::check(cx, hir_ty, qpath, def_id); 16,517 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/types/option_option.rs:clippy_lints::types::option_option::check (158x) 1,758 ( 0.00%) triggered |= linked_list::check(cx, hir_ty, def_id); 12,766 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/types/linked_list.rs:clippy_lints::types::linked_list::check (158x) 2,344 ( 0.00%) triggered |= rc_mutex::check(cx, hir_ty, qpath, def_id); 14,188 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/types/rc_mutex.rs:clippy_lints::types::rc_mutex::check (158x) 1,465 ( 0.00%) triggered |= owned_cow::check(cx, qpath, def_id); 14,541 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/types/owned_cow.rs:clippy_lints::types::owned_cow::check (158x) . 4,688 ( 0.00%) if triggered { . return; . } . } 5,518 ( 0.00%) match *qpath { . QPath::Resolved(Some(ty), p) => { . context.is_nested_call = true; . self.check_ty(cx, ty, context); . for ty in p.segments.iter().flat_map(|seg| { . seg.args . .as_ref() . .map_or_else(|| [].iter(), |params| params.args.iter()) . .filter_map(|arg| match arg { -- line 624 ---------------------------------------- -- line 626 ---------------------------------------- . _ => None, . }) . }) { . self.check_ty(cx, ty.as_unambig_ty(), context); . } . }, . QPath::Resolved(None, p) => { . context.is_nested_call = true; 2,946 ( 0.00%) for ty in p.segments.iter().flat_map(|seg| { . seg.args . .as_ref() 644 ( 0.00%) .map_or_else(|| [].iter(), |params| params.args.iter()) 954 ( 0.00%) .filter_map(|arg| match arg { . GenericArg::Type(ty) => Some(ty), . _ => None, . }) . }) { 2,532 ( 0.00%) self.check_ty(cx, ty.as_unambig_ty(), context); 183,399 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/types/mod.rs:::check_ty'2 (408x) . } . }, 235 ( 0.00%) QPath::TypeRelative(ty, seg) => { . context.is_nested_call = true; 1,410 ( 0.00%) self.check_ty(cx, ty, context); 1,748 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/types/mod.rs:::check_ty'2 (4x) 705 ( 0.00%) if let Some(params) = seg.args { . for ty in params.args.iter().filter_map(|arg| match arg { . GenericArg::Type(ty) => Some(ty), . _ => None, . }) { . self.check_ty(cx, ty.as_unambig_ty(), context); . } . } . }, . } . }, . TyKind::Path(ref qpath) => { 96 ( 0.00%) let res = cx.qpath_res(qpath, hir_ty.hir_id); 368 ( 0.00%) => ???:::qpath_res (16x) . if let Some(def_id) = res.opt_def_id() . && self.is_type_change_allowed(context) . { 36 ( 0.00%) owned_cow::check(cx, qpath, def_id); 1,052 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/types/owned_cow.rs:clippy_lints::types::owned_cow::check (12x) . } . }, 450 ( 0.00%) TyKind::Ref(lt, ref mut_ty) => { . context.is_nested_call = true; 1,350 ( 0.00%) if !borrowed_box::check(cx, hir_ty, lt, mut_ty) { 6,458 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/types/borrowed_box.rs:clippy_lints::types::borrowed_box::check (212x) . self.check_ty(cx, mut_ty.ty, context); . } . }, 30 ( 0.00%) TyKind::Slice(ty) | TyKind::Array(ty, _) | TyKind::Ptr(MutTy { ty, .. }) => { . context.is_nested_call = true; . self.check_ty(cx, ty, context); . }, 43 ( 0.00%) TyKind::Tup(tys) => { . context.is_nested_call = true; . for ty in tys { 192 ( 0.00%) self.check_ty(cx, ty, context); 9,219 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/types/mod.rs:::check_ty'2 (12x) . } . }, . _ => {}, . } 12,976 ( 0.00%) } . . /// This function checks if the type is allowed to change in the current context . /// based on the `avoid_breaking_exported_api` configuration . fn is_type_change_allowed(&self, context: CheckTyContext) -> bool { . !(context.is_exported && self.avoid_breaking_exported_api) . } . } . -- line 694 ---------------------------------------- 13,454 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/alloc.rs -------------------------------------------------------------------------------- Ir -- line 114 ---------------------------------------- . #[stable(feature = "global_alloc", since = "1.28.0")] . #[must_use = "losing the pointer will leak memory"] . #[inline] . #[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces . pub unsafe fn alloc(layout: Layout) -> *mut u8 { . unsafe { . // Make sure we don't accidentally allow omitting the allocator shim in . // stable code until it is actually stabilized. 8,721 ( 0.00%) __rust_no_alloc_shim_is_unstable_v2(); 9 ( 0.00%) => ???:std::exception::~exception() (9x) . 99,599 ( 0.00%) __rust_alloc(layout.size(), layout.alignment()) 575 ( 0.00%) => ???:__rustc::__rust_alloc (16x) . } . } . . /// Deallocates memory with the global allocator. . /// . /// This function forwards calls to the [`GlobalAlloc::dealloc`] method . /// of the allocator registered with the `#[global_allocator]` attribute . /// if there is one, or the `std` crate’s default. -- line 132 ---------------------------------------- -- line 161 ---------------------------------------- . pub unsafe fn dealloc(ptr: *mut u8, layout: Layout) { . unsafe { dealloc_nonnull(NonNull::new_unchecked(ptr), layout) } . } . . /// Same as [`dealloc`] but when you already have a non-null pointer . #[inline] . #[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces . unsafe fn dealloc_nonnull(ptr: NonNull, layout: Layout) { 104,228 ( 0.00%) unsafe { __rust_dealloc(ptr, layout.size(), layout.alignment()) } 3,230 ( 0.00%) => ???:__rustc::__rdl_dealloc (85x) . } . . /// Reallocates memory with the global allocator. . /// . /// This function forwards calls to the [`GlobalAlloc::realloc`] method . /// of the allocator registered with the `#[global_allocator]` attribute . /// if there is one, or the `std` crate’s default. . /// -- line 177 ---------------------------------------- -- line 214 ---------------------------------------- . pub unsafe fn realloc(ptr: *mut u8, layout: Layout, new_size: usize) -> *mut u8 { . unsafe { realloc_nonnull(NonNull::new_unchecked(ptr), layout, new_size) } . } . . /// Same as [`realloc`] but when you already have a non-null pointer . #[inline] . #[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces . unsafe fn realloc_nonnull(ptr: NonNull, layout: Layout, new_size: usize) -> *mut u8 { 6,486 ( 0.00%) unsafe { __rust_realloc(ptr, layout.size(), layout.alignment(), new_size) } 10,803 ( 0.00%) => ???:__rustc::__rust_realloc (34x) . } . . /// Allocates zero-initialized memory with the global allocator. . /// . /// This function forwards calls to the [`GlobalAlloc::alloc_zeroed`] method . /// of the allocator registered with the `#[global_allocator]` attribute . /// if there is one, or the `std` crate’s default. . /// -- line 230 ---------------------------------------- -- line 276 ---------------------------------------- . #[inline] . #[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces . pub unsafe fn alloc_zeroed(layout: Layout) -> *mut u8 { . unsafe { . // Make sure we don't accidentally allow omitting the allocator shim in . // stable code until it is actually stabilized. . __rust_no_alloc_shim_is_unstable_v2(); . 68 ( 0.00%) __rust_alloc_zeroed(layout.size(), layout.alignment()) 1,530 ( 0.00%) => ???:__rustc::__rust_alloc_zeroed (17x) . } . } . . impl Global { . #[inline] . #[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces . fn alloc_impl_runtime(layout: Layout, zeroed: bool) -> Result, AllocError> { 22,562 ( 0.00%) match layout.size() { . 0 => Ok(layout.dangling_ptr().cast_slice(0)), . // SAFETY: `layout` is non-zero in size, . size => unsafe { 11,288 ( 0.00%) let raw_ptr = if zeroed { alloc_zeroed(layout) } else { alloc(layout) }; 11,279 ( 0.00%) => ???:std::exception::~exception() (11,279x) . let ptr = NonNull::new(raw_ptr).ok_or(AllocError)?; . Ok(ptr.cast_slice(size)) . }, . } . } . . #[inline] . #[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces . fn deallocate_impl_runtime(ptr: NonNull, layout: Layout) { 12,882 ( 0.00%) if layout.size() != 0 { . // SAFETY: . // * We have checked that `layout` is non-zero in size. . // * The caller is obligated to provide a layout that "fits", and in this case, . // "fit" always means a layout that is equal to the original, because our . // `allocate()`, `grow()`, and `shrink()` implementations never returns a larger . // allocation than requested. . // * Other conditions must be upheld by the caller, as per `Allocator::deallocate()`'s . // safety documentation. -- line 314 ---------------------------------------- 49,089 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/int_plus_one.rs -------------------------------------------------------------------------------- Ir -- line 48 ---------------------------------------- . enum LeOrGe { . Le, . Ge, . } . . impl TryFrom for LeOrGe { . type Error = (); . fn try_from(value: BinOpKind) -> Result { 864 ( 0.00%) match value { . BinOpKind::Le => Ok(Self::Le), . BinOpKind::Ge => Ok(Self::Ge), . _ => Err(()), . } . } . } . . impl IntPlusOne { -- line 64 ---------------------------------------- -- line 76 ---------------------------------------- . Self::is_one(expr) . } else { . false . } . } . . /// Checks whether `expr` is `x + 1` or `1 + x`, and if so, returns `x` . fn as_x_plus_one(expr: &Expr) -> Option<&Expr> { 396 ( 0.00%) if let ExprKind::Binary(op, lhs, rhs) = &expr.kind . && op.node == BinOpKind::Add . { . if Self::is_one(rhs) { . // x + 1 . return Some(lhs); . } else if Self::is_one(lhs) { . // 1 + x . return Some(rhs); . } . } . None . } . . /// Checks whether `expr` is `x - 1` or `-1 + x`, and if so, returns `x` . fn as_x_minus_one(expr: &Expr) -> Option<&Expr> { 396 ( 0.00%) if let ExprKind::Binary(op, lhs, rhs) = &expr.kind { . if op.node == BinOpKind::Sub && Self::is_one(rhs) { . // x - 1 . return Some(lhs); . } else if op.node == BinOpKind::Add && Self::is_neg_one(lhs) { . // -1 + x . return Some(rhs); . } . } -- line 108 ---------------------------------------- -- line 151 ---------------------------------------- . let rec = sugg::make_binop(new_binop, &new_lhs, &new_rhs); . diag.span_suggestion(expr.span, "change it to", rec, app); . }, . ); . } . } . . impl EarlyLintPass for IntPlusOne { 239,376 ( 0.00%) fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { 79,792 ( 0.00%) if let ExprKind::Binary(binop, lhs, rhs) = &expr.kind 832 ( 0.00%) && let Ok(le_or_ge) = LeOrGe::try_from(binop.node) 396 ( 0.00%) && let Some((new_lhs, new_rhs)) = Self::check_binop(le_or_ge, lhs, rhs) . { . Self::emit_warning(cx, expr, new_lhs, le_or_ge, new_rhs); . } 279,272 ( 0.00%) } . } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/dereference.rs -------------------------------------------------------------------------------- Ir -- line 146 ---------------------------------------- . . impl_lint_pass!(Dereferencing<'_> => [ . EXPLICIT_AUTO_DEREF, . EXPLICIT_DEREF_METHODS, . NEEDLESS_BORROW, . REF_BINDING_TO_REFERENCE, . ]); . 11 ( 0.00%) #[derive(Default)] . pub struct Dereferencing<'tcx> { . state: Option<(State, StateData<'tcx>)>, . . // While parsing a `deref` method call in ufcs form, the path to the function is itself an . // expression. This is to store the id of that expression so it can be skipped when . // `check_expr` is called for it. . skip_expr: Option, . -- line 162 ---------------------------------------- -- line 235 ---------------------------------------- . /// All the replacements which need to be made. . replacements: Vec<(Span, String)>, . /// The [`HirId`] that the lint should be emitted at. . hir_id: HirId, . } . . impl<'tcx> LateLintPass<'tcx> for Dereferencing<'tcx> { . #[expect(clippy::too_many_lines)] 355,200 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { . // Skip path expressions from deref calls. e.g. `Deref::deref(e)` 88,800 ( 0.00%) if Some(expr.hir_id) == self.skip_expr.take() { . return; . } . . if let Some(local) = expr.res_local_id() { . self.check_local_usage(cx, expr, local); . } . . // Stop processing sub expressions when a macro call is seen 88,800 ( 0.00%) if expr.span.from_expansion() { 71,022 ( 0.00%) if let Some((state, data)) = self.state.take() { . self.report(cx, expr, state, data, cx.typeck_results()); . } . return; . } . . let typeck = cx.typeck_results(); . let Some((kind, sub_expr, skip_expr)) = try_parse_ref_op(cx.tcx, typeck, expr) else { . // The whole chain of reference operations has been seen 17,384 ( 0.00%) if let Some((state, data)) = self.state.take() { 16 ( 0.00%) self.report(cx, expr, state, data, typeck); . } . return; . }; 237 ( 0.00%) self.skip_expr = skip_expr; . 474 ( 0.00%) if is_from_proc_macro(cx, expr) { . if let Some((state, data)) = self.state.take() { . self.report(cx, expr, state, data, cx.typeck_results()); . } . return; . } . 554 ( 0.00%) match (self.state.take(), kind) { . (None, kind) => { 932 ( 0.00%) let expr_ty = typeck.expr_ty(expr); 9,356 ( 0.00%) => ???:::expr_ty (233x) 1,165 ( 0.00%) let use_site = get_expr_use_site(cx.tcx, typeck, SyntaxContext::root(), expr); 69,838 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_expr_use_site (233x) 1,439 ( 0.00%) let adjusted_ty = use_site.adjustments.last().map_or(expr_ty, |a| a.target); . 2,563 ( 0.00%) match kind { 126 ( 0.00%) RefOp::Deref if use_site.same_ctxt => { 63 ( 0.00%) let use_node = use_site.use_node(cx); 1,668 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:::use_node (63x) 189 ( 0.00%) let sub_ty = typeck.expr_ty(sub_expr); 2,520 ( 0.00%) => ???:::expr_ty (63x) 378 ( 0.00%) if let ExprUseNode::FieldAccess(name) = use_node . && !use_site.moved_before_use . && !ty_contains_field(sub_ty, name.name) . { . self.state = Some(( . State::ExplicitDerefField { . name: name.name, . derefs_manually_drop: is_manually_drop(sub_ty), . }, . StateData { . first_expr: expr, . adjusted_ty, . }, . )); 63 ( 0.00%) } else if sub_ty.is_ref() . // Linting method receivers would require verifying that name lookup . // would resolve the same way. This is complicated by trait methods. . && !use_node.is_recv() 138 ( 0.00%) && let Some(ty) = use_node.defined_ty(cx) 1,529 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:::defined_ty (46x) 4 ( 0.00%) && TyCoercionStability::for_defined_ty(cx, ty, use_node.is_return()).is_deref_stable() 104 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/dereference.rs:::for_defined_ty (2x) . { . self.state = Some(( . State::ExplicitDeref { mutability: None }, . StateData { . first_expr: expr, . adjusted_ty, . }, . )); -- line 315 ---------------------------------------- -- line 328 ---------------------------------------- . mutbl, . }, . StateData { . first_expr: expr, . adjusted_ty, . }, . )); . }, 340 ( 0.00%) RefOp::AddrOf(mutability) if use_site.same_ctxt => { . // Find the number of times the borrow is auto-derefed. . let mut iter = use_site.adjustments.iter(); . let mut deref_count = 0usize; . let next_adjust = loop { . match iter.next() { . Some(adjust) => { 1,620 ( 0.00%) if !matches!(adjust.kind, Adjust::Deref(_)) { . break Some(adjust); 318 ( 0.00%) } else if !adjust.target.is_ref() { . deref_count += 1; . break iter.next(); . } . deref_count += 1; . }, . None => break None, . } . }; . 1,008 ( 0.00%) let use_node = use_site.use_node(cx); 7,968 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:::use_node (168x) 672 ( 0.00%) let stability = use_node.defined_ty(cx).map_or(TyCoercionStability::None, |ty| { 29,826 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:::defined_ty (168x) 334 ( 0.00%) TyCoercionStability::for_defined_ty(cx, ty, use_node.is_return()) 205,798 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/dereference.rs:::for_defined_ty (167x) . }); 2,326 ( 0.00%) let can_auto_borrow = match use_node { . ExprUseNode::FieldAccess(_) . if !use_site.moved_before_use && matches!(sub_expr.kind, ExprKind::Field(..)) => . { . // `DerefMut` will not be automatically applied to `ManuallyDrop<_>` . // field expressions when the base type is a union and the parent . // expression is also a field access. . // . // e.g. `&mut x.y.z` where `x` is a union, and accessing `z` requires a -- line 367 ---------------------------------------- -- line 467 ---------------------------------------- . // // Removing the borrow will cause `x` to be moved . // Some(x) => &mut *x, . // None => y . // }; . // } . // ``` . let (required_refs, msg) = if can_auto_borrow { . (1, if deref_count == 1 { borrow_msg } else { deref_msg }) 933 ( 0.00%) } else if let Some(&Adjustment { . kind: Adjust::Borrow(AutoBorrow::Ref(mutability)), . .. 168 ( 0.00%) }) = next_adjust 1,192 ( 0.00%) && matches!(mutability, AutoBorrowMutability::Mut { .. }) . && !stability.is_reborrow_stable() . { . (3, deref_msg) . } else { . (2, deref_msg) . }; . 336 ( 0.00%) if deref_count >= required_refs { . self.state = Some(( . State::DerefedBorrow(DerefedBorrow { . // One of the required refs is for the current borrow expression, the remaining ones . // can't be removed without breaking the code. See earlier comment. . count: deref_count - required_refs, . msg, . stability, . for_field_access: if let ExprUseNode::FieldAccess(name) = use_node -- line 495 ---------------------------------------- -- line 500 ---------------------------------------- . None . }, . }), . StateData { . first_expr: expr, . adjusted_ty, . }, . )); 168 ( 0.00%) } else if stability.is_deref_stable() . // Auto-deref doesn't combine with other adjustments 216 ( 0.00%) && next_adjust.is_none_or(|a| matches!(a.kind, Adjust::Deref(_) | Adjust::Borrow(_))) . && iter.all(|a| matches!(a.kind, Adjust::Deref(_) | Adjust::Borrow(_))) . { 48 ( 0.00%) self.state = Some(( . State::Borrow { mutability }, . StateData { . first_expr: expr, . adjusted_ty, . }, . )); . } . }, -- line 521 ---------------------------------------- -- line 597 ---------------------------------------- . first_expr: parent, . adjusted_ty, . }, . )); . } . }, . . (Some((State::Borrow { mutability }, data)), RefOp::Deref) => { 16 ( 0.00%) if typeck.expr_ty(sub_expr).is_ref() { 160 ( 0.00%) => ???:::expr_ty (4x) . self.state = Some((State::Reborrow { mutability }, data)); . } else { 8 ( 0.00%) self.state = Some(( . State::ExplicitDeref { . mutability: Some(mutability), . }, . data, . )); . } . }, . (Some((State::Reborrow { mutability }, data)), RefOp::Deref) => { -- line 616 ---------------------------------------- -- line 642 ---------------------------------------- . derefs_manually_drop: derefs_manually_drop || is_manually_drop(sub_expr_ty), . }, . data, . )); . }, . . (Some((state, data)), _) => self.report(cx, expr, state, data, typeck), . } 355,200 ( 0.00%) } . 104,195 ( 0.00%) fn check_pat(&mut self, cx: &LateContext<'tcx>, pat: &'tcx Pat<'_>) { 59,518 ( 0.00%) if let PatKind::Binding(BindingMode::REF, id, name, _) = pat.kind { 180 ( 0.00%) if let Some(opt_prev_pat) = self.ref_locals.get_mut(&id) { 720 ( 0.00%) => /rust/deps/indexmap-2.14.0/src/map.rs:>::get_mut:: (60x) . // This binding id has been seen before. Add this pattern to the list of changes. . if let Some(prev_pat) = opt_prev_pat { . if pat.span.from_expansion() { . // Doesn't match the context of the previous pattern. Can't lint here. . *opt_prev_pat = None; . } else { . prev_pat.spans.push(pat.span); . prev_pat.replacements.push(( -- line 662 ---------------------------------------- -- line 665 ---------------------------------------- . .0 . .into(), . )); . } . } . return; . } . 120 ( 0.00%) if !pat.span.from_expansion() 300 ( 0.00%) && let ty::Ref(_, tam, _) = *cx.typeck_results().pat_ty(pat).kind() 2,424 ( 0.00%) => ???:::pat_ty (60x) . // only lint immutable refs, because borrowed `&mut T` cannot be moved out 120 ( 0.00%) && let ty::Ref(_, _, Mutability::Not) = *tam.kind() . { . let mut app = Applicability::MachineApplicable; . let snip = snippet_with_context(cx, name.span, pat.span.ctxt(), "..", &mut app).0; . self.current_body = self.current_body.or(cx.enclosing_body); . self.ref_locals.insert( . id, . Some(RefPat { . always_deref: true, -- line 684 ---------------------------------------- -- line 685 ---------------------------------------- . spans: vec![pat.span], . app, . replacements: vec![(pat.span, snip.into())], . hir_id: pat.hir_id, . }), . ); . } . } 119,080 ( 0.00%) } . 20,748 ( 0.00%) fn check_body_post(&mut self, cx: &LateContext<'tcx>, body: &Body<'_>) { . if Some(body.id()) == self.current_body { . for pat in self.ref_locals.drain(..).filter_map(|(_, x)| x) { . let replacements = pat.replacements; . let app = pat.app; . let lint = if pat.always_deref { . NEEDLESS_BORROW . } else { . REF_BINDING_TO_REFERENCE -- line 703 ---------------------------------------- -- line 710 ---------------------------------------- . "this pattern creates a reference to a reference", . |diag| { . diag.multipart_suggestion("try", replacements, app); . }, . ); . } . self.current_body = None; . } 23,712 ( 0.00%) } . . fn check_item(&mut self, cx: &LateContext<'_>, item: &Item<'_>) { . // Only check for `impl Deref(Mut)`s if we're not already in one 4,518 ( 0.00%) if !self.in_deref_impl() && is_deref_or_derefmut_impl(cx, item) { . self.outermost_deref_impl = Some(item.owner_id); . } . } . . fn check_item_post(&mut self, _cx: &LateContext<'_>, item: &Item<'_>) { . // Only clear `self.outermost_deref_impl` if we're escaping the _outermost_ `impl Deref(Mut)` . if self.outermost_deref_impl == Some(item.owner_id) { . self.outermost_deref_impl = None; . } . } . } . . fn is_deref_or_derefmut_impl(cx: &LateContext<'_>, item: &Item<'_>) -> bool { 6,008 ( 0.00%) if let hir::ItemKind::Impl(impl_) = item.kind . && let Some(of_trait) = impl_.of_trait 2,271 ( 0.00%) && let Some(trait_id) = of_trait.trait_ref.trait_def_id() 9,841 ( 0.00%) => ???:::trait_def_id (757x) . { 3,028 ( 0.00%) cx.tcx.lang_items().deref_trait() == Some(trait_id) || cx.tcx.lang_items().deref_mut_trait() == Some(trait_id) 45,420 ( 0.00%) => ???:::lang_items (1,514x) . } else { . false . } . } . . fn try_parse_ref_op<'tcx>( . tcx: TyCtxt<'tcx>, . typeck: &'tcx TypeckResults<'_>, . expr: &'tcx Expr<'_>, . ) -> Option<(RefOp, &'tcx Expr<'tcx>, Option)> { 58,215 ( 0.00%) let (call_path_id, def_id, arg) = match expr.kind { 5,074 ( 0.00%) ExprKind::MethodCall(_, arg, [], _) => (None, typeck.type_dependent_def_id(expr.hir_id)?, arg), 15,816 ( 0.00%) => ???:::type_dependent_def_id (308x) . ExprKind::Call( . &Expr { 635 ( 0.00%) kind: ExprKind::Path(QPath::Resolved(None, path)), 635 ( 0.00%) hir_id, . .. . }, 2,549 ( 0.00%) [arg], . ) => (Some(hir_id), path.res.opt_def_id()?, arg), 603 ( 0.00%) ExprKind::Unary(UnOp::Deref, sub_expr) if !typeck.expr_ty(sub_expr).is_raw_ptr() => { 2,680 ( 0.00%) => ???:::expr_ty (67x) . return Some((RefOp::Deref, sub_expr, None)); . }, . ExprKind::AddrOf(BorrowKind::Ref, mutability, sub_expr) => { 850 ( 0.00%) return Some((RefOp::AddrOf(mutability), sub_expr, None)); . }, . _ => return None, . }; 8,487 ( 0.00%) let mutbl = match tcx.get_diagnostic_name(def_id) { 58,461 ( 0.00%) => ???:::get_diagnostic_name (943x) . Some(sym::deref_method) => Mutability::Not, . Some(sym::deref_mut_method) => Mutability::Mut, . _ => return None, . }; . Some(( . RefOp::Method { . mutbl, . is_ufcs: call_path_id.is_some(), -- line 777 ---------------------------------------- -- line 821 ---------------------------------------- . #[derive(Clone, Copy, Debug)] . enum TyCoercionStability { . Deref, . Reborrow, . None, . } . impl TyCoercionStability { . fn is_deref_stable(self) -> bool { 338 ( 0.00%) matches!(self, Self::Deref) . } . . fn is_reborrow_stable(self) -> bool { . matches!(self, Self::Deref | Self::Reborrow) . } . 1,014 ( 0.00%) fn for_defined_ty<'tcx>(cx: &LateContext<'tcx>, ty: DefinedTy<'tcx>, for_return: bool) -> Self { 507 ( 0.00%) match ty { . DefinedTy::Hir(ty) => Self::for_hir_ty(ty), 497 ( 0.00%) DefinedTy::Mir { def_site_def_id, ty } => Self::for_mir_ty( . cx.tcx, . def_site_def_id, 507 ( 0.00%) cx.tcx.instantiate_bound_regions_with_erased(ty), 176,208 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/fold.rs:::instantiate_bound_regions_with_erased:: (169x) . for_return, . ), . } 1,183 ( 0.00%) } . . // Checks the stability of type coercions when assigned to a binding with the given explicit type. . // . // e.g. . // let x = Box::new(Box::new(0u32)); . // let y1: &Box<_> = x.deref(); . // let y2: &Box<_> = &x; . // -- line 854 ---------------------------------------- -- line 907 ---------------------------------------- . Self::for_hir_ty(ty) . }, . TyKind::UnsafeBinder(..) => Self::None, . }; . } . } . . fn for_mir_ty<'tcx>(tcx: TyCtxt<'tcx>, def_site_def_id: Option, ty: Ty<'tcx>, for_return: bool) -> Self { 338 ( 0.00%) let ty::Ref(_, mut ty, _) = *ty.kind() else { . return Self::None; . }; . 318 ( 0.00%) if let Some(def_id) = def_site_def_id { 636 ( 0.00%) let typing_env = ty::TypingEnv::non_body_analysis(tcx, def_id); 21,394 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/mod.rs:::non_body_analysis:: (159x) . ty = tcx . .try_normalize_erasing_regions(typing_env, Unnormalized::new_wip(ty)) . .unwrap_or(ty); . } . loop { 795 ( 0.00%) break match *ty.kind() { . ty::Ref(_, ref_ty, _) => { . ty = ref_ty; . continue; . }, 93 ( 0.00%) ty::Param(_) if for_return => Self::Deref, . ty::Alias( . _, . ty::AliasTy { . kind: ty::Free { .. } | ty::Inherent { .. }, . .. . }, . ) => unreachable!("should have been normalized away above"), . ty::Alias( -- line 939 ---------------------------------------- -- line 1030 ---------------------------------------- . } . . impl<'tcx> Dereferencing<'tcx> { . fn in_deref_impl(&self) -> bool { . self.outermost_deref_impl.is_some() . } . . fn check_local_usage(&mut self, cx: &LateContext<'tcx>, e: &Expr<'tcx>, local: HirId) { 48,256 ( 0.00%) if let Some(outer_pat) = self.ref_locals.get_mut(&local) 144,768 ( 0.00%) => /rust/deps/indexmap-2.14.0/src/map.rs:>::get_mut:: (12,064x) . && let Some(pat) = outer_pat . // Check for auto-deref . && !matches!( . cx.typeck_results().expr_adjustments(e), . [ . Adjustment { . kind: Adjust::Deref(_), . .. -- line 1046 ---------------------------------------- -- line 1089 ---------------------------------------- . // binding, but not if the identifier was created in a macro. e.g. `concat_idents` and proc . // macros . _ => *outer_pat = None, . } . } . } . . #[expect(clippy::needless_pass_by_value, clippy::too_many_lines)] 160 ( 0.00%) fn report( . &self, . cx: &LateContext<'tcx>, . expr: &'tcx Expr<'_>, . state: State, . data: StateData<'tcx>, . typeck: &'tcx TypeckResults<'tcx>, . ) { 128 ( 0.00%) match state { . State::DerefMethod { . ty_changed_count, . is_ufcs, . mutbl, . } => { . if self.in_deref_impl() { . // `deref(_mut)` is fine in an `impl Deref(Mut)` . return; -- line 1113 ---------------------------------------- -- line 1199 ---------------------------------------- . format!("({snip})") . } else { . snip.into() . }; . diag.span_suggestion(data.first_expr.span, "change this to", sugg, app); . }, . ); . }, 4 ( 0.00%) State::ExplicitDeref { mutability } => { . if is_block_like(expr) . && let ty::Ref(_, ty, _) = data.adjusted_ty.kind() . && ty.is_sized(cx.tcx, cx.typing_env()) . { . // Rustc bug: auto deref doesn't work on block expression when targeting sized types. . return; . } . 16 ( 0.00%) let ty = typeck.expr_ty(expr); 160 ( 0.00%) => ???:::expr_ty (4x) . . // `&&[T; N]`, or `&&..&[T; N]` (src) cannot coerce to `&[T]` (dst). 8 ( 0.00%) if let ty::Ref(_, dst, _) = data.adjusted_ty.kind() 4 ( 0.00%) && dst.is_slice() . { . let (src, n_src_refs, _) = peel_and_count_ty_refs(ty); . if n_src_refs >= 2 && src.is_array() { . return; . } . } . 20 ( 0.00%) let (prefix, needs_paren) = match mutability { 4 ( 0.00%) Some(mutability) if !ty.is_ref() => { . let prefix = match mutability { . Mutability::Not => "&", . Mutability::Mut => "&mut ", . }; 12 ( 0.00%) (prefix, cx.precedence(expr) < ExprPrecedence::Prefix) 324 ( 0.00%) => ???:::precedence (4x) . }, . None if !ty.is_ref() && data.adjusted_ty.is_ref() => ("&", false), . _ => ("", false), . }; . span_lint_hir_and_then( . cx, 8 ( 0.00%) EXPLICIT_AUTO_DEREF, 8 ( 0.00%) data.first_expr.hir_id, 4 ( 0.00%) data.first_expr.span, . "deref which would be done by auto-deref", . |diag| { . let mut app = Applicability::MachineApplicable; . let (snip, snip_is_macro) = . snippet_with_context(cx, expr.span, data.first_expr.span.ctxt(), "..", &mut app); . let sugg = if !snip_is_macro && needs_paren && !has_enclosing_paren(&snip) { . format!("{prefix}({snip})") . } else { -- line 1251 ---------------------------------------- -- line 1293 ---------------------------------------- . snip.into_owned() . }; . diag.span_suggestion(data.first_expr.span, "try", sugg, app); . }, . ); . }, . State::Borrow { .. } | State::Reborrow { .. } => (), . } 128 ( 0.00%) } . } 38,784 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/mod.rs -------------------------------------------------------------------------------- Ir -- line 460 ---------------------------------------- . /// assert_eq!(13, unsafe { mem::size_of_val_raw(y) }); . /// ``` . #[inline] . #[must_use] . #[stable(feature = "layout_for_ptr", since = "CURRENT_RUSTC_VERSION")] . #[rustc_const_stable(feature = "layout_for_ptr", since = "CURRENT_RUSTC_VERSION")] . pub const unsafe fn size_of_val_raw(val: *const T) -> usize { . // SAFETY: the caller must provide a valid raw pointer 1 ( 0.00%) unsafe { intrinsics::size_of_val(val) } . } . . /// Returns the [ABI]-required minimum alignment of a type in bytes. . /// . /// Every reference to a value of the type `T` must be a multiple of this number. . /// . /// This is the alignment used for struct fields. It may be smaller than the preferred alignment. . /// -- line 476 ---------------------------------------- -- line 634 ---------------------------------------- . /// . /// [type-layout]: ../../reference/type-layout.html#r-layout.primitive . #[inline] . #[must_use] . #[stable(feature = "layout_for_ptr", since = "CURRENT_RUSTC_VERSION")] . #[rustc_const_stable(feature = "layout_for_ptr", since = "CURRENT_RUSTC_VERSION")] . pub const unsafe fn align_of_val_raw(val: *const T) -> usize { . // SAFETY: the caller must provide a valid raw pointer 1 ( 0.00%) unsafe { intrinsics::align_of_val(val) } . } . . /// Returns `true` if dropping values of type `T` matters. . /// . /// This is purely an optimization hint, and may be implemented conservatively: . /// it may return `true` for types that don't actually need to be dropped. . /// As such always returning `true` would be a valid implementation of . /// this function. However if this function actually returns `false`, then you -- line 650 ---------------------------------------- -- line 825 ---------------------------------------- . /// ``` . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_stable(feature = "const_swap", since = "1.85.0")] . #[rustc_diagnostic_item = "mem_swap"] . pub const fn swap(x: &mut T, y: &mut T) { . // SAFETY: `&mut` guarantees these are typed readable and writable . // as well as non-overlapping. 293 ( 0.00%) unsafe { intrinsics::typed_swap_nonoverlapping(x, y) } . } . . /// Replaces `dest` with the default value of `T`, returning the previous `dest` value. . /// . /// * If you want to replace the values of two variables, see [`swap`]. . /// * If you want to replace with a passed value instead of the default value, see [`replace`]. . /// . /// # Examples -- line 841 ---------------------------------------- -- line 967 ---------------------------------------- . // such that the old value is not duplicated. Nothing is dropped and . // nothing here can panic. . unsafe { . // Ideally we wouldn't use the intrinsics here, but going through the . // `ptr` methods introduces two unnecessary UbChecks, so until we can . // remove those for pointers that come from references, this uses the . // intrinsics instead so this stays very cheap in MIR (and debug). . 296,459 ( 0.00%) let result = crate::intrinsics::read_via_copy(dest); 360,394 ( 0.00%) crate::intrinsics::write_via_move(dest, src); . result . } . } . . /// Disposes of a value. . /// . /// This effectively does nothing for types which implement `Copy`, e.g. . /// integers. Such values are copied and _then_ moved into the function, so the -- line 984 ---------------------------------------- -- line 1406 ---------------------------------------- . /// // ⚠️ This is undefined behavior. Don't do this. ⚠️ . /// // assert_eq!(0, unsafe { std::mem::transmute::<_, u8>(std::mem::discriminant(&unit_like)) }); . /// ``` . #[stable(feature = "discriminant_value", since = "1.21.0")] . #[rustc_const_stable(feature = "const_discriminant", since = "1.75.0")] . #[rustc_diagnostic_item = "mem_discriminant"] . #[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces . pub const fn discriminant(v: &T) -> Discriminant { 9,406 ( 0.00%) Discriminant(intrinsics::discriminant_value(v)) . } . . /// Returns the number of variants in the enum type `T`. . /// . /// If `T` is not an enum, calling this function will not result in undefined behavior, but the . /// return value is unspecified. Equally, if `T` is an enum with more variants than `usize::MAX` . /// the return value is unspecified. Uninhabited variants will be counted. . /// -- line 1422 ---------------------------------------- 46,335 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/redundant_slicing.rs -------------------------------------------------------------------------------- Ir -- line 67 ---------------------------------------- . } . . declare_lint_pass!(RedundantSlicing => [DEREF_BY_SLICING, REDUNDANT_SLICING]); . . static REDUNDANT_SLICING_LINT: (&Lint, &str) = (REDUNDANT_SLICING, "redundant slicing of the whole range"); . static DEREF_BY_SLICING_LINT: (&Lint, &str) = (DEREF_BY_SLICING, "slicing when dereferencing would work"); . . impl<'tcx> LateLintPass<'tcx> for RedundantSlicing { 355,200 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 88,800 ( 0.00%) if expr.span.from_expansion() { . return; . } . 8,889 ( 0.00%) let ctxt = expr.span.ctxt(); 18,628 ( 0.00%) if let ExprKind::AddrOf(BorrowKind::Ref, mutability, addressee) = expr.kind 340 ( 0.00%) && addressee.span.ctxt() == ctxt 350 ( 0.00%) && let ExprKind::Index(indexed, range, _) = addressee.kind 4 ( 0.00%) && cx . .typeck_results() 10 ( 0.00%) .expr_ty_adjusted(range) 345 ( 0.00%) => ???:::expr_ty_adjusted (5x) . .is_lang_item(cx, LangItem::RangeFull) . { . let (expr_ty, expr_ref_count, _) = peel_and_count_ty_refs(cx.typeck_results().expr_ty(expr)); . let (indexed_ty, indexed_ref_count, _) = peel_and_count_ty_refs(cx.typeck_results().expr_ty(indexed)); . let parent_expr = get_parent_expr(cx, expr); . let needs_parens_for_prefix = . parent_expr.is_some_and(|parent| cx.precedence(parent) > ExprPrecedence::Prefix); . -- line 94 ---------------------------------------- -- line 159 ---------------------------------------- . format!("(&{}{}*{snip})", mutability.prefix_str(), "*".repeat(indexed_ref_count)) . } else { . format!("&{}{}*{snip}", mutability.prefix_str(), "*".repeat(indexed_ref_count)) . }; . diag.span_suggestion(expr.span, "dereference the original value instead", sugg, app); . }); . } . } 355,200 ( 0.00%) } . } 36,246 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/structural_impls.rs -------------------------------------------------------------------------------- Ir -- line 326 ---------------------------------------- . } . } . . impl<'tcx> TypeFoldable> for Ty<'tcx> { . fn try_fold_with>>( . self, . folder: &mut F, . ) -> Result { 102 ( 0.00%) folder.try_fold_ty(self) 405 ( 0.00%) => ???:>::try_fold_ty (3x) . } . 40 ( 0.00%) fn fold_with>>(self, folder: &mut F) -> Self { 12,685 ( 0.00%) folder.fold_ty(self) 360,746 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/fold.rs: as rustc_type_ir::fold::TypeFolder>::fold_ty'2 (1,457x) . } . } . . impl<'tcx> TypeVisitable> for Ty<'tcx> { . fn visit_with>>(&self, visitor: &mut V) -> V::Result { 10,505 ( 0.00%) visitor.visit_ty(*self) 10,860 ( 0.00%) => ???:>::visit_ty (316x) . } . } . . impl<'tcx> TypeSuperFoldable> for Ty<'tcx> { . fn try_super_fold_with>>( . self, . folder: &mut F, . ) -> Result { -- line 352 ---------------------------------------- -- line 389 ---------------------------------------- . | ty::Placeholder(..) . | ty::Never . | ty::Foreign(..) => return Ok(self), . }; . . Ok(if *self.kind() == kind { self } else { folder.cx().mk_ty_from_kind(kind) }) . } . 19,899 ( 0.00%) fn super_fold_with>>(self, folder: &mut F) -> Self { 13,266 ( 0.00%) let kind = match *self.kind() { . ty::RawPtr(ty, mutbl) => ty::RawPtr(ty.fold_with(folder), mutbl), 313 ( 0.00%) ty::Array(typ, sz) => ty::Array(typ.fold_with(folder), sz.fold_with(folder)), . ty::Slice(typ) => ty::Slice(typ.fold_with(folder)), 1,256 ( 0.00%) ty::Adt(tid, args) => ty::Adt(tid, args.fold_with(folder)), 31,370 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/generic_args.rs:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with::> (74x) 842 ( 0.00%) ty::Dynamic(trait_ty, region) => { . ty::Dynamic(trait_ty.fold_with(folder), region.fold_with(folder)) 421 ( 0.00%) } 20 ( 0.00%) ty::Tuple(ts) => ty::Tuple(ts.fold_with(folder)), 4,572 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/generic_args.rs:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::Ty> as rustc_type_ir::fold::TypeFoldable>::fold_with::> (2x) 32 ( 0.00%) ty::FnDef(def_id, args) => ty::FnDef(def_id, args.fold_with(folder)), . ty::FnPtr(sig_tys, hdr) => ty::FnPtr(sig_tys.fold_with(folder), hdr), 8 ( 0.00%) ty::UnsafeBinder(f) => ty::UnsafeBinder(f.fold_with(folder)), 10,255 ( 0.00%) ty::Ref(r, ty, mutbl) => ty::Ref(r.fold_with(folder), ty.fold_with(folder), mutbl), . ty::Coroutine(did, args) => ty::Coroutine(did, args.fold_with(folder)), . ty::CoroutineWitness(did, args) => ty::CoroutineWitness(did, args.fold_with(folder)), . ty::Closure(did, args) => ty::Closure(did, args.fold_with(folder)), . ty::CoroutineClosure(did, args) => ty::CoroutineClosure(did, args.fold_with(folder)), . ty::Alias(is_rigid, data) => ty::Alias(is_rigid, data.fold_with(folder)), . ty::Pat(ty, pat) => ty::Pat(ty.fold_with(folder), pat.fold_with(folder)), . . ty::Bool -- line 418 ---------------------------------------- -- line 425 ---------------------------------------- . | ty::Infer(_) . | ty::Param(..) . | ty::Bound(..) . | ty::Placeholder(..) . | ty::Never . | ty::Foreign(..) => return self, . }; . 19,899 ( 0.00%) if *self.kind() == kind { self } else { folder.cx().mk_ty_from_kind(kind) } 24,750 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/mem/mod.rs: as core::cmp::PartialEq>::eq (1,533x) 19,899 ( 0.00%) } . } . . impl<'tcx> TypeSuperVisitable> for Ty<'tcx> { . fn super_visit_with>>(&self, visitor: &mut V) -> V::Result { . match self.kind() { . ty::RawPtr(ty, _mutbl) => ty.visit_with(visitor), . ty::Array(typ, sz) => { . try_visit!(typ.visit_with(visitor)); -- line 442 ---------------------------------------- -- line 771 ---------------------------------------- . ) -> Result { . ty::util::try_fold_list(self, folder, |tcx, v| tcx.$mk(v)) . } . . fn fold_with>>( . self, . folder: &mut F, . ) -> Self { 842 ( 0.00%) ty::util::fold_list(self, folder, |tcx, v| tcx.$mk(v)) 63,992 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/util.rs:rustc_middle::ty::util::fold_list::, &rustc_middle::ty::list::RawList<(), rustc_type_ir::binder::Binder>>, rustc_type_ir::binder::Binder>, <&rustc_middle::ty::list::RawList<(), rustc_type_ir::binder::Binder>> as rustc_type_ir::fold::TypeFoldable>::fold_with>::{closure#0}> (421x) . } . } . )* . } . } . . list_fold! { . &'tcx ty::List> : mk_poly_existential_predicates, -- line 787 ---------------------------------------- 6,611 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/matches/collapsible_match.rs -------------------------------------------------------------------------------- Ir -- line 15 ---------------------------------------- . use rustc_lint::LateContext; . use rustc_middle::mir::FakeReadCause; . use rustc_middle::ty; . use rustc_span::{BytePos, Ident, Span, SyntaxContext}; . . use super::{COLLAPSIBLE_MATCH, pat_contains_disallowed_or}; . use crate::collapsible_if::{parens_around, peel_parens}; . 21,930 ( 0.00%) pub(super) fn check_match<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>, arms: &'tcx [Arm<'_>], msrv: Msrv) { 3,624 ( 0.00%) if let Some(els_arm) = arms.iter().rfind(|arm| arm_is_wild_like(cx, arm)) { . let last_non_wildcard = arms.iter().rposition(|arm| !arm_is_wild_like(cx, arm)); . for (idx, arm) in arms.iter().enumerate() { . let only_wildcards_after = last_non_wildcard.is_none_or(|lnw| idx >= lnw); 17,170 ( 0.00%) check_arm( 98,358 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/matches/collapsible_match.rs:clippy_lints::matches::collapsible_match::check_arm (1,717x) . cx, 1,717 ( 0.00%) arm.span.ctxt(), . true, 1,717 ( 0.00%) arm.pat, . expr, 1,717 ( 0.00%) arm.body, . arm.guard, . Some(els_arm.body), . msrv, . only_wildcards_after, . ); . } . } 17,544 ( 0.00%) } . . pub(super) fn check_if_let<'tcx>( . cx: &LateContext<'tcx>, . ctxt: SyntaxContext, . pat: &'tcx Pat<'_>, . body: &'tcx Expr<'_>, . else_expr: Option<&'tcx Expr<'_>>, . let_expr: &'tcx Expr<'_>, . msrv: Msrv, . ) { 1,104 ( 0.00%) check_arm(cx, ctxt, false, pat, let_expr, body, None, else_expr, msrv, false); 10,012 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/matches/collapsible_match.rs:clippy_lints::matches::collapsible_match::check_arm (138x) . } . . #[expect(clippy::too_many_arguments, clippy::too_many_lines)] 27,825 ( 0.00%) fn check_arm<'tcx>( . cx: &LateContext<'tcx>, . ctxt: SyntaxContext, . outer_is_match: bool, . outer_pat: &'tcx Pat<'tcx>, . outer_cond: &'tcx Expr<'tcx>, . outer_then_body: &'tcx Expr<'tcx>, . outer_guard: Option<&'tcx Expr<'tcx>>, . outer_else_body: Option<&'tcx Expr<'tcx>>, . msrv: Msrv, . only_wildcards_after: bool, . ) { . let inner_expr = peel_blocks_with_stmt(outer_then_body); 7,440 ( 0.00%) if let Some(inner) = IfLetOrMatch::parse(cx, inner_expr) 38,935 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/higher.rs:::parse (1,855x) 10 ( 0.00%) && let Some((inner_scrutinee, inner_then_pat, inner_else_body)) = match inner { . IfLetOrMatch::IfLet(scrutinee, pat, _, els, _) => Some((scrutinee, pat, els)), . IfLetOrMatch::Match(scrutinee, arms, ..) => { 10 ( 0.00%) if arms.len() == 2 && arms.iter().all(|a| a.guard.is_none()) . // if there are more than two arms, collapsing would be non-trivial . // one of the arms must be "wild-like" 5 ( 0.00%) && let Some(wild_idx) = arms.iter().rposition(|a| arm_is_wild_like(cx, a)) . { . let (then, els) = (&arms[1 - wild_idx], &arms[wild_idx]); . Some((scrutinee, then.pat, Some(els.body))) . } else { . None . } . }, . } -- line 85 ---------------------------------------- -- line 135 ---------------------------------------- . let outer_cond_msg = format!("use: `{}{}`", snippet(cx, outer_cond.span, ".."), method); . help_span.push_span_label(outer_cond.span, outer_cond_msg); . } . diag.span_help( . help_span, . "the outer pattern can be modified to include the inner pattern", . ); . }); 3,710 ( 0.00%) } else if outer_is_match // Leave if-let to the `collapsible_if` lint . && only_wildcards_after // adding a guard allows fall-through; unsafe if other arms follow . && let Some(inner) = If::hir(inner_expr) . && outer_pat.span.eq_ctxt(inner.cond.span) . && match (outer_else_body, inner.r#else) { . (None, None) => true, . (None, Some(e)) | (Some(e), None) => is_unit_expr(e), . (Some(a), Some(b)) => SpanlessEq::new(cx).eq_expr(ctxt, a, b), . } -- line 151 ---------------------------------------- -- line 204 ---------------------------------------- . let else_inner_span = inner.then.span.shrink_to_hi().to(else_inner.span); . sugg.push((else_inner_span, String::new())); . } . . diag.multipart_suggestion("collapse nested if block", sugg, Applicability::MachineApplicable); . }, . ); . } 14,840 ( 0.00%) } . . /// A "wild-like" arm has a wild (`_`) or `None` pattern and no guard. Such arms can be "collapsed" . /// into a single wild arm without any significant loss in semantics or readability. . fn arm_is_wild_like(cx: &LateContext<'_>, arm: &Arm<'_>) -> bool { 6,080 ( 0.00%) if arm.guard.is_some() { . return false; . } 25,936 ( 0.00%) matches!(arm.pat.kind, PatKind::Binding(..) | PatKind::Wild) || is_none_pattern(cx, arm.pat) 40 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_none_pattern (10x) . } . . fn find_pat_binding_and_is_innermost_parent_pat_struct(pat: &Pat<'_>, hir_id: HirId) -> (Option<(Ident, Span)>, bool) { . let mut binding = None; . let mut is_innermost_parent_pat_struct = false; . pat.walk_short(|p| match p.kind { . // ignore OR patterns . PatKind::Or(_) => false, -- line 228 ---------------------------------------- 13,804 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/misc_early/unneeded_field_pattern.rs -------------------------------------------------------------------------------- Ir . use clippy_utils::diagnostics::{span_lint, span_lint_and_then}; . use clippy_utils::source::SpanExt as _; . use itertools::Itertools as _; . use rustc_ast::ast::{Pat, PatKind}; . use rustc_lint::{EarlyContext, LintContext as _}; . . use super::UNNEEDED_FIELD_PATTERN; . 118,192 ( 0.00%) pub(super) fn check(cx: &EarlyContext<'_>, pat: &Pat) { 29,548 ( 0.00%) if let PatKind::Struct(_, ref npat, ref pfields, _) = pat.kind { . let mut wilds = 0; . let type_name = npat . .segments . .last() . .expect("A path must have at least one segment") . .ident . .name; . -- line 18 ---------------------------------------- -- line 69 ---------------------------------------- . )); . }, . ); . } . } . } . } . } 118,192 ( 0.00%) } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/explicit_write.rs -------------------------------------------------------------------------------- Ir -- line 47 ---------------------------------------- . . impl ExplicitWrite { . pub fn new(format_args: FormatArgsStorage) -> Self { . Self { format_args } . } . } . . impl<'tcx> LateLintPass<'tcx> for ExplicitWrite { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { . // match call to unwrap 97,734 ( 0.00%) if let ExprKind::MethodCall(unwrap_fun, write_call, [], _) = expr.kind 1,316 ( 0.00%) && unwrap_fun.ident.name == sym::unwrap . // match call to write_fmt 35 ( 0.00%) && let ExprKind::MethodCall(write_fun, write_recv, [write_arg], _) = *look_in_block(cx, &write_call.kind) 6 ( 0.00%) && let ExprKind::Call(write_recv_path, []) = write_recv.kind . && write_fun.ident.name == sym::write_fmt . && let Some(def_id) = write_recv_path.basic_res().opt_def_id() . { . // match calls to std::io::stdout() / std::io::stderr () . let (dest_name, prefix) = match cx.tcx.get_diagnostic_name(def_id) { . Some(sym::io_stdout) => ("stdout", ""), . Some(sym::io_stderr) => ("stderr", "e"), . _ => return, -- line 69 ---------------------------------------- -- line 105 ---------------------------------------- . EXPLICIT_WRITE, . expr.span, . format!("use of `{used}.unwrap()`"), . "try", . format!("{prefix}{sugg_mac}!({inputs_snippet})"), . applicability, . ); . } 355,200 ( 0.00%) } . } . . /// If `kind` is a block that looks like `{ let result = $expr; result }` then . /// returns $expr. Otherwise returns `kind`. . fn look_in_block<'tcx, 'hir>(cx: &LateContext<'tcx>, kind: &'tcx ExprKind<'hir>) -> &'tcx ExprKind<'hir> { 18 ( 0.00%) if let ExprKind::Block(block, _label @ None) = kind . && let Block { . stmts: [Stmt { kind: StmtKind::Let(local), .. }], . expr: Some(expr_end_of_block), . rules: BlockCheckMode::DefaultBlock, . .. . } = block . . // Find id of the local that expr_end_of_block resolves to -- line 127 ---------------------------------------- 6 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/only_used_in_recursion.rs -------------------------------------------------------------------------------- Ir -- line 213 ---------------------------------------- . impl Usage { . fn new(span: Span, idx: usize) -> Self { . Self { span, idx } . } . } . . /// The parameters being checked by the lint, indexed by both the parameter's `HirId` and the . /// `DefId` of the function paired with the parameter's index. 2 ( 0.00%) #[derive(Default)] . #[expect(clippy::struct_field_names)] . struct Params { . params: Vec, . by_id: HirIdMap, . by_fn: FxHashMap<(DefId, usize), usize>, . } . impl Params { . fn insert(&mut self, param: Param, id: HirId) { -- line 229 ---------------------------------------- -- line 230 ---------------------------------------- . let idx = self.params.len(); . self.by_id.insert(id, idx); . self.by_fn.insert((param.fn_id, param.idx), idx); . self.params.push(param); . } . . fn remove_by_id(&mut self, id: HirId) { . if let Some(param) = self.get_by_id_mut(id) { 1,992 ( 0.00%) param.uses = Vec::new(); 2,656 ( 0.00%) let key = (param.fn_id, param.idx); . self.by_fn.remove(&key); . // FIXME(rust/#120456) - is `swap_remove` correct? 1,328 ( 0.00%) self.by_id.swap_remove(&id); 62,972 ( 0.00%) => /rust/deps/indexmap-2.14.0/src/map.rs:>::swap_remove:: (664x) . } . } . . fn get_by_id_mut(&mut self, id: HirId) -> Option<&mut Param> { 50,912 ( 0.00%) self.params.get_mut(*self.by_id.get(&id)?) 189,038 ( 0.00%) => /rust/deps/indexmap-2.14.0/src/map.rs:>::get:: (12,728x) . } . . fn get_by_fn(&self, id: DefId, idx: usize) -> Option<&Param> { . self.params.get(*self.by_fn.get(&(id, idx))?) . } . . fn clear(&mut self) { . self.params.clear(); -- line 255 ---------------------------------------- -- line 257 ---------------------------------------- . self.by_fn.clear(); . } . . /// Sets the `apply_lint` flag on each parameter. . fn flag_for_linting(&self) { . // Stores the list of parameters currently being resolved. Needed to avoid cycles. . let mut eval_stack = Vec::new(); . for param in &self.params { 1,992 ( 0.00%) self.try_disable_lint_for_param(param, &mut eval_stack); 4,648 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/only_used_in_recursion.rs:::try_disable_lint_for_param (664x) . } . } . . // Use by calling `flag_for_linting`. . fn try_disable_lint_for_param(&self, param: &Param, eval_stack: &mut Vec) -> bool { 1,328 ( 0.00%) if !param.apply_lint.get() { . true 664 ( 0.00%) } else if param.uses.is_empty() { . // Don't lint on unused parameters. . param.apply_lint.set(false); . true . } else if eval_stack.contains(¶m.idx) { . // Already on the evaluation stack. Returning false will continue to evaluate other dependencies. . false . } else { . eval_stack.push(param.idx); -- line 281 ---------------------------------------- -- line 290 ---------------------------------------- . param.apply_lint.set(false); . eval_stack.pop(); . return true; . } . } . eval_stack.pop(); . false . } 664 ( 0.00%) } . } . 11 ( 0.00%) #[derive(Default)] . pub struct OnlyUsedInRecursion { . /// Track the top-level body entered. Needed to delay reporting when entering nested bodies. . entered_body: Option, . params: Params, . } . . impl<'tcx> LateLintPass<'tcx> for OnlyUsedInRecursion { 23,712 ( 0.00%) fn check_body(&mut self, cx: &LateContext<'tcx>, body: &Body<'tcx>) { 8,892 ( 0.00%) if body.value.span.from_expansion() { . return; . } . // `skip_params` is either `0` or `1` to skip the `self` parameter in trait functions. . // It can't be renamed, and it can't be removed without removing it from multiple functions. 15,843 ( 0.00%) let (fn_id, fn_kind, skip_params) = match cx.tcx.parent_hir_node(body.value.hir_id) { 90,054 ( 0.00%) => ???:::parent_hir_node (992x) 74 ( 0.00%) Node::Item(i) => (i.owner_id.to_def_id(), FnKind::Fn, 0), . Node::TraitItem(&TraitItem { . kind: TraitItemKind::Fn(ref sig, _), 204 ( 0.00%) owner_id, . .. . }) => ( . owner_id.to_def_id(), . FnKind::TraitFn, . usize::from(sig.decl.implicit_self().has_implicit_self()), 51 ( 0.00%) ), . Node::ImplItem(&ImplItem { . kind: ImplItemKind::Fn(ref sig, _), 684 ( 0.00%) owner_id, 684 ( 0.00%) impl_kind, . .. . }) => { 2,096 ( 0.00%) if let ImplItemImplKind::Trait { trait_item_def_id, .. } = impl_kind . && let Ok(trait_item_id) = trait_item_def_id . { . let impl_id = cx.tcx.local_parent(owner_id.def_id); 1,280 ( 0.00%) let trait_ref = cx.tcx.impl_trait_ref(impl_id).instantiate_identity().skip_norm_wip(); 26,240 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/mod.rs:::impl_trait_ref:: (640x) . ( . trait_item_id, . FnKind::ImplTraitFn( . std::ptr::from_ref(cx.tcx.erase_and_anonymize_regions(trait_ref.args)) as usize . ), . usize::from(sig.decl.implicit_self().has_implicit_self()), . ) . } else { . (owner_id.to_def_id(), FnKind::Fn, 0) . } . }, . _ => return, . }; 1,544 ( 0.00%) body.params . .iter() . .enumerate() . .skip(skip_params) 3,044 ( 0.00%) .filter_map(|(idx, p)| match p.pat.kind { 6,884 ( 0.00%) PatKind::Binding(_, id, ident, None) if !ident.as_str().starts_with('_') => { 27,550 ( 0.00%) => ???:::as_str (725x) . Some((id, Param::new(fn_id, fn_kind, idx, ident))) . }, . _ => None, . }) . .for_each(|(id, param)| self.params.insert(param, id)); 772 ( 0.00%) if self.entered_body.is_none() { 1,398 ( 0.00%) self.entered_body = Some(body.value.hir_id); . } 23,712 ( 0.00%) } . 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, e: &'tcx Expr<'tcx>) { . if let Some(id) = e.res_local_id() . && let Some(param) = self.params.get_by_id_mut(id) . { . let typeck = cx.typeck_results(); 664 ( 0.00%) let span = e.span; . let mut e = e; . loop { 4,544 ( 0.00%) match get_expr_use_or_unification_node(cx.tcx, e) { 122,988 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_expr_use_or_unification_node (696x) . None | Some((Node::Stmt(_), _)) => return, 7,248 ( 0.00%) Some((Node::Expr(parent), child_id)) => match parent.kind { . // Recursive call. Track which index the parameter is used in. . ExprKind::Call(callee, args) 2,553 ( 0.00%) if callee.res(cx).opt_def_id().is_some_and(|id| { 1,010 ( 0.00%) id == param.fn_id && has_matching_args(param.fn_kind, typeck.node_args(callee.hir_id)) 1,599 ( 0.00%) => ???:::node_args (41x) 2,072 ( 0.00%) }) => . { . if let Some(idx) = args.iter().position(|arg| arg.hir_id == child_id) { . param.uses.push(Usage::new(span, idx)); . } . return; . }, . ExprKind::MethodCall(_, receiver, args, _) 5,291 ( 0.00%) if typeck.type_dependent_def_id(parent.hir_id).is_some_and(|id| { 20,757 ( 0.00%) => ???:::type_dependent_def_id (407x) . id == param.fn_id && has_matching_args(param.fn_kind, typeck.node_args(parent.hir_id)) . }) => . { . if let Some(idx) = iter::once(receiver).chain(args).position(|arg| arg.hir_id == child_id) { . param.uses.push(Usage::new(span, idx)); . } . return; . }, . // Assignment to a parameter is fine. 4 ( 0.00%) ExprKind::Assign(lhs, _, _) | ExprKind::AssignOp(_, lhs, _) if lhs.hir_id == child_id => { . return; . }, . // Parameter update e.g. `x = x + 1` . ExprKind::Assign(lhs, rhs, _) | ExprKind::AssignOp(_, lhs, rhs) 4 ( 0.00%) if rhs.hir_id == child_id && lhs.res_local_id() == Some(id) => . { . return; . }, . // Side-effect free expressions. Walk to the parent expression. . ExprKind::Binary(_, lhs, rhs) 84 ( 0.00%) if typeck.expr_ty(lhs).is_primitive() && typeck.expr_ty(rhs).is_primitive() => 840 ( 0.00%) => ???:::expr_ty (21x) . { . e = parent; . continue; . }, 25 ( 0.00%) ExprKind::Unary(_, arg) if typeck.expr_ty(arg).is_primitive() => { 200 ( 0.00%) => ???:::expr_ty (5x) . e = parent; . continue; . }, . ExprKind::AddrOf(..) | ExprKind::Cast(..) => { . e = parent; . continue; . }, . // Only allow field accesses without auto-deref -- line 423 ---------------------------------------- -- line 428 ---------------------------------------- . _ => (), . }, . _ => (), . } . self.params.remove_by_id(id); . return; . } . } 355,200 ( 0.00%) } . 20,748 ( 0.00%) fn check_body_post(&mut self, cx: &LateContext<'tcx>, body: &Body<'tcx>) { 837 ( 0.00%) if self.entered_body == Some(body.value.hir_id) { 699 ( 0.00%) self.entered_body = None; . self.params.flag_for_linting(); . for param in &self.params.params { 1,328 ( 0.00%) if param.apply_lint.get() { . if param.ident.name == kw::SelfLower { . span_lint_and_then( . cx, . SELF_ONLY_USED_IN_RECURSION, . param.ident.span, . "`self` is only used in recursion", . |diag| { . diag.span_note( -- line 451 ---------------------------------------- -- line 473 ---------------------------------------- . ); . }, . ); . } . } . } . self.params.clear(); . } 23,712 ( 0.00%) } . } . . fn has_matching_args(kind: FnKind, args: GenericArgsRef<'_>) -> bool { 164 ( 0.00%) match kind { . FnKind::Fn => true, . FnKind::TraitFn => args.iter().enumerate().all(|(idx, subst)| match subst.kind() { . GenericArgKind::Lifetime(_) => true, . GenericArgKind::Type(ty) => matches!(*ty.kind(), ty::Param(ty) if ty.index as usize == idx), . GenericArgKind::Const(c) => matches!(c.kind(), ConstKind::Param(c) if c.index as usize == idx), . }), 82 ( 0.00%) FnKind::ImplTraitFn(expected_args) => std::ptr::from_ref(args) as usize == expected_args, . } . } 17,006 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/misc.rs -------------------------------------------------------------------------------- Ir -- line 96 ---------------------------------------- . declare_lint_pass!(LintPass => [ . SHORT_CIRCUIT_STATEMENT, . USED_UNDERSCORE_BINDING, . USED_UNDERSCORE_ITEMS, . ]); . . impl<'tcx> LateLintPass<'tcx> for LintPass { . fn check_stmt(&mut self, cx: &LateContext<'tcx>, stmt: &'tcx Stmt<'_>) { 4,878 ( 0.00%) if let StmtKind::Semi(expr) = stmt.kind 1,276 ( 0.00%) && let ExprKind::Binary(binop, a, b) = &expr.kind . && matches!(binop.node, BinOpKind::And | BinOpKind::Or) . && !stmt.span.from_expansion() . && expr.span.eq_ctxt(stmt.span) . { . span_lint_hir_and_then( . cx, . SHORT_CIRCUIT_STATEMENT, . expr.hir_id, -- line 113 ---------------------------------------- -- line 117 ---------------------------------------- . let mut app = Applicability::MachineApplicable; . let test = Sugg::hir_with_context(cx, a, expr.span.ctxt(), "_", &mut app); . let test = if binop.node == BinOpKind::Or { !test } else { test }; . let then = Sugg::hir_with_context(cx, b, expr.span.ctxt(), "_", &mut app); . diag.span_suggestion(stmt.span, "replace it with", format!("if {test} {{ {then}; }}"), app); . }, . ); . } 2,120 ( 0.00%) } . 399,600 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 133,200 ( 0.00%) if expr.span.in_external_macro(cx.sess().source_map()) 129,042 ( 0.00%) || expr.span.desugaring_kind().is_some() 4,344,414 ( 0.06%) => ???:::desugaring_kind (43,014x) 336,800 ( 0.00%) || in_automatically_derived(cx.tcx, expr.hir_id) 36,040,756 ( 0.49%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::in_automatically_derived (42,100x) . { . return; . } . . used_underscore_binding(cx, expr); . used_underscore_items(cx, expr); 355,200 ( 0.00%) } . } . . fn used_underscore_items<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 240,052 ( 0.00%) let (def_id, ident) = match expr.kind { 5,748 ( 0.00%) ExprKind::Call(func, ..) => { 28,226 ( 0.00%) if let ExprKind::Path(QPath::Resolved(.., path)) = func.kind . && let Some(last_segment) = path.segments.last() . && let Res::Def(_, def_id) = last_segment.res . { . (def_id, last_segment.ident) . } else { . return; . } . }, . ExprKind::MethodCall(path, ..) => { 11,358 ( 0.00%) if let Some(def_id) = cx.typeck_results().type_dependent_def_id(expr.hir_id) { 193,978 ( 0.00%) => ???:::type_dependent_def_id (3,786x) 3,786 ( 0.00%) (def_id, path.ident) . } else { . return; . } 3,786 ( 0.00%) }, . ExprKind::Struct(QPath::Resolved(_, path), ..) => { 102 ( 0.00%) if let Some(last_segment) = path.segments.last() . && let Res::Def(_, def_id) = last_segment.res . { . (def_id, last_segment.ident) . } else { . return; . } . }, . _ => return, . }; . . let name = ident.name.as_str(); . let definition_span = cx.tcx.def_span(def_id); 9,122 ( 0.00%) if name.starts_with('_') 2 ( 0.00%) && !name.starts_with("__") . && !definition_span.from_expansion() . && def_id.is_local() . && !cx.tcx.is_foreign_item(def_id) . { . span_lint_and_then( . cx, . USED_UNDERSCORE_ITEMS, . expr.span, -- line 182 ---------------------------------------- -- line 184 ---------------------------------------- . |diag| { . diag.span_note(definition_span, "item is defined here".to_string()); . }, . ); . } . } . . fn used_underscore_binding<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 240,646 ( 0.00%) let (definition_hir_id, ident) = match expr.kind { . ExprKind::Path(ref qpath) => { 71,584 ( 0.00%) if let QPath::Resolved(None, path) = qpath 88,059 ( 0.00%) && let Res::Local(id) = path.res 240 ( 0.00%) && is_used(cx, expr) . { 58,445 ( 0.00%) (id, last_path_segment(qpath).ident) 140,268 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::last_path_segment (11,689x) . } else { . return; . } 11,689 ( 0.00%) }, 2,367 ( 0.00%) ExprKind::Field(recv, ident) => { 789 ( 0.00%) if let Some(adt_def) = cx.typeck_results().expr_ty_adjusted(recv).ty_adt_def() 49,449 ( 0.00%) => ???:::expr_ty_adjusted (789x) . && let Some(field) = adt_def.all_fields().find(|field| field.name == ident.name) . && let Some(local_did) = field.did.as_local() 105 ( 0.00%) && !cx.tcx.type_of(field.did).skip_binder().is_phantom_data() . { . (cx.tcx.local_def_id_to_hir_id(local_did), ident) . } else { . return; . } . }, . _ => return, . }; . . let name = ident.name.as_str(); 12,196 ( 0.00%) if name.starts_with('_') . && !name.starts_with("__") . && let definition_span = cx.tcx.hir_span(definition_hir_id) . && !definition_span.from_expansion() . && !fulfill_or_allowed(cx, USED_UNDERSCORE_BINDING, [expr.hir_id, definition_hir_id]) . { . span_lint_and_then( . cx, . USED_UNDERSCORE_BINDING, -- line 226 ---------------------------------------- -- line 232 ---------------------------------------- . ); . } . } . . /// Heuristic to see if an expression is used. Should be compatible with . /// `unused_variables`'s idea . /// of what it means for an expression to be "used". . fn is_used(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool { 192,019 ( 0.00%) get_parent_expr(cx, expr).is_none_or(|parent| match parent.kind { 3,746,541 ( 0.05%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_parent_expr (34,077x) 120 ( 0.00%) ExprKind::Assign(_, rhs, _) | ExprKind::AssignOp(_, _, rhs) => { 600 ( 0.00%) SpanlessEq::new(cx).eq_expr(parent.span.ctxt(), rhs, expr) 358,097 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_expr (120x) . }, . _ => is_used(cx, parent), . }) . } 256,973 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_ast/src/visit.rs -------------------------------------------------------------------------------- Ir -- line 81 ---------------------------------------- . } . . impl<'a, V: Visitor<'a>, T: ?Sized> Visitable<'a, V> for Box . where . T: Visitable<'a, V>, . { . type Extra = T::Extra; . fn visit(&'a self, visitor: &mut V, extra: Self::Extra) -> V::Result { 20,064 ( 0.00%) (**self).visit(visitor, extra) . } . } . . impl<'a, V: Visitor<'a>, T> Visitable<'a, V> for Option . where . T: Visitable<'a, V>, . { . type Extra = T::Extra; . fn visit(&'a self, visitor: &mut V, extra: Self::Extra) -> V::Result { 166,238 ( 0.00%) if let Some(this) = self { . try_visit!(this.visit(visitor, extra)); . } . V::Result::output() . } . } . . impl<'a, V: Visitor<'a>, T> Visitable<'a, V> for Spanned . where -- line 107 ---------------------------------------- -- line 197 ---------------------------------------- . . pub(crate) trait Walkable<'a, V: Visitor<'a>> { . #[must_use] . fn walk_ref(&'a self, visitor: &mut V) -> V::Result; . } . . macro_rules! visit_visitable { . ($visitor:expr, $($expr:expr),* $(,)?) => {{ 6,840 ( 0.00%) $(try_visit!(Visitable::visit($expr, $visitor, ()));)* 33,138 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_ast/src/ast.rs:>::walk_ref (855x) . }}; . } . . macro_rules! visit_visitable_with { . ($visitor:expr, $expr:expr, $extra:expr $(,)?) => { . try_visit!(Visitable::visit($expr, $visitor, $extra)) . }; . } . . macro_rules! walk_walkable { . ($visitor:expr, $expr:expr, ) => { 122,969 ( 0.00%) Walkable::walk_ref($expr, $visitor) 2,488,737 ( 0.03%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_ast/src/visit.rs:>::walk_ref (3,178x) . }; . } . . macro_rules! impl_visitable { . (|&$lt:lifetime $self:ident: $self_ty:ty, . $vis:ident: &mut $vis_ty:ident, . $extra:ident: $extra_ty:ty| $block:block) => { . #[allow(unused_parens, non_local_definitions)] -- line 225 ---------------------------------------- -- line 232 ---------------------------------------- . }; . } . . macro_rules! impl_walkable { . ($(<$K:ident: $Kb:ident>)? |&$lt:lifetime $self:ident: $self_ty:ty, . $vis:ident: &mut $vis_ty:ident| $block:block) => { . #[allow(unused_parens, non_local_definitions)] . impl<$($K: $Kb,)? $lt, $vis_ty: Visitor<$lt>> Walkable<$lt, $vis_ty> for $self_ty { 297,704 ( 0.00%) fn walk_ref(&$lt $self, $vis: &mut $vis_ty) -> V::Result { . $block 254,672 ( 0.00%) } . } . }; . } . . macro_rules! impl_visitable_noop { . (<$lt:lifetime> $($ty:ty,)*) => { . $( . impl_visitable!(|&$lt self: $ty, _vis: &mut V, _extra: ()| { -- line 250 ---------------------------------------- -- line 286 ---------------------------------------- . . macro_rules! impl_visitable_calling_walkable { . (<$lt:lifetime> . $( fn $method:ident($ty:ty $(, $extra_name:ident: $extra_ty:ty)?); )* . ) => { . $(fn $method(&mut self, node: &$lt $ty $(, $extra_name:$extra_ty)?) -> Self::Result { . impl_visitable!(|&$lt self: $ty, visitor: &mut V, extra: ($($extra_ty)?)| { . let ($($extra_name)?) = extra; 7,819 ( 0.00%) visitor.$method(self $(, $extra_name)?) 500,493 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/non_expressive_names.rs:::visit_block (762x) . }); . walk_walkable!(self, node, ) . })* . }; . } . . macro_rules! define_named_walk { . ($Visitor:ident<$lt:lifetime> -- line 302 ---------------------------------------- -- line 655 ---------------------------------------- . // for `MutVisitor`: `Span` and `NodeId` are mutated at the caller site. . fn visit_fn( . &mut self, . fk: FnKind<$($lt)? $(${ignore($mut)} '_)?>, . _: &AttrVec, . _: Span, . _: NodeId, . ) -> Self::Result { 12 ( 0.00%) walk_fn(self, fk) 3,909 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_ast/src/visit.rs:rustc_ast::visit::walk_fn:: (12x) . } . . // (non-mut) `Visitor`-only methods . $( . fn visit_stmt(&mut self, s: &$lt Stmt) -> Self::Result { 14,362 ( 0.00%) walk_stmt(self, s) 3,098,710 ( 0.04%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_ast/src/visit.rs:rustc_ast::visit::walk_stmt:: (4,048x) . } . . fn visit_nested_use_tree(&mut self, use_tree: &$lt UseTree, id: NodeId) -> Self::Result { . try_visit!(self.visit_id(id)); . self.visit_use_tree(use_tree) . } . )? . -- line 677 ---------------------------------------- -- line 922 ---------------------------------------- . visit_visitable!($($mut)? vis, alias), . ForeignItemKind::MacCall(mac) => . visit_visitable!($($mut)? vis, mac), . } . V::Result::output() . } . } . 96 ( 0.00%) pub fn walk_fn<$($lt,)? V: $Visitor$(<$lt>)?>(vis: &mut V, kind: FnKind<$($lt)? $(${ignore($mut)} '_)?>) -> V::Result { 36 ( 0.00%) match kind { . FnKind::Fn( . _ctxt, . // Visibility is visited as a part of the item. . _vis, . Fn { defaultness, ident, sig, generics, contract, body, define_opaque, eii_impl }, . ) => { . let FnSig { header, decl, span } = sig; . visit_visitable!($($mut)? vis, . defaultness, ident, header, generics, decl, . contract, body, span, define_opaque, eii_impl . ); . } 12 ( 0.00%) FnKind::Closure(binder, coroutine_kind, decl, body) => . visit_visitable!($($mut)? vis, binder, coroutine_kind, decl, body), . } . V::Result::output() . } . . impl_walkable!(|&$($mut)? $($lt)? self: Impl, vis: &mut V| { . let Impl { generics, of_trait, self_ty, items, constness: _ } = self; . try_visit!(vis.visit_generics(generics)); -- line 952 ---------------------------------------- -- line 957 ---------------------------------------- . try_visit!(vis.visit_ty(self_ty)); . visit_visitable_with!($($mut)? vis, items, AssocCtxt::Impl { of_trait: of_trait.is_some() }); . V::Result::output() . }); . . // Special case to call `visit_method_receiver_expr`. . impl_walkable!(|&$($mut)? $($lt)? self: MethodCall, vis: &mut V| { . let MethodCall { seg, receiver, args, span } = self; 3,764 ( 0.00%) try_visit!(vis.visit_method_receiver_expr(receiver)); . visit_visitable!($($mut)? vis, seg, args, span); . V::Result::output() . }); . . impl_walkable!(|&$($mut)? $($lt)? self: Expr, vis: &mut V| { . let Expr { id, kind, span, attrs, tokens: _ } = self; . visit_visitable!($($mut)? vis, id, attrs); 193,750 ( 0.00%) match kind { . ExprKind::Array(exprs) => . visit_visitable!($($mut)? vis, exprs), . ExprKind::ConstBlock(anon_const) => . visit_visitable!($($mut)? vis, anon_const), . ExprKind::Repeat(element, count) => . visit_visitable!($($mut)? vis, element, count), . ExprKind::Struct(se) => . visit_visitable!($($mut)? vis, se), -- line 981 ---------------------------------------- -- line 994 ---------------------------------------- . ExprKind::Cast(subexpression, typ) | ExprKind::Type(subexpression, typ) => . visit_visitable!($($mut)? vis, subexpression, typ), . ExprKind::Let(pat, expr, span, _recovered) => . visit_visitable!($($mut)? vis, pat, expr, span), . ExprKind::If(head_expression, if_block, optional_else) => . visit_visitable!($($mut)? vis, head_expression, if_block, optional_else), . ExprKind::While(subexpression, block, opt_label) => . visit_visitable!($($mut)? vis, subexpression, block, opt_label), 76 ( 0.00%) ExprKind::ForLoop(ForLoop { pat, iter, body, label, kind }) => . visit_visitable!($($mut)? vis, pat, iter, body, label, kind), . ExprKind::Loop(block, opt_label, span) => . visit_visitable!($($mut)? vis, block, opt_label, span), . ExprKind::Match(subexpression, arms, kind) => . visit_visitable!($($mut)? vis, subexpression, arms, kind), . ExprKind::Closure(Closure { 12 ( 0.00%) binder, . capture_clause, 12 ( 0.00%) coroutine_kind, . constness, . movability, 12 ( 0.00%) fn_decl, 12 ( 0.00%) body, . fn_decl_span, . fn_arg_span, . }) => { . visit_visitable!($($mut)? vis, constness, movability, capture_clause); 48 ( 0.00%) let kind = FnKind::Closure(binder, coroutine_kind, fn_decl, body); . try_visit!(vis.visit_fn(kind, attrs, *span, *id)); . visit_visitable!($($mut)? vis, fn_decl_span, fn_arg_span); 12 ( 0.00%) } . ExprKind::Block(block, opt_label) => . visit_visitable!($($mut)? vis, block, opt_label), . ExprKind::Gen(capt, body, kind, decl_span) => . visit_visitable!($($mut)? vis, capt, body, kind, decl_span), . ExprKind::Await(expr, span) . | ExprKind::Move(expr, span) . | ExprKind::Use(expr, span) => . visit_visitable!($($mut)? vis, expr, span), -- line 1031 ---------------------------------------- -- line 1161 ---------------------------------------- . . fn $name<'a, V: Visitor<'a>>( . vis: &mut V, . values: &'a ThinVec<$Ty>, . $( . $param: $ParamTy, . )* . ) -> V::Result { 14,484 ( 0.00%) walk_list!(vis, $visit_fn, values$(,$param)*); 645,982 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/non_expressive_names.rs:::visit_arm (1,278x) . V::Result::output() . } . )+ . } . } . . generate_list_visit_fns! { . visit_items, Box, visit_item; -- line 1177 ---------------------------------------- -- line 1184 ---------------------------------------- . visit_variants, Variant, visit_variant; . visit_assoc_items, Box, visit_assoc_item, ctxt: AssocCtxt; . visit_where_predicates, WherePredicate, visit_where_predicate; . visit_params, Param, visit_param; . visit_field_defs, FieldDef, visit_field_def; . visit_arms, Arm, visit_arm; . } . 41,256 ( 0.00%) pub fn walk_stmt<'a, V: Visitor<'a>>(visitor: &mut V, statement: &'a Stmt) -> V::Result { . let Stmt { id, kind, span: _ } = statement; . try_visit!(visitor.visit_id(*id)); 25,785 ( 0.00%) match kind { 6,790 ( 0.00%) StmtKind::Let(local) => try_visit!(visitor.visit_local(local)), 517,331 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/non_expressive_names.rs:::visit_local (639x) . StmtKind::Item(item) => try_visit!(visitor.visit_item(item)), 4,225 ( 0.00%) StmtKind::Expr(expr) | StmtKind::Semi(expr) => try_visit!(visitor.visit_expr(expr)), . StmtKind::Empty => {} . StmtKind::MacCall(mac) => { . let MacCallStmt { mac, attrs, style: _, tokens: _ } = &**mac; . walk_list!(visitor, visit_attribute, attrs); . try_visit!(visitor.visit_mac_call(mac)); . } . } . V::Result::output() 2,024 ( 0.00%) } 116,622 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/replace_box.rs -------------------------------------------------------------------------------- Ir -- line 37 ---------------------------------------- . #[clippy::version = "1.92.0"] . pub REPLACE_BOX, . perf, . "assigning a newly created box to `Box` is inefficient" . } . . impl_lint_pass!(ReplaceBox => [REPLACE_BOX]); . 5 ( 0.00%) #[derive(Default)] . pub struct ReplaceBox { . consumed_locals: FxHashSet, . loaded_bodies: SmallVec<[BodyId; 2]>, . } . . impl ReplaceBox { . fn get_consumed_locals(&mut self, cx: &LateContext<'_>) -> &FxHashSet { . if let Some(body_id) = cx.enclosing_body -- line 53 ---------------------------------------- -- line 66 ---------------------------------------- . } . . &self.consumed_locals . } . } . . impl LateLintPass<'_> for ReplaceBox { . fn check_body_post(&mut self, _: &LateContext<'_>, body: &Body<'_>) { 5,928 ( 0.00%) if self.loaded_bodies.first().is_some_and(|&x| x == body.id()) { . self.consumed_locals.clear(); . self.loaded_bodies.clear(); . } . } . 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'_>, expr: &'_ Expr<'_>) { 88,800 ( 0.00%) if let ExprKind::Assign(lhs, rhs, _) = &expr.kind 162 ( 0.00%) && !lhs.span.from_expansion() 66 ( 0.00%) && !rhs.span.from_expansion() 42 ( 0.00%) && let lhs_ty = cx.typeck_results().expr_ty(lhs) 840 ( 0.00%) => ???:::expr_ty (21x) 84 ( 0.00%) && let Some(inner_ty) = lhs_ty.boxed_ty() 171 ( 0.00%) => ???:::boxed_ty (21x) . // No diagnostic for late-initialized locals . && lhs.res_local_id().is_none_or(|local| local_is_initialized(cx, local)) . // No diagnostic if this is a local that has been moved, or the field . // of a local that has been moved, or several chained field accesses of a local . && local_base(lhs).is_none_or(|(base_id, _)| { . !self.get_consumed_locals(cx).contains(&base_id) . }) . { -- line 93 ---------------------------------------- -- line 132 ---------------------------------------- . expr.span, . "replace existing content with inner value instead", . suggestion, . app, . ); . }); . } . } 355,200 ( 0.00%) } . } . . fn is_default_call(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool { . matches!(expr.kind, ExprKind::Call(func, _args) if is_default_equivalent_call(cx, func, Some(expr))) . } . . fn get_box_new_payload<'tcx>(cx: &LateContext<'_>, expr: &Expr<'tcx>) -> Option<&'tcx Expr<'tcx>> { . if let ExprKind::Call(box_new, [arg]) = expr.kind -- line 148 ---------------------------------------- 129 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs -------------------------------------------------------------------------------- Ir -- line 73 ---------------------------------------- . derive_src: Option, . . // When a macro is disallowed in an early pass, it's stored . // and emitted during the late pass. This happens for attributes. . early_macro_cache: AttrStorage, . } . . impl DisallowedMacros { 6 ( 0.00%) pub fn new(tcx: TyCtxt<'_>, conf: &'static Conf, early_macro_cache: AttrStorage) -> Self { 12 ( 0.00%) let (disallowed, _) = create_disallowed_map( 38 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_config/src/types.rs:clippy_config::types::create_disallowed_map::::new::{closure#0}> (1x) . tcx, . &conf.disallowed_macros, . PathNS::Macro, . |def_kind| matches!(def_kind, DefKind::Macro(_)), . "macro", . false, . ); 6 ( 0.00%) Self { 4 ( 0.00%) disallowed, . seen: FxHashSet::default(), . derive_src: None, . early_macro_cache, . } 5 ( 0.00%) } . 1,208,264 ( 0.02%) fn check(&mut self, cx: &LateContext<'_>, span: Span, derive_src: Option) { 151,033 ( 0.00%) if self.disallowed.is_empty() { . return; . } . . for mac in macro_backtrace(span) { . if !self.seen.insert(mac.expn) { . return; . } . -- line 107 ---------------------------------------- -- line 119 ---------------------------------------- . msg, . add_note, . ); . } else { . span_lint_and_then(cx, DISALLOWED_MACROS, mac.span, msg, add_note); . } . } . } 1,208,264 ( 0.02%) } . } . . impl LateLintPass<'_> for DisallowedMacros { 6 ( 0.00%) fn check_crate(&mut self, cx: &LateContext<'_>) { . // once we check a crate in the late pass we can emit the early pass lints . if let Some(attr_spans) = self.early_macro_cache.clone().0.get() { . for span in attr_spans { 26,710 ( 0.00%) self.check(cx, *span, None); 96,156 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs:::check (5,342x) . } . } 7 ( 0.00%) } . . fn check_expr(&mut self, cx: &LateContext<'_>, expr: &Expr<'_>) { 222,000 ( 0.00%) self.check(cx, expr.span, None); 799,200 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs:::check (44,400x) . // `$t + $t` can have the context of $t, check also the span of the binary operator 89,216 ( 0.00%) if let ExprKind::Binary(op, ..) = expr.kind { 1,664 ( 0.00%) self.check(cx, op.span, None); 7,488 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs:::check (416x) . } . } . . fn check_stmt(&mut self, cx: &LateContext<'_>, stmt: &Stmt<'_>) { 8,480 ( 0.00%) self.check(cx, stmt.span, None); 38,160 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs:::check (2,120x) . } . . fn check_ty(&mut self, cx: &LateContext<'_>, ty: &Ty<'_, AmbigArg>) { 111,600 ( 0.00%) self.check(cx, ty.span, None); 502,200 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs:::check (27,900x) . } . . fn check_pat(&mut self, cx: &LateContext<'_>, pat: &Pat<'_>) { 59,540 ( 0.00%) self.check(cx, pat.span, None); 267,930 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs:::check (14,885x) . } . 15,020 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'_>, item: &Item<'_>) { 6,008 ( 0.00%) self.check(cx, item.span, self.derive_src); 27,036 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs:::check (1,502x) 7,510 ( 0.00%) self.check(cx, item.vis_span, None); 27,036 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs:::check (1,502x) . 4,506 ( 0.00%) if matches!( 1,502 ( 0.00%) item.kind, . ItemKind::Struct(..) | ItemKind::Enum(..) | ItemKind::Union(..) 302 ( 0.00%) ) && macro_backtrace(item.span).all(|m| !matches!(m.kind, MacroKind::Derive)) . { 450 ( 0.00%) self.derive_src = Some(item.owner_id); . } 12,016 ( 0.00%) } . . fn check_foreign_item(&mut self, cx: &LateContext<'_>, item: &ForeignItem<'_>) { . self.check(cx, item.span, None); . self.check(cx, item.vis_span, None); . } . . fn check_impl_item(&mut self, cx: &LateContext<'_>, item: &ImplItem<'_>) { 15,255 ( 0.00%) self.check(cx, item.span, None); 54,918 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs:::check (3,051x) 6,161 ( 0.00%) if let ImplItemImplKind::Inherent { vis_span, .. } = item.impl_kind { 236 ( 0.00%) self.check(cx, vis_span, None); 1,062 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs:::check (59x) . } . } . . fn check_trait_item(&mut self, cx: &LateContext<'_>, item: &TraitItem<'_>) { 732 ( 0.00%) self.check(cx, item.span, None); 3,294 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs:::check (183x) . } . . fn check_path(&mut self, cx: &LateContext<'_>, path: &Path<'_>, _: HirId) { 198,692 ( 0.00%) self.check(cx, path.span, None); 894,114 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs:::check (49,673x) . } . } 675 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/double_parens.rs -------------------------------------------------------------------------------- Ir -- line 36 ---------------------------------------- . pub DOUBLE_PARENS, . complexity, . "Warn on unnecessary double parentheses" . } . . declare_lint_pass!(DoubleParens => [DOUBLE_PARENS]); . . impl EarlyLintPass for DoubleParens { 279,272 ( 0.00%) fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { 248,254 ( 0.00%) match &expr.kind { . // ((..)) . // ^^^^^^ expr . // ^^^^ inner . ExprKind::Paren(inner) 1,230 ( 0.00%) if matches!(inner.kind, ExprKind::Paren(_) | ExprKind::Tup(_)) . && expr.span.eq_ctxt(inner.span) . && !expr.span.in_external_macro(cx.sess().source_map()) . && check_source(cx, inner) => . { . // suggest removing the outer parens . . let mut applicability = Applicability::MachineApplicable; . // We don't need to use `snippet_with_context` here, because: -- line 58 ---------------------------------------- -- line 69 ---------------------------------------- . applicability, . ); . }, . . // func((n)) . // ^^^^^^^^^ expr . // ^^^ arg . // ^ inner 3,809 ( 0.00%) ExprKind::Call(_, args) | ExprKind::MethodCall(MethodCall { args, .. }) 19,318 ( 0.00%) if let [arg] = &**args 19,998 ( 0.00%) && let ExprKind::Paren(inner) = &arg.kind . && expr.span.eq_ctxt(arg.span) . && !arg.span.in_external_macro(cx.sess().source_map()) . && check_source(cx, arg) => . { . // suggest removing the inner parens . . let mut applicability = Applicability::MachineApplicable; . let sugg = snippet_with_context(cx.sess(), inner.span, arg.span.ctxt(), "_", &mut applicability).0; -- line 87 ---------------------------------------- -- line 92 ---------------------------------------- . "unnecessary parentheses", . "remove them", . sugg.to_string(), . applicability, . ); . }, . _ => {}, . } 319,168 ( 0.00%) } . } . . /// Check that the span does indeed look like `( (..) )` . fn check_source(cx: &EarlyContext<'_>, inner: &Expr) -> bool { . if let Some(sfr) = inner.span.get_source_range(cx) . // this is the same as `SourceFileRange::as_str`, but doesn't apply the range right away, because . // we're interested in the source code outside it . && let Some(src) = sfr.sf.src.as_ref().map(|src| src.as_str()) -- line 108 ---------------------------------------- 6,666 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/doc/mod.rs -------------------------------------------------------------------------------- Ir -- line 731 ---------------------------------------- . valid_idents: &'static FxHashSet, . check_private_items: bool, . } . . impl Documentation { . pub fn new(conf: &'static Conf) -> Self { . Self { . valid_idents: &conf.doc_valid_idents, 3 ( 0.00%) check_private_items: conf.check_private_items, . } . } . } . . impl EarlyLintPass for Documentation { 458,227 ( 0.01%) fn check_attributes(&mut self, cx: &EarlyContext<'_>, attrs: &[rustc_ast::Attribute]) { . include_in_doc_without_cfg::check(cx, attrs); 523,688 ( 0.01%) } . } . . impl<'tcx> LateLintPass<'tcx> for Documentation { 627,060 ( 0.01%) fn check_attributes(&mut self, cx: &LateContext<'tcx>, attrs: &'tcx [Attribute]) { 627,528 ( 0.01%) let Some(headers) = check_attrs(cx, self.valid_idents, attrs) else { . return; . }; . 1,016,686 ( 0.01%) match cx.tcx.hir_node(cx.last_node_with_lint_attrs) { 3,580,570 ( 0.05%) => ???:::hir_node (62,692x) 1,836 ( 0.00%) Node::Field(FieldDef { span, safety, .. }) => match (headers.safety, safety) { . (false, Safety::Unsafe) => span_lint( . cx, . MISSING_SAFETY_DOC, . *span, . "docs for unsafe field missing `# Safety` section", . ), . (true, Safety::Safe) if cx.tcx.features().unsafe_fields() => span_lint_and_help( . cx, -- line 765 ---------------------------------------- -- line 766 ---------------------------------------- . UNNECESSARY_SAFETY_DOC, . *span, . "field with `# Safety` documentation is not marked unsafe", . None, . "if the field has safety invariants, mark it `unsafe`", . ), . _ => (), . }, 1,491 ( 0.00%) Node::Item(item) => { . too_long_first_doc_paragraph::check( . cx, . item, . attrs, 2,982 ( 0.00%) headers.first_paragraph_text_len, 1,491 ( 0.00%) headers.first_paragraph_md_len, 1,491 ( 0.00%) self.check_private_items, . ); 7,411 ( 0.00%) match item.kind { 44 ( 0.00%) ItemKind::Fn { sig, body, .. } 132 ( 0.00%) if !(is_entrypoint_fn(cx, item.owner_id.to_def_id()) 770 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_entrypoint_fn (22x) 132 ( 0.00%) || item.span.in_external_macro(cx.tcx.sess.source_map())) => 2,640 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_span/src/lib.rs:::in_external_macro (22x) . { 154 ( 0.00%) missing_headers::check(cx, item.owner_id, sig, headers, Some(body), self.check_private_items); 4,485 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/doc/missing_headers.rs:clippy_lints::doc::missing_headers::check (22x) . }, 120 ( 0.00%) ItemKind::Trait { safety, .. } => match (headers.safety, safety) { . (false, Safety::Unsafe) => span_lint( . cx, . MISSING_SAFETY_DOC, . cx.tcx.def_span(item.owner_id), . "docs for unsafe trait missing `# Safety` section", . ), . (true, Safety::Safe) => span_lint( . cx, -- line 798 ---------------------------------------- -- line 800 ---------------------------------------- . cx.tcx.def_span(item.owner_id), . "docs for safe trait have unnecessary `# Safety` section", . ), . _ => (), . }, . _ => (), . } . }, 180 ( 0.00%) Node::TraitItem(trait_item) => { 505 ( 0.00%) if let TraitItemKind::Fn(sig, ..) = trait_item.kind 725 ( 0.00%) && !trait_item.span.in_external_macro(cx.tcx.sess.source_map()) . { 1,305 ( 0.00%) missing_headers::check(cx, trait_item.owner_id, sig, headers, None, self.check_private_items); 483,226 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/doc/missing_headers.rs:clippy_lints::doc::missing_headers::check (145x) . } . }, 3,051 ( 0.00%) Node::ImplItem(impl_item) => { 14,266 ( 0.00%) if let ImplItemKind::Fn(sig, body_id) = impl_item.kind 13,230 ( 0.00%) && !impl_item.span.in_external_macro(cx.tcx.sess.source_map()) 13,135 ( 0.00%) && !is_trait_impl_item(cx, impl_item.hir_id()) 447,874 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_trait_impl_item (2,627x) . { 413 ( 0.00%) missing_headers::check( 454,036 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/doc/missing_headers.rs:clippy_lints::doc::missing_headers::check (59x) . cx, 118 ( 0.00%) impl_item.owner_id, . sig, . headers, . Some(body_id), 59 ( 0.00%) self.check_private_items, . ); . } . }, . _ => {}, . } 501,648 ( 0.01%) } . } . . #[derive(Copy, Clone)] . struct Fragments<'a> { . doc: &'a str, . fragments: &'a [DocFragment], . } . -- line 840 ---------------------------------------- -- line 842 ---------------------------------------- . /// get the span for the markdown range. Note that this function is not cheap, use it with . /// caution. . #[must_use] . fn span(self, cx: &LateContext<'_>, range: Range) -> Option { . source_span_for_markdown_range(cx.tcx, self.doc, &range, self.fragments).map(|(sp, _)| sp) . } . } . 1,188 ( 0.00%) #[derive(Copy, Clone, Default)] . struct DocHeaders { . safety: bool, . errors: bool, . panics: bool, . first_paragraph_md_len: usize, . first_paragraph_text_len: usize, . } . -- line 858 ---------------------------------------- -- line 867 ---------------------------------------- . // We don't want the parser to choke on intra doc links. Since we don't . // actually care about rendering them, just pretend that all broken links . // point to a fake address. . #[expect(clippy::unnecessary_wraps)] // we're following a type signature . fn fake_broken_link_callback<'a>(_: BrokenLink<'_>) -> Option<(CowStr<'a>, CowStr<'a>)> { . Some(("fake".into(), "fake".into())) . } . 376,236 ( 0.01%) if suspicious_doc_comments::check(cx, attrs) || is_doc_hidden(attrs) { 4,016,349 ( 0.05%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/doc/suspicious_doc_comments.rs:clippy_lints::doc::suspicious_doc_comments::check (62,706x) . return None; . } . 125,384 ( 0.00%) let (fragments, _) = attrs_to_doc_fragments( . attrs.iter().filter_map(|attr| { 17,365 ( 0.00%) if attr.doc_str_and_fragment_kind().is_none() || attr.span().in_external_macro(cx.sess().source_map()) { . None . } else { . Some((attr, None)) . } . }), . true, . ); . 297 ( 0.00%) let mut doc = String::with_capacity(fragments.iter().map(|frag| frag.doc.as_str().len() + 1).sum()); . . for fragment in &fragments { 10,419 ( 0.00%) add_doc_fragment(&mut doc, fragment); 925,551 ( 0.01%) => ???:rustc_resolve::rustdoc::add_doc_fragment (3,473x) . } . doc.pop(); . 62,692 ( 0.00%) if doc.trim().is_empty() { 187,185 ( 0.00%) if let Some(span) = span_of_fragments(&fragments) { 748,740 ( 0.01%) => ???:rustc_resolve::rustdoc::span_of_fragments (62,395x) . span_lint_and_help( . cx, . EMPTY_DOCS, . span, . "empty doc comment", . None, . "consider removing or filling it", . ); . } 187,185 ( 0.00%) return Some(DocHeaders::default()); . } . . // Only emits the allow-by-default `DOC_LINK_CODE`; skip its extra markdown reparse when it's off. 2,673 ( 0.00%) if !clippy_utils::is_lint_allowed(cx, DOC_LINK_CODE, cx.last_node_with_lint_attrs) { 157,027 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_lint_allowed (297x) . check_for_code_clusters( . cx, . pulldown_cmark::Parser::new_with_broken_link_callback( . &doc, . main_body_opts() - Options::ENABLE_SMART_PUNCTUATION, . Some(&mut fake_broken_link_callback), . ) . .into_offset_iter(), -- line 920 ---------------------------------------- -- line 922 ---------------------------------------- . Fragments { . doc: &doc, . fragments: &fragments, . }, . ); . } . . // Same for the allow-by-default `DOC_PARAGRAPHS_MISSING_PUNCTUATION`, which also reparses. 2,079 ( 0.00%) if !clippy_utils::is_lint_allowed(cx, DOC_PARAGRAPHS_MISSING_PUNCTUATION, cx.last_node_with_lint_attrs) { 157,027 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_lint_allowed (297x) . doc_paragraphs_missing_punctuation::check( . cx, . &doc, . Fragments { . doc: &doc, . fragments: &fragments, . }, . ); . } . . // NOTE: check_doc uses it own cb function, . // to avoid causing duplicated diagnostics for the broken link checker. 1,485 ( 0.00%) let mut full_fake_broken_link_callback = |bl: BrokenLink<'_>| -> Option<(CowStr<'_>, CowStr<'_>)> { 32 ( 0.00%) broken_link::check(cx, &bl, &doc, &fragments); 4,899 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/doc/broken_link.rs:clippy_lints::doc::broken_link::check (8x) 56 ( 0.00%) Some(("fake".into(), "fake".into())) . }; . . // disable smart punctuation to pick up ['link'] more easily . let opts = main_body_opts() - Options::ENABLE_SMART_PUNCTUATION; . let parser = . pulldown_cmark::Parser::new_with_broken_link_callback(&doc, opts, Some(&mut full_fake_broken_link_callback)); . 5,643 ( 0.00%) Some(check_doc( 3,838,044 ( 0.05%) => site/frontend/rust-clippy/clippy_lints/src/doc/mod.rs:clippy_lints::doc::check_doc::> (297x) . cx, . valid_idents, . parser.into_offset_iter(), . &doc, 1,188 ( 0.00%) Fragments { . doc: &doc, . fragments: &fragments, . }, . attrs, . )) . } . . enum Container { -- line 966 ---------------------------------------- -- line 1053 ---------------------------------------- . . impl CodeTags { . /// Based on . fn parse(lang: &str) -> Self { . let mut tags = Self::default(); . . let mut seen_rust_tags = false; . let mut seen_other_tags = false; 1,632 ( 0.00%) for item in lang.split([',', ' ', '\t']) { . match item.trim() { . "" => {}, . "rust" => { . tags.rust = true; . seen_rust_tags = true; . }, . "ignore" => { . tags.ignore = true; -- line 1069 ---------------------------------------- -- line 1080 ---------------------------------------- . }, . "test_harness" => { . tags.test_harness = true; . seen_rust_tags = !seen_other_tags || seen_rust_tags; . }, . "standalone_crate" => { . seen_rust_tags = !seen_other_tags || seen_rust_tags; . }, 68 ( 0.00%) _ if item.starts_with("ignore-") => seen_rust_tags = true, 340 ( 0.00%) _ if item.starts_with("edition") => {}, . _ => seen_other_tags = true, . } . } . 136 ( 0.00%) tags.rust &= seen_rust_tags || !seen_other_tags; . . tags . } . } . . /// Checks parsed documentation. . /// This walks the "events" (think sections of markdown) produced by `pulldown_cmark`, . /// so lints here will generally access that information. . /// Returns documentation headers -- whether a "Safety", "Errors", "Panic" section was found . #[expect(clippy::too_many_lines, reason = "big match statement")] 3,564 ( 0.00%) fn check_doc<'a, Events: Iterator, Range)>>( . cx: &LateContext<'_>, . valid_idents: &FxHashSet, . events: Events, . doc: &str, . fragments: Fragments<'_>, . attrs: &[Attribute], . ) -> DocHeaders { . // true if a safety header was found . let mut headers = DocHeaders::default(); . let mut code = None; 297 ( 0.00%) let mut in_link = None; . let mut in_heading = false; . let mut in_footnote_definition = false; . let mut ticks_unbalanced = false; . let mut text_to_check: Vec<(CowStr<'_>, Range, isize)> = Vec::new(); . let mut paragraph_range = 0..0; . let mut code_level = 0; . let mut blockquote_level = 0; . let mut collected_breaks: Vec = Vec::new(); . let mut is_first_paragraph = true; . . let mut containers = Vec::new(); . . // Skip collecting text and the per-word scan when `DOC_MARKDOWN` (pedantic) is allowed. 2,079 ( 0.00%) let check_doc_markdown = !clippy_utils::is_lint_allowed(cx, DOC_MARKDOWN, cx.last_node_with_lint_attrs); 158,517 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_lint_allowed (297x) . 891 ( 0.00%) let mut events = events.peekable(); 22,869 ( 0.00%) => ???:0x0000000000173dc0 (297x) . 85,577 ( 0.00%) while let Some((event, range)) = events.next() { 65,703 ( 0.00%) match event { . Html(tag) | InlineHtml(tag) => { . if tag.starts_with(" { . blockquote_level -= 1; . containers.pop(); . }, . Start(CodeBlock(ref kind)) => { 136 ( 0.00%) code = Some(match kind { . CodeBlockKind::Indented => CodeTags::default(), 408 ( 0.00%) CodeBlockKind::Fenced(lang) => CodeTags::parse(lang), 748 ( 0.00%) => ???:::deref (68x) . }); . }, 68 ( 0.00%) End(TagEnd::CodeBlock) => code = None, 735 ( 0.00%) Start(Link { dest_url, .. }) => in_link = Some(dest_url), 294 ( 0.00%) End(TagEnd::Link) => in_link = None, . Start(Heading { .. } | Paragraph | Item) => { 1,546 ( 0.00%) if let Start(Heading { .. }) = event { . in_heading = true; . } 1,546 ( 0.00%) if let Start(Item) = event { . let indent = if let Some((next_event, next_range)) = events.peek() { . let next_start = match next_event { . End(TagEnd::Item) => next_range.end, . _ => next_range.start, . }; . if let Some(refdefrange) = looks_like_refdef(doc, range.start..next_start) && . let Some(refdefspan) = fragments.span(cx, refdefrange.clone()) . { -- line 1201 ---------------------------------------- -- line 1211 ---------------------------------------- . "[]", . Applicability::MaybeIncorrect, . ); . diag.help("link definitions are not shown in rendered documentation"); . } . ); . refdefrange.start - range.start . } else { 663 ( 0.00%) let mut start = next_range.start; 663 ( 0.00%) if start > 0 && doc.as_bytes().get(start - 1) == Some(&b'\\') { . // backslashes aren't in the event stream... . start -= 1; . } . . start.saturating_sub(range.start) . } . } else { . 0 . }; . containers.push(Container::List(indent)); . } . ticks_unbalanced = false; . paragraph_range = range; 3,092 ( 0.00%) if is_first_paragraph { 1,480 ( 0.00%) headers.first_paragraph_md_len = doc[paragraph_range.clone()].chars().count(); . } . }, . End(TagEnd::Heading(_) | TagEnd::Paragraph | TagEnd::Item) => { . if is_first_paragraph { . is_first_paragraph = false; . } 3,865 ( 0.00%) if let End(TagEnd::Heading(_)) = event { . in_heading = false; . } 4,638 ( 0.00%) if let End(TagEnd::Item) = event { . containers.pop(); . } 1,546 ( 0.00%) if check_doc_markdown { . if ticks_unbalanced && let Some(span) = fragments.span(cx, paragraph_range.clone()) . .or_else(|| span_of_fragments(fragments.fragments)) { . span_lint_and_help( . cx, . DOC_MARKDOWN, . span, . "backticks are unbalanced", . None, -- line 1256 ---------------------------------------- -- line 1266 ---------------------------------------- . } . } . }, . Start(FootnoteDefinition(..)) => in_footnote_definition = true, . End(TagEnd::FootnoteDefinition) => in_footnote_definition = false, . Start(_) | End(_) // We don't care about other tags . | TaskListMarker(_) | Rule => (), . SoftBreak | HardBreak => { 1,010 ( 0.00%) if is_first_paragraph { 384 ( 0.00%) headers.first_paragraph_text_len += 1; . } 2,020 ( 0.00%) if !containers.is_empty() . && !in_footnote_definition . // Tabs aren't handled correctly vvvv . && !doc[range.clone()].contains('\t') . && let Some((next_event, next_range)) = events.peek() . && !matches!(next_event, End(_)) . { . lazy_continuation::check( . cx, . doc, 53 ( 0.00%) range.end..next_range.start, . &fragments, . &containers[..], . ); . } . . 53 ( 0.00%) if event == HardBreak . && !doc[range.clone()].trim().starts_with('\\') . && let Some(span) = fragments.span(cx, range.clone()) . && !span.from_expansion() . { . collected_breaks.push(span); . } . }, 2,800 ( 0.00%) Code(code) | InlineMath(code) | DisplayMath(code) => { 2,100 ( 0.00%) if is_first_paragraph { 1,128 ( 0.00%) headers.first_paragraph_text_len += code.chars().count(); 3,106 ( 0.00%) => ???:::deref (282x) . } . } 8,860 ( 0.00%) Text(text) => { 4,430 ( 0.00%) if is_first_paragraph { 7,948 ( 0.00%) headers.first_paragraph_text_len += text.chars().count(); 7,579 ( 0.00%) => ???:::deref (689x) . } . paragraph_range.end = range.end; . let range_ = range.clone(); 11,192 ( 0.00%) ticks_unbalanced |= text.contains('`') 24,365 ( 0.00%) => ???:::deref (2,215x) . && code.is_none() . && doc[range.clone()].bytes().enumerate().any(|(i, c)| { . // scan the markdown source code bytes for backquotes that aren't preceded by backslashes . // - use bytes, instead of chars, to avoid utf8 decoding overhead (special chars are ascii) . // - relevant backquotes are within doc[range], but backslashes are not, because they're not . // actually part of the rendered text (pulldown-cmark doesn't emit any events for escapes) . // - if `range_.start + i == 0`, then `range_.start + i - 1 == -1`, and since we're working in . // usize, that would underflow and maybe panic . c == b'`' && (range_.start + i == 0 || doc.as_bytes().get(range_.start + i - 1) != Some(&b'\\')) . }); 4,513 ( 0.00%) if Some(&text) == in_link.as_ref() || ticks_unbalanced { . // Probably a link of the form `` . // Which are represented as a link to "http://example.com" with . // text "http://example.com" by pulldown-cmark . continue; . } 4,428 ( 0.00%) let trimmed_text = text.trim(); 24,354 ( 0.00%) => ???:::deref (2,214x) 4,428 ( 0.00%) headers.safety |= in_heading && trimmed_text == "Safety"; 8 ( 0.00%) headers.safety |= in_heading && trimmed_text == "SAFETY"; . headers.safety |= in_heading && trimmed_text == "Implementation safety"; 2 ( 0.00%) headers.safety |= in_heading && trimmed_text == "Implementation Safety"; 11,766 ( 0.00%) headers.errors |= in_heading && trimmed_text == "Errors"; 6,585 ( 0.00%) headers.panics |= in_heading && trimmed_text == "Panics"; . 4,428 ( 0.00%) if let Some(tags) = code { 408 ( 0.00%) if tags.rust && !tags.compile_fail && !tags.ignore { 272 ( 0.00%) needless_doctest_main::check(cx, &text, range.start, fragments); 748 ( 0.00%) => ???:::deref (68x) . 340 ( 0.00%) if !tags.no_run && !tags.test_harness { 272 ( 0.00%) test_attr_in_doctest::check(cx, &text, range.start, fragments); 748 ( 0.00%) => ???:::deref (68x) . } . } . } else { 2,146 ( 0.00%) if in_link.is_some() { . link_with_quotes::check(cx, trimmed_text, range.clone(), fragments); . } . if let Some(link) = in_link.as_ref() 723 ( 0.00%) && let Ok(url) = Url::parse(link) 891 ( 0.00%) => ???:::deref (81x) 79 ( 0.00%) && (url.scheme() == "https" || url.scheme() == "http") . { . // Don't check the text associated with external URLs . continue; . } 4,134 ( 0.00%) if check_doc_markdown { . text_to_check.push((text, range.clone(), code_level)); . } 22,737 ( 0.00%) doc_suspicious_footnotes::check(cx, doc, range, &fragments, attrs); 597,525 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/doc/doc_suspicious_footnotes.rs:clippy_lints::doc::doc_suspicious_footnotes::check (2,067x) . } 2,135 ( 0.00%) } . FootnoteReference(_) => {} . } 60,860 ( 0.00%) } 18,114 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:core::ptr::drop_glue:: (975x) 17,504 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:core::ptr::drop_glue:: (1,627x) . 297 ( 0.00%) doc_comment_double_space_linebreaks::check(cx, &collected_breaks); 4,455 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/doc/doc_comment_double_space_linebreaks.rs:clippy_lints::doc::doc_comment_double_space_linebreaks::check (297x) . . headers 2,376 ( 0.00%) } . . fn looks_like_refdef(doc: &str, range: Range) -> Option> { 442 ( 0.00%) if range.end < range.start { . return None; . } . . let offset = range.start; . let mut iterator = doc.as_bytes()[range].iter().copied().enumerate(); . let mut start = None; . while let Some((i, byte)) = iterator.next() { 2,494 ( 0.00%) match byte { . b'\\' => { . iterator.next(); . }, . b'[' => { . start = Some(i + offset); . }, . b']' if let Some(start) = start . && doc.as_bytes().get(i + offset + 1) == Some(&b':') => -- line 1389 ---------------------------------------- 289,692 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/four_forward_slashes.rs -------------------------------------------------------------------------------- Ir -- line 36 ---------------------------------------- . pub FOUR_FORWARD_SLASHES, . suspicious, . "comments with 4 forward slashes (`////`) likely intended to be doc comments (`///`)" . } . . declare_lint_pass!(FourForwardSlashes => [FOUR_FORWARD_SLASHES]); . . impl<'tcx> LateLintPass<'tcx> for FourForwardSlashes { 13,518 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'tcx>) { 3,004 ( 0.00%) if item.span.from_expansion() { . return; . } . let sm = cx.sess().source_map(); . let mut span = cx . .tcx 3,512 ( 0.00%) .hir_attrs(item.hir_id()) 39,966 ( 0.00%) => ???:::hir_attrs (878x) . .iter() . // Only fold in OUTER doc comments. An inner doc (`//!`) inside the item's . // body lowers onto the item with `AttrStyle::Inner`; folding its span drags . // `end_line` down into the body, so the upward `////` scan then flags a . // regular comment there (see #16168). . .filter(|i| { 6,864 ( 0.00%) matches!( . i, . Attribute::Parsed(AttributeKind::DocComment { . style: AttrStyle::Outer, . .. . }) . ) . }) 4,904 ( 0.00%) .fold(item.span.shrink_to_lo(), |span, attr| span.to(attr.span())); 124,806 ( 0.00%) => ???:::to (1,342x) 7,024 ( 0.00%) let (Some(file), _, _, end_line, _) = sm.span_to_location_info(span) else { 1,310,967 ( 0.02%) => ???:::span_to_location_info (878x) . return; . }; . let mut bad_comments = vec![]; . for line in (0..end_line.saturating_sub(1)).rev() { 10,473 ( 0.00%) let Some(contents) = file.get_line(line).map(|c| c.trim().to_owned()) else { 483,817 ( 0.01%) => ???:::get_line (3,491x) . return; . }; . // Keep searching until we find the next item 6,511 ( 0.00%) if !contents.is_empty() && !contents.starts_with("//") && !contents.starts_with("#[") { . break; . } . 2,212 ( 0.00%) if contents.starts_with("////") && !matches!(contents.chars().nth(4), Some('/' | '!')) { . let bounds = file.line_bounds(line); . let line_span = Span::with_root_ctxt(bounds.start, bounds.end); . span = line_span.to(span); . bad_comments.push((line_span, contents)); . } . } . 864 ( 0.00%) if !bad_comments.is_empty() { . span_lint_and_then( . cx, . FOUR_FORWARD_SLASHES, . span, . "this item has comments with 4 forward slashes (`////`). These look like doc comments, but they aren't", . |diag| { . let msg = if bad_comments.len() == 1 { . "make this a doc comment by removing one `/`" -- line 96 ---------------------------------------- -- line 115 ---------------------------------------- . // will need normalization but it should be fine . .map(|(span, c)| (span, c.replacen("////", "///", 1) + "\n")) . .collect(), . Applicability::MachineApplicable, . ); . }, . ); . } 12,016 ( 0.00%) } . } . . /// Checks if `text` contains any CR not followed by a LF . fn contains_bare_cr(text: &str) -> bool { . text.bytes().tuple_windows().any(|(a, b)| a == b'\r' && b != b'\n') . } 5,732 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/filter.rs -------------------------------------------------------------------------------- Ir -- line 20 ---------------------------------------- . #[derive(Clone)] . pub struct Filter { . // Used for `SplitWhitespace` and `SplitAsciiWhitespace` `as_str` methods . pub(crate) iter: I, . predicate: P, . } . impl Filter { . pub(in crate::iter) const fn new(iter: I, predicate: P) -> Filter { 151,805 ( 0.00%) Filter { iter, predicate } . } . } . . impl Filter . where . I: Iterator, . P: FnMut(&I::Item) -> bool, . { -- line 36 ---------------------------------------- -- line 71 ---------------------------------------- . f.debug_struct("Filter").field("iter", &self.iter).finish() . } . } . . fn filter_fold( . mut predicate: impl FnMut(&T) -> bool, . mut fold: impl FnMut(Acc, T) -> Acc, . ) -> impl FnMut(Acc, T) -> Acc { 10,548 ( 0.00%) move |acc, item| if predicate(&item) { fold(acc, item) } else { acc } . } . . fn filter_try_fold<'a, T, Acc, R: Try>( . predicate: &'a mut impl FnMut(&T) -> bool, . mut fold: impl FnMut(Acc, T) -> R + 'a, . ) -> impl FnMut(Acc, T) -> R + 'a { 160,930 ( 0.00%) move |acc, item| if predicate(&item) { fold(acc, item) } else { try { acc } } . } . . #[stable(feature = "rust1", since = "1.0.0")] . impl Iterator for Filter . where . P: FnMut(&I::Item) -> bool, . { . type Item = I::Item; . . #[inline] 1,250 ( 0.00%) fn next(&mut self) -> Option { 46 ( 0.00%) self.iter.find(&mut self.predicate) 1,250 ( 0.00%) } . . #[inline] . fn next_chunk( . &mut self, . ) -> Result<[Self::Item; N], array::IntoIter> { . // avoid codegen for the dead branch . let fun = const { . if crate::mem::needs_drop::() { -- line 107 ---------------------------------------- -- line 130 ---------------------------------------- . // less readable and also less backwards-compatible to Rust before 1.10. . // . // Using the branchless version will also simplify the LLVM byte code, thus . // leaving more budget for LLVM optimizations. . #[inline] . fn count(self) -> usize { . #[inline] . fn to_usize(mut predicate: impl FnMut(&T) -> bool) -> impl FnMut(T) -> usize { 413 ( 0.00%) move |x| predicate(&x) as usize . } . . let before = self.iter.size_hint().1.unwrap_or(usize::MAX); . let total = self.iter.map(to_usize(self.predicate)).sum(); . // SAFETY: `total` and `before` came from the same iterator of type `I` . unsafe { . ::assume_count_le_upper_bound(total, before); . } -- line 146 ---------------------------------------- -- line 149 ---------------------------------------- . . #[inline] . fn try_fold(&mut self, init: Acc, fold: Fold) -> R . where . Self: Sized, . Fold: FnMut(Acc, Self::Item) -> R, . R: Try, . { 15 ( 0.00%) self.iter.try_fold(init, filter_try_fold(&mut self.predicate, fold)) 3,696 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:, ::block::{closure#0}> as core::iter::traits::iterator::Iterator>::try_fold::<(), core::iter::adapters::filter::filter_try_fold>, ::block::{closure#1}, core::iter::traits::iterator::Iterator::try_for_each::call>, core::iter::traits::iterator::iter_compare::compare, rustc_lexer::TokenKind, (), core::iter::traits::iterator::Iterator::eq_by::compare, ::block::{closure#0}>, ::block::{closure#1}> as core::iter::traits::iterator::Iterator>::eq<[rustc_lexer::TokenKind; 1]>::{closure#0}>::{closure#0}>::{closure#0}>::{closure#0}>::{closure#0}, core::ops::control_flow::ControlFlow>> (6x) . } . . #[inline] . fn fold(self, init: Acc, fold: Fold) -> Acc . where . Fold: FnMut(Acc, Self::Item) -> Acc, . { 6,087 ( 0.00%) self.iter.fold(init, filter_fold(self.predicate, fold)) . } . } . . #[stable(feature = "rust1", since = "1.0.0")] . impl DoubleEndedIterator for Filter . where . P: FnMut(&I::Item) -> bool, . { -- line 173 ---------------------------------------- 93,824 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/query/caches.rs -------------------------------------------------------------------------------- Ir -- line 55 ---------------------------------------- . K: QueryKey, . V: Copy, . { . type Key = K; . type Value = V; . . #[inline(always)] . fn lookup(&self, key: &K) -> Option<(V, DepNodeIndex)> { 62,977 ( 0.00%) self.cache.get(key) 10,640 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_data_structures/src/sharded.rs:, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::get:: (152x) . } . . #[inline] . fn complete(&self, key: K, value: V, index: DepNodeIndex) { . self.cache.insert_unique(key, (value, index)); . } . . fn for_each(&self, f: &mut dyn FnMut(&Self::Key, &Self::Value, DepNodeIndex)) { -- line 71 ---------------------------------------- -- line 142 ---------------------------------------- . where . V: Copy, . { . type Key = DefId; . type Value = V; . . #[inline(always)] . fn lookup(&self, key: &DefId) -> Option<(V, DepNodeIndex)> { 27,693 ( 0.00%) if key.krate == LOCAL_CRATE { . self.local.lookup(&key.index) . } else { . self.foreign.lookup(key) . } . } . . #[inline] . fn complete(&self, key: DefId, value: V, index: DepNodeIndex) { -- line 158 ---------------------------------------- 18,502 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs -------------------------------------------------------------------------------- Ir -- line 61 ---------------------------------------- . pub struct Map { . // Used for `SplitWhitespace` and `SplitAsciiWhitespace` `as_str` methods . pub(crate) iter: I, . f: F, . } . . impl Map { . pub(in crate::iter) const fn new(iter: I, f: F) -> Map { 240,046 ( 0.00%) Map { iter, f } . } . . pub(crate) fn into_inner(self) -> I { . self.iter . } . } . . #[stable(feature = "core_impl_debug", since = "1.9.0")] -- line 77 ---------------------------------------- -- line 80 ---------------------------------------- . f.debug_struct("Map").field("iter", &self.iter).finish() . } . } . . fn map_fold( . mut f: impl FnMut(T) -> B, . mut g: impl FnMut(Acc, B) -> Acc, . ) -> impl FnMut(Acc, T) -> Acc { 3,658 ( 0.00%) move |acc, elt| g(acc, f(elt)) . } . . fn map_try_fold<'a, T, B, Acc, R>( . f: &'a mut impl FnMut(T) -> B, . mut g: impl FnMut(Acc, B) -> R + 'a, . ) -> impl FnMut(Acc, T) -> R + 'a { 7,152 ( 0.00%) move |acc, elt| g(acc, f(elt)) 24 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:<&mut &mut core::iter::adapters::map::map_try_fold, core::option::Option<(rustc_middle::ty::Ty, clippy_lints::loops::manual_memcpy::IndexExpr, clippy_lints::loops::manual_memcpy::IndexExpr)>, (), core::ops::control_flow::ControlFlow>, clippy_lints::loops::manual_memcpy::check::{closure#0}, core::iter::adapters::map::map_try_fold, core::option::Option, (), core::ops::control_flow::ControlFlow>, clippy_lints::loops::manual_memcpy::check::{closure#1}, , clippy_lints::loops::manual_memcpy::get_assignments::{closure#0}>, core::option::IntoIter<&rustc_hir::hir::Expr>>, clippy_lints::loops::manual_memcpy::get_assignments::{closure#1}>, clippy_lints::loops::manual_memcpy::get_assignment>>>, core::option::IntoIter>>, clippy_lints::loops::manual_memcpy::check::{closure#0}>, clippy_lints::loops::manual_memcpy::check::{closure#1}>, core::option::Option> as core::iter::traits::iterator::Iterator>::try_fold<(), core::iter::traits::iterator::Iterator::try_for_each::call, core::ops::control_flow::ControlFlow::Break>::{closure#0}, core::ops::control_flow::ControlFlow>::{closure#0}>::{closure#0}>::{closure#0} as core::ops::function::FnMut<((), core::option::Option<(&rustc_hir::hir::Expr, &rustc_hir::hir::Expr)>)>>::call_mut (1x) . } . . #[stable(feature = "rust1", since = "1.0.0")] . impl Iterator for Map . where . F: FnMut(I::Item) -> B, . { . type Item = B; . . #[inline] 525 ( 0.00%) fn next(&mut self) -> Option { 160,291 ( 0.00%) self.iter.next().map(&mut self.f) 5,396 ( 0.00%) => ???:::next (52x) 390 ( 0.00%) } . . #[inline] . fn size_hint(&self) -> (usize, Option) { . self.iter.size_hint() . } . 444,332 ( 0.01%) fn try_fold(&mut self, init: Acc, g: G) -> R . where . Self: Sized, . G: FnMut(Acc, Self::Item) -> R, . R: Try, . { 37 ( 0.00%) self.iter.try_fold(init, map_try_fold(&mut self.f, g)) 704 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:, rustc_middle::ty::assoc::AssocItem)>, , rustc_middle::ty::assoc::AssocItem>>::iter::{closure#0}> as core::iter::traits::iterator::Iterator>::try_fold::<(), core::iter::adapters::map::map_try_fold<(&core::option::Option, &rustc_middle::ty::assoc::AssocItem), &rustc_middle::ty::assoc::AssocItem, (), core::ops::control_flow::ControlFlow<()>, ::in_definition_order::{closure#0}, core::iter::traits::iterator::Iterator::any::check<&rustc_middle::ty::assoc::AssocItem, clippy_lints::needless_borrows_for_generic_args::has_ref_mut_self_method::{closure#0}>::{closure#0}>::{closure#0}, core::ops::control_flow::ControlFlow<()>> (8x) 355,358 ( 0.00%) } . 40,266 ( 0.00%) fn fold(self, init: Acc, g: G) -> Acc . where . G: FnMut(Acc, Self::Item) -> Acc, . { 222 ( 0.00%) self.iter.fold(init, map_fold(self.f, g)) 35,952 ( 0.00%) } . . #[inline] . unsafe fn __iterator_get_unchecked(&mut self, idx: usize) -> B . where . Self: TrustedRandomAccessNoCoerce, . { . // SAFETY: the caller must uphold the contract for . // `Iterator::__iterator_get_unchecked`. -- line 137 ---------------------------------------- 78,228 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/mod.rs -------------------------------------------------------------------------------- Ir -- line 129 ---------------------------------------- . /// assert!(b.is_empty()); . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_stable(feature = "const_slice_is_empty", since = "1.39.0")] . #[rustc_no_implicit_autorefs] . #[inline] . #[must_use] . pub const fn is_empty(&self) -> bool { 4,014 ( 0.00%) self.len() == 0 . } . . /// Returns the first element of the slice, or `None` if it is empty. . /// . /// # Examples . /// . /// ``` . /// let v = [10, 40, 30]; -- line 145 ---------------------------------------- -- line 148 ---------------------------------------- . /// let w: &[i32] = &[]; . /// assert_eq!(None, w.first()); . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_stable(feature = "const_slice_first_last_not_mut", since = "1.56.0")] . #[inline] . #[must_use] . pub const fn first(&self) -> Option<&T> { 266,417 ( 0.00%) if let [first, ..] = self { Some(first) } else { None } . } . . /// Returns a mutable reference to the first element of the slice, or `None` if it is empty. . /// . /// # Examples . /// . /// ``` . /// let x = &mut [0, 1, 2]; -- line 164 ---------------------------------------- -- line 191 ---------------------------------------- . /// assert_eq!(elements, &[1, 2]); . /// } . /// ``` . #[stable(feature = "slice_splits", since = "1.5.0")] . #[rustc_const_stable(feature = "const_slice_first_last_not_mut", since = "1.56.0")] . #[inline] . #[must_use] . pub const fn split_first(&self) -> Option<(&T, &[T])> { 3,230 ( 0.00%) if let [first, tail @ ..] = self { Some((first, tail)) } else { None } . } . . /// Returns the first and all the rest of the elements of the slice, or `None` if it is empty. . /// . /// # Examples . /// . /// ``` . /// let x = &mut [0, 1, 2]; -- line 207 ---------------------------------------- -- line 233 ---------------------------------------- . /// assert_eq!(elements, &[0, 1]); . /// } . /// ``` . #[stable(feature = "slice_splits", since = "1.5.0")] . #[rustc_const_stable(feature = "const_slice_first_last_not_mut", since = "1.56.0")] . #[inline] . #[must_use] . pub const fn split_last(&self) -> Option<(&T, &[T])> { 295 ( 0.00%) if let [init @ .., last] = self { Some((last, init)) } else { None } . } . . /// Returns the last and all the rest of the elements of the slice, or `None` if it is empty. . /// . /// # Examples . /// . /// ``` . /// let x = &mut [0, 1, 2]; -- line 249 ---------------------------------------- -- line 274 ---------------------------------------- . /// let w: &[i32] = &[]; . /// assert_eq!(None, w.last()); . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_stable(feature = "const_slice_first_last_not_mut", since = "1.56.0")] . #[inline] . #[must_use] . pub const fn last(&self) -> Option<&T> { 810,966 ( 0.01%) if let [.., last] = self { Some(last) } else { None } . } . . /// Returns a mutable reference to the last item in the slice, or `None` if it is empty. . /// . /// # Examples . /// . /// ``` . /// let x = &mut [0, 1, 2]; -- line 290 ---------------------------------------- -- line 297 ---------------------------------------- . /// let y: &mut [i32] = &mut []; . /// assert_eq!(None, y.last_mut()); . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_stable(feature = "const_slice_first_last", since = "1.83.0")] . #[inline] . #[must_use] . pub const fn last_mut(&mut self) -> Option<&mut T> { 8,392 ( 0.00%) if let [.., last] = self { Some(last) } else { None } . } . . /// Returns an array reference to the first `N` items in the slice. . /// . /// If the slice is not at least `N` in length, this will return `None`. . /// . /// # Examples . /// -- line 313 ---------------------------------------- -- line 320 ---------------------------------------- . /// . /// let w: &[i32] = &[]; . /// assert_eq!(Some(&[]), w.first_chunk::<0>()); . /// ``` . #[inline] . #[stable(feature = "slice_first_last_chunk", since = "1.77.0")] . #[rustc_const_stable(feature = "slice_first_last_chunk", since = "1.77.0")] . pub const fn first_chunk(&self) -> Option<&[T; N]> { 44,741 ( 0.00%) if self.len() < N { . None . } else { . // SAFETY: We explicitly check for the correct number of elements, . // and do not let the reference outlive the slice. . Some(unsafe { &*(self.as_ptr().cast_array()) }) . } . } . -- line 336 ---------------------------------------- -- line 846 ---------------------------------------- . /// Gets a reference to the underlying array. . /// . /// If `N` is not exactly equal to the length of `self`, then this method returns `None`. . #[stable(feature = "core_slice_as_array", since = "1.93.0")] . #[rustc_const_stable(feature = "core_slice_as_array", since = "1.93.0")] . #[inline] . #[must_use] . pub const fn as_array(&self) -> Option<&[T; N]> { 288 ( 0.00%) if self.len() == N { . let ptr = self.as_ptr().cast_array(); . . // SAFETY: The underlying array of a slice can be reinterpreted as an actual array `[T; N]` if `N` is not greater than the slice's length. . let me = unsafe { &*ptr }; . Some(me) . } else { . None . } -- line 862 ---------------------------------------- -- line 970 ---------------------------------------- . /// let mut v = [1, 2, 3]; . /// v.reverse(); . /// assert!(v == [3, 2, 1]); . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_stable(feature = "const_slice_reverse", since = "1.90.0")] . #[inline] . pub const fn reverse(&mut self) { 40 ( 0.00%) let half_len = self.len() / 2; . let Range { start, end } = self.as_mut_ptr_range(); . . // These slices will skip the middle item for an odd length, . // since that one doesn't need to move. . let (front_half, back_half) = . // SAFETY: Both are subparts of the original slice, so the memory . // range is valid, and they don't overlap because they're each only . // half (or less) of the original slice. -- line 986 ---------------------------------------- -- line 1005 ---------------------------------------- . // this check tells LLVM that the indexing below is . // in-bounds. Then after inlining -- once the actual . // lengths of the slices are known -- it's removed. . // FIXME(const_trait_impl) replace with let (a, b) = (&mut a[..n], &mut b[..n]); . let (a, _) = a.split_at_mut(n); . let (b, _) = b.split_at_mut(n); . . let mut i = 0; 20 ( 0.00%) while i < n { 14 ( 0.00%) mem::swap(&mut a[i], &mut b[n - 1 - i]); . i += 1; . } . } . } . . /// Returns an iterator over the slice. . /// . /// The iterator yields all items from start to end. -- line 1022 ---------------------------------------- -- line 1391 ---------------------------------------- . /// ``` . #[stable(feature = "slice_as_chunks", since = "1.88.0")] . #[rustc_const_stable(feature = "slice_as_chunks", since = "1.88.0")] . #[inline] . #[track_caller] . #[must_use] . pub const fn as_chunks<#[rustc_panics_when_zero] const N: usize>(&self) -> (&[[T; N]], &[T]) { . assert!(N != 0, "chunk size must be non-zero"); 2 ( 0.00%) let len_rounded_down = self.len() / N * N; . // SAFETY: The rounded-down value is always the same or smaller than the . // original length, and thus must be in-bounds of the slice. . let (multiple_of_n, remainder) = unsafe { self.split_at_unchecked(len_rounded_down) }; . // SAFETY: We already panicked for zero, and ensured by construction . // that the length of the subslice is a multiple of N. . let array_slice = unsafe { multiple_of_n.as_chunks_unchecked() }; . (array_slice, remainder) . } -- line 1407 ---------------------------------------- -- line 2054 ---------------------------------------- . . assert_unsafe_precondition!( . check_library_ub, . "slice::split_at_unchecked requires the index to be within the slice", . (mid: usize = mid, len: usize = len) => mid <= len, . ); . . // SAFETY: Caller has to check that `0 <= mid <= self.len()` 3 ( 0.00%) unsafe { (from_raw_parts(ptr, mid), from_raw_parts(ptr.add(mid), unchecked_sub(len, mid))) } . } . . /// Divides one mutable slice into two at an index, without doing bounds checking. . /// . /// The first will contain all indices from `[0, mid)` (excluding . /// the index `mid` itself) and the second will contain all . /// indices from `[mid, len)` (excluding the index `len` itself). . /// -- line 2070 ---------------------------------------- -- line 2110 ---------------------------------------- . . // SAFETY: Caller has to check that `0 <= mid <= self.len()`. . // . // `[ptr; mid]` and `[mid; len]` are not overlapping, so returning a mutable reference . // is fine. . unsafe { . ( . from_raw_parts_mut(ptr, mid), 18 ( 0.00%) from_raw_parts_mut(ptr.add(mid), unchecked_sub(len, mid)), . ) . } . } . . /// Divides one slice into two at an index, returning `None` if the slice is . /// too short. . /// . /// If `mid ≤ len` returns a pair of slices where the first will contain all -- line 2126 ---------------------------------------- -- line 2155 ---------------------------------------- . /// . /// assert_eq!(None, v.split_at_checked(7)); . /// ``` . #[stable(feature = "split_at_checked", since = "1.80.0")] . #[rustc_const_stable(feature = "split_at_checked", since = "1.80.0")] . #[inline] . #[must_use] . pub const fn split_at_checked(&self, mid: usize) -> Option<(&[T], &[T])> { 1,863 ( 0.00%) if mid <= self.len() { . // SAFETY: `[ptr; mid]` and `[mid; len]` are inside `self`, which . // fulfills the requirements of `split_at_unchecked`. . Some(unsafe { self.split_at_unchecked(mid) }) . } else { . None . } . } . -- line 2171 ---------------------------------------- -- line 2194 ---------------------------------------- . /// . /// assert_eq!(None, v.split_at_mut_checked(7)); . /// ``` . #[stable(feature = "split_at_checked", since = "1.80.0")] . #[rustc_const_stable(feature = "const_slice_split_at_mut", since = "1.83.0")] . #[inline] . #[must_use] . pub const fn split_at_mut_checked(&mut self, mid: usize) -> Option<(&mut [T], &mut [T])> { 72 ( 0.00%) if mid <= self.len() { . // SAFETY: `[ptr; mid]` and `[mid; len]` are inside `self`, which . // fulfills the requirements of `split_at_unchecked`. . Some(unsafe { self.split_at_mut_unchecked(mid) }) . } else { . None . } . } . -- line 2210 ---------------------------------------- -- line 2596 ---------------------------------------- . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . #[inline] . #[must_use] . pub fn contains(&self, x: &T) -> bool . where . T: PartialEq, . { 6 ( 0.00%) cmp::SliceContains::slice_contains(x, self) 92 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:<&str as core::slice::cmp::SliceContains>::slice_contains (2x) . } . . /// Returns `true` if `needle` is a prefix of the slice or equal to the slice. . /// . /// # Examples . /// . /// ``` . /// let v = [10, 40, 30]; -- line 2612 ---------------------------------------- -- line 2627 ---------------------------------------- . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . #[must_use] . pub fn starts_with(&self, needle: &[T]) -> bool . where . T: PartialEq, . { . let n = needle.len(); 132,875 ( 0.00%) self.len() >= n && needle == &self[..n] . } . . /// Returns `true` if `needle` is a suffix of the slice or equal to the slice. . /// . /// # Examples . /// . /// ``` . /// let v = [10, 40, 30]; -- line 2643 ---------------------------------------- -- line 2658 ---------------------------------------- . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . #[must_use] . pub fn ends_with(&self, needle: &[T]) -> bool . where . T: PartialEq, . { . let (m, n) = (self.len(), needle.len()); 73,787 ( 0.00%) m >= n && needle == &self[m - n..] . } . . /// Returns a subslice with the prefix removed. . /// . /// If the slice starts with `prefix`, returns the subslice after the prefix, wrapped in `Some`. . /// If `prefix` is empty, simply returns the original slice. If `prefix` is equal to the . /// original slice, returns an empty slice. . /// -- line 2674 ---------------------------------------- 36,892 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/else_if_without_else.rs -------------------------------------------------------------------------------- Ir -- line 42 ---------------------------------------- . restriction, . "`if` expression with an `else if`, but without a final `else` branch" . } . . declare_lint_pass!(ElseIfWithoutElse => [ELSE_IF_WITHOUT_ELSE]); . . impl EarlyLintPass for ElseIfWithoutElse { . fn check_expr(&mut self, cx: &EarlyContext<'_>, item: &Expr) { 81,562 ( 0.00%) if let ExprKind::If(_, _, Some(ref els)) = item.kind 568 ( 0.00%) && let ExprKind::If(_, _, None) = els.kind . && !item.span.in_external_macro(cx.sess().source_map()) . { . #[expect(clippy::collapsible_span_lint_calls, reason = "rust-clippy#7797")] . span_lint_and_then( . cx, . ELSE_IF_WITHOUT_ELSE, . els.span, . "`if` expression with an `else if`, but without a final `else`", -- line 59 ---------------------------------------- -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/query/erase.rs -------------------------------------------------------------------------------- Ir -- line 20 ---------------------------------------- . use crate::ty::{self, Ty, TyCtxt}; . use crate::{mir, thir, traits}; . . unsafe extern "C" { . type NoAutoTraits; . } . . /// Internal implementation detail of [`Erased`]. 2,458 ( 0.00%) #[derive(Copy, Clone)] . pub struct ErasedData { . /// We use `MaybeUninit` here to make sure it's legal to store a transmuted . /// value that isn't actually of type `Storage`. . data: MaybeUninit, . /// `Storage` is an erased type, so we use an external type here to opt-out of auto traits . /// as those would be incorrect. . no_auto_traits: PhantomData, . } -- line 36 ---------------------------------------- -- line 96 ---------------------------------------- . . /// Restores an erased value to its real type. . /// . /// This relies on the fact that `Erased` and `Erased` are type-checked . /// as distinct types, even if they use the same storage type. . #[inline(always)] . #[define_opaque(Erased)] . pub fn restore_val(erased_value: Erased) -> T { 6,280 ( 0.00%) let ErasedData { data, .. }: ErasedData<::Storage> = erased_value; . // See comment in `erase_val` for why we use `transmute_unchecked`. . // . // SAFETY: Due to the use of impl Trait in `Erased` the only way to safely create an instance . // of `Erased` is to call `erase_val`, so we know that `erased_value.data` is a valid instance . // of `T` of the right size. 68,543 ( 0.00%) unsafe { transmute_unchecked::, T>(data) } . } . . impl Erasable for &'_ T { . type Storage = [u8; size_of::<&'_ ()>()]; . } . . impl Erasable for &'_ [T] { . type Storage = [u8; size_of::<&'_ [()]>()]; -- line 118 ---------------------------------------- 11,884 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/matches/significant_drop_in_scrutinee.rs -------------------------------------------------------------------------------- Ir -- line 12 ---------------------------------------- . use rustc_hir::intravisit::{Visitor, walk_expr}; . use rustc_hir::{Arm, Expr, ExprKind, MatchSource}; . use rustc_lint::LateContext; . use rustc_middle::ty::{GenericArgKind, RegionKind, Ty, TypeVisitableExt as _}; . use rustc_span::Span; . . use super::SIGNIFICANT_DROP_IN_SCRUTINEE; . 28,509 ( 0.00%) pub(super) fn check_match<'tcx>( . cx: &LateContext<'tcx>, . expr: &'tcx Expr<'tcx>, . scrutinee: &'tcx Expr<'_>, . arms: &'tcx [Arm<'_>], . source: MatchSource, . ) { 13,158 ( 0.00%) if is_lint_allowed(cx, SIGNIFICANT_DROP_IN_SCRUTINEE, expr.hir_id) { 2,149,621 ( 0.03%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_lint_allowed (2,193x) . return; . } . . let scrutinee = match (source, &scrutinee.kind) { . (MatchSource::ForLoopDesugar, ExprKind::Call(_, [e])) => e, . _ => scrutinee, . }; . -- line 35 ---------------------------------------- -- line 37 ---------------------------------------- . "temporary with significant `Drop` in `match` scrutinee will live until the end of the `match` expression" . } else { . "temporary with significant `Drop` in `for` loop condition will live until the end of the `for` expression" . }; . . let arms = arms.iter().map(|arm| arm.body).collect::>(); . . check(cx, expr, scrutinee, &arms, message, Suggestion::Emit); 17,544 ( 0.00%) } . . pub(super) fn check_if_let<'tcx>( . cx: &LateContext<'tcx>, . expr: &'tcx Expr<'tcx>, . scrutinee: &'tcx Expr<'_>, . if_then: &'tcx Expr<'_>, . if_else: Option<&'tcx Expr<'_>>, . ) { 1,104 ( 0.00%) if is_lint_allowed(cx, SIGNIFICANT_DROP_IN_SCRUTINEE, expr.hir_id) { 161,330 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_lint_allowed (138x) . return; . } . . let message = . "temporary with significant `Drop` in `if let` scrutinee will live until the end of the `if let` expression"; . . if let Some(if_else) = if_else { . check(cx, expr, scrutinee, &[if_then, if_else], message, Suggestion::Emit); . } else { . check(cx, expr, scrutinee, &[if_then], message, Suggestion::Emit); . } . } . 225 ( 0.00%) pub(super) fn check_while_let<'tcx>( . cx: &LateContext<'tcx>, . expr: &'tcx Expr<'tcx>, . scrutinee: &'tcx Expr<'_>, . body: &'tcx Expr<'_>, . ) { 150 ( 0.00%) if is_lint_allowed(cx, SIGNIFICANT_DROP_IN_SCRUTINEE, expr.hir_id) { 27,576 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_lint_allowed (25x) . return; . } . . check( . cx, . expr, . scrutinee, . &[body], . "temporary with significant `Drop` in `while let` scrutinee will live until the end of the `while let` expression", . // Don't emit wrong suggestions: We cannot fix the significant drop in the `while let` scrutinee by simply . // moving it out. We need to change the `while` to a `loop` instead. . Suggestion::DontEmit, . ); 150 ( 0.00%) } . . #[derive(Copy, Clone, Debug)] . enum Suggestion { . Emit, . DontEmit, . } . . fn check<'tcx>( -- line 96 ---------------------------------------- -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/implicit_saturating_add.rs -------------------------------------------------------------------------------- Ir -- line 35 ---------------------------------------- . pub IMPLICIT_SATURATING_ADD, . style, . "Perform saturating addition instead of implicitly checking max bound of data type" . } . . declare_lint_pass!(ImplicitSaturatingAdd => [IMPLICIT_SATURATING_ADD]); . . impl<'tcx> LateLintPass<'tcx> for ImplicitSaturatingAdd { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 90,378 ( 0.00%) if let ExprKind::If(cond, then, None) = expr.kind 1 ( 0.00%) && let Some((c, op_node, l)) = get_const(cx, cond) 5 ( 0.00%) && let BinOpKind::Ne | BinOpKind::Lt = op_node . && let ExprKind::Block(block, None) = then.kind . && let Block { . stmts: . [ . Stmt { . kind: StmtKind::Expr(ex) | StmtKind::Semi(ex), . .. . }, -- line 54 ---------------------------------------- -- line 88 ---------------------------------------- . IMPLICIT_SATURATING_ADD, . expr.span, . "manual saturating add detected", . "use instead", . sugg, . app, . ); . } 355,200 ( 0.00%) } . } . . fn get_int_max(ty: Ty<'_>) -> Option { . use rustc_middle::ty::{Int, Uint}; . match ty.peel_refs().kind() { . Int(IntTy::I8) => i8::MAX.try_into().ok(), . Int(IntTy::I16) => i16::MAX.try_into().ok(), . Int(IntTy::I32) => i32::MAX.try_into().ok(), -- line 104 ---------------------------------------- -- line 111 ---------------------------------------- . Uint(UintTy::U64) => Some(u64::MAX.into()), . Uint(UintTy::U128) => Some(u128::MAX), . Uint(UintTy::Usize) => usize::MAX.try_into().ok(), . _ => None, . } . } . . fn get_const<'tcx>(cx: &LateContext<'tcx>, expr: &Expr<'tcx>) -> Option<(u128, BinOpKind, &'tcx Expr<'tcx>)> { 875 ( 0.00%) if let ExprKind::Binary(op, l, r) = expr.kind { 61 ( 0.00%) let ecx = ConstEvalCtxt::new(cx); 3,416 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::new (61x) 61 ( 0.00%) let ctxt = expr.span.ctxt(); 370 ( 0.00%) if let Some(Constant::Int(c)) = ecx.eval_local(r, ctxt) { 5,937 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::eval_local (61x) . return Some((c, op.node, l)); . } 300 ( 0.00%) if let Some(Constant::Int(c)) = ecx.eval_local(l, ctxt) { 13,208 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::eval_local (60x) . return Some((c, invert_op(op.node)?, r)); . } . } . None . } . . fn invert_op(op: BinOpKind) -> Option { . use rustc_hir::BinOpKind::{Ge, Gt, Le, Lt, Ne}; -- line 133 ---------------------------------------- 551 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/manual_abs_diff.rs -------------------------------------------------------------------------------- Ir -- line 49 ---------------------------------------- . . impl ManualAbsDiff { . pub fn new(conf: &'static Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl<'tcx> LateLintPass<'tcx> for ManualAbsDiff { 355,200 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 88,800 ( 0.00%) if !expr.span.from_expansion() . && let Some(if_expr) = If::hir(expr) . && let Some(r#else) = if_expr.r#else 131 ( 0.00%) && let ExprKind::Binary(op, rhs, lhs) = if_expr.cond.kind 126 ( 0.00%) && let (BinOpKind::Gt | BinOpKind::Ge, mut a, mut b) | (BinOpKind::Lt | BinOpKind::Le, mut b, mut a) = . (op.node, rhs, lhs) . && let Some((ty, b_n_refs)) = self.are_ty_eligible(cx, a, b) . && is_sub_expr(cx, if_expr.then, a, b, ty) . && is_sub_expr(cx, r#else, b, a, ty) . { . span_lint_and_then( . cx, . MANUAL_ABS_DIFF, -- line 70 ---------------------------------------- -- line 86 ---------------------------------------- . Sugg::hir(cx, a, "..").maybe_paren(), . "*".repeat(b_n_refs), . Sugg::hir(cx, b, "..") . ); . diag.span_suggestion(expr.span, "replace with `abs_diff`", sugg, applicability); . }, . ); . } 355,200 ( 0.00%) } . } . . impl ManualAbsDiff { . /// Returns a type if `a` and `b` are both of it, and this lint can be applied to that . /// type (currently, any primitive int, or a `Duration`) . fn are_ty_eligible<'tcx>(&self, cx: &LateContext<'tcx>, a: &Expr<'_>, b: &Expr<'_>) -> Option<(Ty<'tcx>, usize)> { 27 ( 0.00%) let is_int = |ty: Ty<'_>| matches!(ty.kind(), ty::Uint(_) | ty::Int(_)) && self.msrv.meets(cx, msrvs::ABS_DIFF); 81 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/msrvs.rs:::meets (3x) . let is_duration = . |ty: Ty<'_>| ty.is_diag_item(cx, sym::Duration) && self.msrv.meets(cx, msrvs::DURATION_ABS_DIFF); . 12 ( 0.00%) let a_ty = cx.typeck_results().expr_ty(a).peel_refs(); 120 ( 0.00%) => ???:::expr_ty (3x) 18 ( 0.00%) let (b_ty, b_n_refs, _) = peel_and_count_ty_refs(cx.typeck_results().expr_ty(b)); 120 ( 0.00%) => ???:::expr_ty (3x) 27 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::peel_and_count_ty_refs (3x) . 12 ( 0.00%) (a_ty == b_ty && (is_int(a_ty) || is_duration(a_ty))).then_some((a_ty, b_n_refs)) . } . } . . /// Checks if the given expression is a subtraction operation between two expected expressions, . /// i.e. if `expr` is `{expected_a} - {expected_b}`. . /// . /// If `expected_ty` is a signed primitive integer, this function will only return `Some` if the . /// subtraction expr is wrapped in a cast to the equivalent unsigned int. -- line 116 ---------------------------------------- 30 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/casts/ptr_cast_constness.rs -------------------------------------------------------------------------------- Ir -- line 5 ---------------------------------------- . use clippy_utils::{std_or_core, sym}; . use rustc_errors::Applicability; . use rustc_hir::{self as hir, Expr, ExprKind, QPath}; . use rustc_lint::LateContext; . use rustc_middle::ty::{self, Ty, TypeVisitableExt as _}; . . use super::PTR_CAST_CONSTNESS; . 6,034 ( 0.00%) pub(super) fn check<'tcx>( . cx: &LateContext<'_>, . expr: &Expr<'_>, . cast_from_expr: &Expr<'_>, . cast_from: Ty<'tcx>, . cast_to: Ty<'tcx>, . msrv: Msrv, . ) { 1,724 ( 0.00%) if let ty::RawPtr(from_ty, from_mutbl) = cast_from.kind() . && let ty::RawPtr(to_ty, to_mutbl) = cast_to.kind() . && from_mutbl != to_mutbl . && from_ty == to_ty . && !from_ty.has_erased_regions() . { . if let ExprKind::Call(func, []) = cast_from_expr.kind . && let ExprKind::Path(QPath::Resolved(None, path)) = func.kind . && let Some(defid) = path.res.opt_def_id() -- line 29 ---------------------------------------- -- line 69 ---------------------------------------- . expr.span, . "`as` casting between raw pointers while changing only its constness", . format!("try `pointer::cast_{constness}`, a safer alternative"), . format!("{}.cast_{constness}()", sugg.maybe_paren()), . app, . ); . } . } 6,896 ( 0.00%) } . 266,400 ( 0.00%) pub(super) fn check_null_ptr_cast_method(cx: &LateContext<'_>, expr: &Expr<'_>) { 97,734 ( 0.00%) if let ExprKind::MethodCall(method, cast_from_expr, [], _) = expr.kind 2,648 ( 0.00%) && let ExprKind::Call(func, []) = cast_from_expr.kind 8 ( 0.00%) && let ExprKind::Path(QPath::Resolved(None, path)) = func.kind . && let Some(defid) = path.res.opt_def_id() . && let method = match (cx.tcx.get_diagnostic_name(defid), method.ident.name) { . (Some(sym::ptr_null), sym::cast_mut) => "null_mut", . (Some(sym::ptr_null_mut), sym::cast_const) => "null", . _ => return, . } . && let Some(prefix) = std_or_core(cx) . && let mut app = Applicability::MachineApplicable -- line 90 ---------------------------------------- -- line 97 ---------------------------------------- . PTR_CAST_CONSTNESS, . expr.span, . "changing constness of a null pointer", . format!("use `{method}()` directly instead"), . format!("{prefix}::ptr::{method}::<{after_lt}"), . app, . ); . } 310,800 ( 0.00%) } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/inline_trait_bounds.rs -------------------------------------------------------------------------------- Ir -- line 43 ---------------------------------------- . #[derive(Default)] . pub struct InlineTraitBounds { . /// The top-level item onto which `#[automatically_derived]` has been encountered . automatically_derived_at: Option, . } . . impl EarlyLintPass for InlineTraitBounds { . fn check_item(&mut self, _: &EarlyContext<'_>, item: &rustc_ast::Item) { 1,299 ( 0.00%) if self.automatically_derived_at.is_none() . && item . .attrs() . .iter() . .any(|attr| attr.has_name(sym::automatically_derived)) . { 52 ( 0.00%) self.automatically_derived_at = Some(item.id); . } . } . . fn check_item_post(&mut self, _: &EarlyContext<'_>, item: &rustc_ast::Item) { . self.automatically_derived_at.take_if(|id| *id == item.id); . } . 19,810 ( 0.00%) fn check_fn(&mut self, cx: &EarlyContext<'_>, kind: FnKind<'_>, _: Span, _: NodeId) { 5,660 ( 0.00%) let FnKind::Fn(ctxt, _vis, f) = kind else { . return; . }; . . // Skip foreign functions (extern "C" etc.) 11,264 ( 0.00%) if !matches!(ctxt, FnCtxt::Free | FnCtxt::Assoc(..)) { . return; . } . . // Skip automatically derived functions . if self.automatically_derived_at.is_some() { . return; . } . 11,188 ( 0.00%) if f.sig.span.in_external_macro(cx.sess().source_map()) { . return; . } . . lint_fn(cx, f); 22,640 ( 0.00%) } . } . . fn lint_fn(cx: &EarlyContext<'_>, f: &Fn) { . let generics = &f.generics; . let offenders: Vec<&GenericParam> = generics . .params . .iter() . .filter(|param| { 2,269 ( 0.00%) !param.bounds.is_empty() && matches!(param.kind, GenericParamKind::Lifetime | GenericParamKind::Type { .. }) . }) . .collect(); 2,797 ( 0.00%) if offenders.is_empty() { . return; . } . . let predicates = offenders . .iter() 12 ( 0.00%) .map(|param| build_predicate_text(cx, param)) 6,790 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/inline_trait_bounds.rs:clippy_lints::inline_trait_bounds::build_predicate_text (4x) . .collect::>(); . . let mut edits = Vec::new(); . 4 ( 0.00%) for param in offenders { 12 ( 0.00%) if let Some(colon) = param.colon_span { 4 ( 0.00%) let remove_span = colon.to(param.bounds.last().unwrap().span()); 372 ( 0.00%) => ???:::to (4x) . . edits.push((remove_span, String::new())); . } . } . . let predicate_text = predicates.join(", "); . . let where_clause = &generics.where_clause; 12 ( 0.00%) if where_clause.has_where_token { . let (insert_at, suffix) = if let Some(last_pred) = where_clause.predicates.last() { . // existing `where` with predicates: append after last predicate 12 ( 0.00%) (last_pred.span.shrink_to_hi(), format!(", {predicate_text}")) . } else { . // `where` token present but empty predicate list . (where_clause.span.shrink_to_hi(), format!(" {predicate_text}")) . }; . 6 ( 0.00%) edits.push((insert_at, suffix)); . } else { 6 ( 0.00%) let insert_at = match &f.sig.decl.output { . FnRetTy::Default(span) => span.shrink_to_lo(), 12 ( 0.00%) FnRetTy::Ty(ty) => ty.span.shrink_to_hi(), . }; 14 ( 0.00%) edits.push((insert_at, format!(" where {predicate_text}"))); . } . 32 ( 0.00%) span_lint_and_then( 3,250 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/diagnostics.rs:clippy_utils::diagnostics::span_lint_and_then:: (4x) . cx, . INLINE_TRAIT_BOUNDS, 4 ( 0.00%) generics.span, . "inline trait bounds used", 16 ( 0.00%) |diag| { . diag.multipart_suggestion( . "move bounds to a `where` clause", . edits, . Applicability::MachineApplicable, . ); . }, . ); 8 ( 0.00%) } 152 ( 0.00%) => ???:__rustc::__rdl_dealloc (4x) . 20 ( 0.00%) fn build_predicate_text(cx: &EarlyContext<'_>, param: &GenericParam) -> String { . // bounds is guaranteed non-empty by the filter in `lint_fn` . let first = param.bounds.first().unwrap(); . let last = param.bounds.last().unwrap(); . 8 ( 0.00%) let bounds_span = first.span().to(last.span()); 372 ( 0.00%) => ???:::to (4x) . 4 ( 0.00%) let lhs = snippet(cx, param.ident.span, ".."); . . let rhs = snippet(cx, bounds_span, ".."); . 24 ( 0.00%) format!("{lhs}: {rhs}") 28 ( 0.00%) } 2,819 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/needless_late_init.rs -------------------------------------------------------------------------------- Ir -- line 68 ---------------------------------------- . . pub struct NeedlessLateInit<'tcx> { . check_grouped_late_init: bool, . grouped_late_inits: Vec<(HirId, HirIdMap>)>, . } . . impl<'tcx> NeedlessLateInit<'tcx> { . pub fn new(conf: &'static Conf) -> Self { 4 ( 0.00%) Self { . check_grouped_late_init: conf.check_grouped_late_init, . grouped_late_inits: Vec::default(), . } . } . . fn check_if_or_match( . &mut self, . cx: &LateContext<'tcx>, -- line 84 ---------------------------------------- -- line 357 ---------------------------------------- . #[derive(Debug)] . struct GroupedLateInit<'tcx> { . usage: Usage<'tcx>, . assigns: Vec>, . decls: HirIdMap<&'tcx LetStmt<'tcx>>, . } . . impl<'tcx> LateLintPass<'tcx> for NeedlessLateInit<'tcx> { 6,264 ( 0.00%) fn check_local(&mut self, cx: &LateContext<'tcx>, local: &'tcx LetStmt<'tcx>) { 1,566 ( 0.00%) let mut parents = cx.tcx.hir_parent_iter(local.hir_id); 799 ( 0.00%) if let LetStmt { . init: None, . pat: . Pat { . kind: PatKind::Binding(BindingMode::NONE, binding_id, _, None), . .. . }, . source: LocalSource::Normal, . .. 791 ( 0.00%) } = local . && let Some((_, Node::Stmt(local_stmt))) = parents.next() . && let Some((_, Node::Block(block))) = parents.next() . && let Some(usage) = first_usage(cx, *binding_id, local_stmt.hir_id, block) . { . if self.check_grouped_late_init . && let Some((hir_id, late_inits)) = self.grouped_late_inits.last_mut() . && *hir_id == block.hir_id . && let Some(late_init) = late_inits.get_mut(&usage.expr.hir_id) -- line 384 ---------------------------------------- -- line 437 ---------------------------------------- . self.check_if_or_match(cx, local, block, *binding_id, usage, exprs); . }, . ExprKind::Match(_, arms, MatchSource::Normal) => { . self.check_if_or_match(cx, local, block, *binding_id, usage, arms.iter().map(|arm| arm.body)); . }, . _ => {}, . } . } 6,264 ( 0.00%) } . 31,232 ( 0.00%) fn check_block_post(&mut self, cx: &LateContext<'tcx>, block: &'tcx Block<'tcx>) { 7,808 ( 0.00%) if self.check_grouped_late_init . && let Some((_, late_inits)) = self.grouped_late_inits.pop_if(|(hir_id, _)| *hir_id == block.hir_id) . { . 'outer: for (_, late_init) in late_inits { . if late_init.decls.len() < late_init.assigns[0].0.len() { . continue; . } . . let mut suggestions = vec![]; -- line 456 ---------------------------------------- -- line 513 ---------------------------------------- . format!("move the declarations here and remove the assignments from the {descriptor}"), . suggestions, . applicability, . ); . }, . ); . } . } 31,232 ( 0.00%) } . } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/nonstandard_macro_braces.rs -------------------------------------------------------------------------------- Ir -- line 39 ---------------------------------------- . . pub struct MacroBraces { . macro_braces: (FxHashMap, usize), . /// Spans for statement macro calls, they have special behaviour with semicolons . mac_stmt_spans: Vec, . } . . impl MacroBraces { 152 ( 0.00%) pub fn new(conf: &'static Conf) -> Self { 76 ( 0.00%) Self { . macro_braces: macro_braces(&conf.standard_macro_braces), . mac_stmt_spans: Vec::new(), . } 171 ( 0.00%) } . } . . impl EarlyLintPass for MacroBraces { 2,240 ( 0.00%) fn check_mac(&mut self, cx: &EarlyContext<'_>, mac: &ast::MacCall) { . if let Some(last_segment) = mac.path.segments.last() 320 ( 0.00%) && let name = last_segment.ident.as_str() 12,160 ( 0.00%) => ???:::as_str (320x) 66 ( 0.00%) && let Some(&braces) = self.macro_braces.0.get(name) 264 ( 0.00%) && let Some(snip) = snippet_opt(cx.sess(), mac.span().with_lo(last_segment.span().lo())) 3,366 ( 0.00%) => ???:::span (22x) 110 ( 0.00%) => ???:::span (22x) 44 ( 0.00%) && let Some(macro_args_str) = &snip.strip_prefix(name).and_then(|snip| snip.strip_prefix('!')) 44 ( 0.00%) && let Some(old_open_brace @ ('{' | '(' | '[')) = macro_args_str.trim_start().chars().next() 44 ( 0.00%) && old_open_brace != braces.0 . { . // Semicolons added for statements that previously ended in braces, see issue #9913 . let add_semi = self.mac_stmt_spans.iter().any(|s| *s == mac.span()); . emit_help( . cx, . &snippet_opt(cx.sess(), mac.span()).unwrap(), . braces, . mac.span(), . add_semi, . ); . } 2,560 ( 0.00%) } . . // See issue #9913 . fn check_stmt(&mut self, _: &EarlyContext<'_>, stmt: &ast::Stmt) { 13,240 ( 0.00%) if let ast::StmtKind::MacCall(mac_callstmt) = &stmt.kind 128 ( 0.00%) && let ast::MacCallStmt { . style: ast::MacStmtStyle::Braces, . .. 64 ( 0.00%) } = **mac_callstmt . { 6 ( 0.00%) self.mac_stmt_spans.push(mac_callstmt.mac.span()); 306 ( 0.00%) => ???:::span (2x) . } 1,342 ( 0.00%) } . . fn check_mac_def(&mut self, cx: &EarlyContext<'_>, mac: &ast::MacroDef) { 18,508 ( 0.00%) fn check_ts(cx: &EarlyContext<'_>, ts: &TokenStream, macro_braces: &FxHashMap) { . for (i, current_token) in ts.iter().enumerate() { 38,912 ( 0.00%) if let TokenTree::Delimited(_, _, _, token_stream) = current_token { . // Peel extra braces and parenthesis in macros! 7,656 ( 0.00%) check_ts(cx, token_stream, macro_braces); 457,324 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/nonstandard_macro_braces.rs:::check_mac_def::check_ts'2 (464x) . } else . // |-TokenKind::Bang . // v . // println! { "Hi" } . // ^^^^^^^ . // | ^^^^^^^^ Brackets always come 1 token after TokenKind::Bang . // ident_token 31,256 ( 0.00%) if let TokenTree::Token( . Token { . kind: TokenKind::Ident(ident_token, _), . span: ident_span, . }, . _, . ) = current_token . && let Some(bang_token) = ts.get(i + 1) 6,001 ( 0.00%) && let Some(macro_args_token) = ts.get(i + 2) 20,760 ( 0.00%) && let TokenTree::Token( . Token { . kind: TokenKind::Bang, .. . }, . _, . ) = *bang_token 444 ( 0.00%) && let TokenTree::Delimited(delim_span, _, delim, _) = macro_args_token . // Span from ident_token to brackets (so, the full macro call) 1,110 ( 0.00%) && let snip_span = ident_span.with_hi(delim_span.close.hi()) 666 ( 0.00%) && let Some(snip) = snippet_opt(cx, snip_span) 40 ( 0.00%) && let Some(&braces) = macro_braces.get(ident_token.as_str()) 240 ( 0.00%) && let Some(old_open_brace) = match delim { . Delimiter::Brace => Some('{'), . Delimiter::Parenthesis => Some('('), . Delimiter::Bracket => Some('['), . Delimiter::Invisible(_) => None, . } 40 ( 0.00%) && old_open_brace != braces.0 . { . emit_help(cx, &snip, braces, snip_span, false); . } . } 21,152 ( 0.00%) } . 184 ( 0.00%) if mac.macro_rules { 460 ( 0.00%) check_ts(cx, &mac.body.tokens, &self.macro_braces.0); 231,979 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/nonstandard_macro_braces.rs:::check_mac_def::check_ts (47x) . } . } . } . . fn emit_help(cx: &EarlyContext<'_>, snip: &str, (open, close): (char, char), span: Span, add_semi: bool) { . let semi = if add_semi { ";" } else { "" }; . if let Some((macro_name, macro_args_str)) = snip.split_once('!') { . let mut macro_args = macro_args_str.trim().to_string(); -- line 144 ---------------------------------------- -- line 154 ---------------------------------------- . format!("{macro_name}!{open}{macro_args}{close}{semi}"), . Applicability::MachineApplicable, . ); . } . } . . fn macro_braces(conf: &[MacroMatcher]) -> (FxHashMap, usize) { . // TODO: Use `Symbol`s here, instead of strings. 38 ( 0.00%) let mut braces = FxHashMap::from_iter( 35,409 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/collections/hash/map.rs: as core::iter::traits::collect::FromIterator<(alloc::string::String, (char, char))>>::from_iter::<[(alloc::string::String, (char, char)); 13]> (19x) 1,083 ( 0.00%) [ . ("assert_matches", ('(', ')')), . ("cfg_select", ('{', '}')), . ("debug_assert_matches", ('(', ')')), . ("format", ('(', ')')), . ("format_args", ('(', ')')), . ("eprint", ('(', ')')), . ("eprintln", ('(', ')')), . ("print", ('(', ')')), -- line 171 ---------------------------------------- -- line 188 ---------------------------------------- . )] . #[expect(clippy::redundant_closure_for_method_calls, reason = "Clarity")] . let max_len = braces . .keys() . .map(|macro_name| macro_name.len()) . .max() . .expect("`braces` is non-empty"); . 76 ( 0.00%) (braces, max_len) . } 4,194 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/collections/btree/search.rs -------------------------------------------------------------------------------- Ir -- line 218 ---------------------------------------- . where . Q: Ord, . K: Borrow, . { . let node = self.reborrow(); . let keys = node.keys(); . debug_assert!(start_index <= keys.len()); . for (offset, k) in unsafe { keys.get_unchecked(start_index..) }.iter().enumerate() { 132,600 ( 0.00%) match key.cmp(k.borrow()) { 940,075 ( 0.01%) => ???:::cmp (23,456x) . Ordering::Greater => {} . Ordering::Equal => return IndexResult::KV(start_index + offset), . Ordering::Less => return IndexResult::Edge(start_index + offset), . } . } . IndexResult::Edge(keys.len()) . } . -- line 234 ---------------------------------------- 3,226 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/doc/suspicious_doc_comments.rs -------------------------------------------------------------------------------- Ir -- line 4 ---------------------------------------- . use rustc_errors::Applicability; . use rustc_hir::Attribute; . use rustc_hir::attrs::AttributeKind; . use rustc_lint::LateContext; . use rustc_span::Span; . . use super::SUSPICIOUS_DOC_COMMENTS; . 438,942 ( 0.01%) pub fn check(cx: &LateContext<'_>, attrs: &[Attribute]) -> bool { . let replacements: Vec<_> = collect_doc_replacements(attrs); . 125,412 ( 0.00%) if let Some((&(lo_span, _), &(hi_span, _))) = replacements.first().zip(replacements.last()) { . span_lint_and_then( . cx, . SUSPICIOUS_DOC_COMMENTS, . lo_span.to(hi_span), . "this is an outer doc comment and does not apply to the parent module or crate", . |diag| { . diag.multipart_suggestion( . "use an inner doc comment to document the parent module or crate", -- line 23 ---------------------------------------- -- line 26 ---------------------------------------- . ); . }, . ); . . true . } else { . false . } 501,648 ( 0.01%) } . . fn collect_doc_replacements(attrs: &[Attribute]) -> Vec<(Span, String)> { . attrs . .iter() . .filter_map(|attr| { 24,088 ( 0.00%) if let Attribute::Parsed(AttributeKind::DocComment { . style: AttrStyle::Outer, . kind: DocFragmentKind::Sugared(comment_kind), . comment, . .. . }) = attr . && let Some(com) = comment.as_str().strip_prefix('!') . { . let sugg = match comment_kind { . CommentKind::Block => format!("/*!{com}*/"), . CommentKind::Line => format!("//!{com}"), . }; . Some((attr.span(), sugg)) . } else { 5,397 ( 0.00%) None . } . }) . .collect() . } 3,492 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/manual_main_separator_str.rs -------------------------------------------------------------------------------- Ir -- line 41 ---------------------------------------- . . impl ManualMainSeparatorStr { . pub fn new(conf: &'static Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl LateLintPass<'_> for ManualMainSeparatorStr { 444,000 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'_>, expr: &Expr<'_>) { 88,800 ( 0.00%) let (target, _) = peel_hir_expr_refs(expr); 235,802 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::peel_hir_expr_refs (44,400x) 97,782 ( 0.00%) if let ExprKind::MethodCall(path, receiver, &[], _) = target.kind 1,331 ( 0.00%) && path.ident.name == sym::to_string 21 ( 0.00%) && let ExprKind::Path(QPath::Resolved(None, path)) = receiver.kind 6 ( 0.00%) && let Res::Def(DefKind::Const { .. }, receiver_def_id) = path.res . && cx.ty_based_def(target).opt_parent(cx).is_diag_item(cx, sym::ToString) . && cx.tcx.is_diagnostic_item(sym::path_main_separator, receiver_def_id) . && let ty::Ref(_, ty, Mutability::Not) = cx.typeck_results().expr_ty_adjusted(expr).kind() . && ty.is_str() . && self.msrv.meets(cx, msrvs::PATH_MAIN_SEPARATOR_STR) . { . span_lint_and_sugg( . cx, -- line 62 ---------------------------------------- -- line 63 ---------------------------------------- . MANUAL_MAIN_SEPARATOR_STR, . expr.span, . "taking a reference on `std::path::MAIN_SEPARATOR` conversion to `String`", . "replace with", . "std::path::MAIN_SEPARATOR_STR".to_owned(), . Applicability::MachineApplicable, . ); . } 355,200 ( 0.00%) } . } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/manual_bits.rs -------------------------------------------------------------------------------- Ir -- line 42 ---------------------------------------- . . impl ManualBits { . pub fn new(conf: &'static Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl<'tcx> LateLintPass<'tcx> for ManualBits { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 88,800 ( 0.00%) if let ExprKind::Binary(bin_op, left_expr, right_expr) = expr.kind 832 ( 0.00%) && let BinOpKind::Mul = &bin_op.node 2 ( 0.00%) && !expr.span.from_expansion() 1 ( 0.00%) && let ctxt = expr.span.ctxt() 2 ( 0.00%) && left_expr.span.ctxt() == ctxt 2 ( 0.00%) && right_expr.span.ctxt() == ctxt . && let Some((real_ty_span, resolved_ty, other_expr)) = get_one_size_of_ty(cx, left_expr, right_expr) . && matches!(resolved_ty.kind(), ty::Int(_) | ty::Uint(_)) . && let ExprKind::Lit(lit) = &other_expr.kind . && let LitKind::Int(Pu128(8), _) = lit.node . && self.msrv.meets(cx, msrvs::INTEGER_BITS) . { . let mut app = Applicability::MachineApplicable; . let ty_snip = snippet_with_context(cx, real_ty_span, ctxt, "..", &mut app).0; -- line 64 ---------------------------------------- -- line 69 ---------------------------------------- . MANUAL_BITS, . expr.span, . "usage of `size_of::()` to obtain the size of `T` in bits", . "consider using", . sugg, . app, . ); . } 355,200 ( 0.00%) } . } . . fn get_one_size_of_ty<'tcx>( . cx: &LateContext<'tcx>, . expr1: &'tcx Expr<'_>, . expr2: &'tcx Expr<'_>, . ) -> Option<(Span, Ty<'tcx>, &'tcx Expr<'tcx>)> { 14 ( 0.00%) match (get_size_of_ty(cx, expr1), get_size_of_ty(cx, expr2)) { 28 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/manual_bits.rs:clippy_lints::manual_bits::get_size_of_ty (2x) . (Some((real_ty_span, resolved_ty)), None) => Some((real_ty_span, resolved_ty, expr2)), . (None, Some((real_ty_span, resolved_ty))) => Some((real_ty_span, resolved_ty, expr1)), . _ => None, . } . } . 10 ( 0.00%) fn get_size_of_ty<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) -> Option<(Span, Ty<'tcx>)> { 4 ( 0.00%) if let ExprKind::Call(count_func, []) = expr.kind . && let ExprKind::Path(ref count_func_qpath) = count_func.kind . && let QPath::Resolved(_, count_func_path) = count_func_qpath . && let Some(segment_zero) = count_func_path.segments.first() . && let Some(args) = segment_zero.args . && let Some(real_ty_span) = args.args.first().map(GenericArg::span) . && let Some(def_id) = cx.qpath_res(count_func_qpath, count_func.hir_id).opt_def_id() . && cx.tcx.is_diagnostic_item(sym::mem_size_of, def_id) . { . cx.typeck_results() . .node_args(count_func.hir_id) . .types() . .next() . .map(|resolved_ty| (real_ty_span, resolved_ty)) . } else { 2 ( 0.00%) None . } 12 ( 0.00%) } . . fn create_sugg(cx: &LateContext<'_>, expr: &Expr<'_>, base_sugg: String) -> String { . if let Some(parent_expr) = get_parent_expr(cx, expr) { . if is_ty_conversion(parent_expr) { . return base_sugg; . } . . // These expressions have precedence over casts, the suggestion therefore -- line 118 ---------------------------------------- 22 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/manual_checked_ops.rs -------------------------------------------------------------------------------- Ir -- line 41 ---------------------------------------- . . #[derive(Copy, Clone)] . enum NonZeroBranch { . Then, . Else, . } . . impl LateLintPass<'_> for ManualCheckedOps { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'_>, expr: &Expr<'_>) { 90,648 ( 0.00%) if let ExprKind::If(cond, then, r#else) = expr.kind 1,232 ( 0.00%) && !expr.span.from_expansion() . && let Some((divisor, branch)) = divisor_from_condition(cond) . // This lint is intended for unsigned integers only. . // . // For signed integers, the most direct refactor to `checked_div` is often not . // semantically equivalent to the original guard. For example, `rhs > 0` deliberately . // excludes negative divisors, while `checked_div` would return `Some` for `rhs = -2`. . // Also, `checked_div` can return `None` for `MIN / -1`, which requires additional . // handling beyond the zero check. 4 ( 0.00%) && is_unsigned_integer(cx, divisor) . && let Some(block) = branch_block(then, r#else, branch) . { . let mut eq = SpanlessEq::new(cx).deny_side_effects().paths_by_resolution(); 28 ( 0.00%) if !eq.eq_expr(SyntaxContext::root(), divisor, divisor) { 2,963 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_expr (4x) . return; . } . . let mut division_spans = Vec::new(); 3 ( 0.00%) let mut first_use = None; . 33 ( 0.00%) let found_early_use = for_each_expr_without_closures(block, |e| { 10,890 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/visitors.rs:clippy_utils::visitors::for_each_expr_without_closures::<(), clippy_utils::visitors::Descend, &rustc_hir::hir::Block, ::check_expr::{closure#0}> (3x) 144 ( 0.00%) if let ExprKind::Binary(binop, lhs, rhs) = e.kind 2 ( 0.00%) && binop.node == BinOpKind::Div . && eq.eq_expr(SyntaxContext::root(), rhs, divisor) . && is_unsigned_integer(cx, lhs) . { . match first_use { . None => first_use = Some(UseKind::Division), . Some(UseKind::Other) => return ControlFlow::Break(()), . Some(UseKind::Division) => {}, . } -- line 81 ---------------------------------------- -- line 92 ---------------------------------------- . None => first_use = Some(UseKind::Division), . Some(UseKind::Other) => return ControlFlow::Break(()), . Some(UseKind::Division) => {}, . } . . division_spans.push(e.span); . . ControlFlow::<(), _>::Continue(Descend::No) 175 ( 0.00%) } else if eq.eq_expr(SyntaxContext::root(), e, divisor) { 634 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_expr (3x) 4 ( 0.00%) if first_use.is_none() { 4 ( 0.00%) first_use = Some(UseKind::Other); . return ControlFlow::Break(()); . } . ControlFlow::<(), _>::Continue(Descend::Yes) . } else { . ControlFlow::<(), _>::Continue(Descend::Yes) . } . }); . 6 ( 0.00%) if found_early_use.is_some() || first_use != Some(UseKind::Division) || division_spans.is_empty() { . return; . } . . span_lint_and_then(cx, MANUAL_CHECKED_OPS, cond.span, "manual checked division", |diag| { . diag.span_label(cond.span, "check performed here"); . if let Some((first, rest)) = division_spans.split_first() { . diag.span_label(*first, "division performed here"); . if !rest.is_empty() { . diag.span_labels(rest.to_vec(), "... and here"); . } . } . diag.help("consider using `checked_div`"); . }); 4 ( 0.00%) } 355,200 ( 0.00%) } . } . . #[derive(Copy, Clone, Eq, PartialEq)] . enum UseKind { . Division, . Other, . } . . fn divisor_from_condition<'tcx>(cond: &'tcx Expr<'tcx>) -> Option<(&'tcx Expr<'tcx>, NonZeroBranch)> { 130 ( 0.00%) let ExprKind::Binary(binop, lhs, rhs) = cond.kind else { . return None; . }; . 132 ( 0.00%) match binop.node { . BinOpKind::Ne | BinOpKind::Lt if is_zero(lhs) => Some((rhs, NonZeroBranch::Then)), 1 ( 0.00%) BinOpKind::Ne | BinOpKind::Gt if is_zero(rhs) => Some((lhs, NonZeroBranch::Then)), . BinOpKind::Eq if is_zero(lhs) => Some((rhs, NonZeroBranch::Else)), 6 ( 0.00%) BinOpKind::Eq if is_zero(rhs) => Some((lhs, NonZeroBranch::Else)), . _ => None, . } . } . . fn branch_block<'tcx>( . then: &'tcx Expr<'tcx>, . r#else: Option<&'tcx Expr<'tcx>>, . branch: NonZeroBranch, . ) -> Option<&'tcx Block<'tcx>> { 8 ( 0.00%) match branch { 2 ( 0.00%) NonZeroBranch::Then => match then.kind { . ExprKind::Block(block, _) => Some(block), . _ => None, . }, 9 ( 0.00%) NonZeroBranch::Else => match r#else?.kind { . ExprKind::Block(block, _) => Some(block), . _ => None, . }, . } . } . . fn is_zero(expr: &Expr<'_>) -> bool { . is_integer_literal(expr, 0) . } . . fn is_unsigned_integer(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool { 20 ( 0.00%) matches!(cx.typeck_results().expr_ty(expr).peel_refs().kind(), ty::Uint(_)) 160 ( 0.00%) => ???:::expr_ty (4x) . } 89 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/functions/misnamed_getters.rs -------------------------------------------------------------------------------- Ir -- line 6 ---------------------------------------- . use rustc_lint::LateContext; . use rustc_middle::ty; . use rustc_span::Span; . . use std::iter; . . use super::MISNAMED_GETTERS; . 19,180 ( 0.00%) pub fn check_fn(cx: &LateContext<'_>, kind: FnKind<'_>, decl: &FnDecl<'_>, body: &Body<'_>, span: Span) { 5,480 ( 0.00%) let FnKind::Method(ref ident, sig) = kind else { . return; . }; . . // Takes only &(mut) self 5,408 ( 0.00%) if decl.inputs.len() != 1 { . return; . } . . let name = ident.name.as_str(); . 2,090 ( 0.00%) let name = match decl.implicit_self() { 2,944 ( 0.00%) => ???:::implicit_self (368x) . ImplicitSelfKind::RefMut => { . let Some(name) = name.strip_suffix("_mut") else { . return; . }; . name . }, . ImplicitSelfKind::Imm | ImplicitSelfKind::Mut | ImplicitSelfKind::RefImm => name, . ImplicitSelfKind::None => return, -- line 34 ---------------------------------------- -- line 38 ---------------------------------------- . name.strip_suffix("_unchecked").unwrap_or(name) . } else { . name . }; . . // Body must be `&(mut) .name`, potentially in an `unsafe` block . // self_data is not necessarily self, to also lint sub-getters, etc… . 648 ( 0.00%) let block_expr = if let ExprKind::Block(block, _) = body.value.kind 162 ( 0.00%) && block.stmts.is_empty() 459 ( 0.00%) && let Some(block_expr) = block.expr . { 459 ( 0.00%) if let ExprKind::Block(unsafe_block, _) = block_expr.kind . && unsafe_block.stmts.is_empty() . && matches!( . unsafe_block.rules, . BlockCheckMode::UnsafeBlock(UnsafeSource::UserProvided) . ) . && let Some(unsafe_block_expr) = unsafe_block.expr . { . unsafe_block_expr . } else { . block_expr . } . } else { . return; . }; 459 ( 0.00%) let expr_span = block_expr.span; . . // Accept &, &mut and 307 ( 0.00%) let expr = if let ExprKind::AddrOf(_, _, tmp) = block_expr.kind { . tmp . } else { . block_expr . }; 312 ( 0.00%) let (self_data, used_ident) = if let ExprKind::Field(self_data, ident) = expr.kind . && ident.name.as_str() != name . { . (self_data, ident) . } else { . return; . }; . . let mut used_field = None; . let mut correct_field = None; . let typeck_results = cx.typeck_results(); 4 ( 0.00%) for adjusted_type in iter::once(typeck_results.expr_ty(self_data)) 40 ( 0.00%) => ???:::expr_ty (1x) 4 ( 0.00%) .chain(typeck_results.expr_adjustments(self_data).iter().map(|adj| adj.target)) 43 ( 0.00%) => ???:::expr_adjustments (1x) . { 6 ( 0.00%) let ty::Adt(def, _) = adjusted_type.kind() else { . continue; . }; . 1 ( 0.00%) for f in def.all_fields() { 1 ( 0.00%) if f.name.as_str() == name { . correct_field = Some(f); . } 1 ( 0.00%) if f.name == used_ident.name { . used_field = Some(f); . } . } . } . 5 ( 0.00%) let Some(used_field) = used_field else { . // Can happen if the field access is a tuple. We don't lint those because the getter name could not . // start with a number. . return; . }; . . let Some(correct_field) = correct_field else { . // There is no field corresponding to the getter name. . // FIXME: This can be a false positive if the correct field is reachable through deeper -- line 109 ---------------------------------------- -- line 120 ---------------------------------------- . MISNAMED_GETTERS, . span, . "getter function appears to return the wrong field", . |diag| { . diag.span_suggestion(expr_span, "consider using", sugg, Applicability::MaybeIncorrect); . }, . ); . } 21,920 ( 0.00%) } 2,850 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/traits.rs -------------------------------------------------------------------------------- Ir -- line 121 ---------------------------------------- . /// Check that a range is in bounds for slicing a string. . /// If this returns true, it is safe to call `slice.get_unchecked(range)` or . /// `slice.get_unchecked_mut(range)`. . #[inline(always)] . const fn check_range(slice: &str, range: crate::range::Range) -> bool { . let crate::range::Range { start, end } = range; . let bytes = slice.as_bytes(); . 81,418 ( 0.00%) if start > end || end > slice.len() { . return false; . } . 38,203 ( 0.00%) if start == slice.len() { . // If `start == slice.len()`, then `end == slice.len()` must also be true. . return true; . } . . // SAFETY: . // `start > end || end > slice.len()` is false, so `start <= end <= slice.len()` is true. . // `start == slice.len()` is false, so `start < slice.len()` is also true. . // . // No need to check for `end == 0`, because if `end == 0` is true then `start == slice.len()` . // would also be true, which is already handled above. . unsafe { 55,819 ( 0.00%) (start == 0 || bytes.as_ptr().add(start).read().is_utf8_char_boundary()) 35,810 ( 0.00%) && (end == slice.len() || bytes.as_ptr().add(end).read().is_utf8_char_boundary()) . } . } . . /// Implements substring slicing with syntax `&self[begin .. end]` or `&mut . /// self[begin .. end]`. . /// . /// Returns a slice of the given string from the byte range . /// [`begin`, `end`). -- line 154 ---------------------------------------- -- line 213 ---------------------------------------- . end: usize = self.end, . len: usize = slice.len() . ) => end >= start && end <= len, . ); . . // SAFETY: the caller guarantees that `self` is in bounds of `slice` . // which satisfies all the conditions for `add`. . unsafe { 92,441 ( 0.00%) let new_len = unchecked_sub(self.end, self.start); . slice.as_ptr().add(self.start).cast_slice(new_len) as *const str . } . } . #[inline] . #[track_caller] . unsafe fn get_unchecked_mut(self, slice: *mut str) -> *mut Self::Output { . let slice = slice as *mut [u8]; . -- line 229 ---------------------------------------- -- line 254 ---------------------------------------- . } . . #[stable(feature = "new_range_api", since = "1.96.0")] . #[rustc_const_unstable(feature = "const_index", issue = "143775")] . const unsafe impl SliceIndex for range::Range { . type Output = str; . #[inline] . fn get(self, slice: &str) -> Option<&Self::Output> { 36,471 ( 0.00%) if check_range(slice, self) { . // SAFETY: just checked that `self` is in bounds, . // and we are passing in a safe reference, so the return value will also be one. . // We also checked char boundaries, so this is valid UTF-8. . Some(unsafe { &*self.get_unchecked(slice) }) . } else { . None . } . } -- line 270 ---------------------------------------- -- line 297 ---------------------------------------- . end: usize = self.end, . len: usize = slice.len() . ) => end >= start && end <= len, . ); . . // SAFETY: the caller guarantees that `self` is in bounds of `slice` . // which satisfies all the conditions for `add`. . unsafe { 2,707 ( 0.00%) let new_len = unchecked_sub(self.end, self.start); . slice.as_ptr().add(self.start).cast_slice(new_len) as *const str . } . } . #[inline] . #[track_caller] . unsafe fn get_unchecked_mut(self, slice: *mut str) -> *mut Self::Output { . let slice = slice as *mut [u8]; . -- line 313 ---------------------------------------- -- line 416 ---------------------------------------- . /// Panics if `end` does not point to the starting byte offset of a . /// character (as defined by `is_char_boundary`), or if `end > len`. . #[stable(feature = "str_checked_slicing", since = "1.20.0")] . #[rustc_const_unstable(feature = "const_index", issue = "143775")] . const unsafe impl SliceIndex for ops::RangeTo { . type Output = str; . #[inline] . fn get(self, slice: &str) -> Option<&Self::Output> { 734 ( 0.00%) if slice.is_char_boundary(self.end) { . // SAFETY: just checked that `end` is on a char boundary, . // and we are passing in a safe reference, so the return value will also be one. . Some(unsafe { &*self.get_unchecked(slice) }) . } else { . None . } . } . #[inline] -- line 432 ---------------------------------------- -- line 485 ---------------------------------------- . /// Panics if `begin` does not point to the starting byte offset of . /// a character (as defined by `is_char_boundary`), or if `begin > len`. . #[stable(feature = "str_checked_slicing", since = "1.20.0")] . #[rustc_const_unstable(feature = "const_index", issue = "143775")] . const unsafe impl SliceIndex for ops::RangeFrom { . type Output = str; . #[inline] . fn get(self, slice: &str) -> Option<&Self::Output> { 8 ( 0.00%) if slice.is_char_boundary(self.start) { . // SAFETY: just checked that `start` is on a char boundary, . // and we are passing in a safe reference, so the return value will also be one. . Some(unsafe { &*self.get_unchecked(slice) }) . } else { . None . } . } . #[inline] -- line 501 ---------------------------------------- -- line 630 ---------------------------------------- . unsafe { self.into_slice_range().get_unchecked(slice) } . } . #[inline] . unsafe fn get_unchecked_mut(self, slice: *mut str) -> *mut Self::Output { . // SAFETY: the caller must uphold the safety contract for `get_unchecked_mut`. . unsafe { self.into_slice_range().get_unchecked_mut(slice) } . } . #[inline] 144 ( 0.00%) fn index(self, slice: &str) -> &Self::Output { 288 ( 0.00%) let Self { mut start, mut end, exhausted } = self; . let len = slice.len(); 288 ( 0.00%) if end < len { 144 ( 0.00%) end = end + 1; 288 ( 0.00%) start = if exhausted { end } else { start }; 576 ( 0.00%) if start <= end && slice.is_char_boundary(start) && slice.is_char_boundary(end) { . // SAFETY: just checked that `start` and `end` are on a char boundary, . // and we are passing in a safe reference, so the return value will also be one. . // We also checked char boundaries, so this is valid UTF-8. . unsafe { return &*(start..end).get_unchecked(slice) } . } . } . . super::slice_error_fail(slice, start, end) 432 ( 0.00%) } . #[inline] . fn index_mut(self, slice: &mut str) -> &mut Self::Output { . let Self { mut start, mut end, exhausted } = self; . let len = slice.len(); . if end < len { . end = end + 1; . start = if exhausted { end } else { start }; . if start <= end && slice.is_char_boundary(start) && slice.is_char_boundary(end) { -- line 661 ---------------------------------------- -- line 735 ---------------------------------------- . } . #[inline] . unsafe fn get_unchecked_mut(self, slice: *mut str) -> *mut Self::Output { . // SAFETY: the caller must uphold the safety contract for `get_unchecked_mut`. . unsafe { (0..=self.end).get_unchecked_mut(slice) } . } . #[inline] . fn index(self, slice: &str) -> &Self::Output { 288 ( 0.00%) (0..=self.end).index(slice) 3,600 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/traits.rs: as core::slice::index::SliceIndex>::index (144x) . } . #[inline] . fn index_mut(self, slice: &mut str) -> &mut Self::Output { . (0..=self.end).index_mut(slice) . } . } . . /// Implements substring slicing with syntax `&self[..= last]` or `&mut -- line 751 ---------------------------------------- 41,998 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mut_ptr.rs -------------------------------------------------------------------------------- Ir -- line 467 ---------------------------------------- . #[must_use = "returns a new pointer rather than modifying its argument"] . #[rustc_const_stable(feature = "const_ptr_offset", since = "1.61.0")] . #[inline(always)] . pub const fn wrapping_offset(self, count: isize) -> *mut T . where . T: Sized, . { . // SAFETY: the `arith_offset` intrinsic has no prerequisites to be called. 1,040 ( 0.00%) unsafe { intrinsics::arith_offset(self, count) as *mut T } . } . . /// Adds a signed offset in bytes to a pointer using wrapping arithmetic. . /// . /// `count` is in units of **bytes**. . /// . /// This is purely a convenience for casting to a `u8` pointer and . /// using [wrapping_offset][pointer::wrapping_offset] on it. See that method -- line 483 ---------------------------------------- -- line 963 ---------------------------------------- . ( . this: *const () = self as *const (), . count: usize = count, . size: usize = size_of::(), . ) => runtime_add_nowrap(this, count, size) . ); . . // SAFETY: the caller must uphold the safety contract for `offset`. 640,052 ( 0.01%) unsafe { intrinsics::offset(self, count) } . } . . /// Adds an unsigned offset in bytes to a pointer. . /// . /// `count` is in units of bytes. . /// . /// This is purely a convenience for casting to a `u8` pointer and . /// using [add][pointer::add] on it. See that method for documentation -- line 979 ---------------------------------------- -- line 1047 ---------------------------------------- . . if T::IS_ZST { . // Pointer arithmetic does nothing when the pointee is a ZST. . self . } else { . // SAFETY: the caller must uphold the safety contract for `offset`. . // Because the pointee is *not* a ZST, that means that `count` is . // at most `isize::MAX`, and thus the negation cannot overflow. 108,753 ( 0.00%) unsafe { intrinsics::offset(self, intrinsics::unchecked_sub(0, count as isize)) } . } . } . . /// Subtracts an unsigned offset in bytes from a pointer. . /// . /// `count` is in units of bytes. . /// . /// This is purely a convenience for casting to a `u8` pointer and -- line 1063 ---------------------------------------- 98,455 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_utils/src/higher.rs -------------------------------------------------------------------------------- Ir -- line 29 ---------------------------------------- . /// entire `for` loop span . pub span: Span, . /// label . pub label: Option, . } . . impl<'tcx> ForLoop<'tcx> { . /// Parses a desugared `for` loop 266,400 ( 0.00%) pub fn hir(expr: &Expr<'tcx>) -> Option { 88,876 ( 0.00%) if let ExprKind::DropTemps(e) = expr.kind 532 ( 0.00%) && let ExprKind::Match(iterexpr, [arm], MatchSource::ForLoopDesugar) = e.kind 304 ( 0.00%) && let ExprKind::Call(_, [arg]) = iterexpr.kind 608 ( 0.00%) && let ExprKind::Loop(block, label, ..) = arm.body.kind 228 ( 0.00%) && let [stmt] = block.stmts 228 ( 0.00%) && let hir::StmtKind::Expr(e) = stmt.kind 380 ( 0.00%) && let ExprKind::Match(_, [_, some_arm], _) = e.kind 456 ( 0.00%) && let hir::PatKind::Struct(_, [field], _) = some_arm.pat.kind . { 836 ( 0.00%) return Some(Self { 76 ( 0.00%) pat: field.pat, . arg, 76 ( 0.00%) body: some_arm.body, 152 ( 0.00%) loop_id: arm.body.hir_id, 152 ( 0.00%) span: expr.span.ctxt().outer_expn_data().call_site, . label, . }); . } 44,324 ( 0.00%) None 266,400 ( 0.00%) } . } . . /// An `if` expression without `let` . pub struct If<'hir> { . /// `if` condition . pub cond: &'hir Expr<'hir>, . /// `if` then expression . pub then: &'hir Expr<'hir>, -- line 65 ---------------------------------------- -- line 66 ---------------------------------------- . /// `else` expression . pub r#else: Option<&'hir Expr<'hir>>, . } . . impl<'hir> If<'hir> { . #[inline] . /// Parses an `if` expression without `let` . pub const fn hir(expr: &Expr<'hir>) -> Option { 219,467 ( 0.00%) if let ExprKind::If(cond, then, r#else) = expr.kind 5,968 ( 0.00%) && !has_let_expr(cond) 1,533 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/higher.rs:clippy_utils::higher::has_let_expr (54x) . { . Some(Self { cond, then, r#else }) . } else { . None . } . } . } . -- line 83 ---------------------------------------- -- line 93 ---------------------------------------- . pub if_else: Option<&'hir Expr<'hir>>, . /// `if let PAT = EXPR` . /// ^^^^^^^^^^^^^^ . pub let_span: Span, . } . . impl<'hir> IfLet<'hir> { . /// Parses an `if let` expression 132,861 ( 0.00%) pub fn hir(cx: &LateContext<'_>, expr: &Expr<'hir>) -> Option { 269,424 ( 0.00%) if let ExprKind::If( . &Expr { . kind: . ExprKind::Let(&hir::LetExpr { 984 ( 0.00%) pat: let_pat, . init: let_expr, 492 ( 0.00%) span: let_span, . .. . }), . .. . }, 492 ( 0.00%) if_then, 492 ( 0.00%) if_else, 1,851 ( 0.00%) ) = expr.kind . { 984 ( 0.00%) let mut iter = cx.tcx.hir_parent_iter(expr.hir_id); 2,154 ( 0.00%) if let Some((_, Node::Block(Block { stmts: [], .. }))) = iter.next() 1,710 ( 0.00%) && let Some(( . _, . Node::Expr(Expr { . kind: ExprKind::Loop(_, _, LoopSource::While, _), . .. . }), 390 ( 0.00%) )) = iter.next() . { . // while loop desugar 150 ( 0.00%) return None; . } 1,668 ( 0.00%) return Some(Self { . let_pat, . let_expr, . if_then, . if_else, . let_span, . }); . } 132,369 ( 0.00%) None 132,861 ( 0.00%) } . } . . /// An `if let` or `match` expression. Useful for lints that trigger on one or the other. . #[derive(Debug)] . pub enum IfLetOrMatch<'hir> { . /// Any `match` expression . Match(&'hir Expr<'hir>, &'hir [Arm<'hir>], MatchSource), . /// scrutinee, pattern, then block, else block -- line 147 ---------------------------------------- -- line 153 ---------------------------------------- . /// `if let PAT = EXPR` . /// ^^^^^^^^^^^^^^ . Span, . ), . } . . impl<'hir> IfLetOrMatch<'hir> { . /// Parses an `if let` or `match` expression 5,565 ( 0.00%) pub fn parse(cx: &LateContext<'_>, expr: &Expr<'hir>) -> Option { 3,710 ( 0.00%) match expr.kind { 40 ( 0.00%) ExprKind::Match(expr, arms, source) => Some(Self::Match(expr, arms, source)), 1,850 ( 0.00%) _ => IfLet::hir(cx, expr).map( 9,250 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir (1,850x) . |IfLet { . let_expr, . let_pat, . if_then, . if_else, . let_span, . }| { Self::IfLet(let_expr, let_pat, if_then, if_else, let_span) }, . ), . } 7,420 ( 0.00%) } . . pub fn scrutinee(&self) -> &'hir Expr<'hir> { . match self { . Self::Match(scrutinee, _, _) | Self::IfLet(scrutinee, _, _, _, _) => scrutinee, . } . } . } . -- line 182 ---------------------------------------- -- line 189 ---------------------------------------- . /// `else` expression . pub r#else: Option<&'hir Expr<'hir>>, . } . . impl<'hir> IfOrIfLet<'hir> { . #[inline] . /// Parses an `if` or `if let` expression . pub const fn hir(expr: &Expr<'hir>) -> Option { 366 ( 0.00%) if let ExprKind::If(cond, then, r#else) = expr.kind { . Some(Self { cond, then, r#else }) . } else { . None . } . } . } . . /// Represent a range akin to `ast::ExprKind::Range`. -- line 205 ---------------------------------------- -- line 211 ---------------------------------------- . pub start: Option<&'a Expr<'a>>, . /// The upper bound of the range, or `None` for ranges such as `X..`. . pub end: Option<&'a Expr<'a>>, . pub span: Span, . } . . impl<'a> Range<'a> { . /// Higher a `hir` range to something similar to `ast::ExprKind::Range`. 889,720 ( 0.01%) pub fn hir(cx: &LateContext<'_>, expr: &'a Expr<'_>) -> Option> { 177,944 ( 0.00%) let span = expr.range_span()?; 2,148,560 ( 0.03%) => ???:::range_span (88,972x) 868 ( 0.00%) let (ty, start, end) = match expr.kind { . ExprKind::Call(path, [arg1, arg2]) . if let ExprKind::Path(qpath) = path.kind . && cx.tcx.qpath_is_lang_item(qpath, hir::LangItem::RangeInclusiveNew) => . { . (RangeTy::OpsInclusive, Some(arg1), Some(arg2)) . }, 1,240 ( 0.00%) ExprKind::Struct(&qpath, fields, StructTailExpr::None) => match (cx.tcx.qpath_lang_item(qpath)?, fields) { 13,888 ( 0.00%) => ???:::qpath_lang_item (124x) 192 ( 0.00%) (hir::LangItem::RangeFull, []) => (RangeTy::OpsFull, None, None), 24 ( 0.00%) (hir::LangItem::RangeFrom, [start]) if start.ident.name == sym::start => { 8 ( 0.00%) (RangeTy::OpsFrom, Some(start.expr), None) . }, . (hir::LangItem::RangeFromCopy, [start]) if start.ident.name == sym::start => { . (RangeTy::RangeFrom, Some(start.expr), None) 96 ( 0.00%) }, 36 ( 0.00%) (hir::LangItem::Range, [start, end] | [end, start]) 24 ( 0.00%) if start.ident.name == sym::start && end.ident.name == sym::end => . { 24 ( 0.00%) (RangeTy::OpsRange, Some(start.expr), Some(end.expr)) 12 ( 0.00%) }, . (hir::LangItem::RangeCopy, [start, end] | [end, start]) . if start.ident.name == sym::start && end.ident.name == sym::end => . { . (RangeTy::RangeRange, Some(start.expr), Some(end.expr)) . }, . (hir::LangItem::RangeInclusiveCopy, [start, last] | [last, start]) . if start.ident.name == sym::start && last.ident.name == sym::last => . { . (RangeTy::RangeInclusive, Some(start.expr), Some(last.expr)) . }, . (hir::LangItem::RangeToInclusive, [end]) if end.ident.name == sym::end => { . (RangeTy::OpsToInclusive, None, Some(end.expr)) . }, . (hir::LangItem::RangeToInclusiveCopy, [last]) if last.ident.name == sym::last => { . (RangeTy::RangeToInclusive, None, Some(last.expr)) 8 ( 0.00%) }, 48 ( 0.00%) (hir::LangItem::RangeTo, [end]) if end.ident.name == sym::end => (RangeTy::OpsTo, None, Some(end.expr)), . _ => return None, . }, . _ => return None, . }; . 496 ( 0.00%) Some(Range { ty, start, end, span }) 711,900 ( 0.01%) } . } . . /// A type that can appear as the type of a range expression. . /// . /// This is a component of [`Range`]. . #[derive(Debug, Copy, Clone, Eq, PartialEq)] . pub enum RangeTy { . /// [`core::ops::RangeFrom`] -- line 272 ---------------------------------------- -- line 361 ---------------------------------------- . Repeat(&'a Expr<'a>, &'a Expr<'a>), . /// `vec![a, b, c]` . Vec(&'a [Expr<'a>]), . } . . impl<'a> VecArgs<'a> { . /// Returns the arguments of the `vec!` macro if this expression was expanded . /// from `vec!`. 935,074 ( 0.01%) pub fn hir(cx: &LateContext<'_>, expr: &'a Expr<'_>) -> Option> { 285,443 ( 0.00%) if let ExprKind::Call(fun, args) = expr.kind 36,558 ( 0.00%) && let ExprKind::Path(ref qpath) = fun.kind 109,674 ( 0.00%) && is_expn_of(fun.span, sym::vec).is_some() 3,932,085 ( 0.05%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_expn_of (18,279x) . && let Some(fun_def_id) = cx.qpath_res(qpath, fun.hir_id).opt_def_id() . && let Some(name) = cx.tcx.get_diagnostic_name(fun_def_id) . { . return match (name, args) { . (sym::vec_from_elem, [elem, size]) => { . // `vec![elem; size]` case . Some(VecArgs::Repeat(elem, size)) . }, -- line 380 ---------------------------------------- -- line 381 ---------------------------------------- . (sym::box_assume_init_into_vec_unsafe, [write_box_via_move]) . if let ExprKind::Call(_, [_box, elems]) = write_box_via_move.kind . && let ExprKind::Array(elems) = elems.kind => . { . // `vec![a, b, c]` case . Some(VecArgs::Vec(elems)) . }, . (sym::vec_new, []) => Some(VecArgs::Vec(&[])), 18,279 ( 0.00%) _ => None, . }; . } . 18,279 ( 0.00%) None 935,074 ( 0.01%) } . } . . /// A desugared `while` loop . pub struct While<'hir> { . /// `while` loop condition . pub condition: &'hir Expr<'hir>, . /// `while` loop body . pub body: &'hir Expr<'hir>, -- line 402 ---------------------------------------- -- line 404 ---------------------------------------- . pub span: Span, . pub label: Option, . } . . impl<'hir> While<'hir> { . #[inline] . /// Parses a desugared `while` loop . pub const fn hir(expr: &Expr<'hir>) -> Option { 98 ( 0.00%) if let ExprKind::Loop( . Block { . expr: . Some(Expr { . kind: ExprKind::If(condition, body, _), . .. . }), . .. . }, . label, . LoopSource::While, 14 ( 0.00%) span, 42 ( 0.00%) ) = expr.kind 56 ( 0.00%) && !has_let_expr(condition) 225 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/higher.rs:clippy_utils::higher::has_let_expr (14x) . { . return Some(Self { . condition, . body, . span, . label, . }); . } -- line 433 ---------------------------------------- -- line 448 ---------------------------------------- . /// ^^^^^^^^^^^^^^ . pub let_span: Span, . } . . impl<'hir> WhileLet<'hir> { . #[inline] . /// Parses a desugared `while let` loop . pub const fn hir(expr: &Expr<'hir>) -> Option { 188,864 ( 0.00%) if let ExprKind::Loop( . &Block { . expr: . Some(&Expr { . kind: . ExprKind::If( . &Expr { . kind: . ExprKind::Let(&hir::LetExpr { 101 ( 0.00%) pat: let_pat, 50 ( 0.00%) init: let_expr, . span: let_span, . .. . }), . .. . }, 25 ( 0.00%) if_then, . _, . ), . .. . }), . .. . }, 26 ( 0.00%) label, . LoopSource::While, . _, 992 ( 0.00%) ) = expr.kind . { . return Some(Self { . let_pat, . let_expr, . if_then, . label, . let_span, . }); -- line 490 ---------------------------------------- -- line 575 ---------------------------------------- . Default, . /// `Vec::with_capacity(123)` . WithConstCapacity(u128), . /// `Vec::with_capacity(slice.len())` . WithExprCapacity(HirId), . } . . /// Checks if the given expression is an initialization of `Vec` and returns its kind. 3,654 ( 0.00%) pub fn get_vec_init_kind<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) -> Option { 1,234 ( 0.00%) if let ExprKind::Call(func, args) = expr.kind { 950 ( 0.00%) match func.kind { 15 ( 0.00%) ExprKind::Path(QPath::TypeRelative(ty, name)) 488 ( 0.00%) if cx.typeck_results().node_type(ty.hir_id).is_diag_item(cx, sym::Vec) => 2,501 ( 0.00%) => ???:::node_type (61x) . { 60 ( 0.00%) if name.ident.name == sym::new { . return Some(VecInitKind::New); . } else if name.ident.name == symbol::kw::Default { . return Some(VecInitKind::Default); . } else if name.ident.name == sym::with_capacity { . let arg = args.first()?; 105 ( 0.00%) return match ConstEvalCtxt::new(cx).eval_local(arg, expr.span.ctxt()) { 1,548 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::eval_local (15x) 840 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::new (15x) . Some(Constant::Int(num)) => Some(VecInitKind::WithConstCapacity(num)), 45 ( 0.00%) _ => Some(VecInitKind::WithExprCapacity(arg.hir_id)), . }; . } . }, . ExprKind::Path(QPath::Resolved(_, path)) 1,677 ( 0.00%) if cx.tcx.is_diagnostic_item(sym::default_fn, path.res.opt_def_id()?) 11,104 ( 0.00%) => ???:::is_diagnostic_item (129x) . && cx.typeck_results().expr_ty(expr).is_diag_item(cx, sym::Vec) => . { . return Some(VecInitKind::Default); . }, . _ => (), . } . } . None 4,698 ( 0.00%) } . . /// Checks that a condition doesn't have a `let` expression, to keep `If` and `While` from accepting . /// `if let` and `while let`. 10,520 ( 0.00%) pub const fn has_let_expr<'tcx>(cond: &'tcx Expr<'tcx>) -> bool { 15,480 ( 0.00%) match &cond.kind { . ExprKind::Let(_) => true, 3,570 ( 0.00%) ExprKind::Binary(_, lhs, rhs) => has_let_expr(lhs) || has_let_expr(rhs), 13,238 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/higher.rs:clippy_utils::higher::has_let_expr'2 (604x) . _ => false, . } 10,520 ( 0.00%) } 302,667 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/unused_unit.rs -------------------------------------------------------------------------------- Ir -- line 46 ---------------------------------------- . &mut self, . cx: &LateContext<'tcx>, . kind: FnKind<'tcx>, . decl: &'tcx FnDecl<'tcx>, . body: &'tcx Body<'tcx>, . span: Span, . _def_id: LocalDefId, . ) { 8,205 ( 0.00%) if let FnRetTy::Return(hir_ty) = decl.output 3 ( 0.00%) && is_unit_ty(hir_ty) . && !hir_ty.span.from_expansion() . && get_def(span) == get_def(hir_ty.span) . { . // The explicit `-> ()` in the closure signature might be necessary for multiple reasons: . // - Implicit types in closure signatures are forbidden when `for<...>` is present . // - If the closure body ends with a function call, and that function's return type is generic, the . // `-> ()` could be required for it to be inferred . // -- line 63 ---------------------------------------- -- line 75 ---------------------------------------- . && let Some(expr) = block.expr . && is_never_expr(cx, expr).is_some() . { . return; . } . . lint_unneeded_unit_return(cx, hir_ty.span, span); . } 2,740 ( 0.00%) } . . fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 228,575 ( 0.00%) if let ExprKind::Ret(Some(expr)) | ExprKind::Break(_, Some(expr)) = expr.kind . && is_unit_expr(expr) . && !expr.span.from_expansion() . { . span_lint_and_sugg( . cx, . UNUSED_UNIT, . expr.span, . "unneeded `()`", . "remove the `()`", . String::new(), . Applicability::MachineApplicable, . ); . } 44,400 ( 0.00%) } . 20,220 ( 0.00%) fn check_poly_trait_ref(&mut self, cx: &LateContext<'tcx>, poly: &'tcx PolyTraitRef<'tcx>) { 12,268 ( 0.00%) if let [segment] = &poly.trait_ref.path.segments 8,632 ( 0.00%) && matches!(segment.ident.name, sym::Fn | sym::FnMut | sym::FnOnce) . && let Some(args) = segment.args . && args.parenthesized == GenericArgsParentheses::ParenSugar . && let [constraint] = &args.constraints . && constraint.ident.name == sym::Output . && let AssocItemConstraintKind::Equality { term: Term::Ty(hir_ty) } = constraint.kind . && args.span_ext.hi() != poly.span.hi() . && !hir_ty.span.from_expansion() . && args.span_ext.hi() != hir_ty.span.hi() . && is_unit_ty(hir_ty) . { . lint_unneeded_unit_return(cx, hir_ty.span, poly.span); . } 23,590 ( 0.00%) } . } . . impl EarlyLintPass for UnusedUnit { . /// Check for unit expressions in blocks. This is left in the early pass because some macros . /// expand its inputs as-is, making it invisible to the late pass. See #4076. 14,808 ( 0.00%) fn check_block(&mut self, cx: &EarlyContext<'_>, block: &Block) { . if let Some(stmt) = block.stmts.last() 7,396 ( 0.00%) && let StmtKind::Expr(expr) = &stmt.kind 9,993 ( 0.00%) && let rustc_ast::ExprKind::Tup(inner) = &expr.kind 4 ( 0.00%) && inner.is_empty() . && let ctxt = block.span.ctxt() . && stmt.span.ctxt() == ctxt . && expr.span.ctxt() == ctxt . && expr.attrs.is_empty() . { . let sp = expr.span; . span_lint_and_sugg( . cx, -- line 135 ---------------------------------------- -- line 136 ---------------------------------------- . UNUSED_UNIT, . sp, . "unneeded unit expression", . "remove the final `()`", . String::new(), . Applicability::MachineApplicable, . ); . } 18,510 ( 0.00%) } . } . . fn is_unit_ty(ty: &Ty<'_>) -> bool { 5,453 ( 0.00%) matches!(ty.kind, TyKind::Tup([])) . } . . // get the def site . #[must_use] . fn get_def(span: Span) -> Option { . if span.from_expansion() { . Some(span.ctxt().outer_expn_data().def_site) . } else { -- line 156 ---------------------------------------- 44,812 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/nonnull_unchecked_on_box_ptr.rs -------------------------------------------------------------------------------- Ir -- line 43 ---------------------------------------- . . impl NonnullUncheckedOnBoxPtr { . pub fn new(conf: &Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl<'tcx> LateLintPass<'tcx> for NonnullUncheckedOnBoxPtr { 355,200 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 133,200 ( 0.00%) if !expr.span.from_expansion() 2,675 ( 0.00%) && let ExprKind::Call(nonnull_new_unchecked, [arg]) = expr.kind 2,204 ( 0.00%) && let ExprKind::Call(box_into_raw, [arg]) = arg.kind . && nonnull_new_unchecked 125 ( 0.00%) .ty_rel_def_if_named(cx, sym::new_unchecked) . .opt_parent(cx) 625 ( 0.00%) .opt_impl_ty(cx) 2,000 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/res.rs: as clippy_utils::res::MaybeDef>::opt_impl_ty:: (125x) . .is_diag_item(cx, sym::NonNull) . && box_into_raw . .ty_rel_def_if_named(cx, sym::into_raw) . .opt_parent(cx) . .opt_impl_ty(cx) . .is_lang_item(cx, LangItem::OwnedBox) . && self.msrv.meets(cx, msrvs::BOX_LEAK) . { -- line 66 ---------------------------------------- -- line 89 ---------------------------------------- . } else { . format!("NonNull::from(Box::leak({arg_name}))") . }; . . diag.span_suggestion(span, "try", sugg, app); . }, . ); . } 355,200 ( 0.00%) } . } 18,278 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/operators/eq_op.rs -------------------------------------------------------------------------------- Ir -- line 2 ---------------------------------------- . use clippy_utils::diagnostics::{span_lint, span_lint_and_then}; . use clippy_utils::macros::{find_assert_eq_args, first_node_macro_backtrace}; . use clippy_utils::{eq_expr_value, is_in_test_function, sym}; . use rustc_hir::{BinOpKind, Expr}; . use rustc_lint::LateContext; . . use super::EQ_OP; . 399,600 ( 0.01%) pub(crate) fn check_assert<'tcx>(cx: &LateContext<'tcx>, e: &'tcx Expr<'_>) { 44,440 ( 0.00%) if let Some(macro_call) = first_node_macro_backtrace(cx, e).find(|macro_call| { 8,690 ( 0.00%) matches!( 5,804 ( 0.00%) cx.tcx.get_diagnostic_name(macro_call.def_id), 69,830 ( 0.00%) => ???:::get_diagnostic_name (1,451x) . Some(sym::assert_eq_macro | sym::assert_ne_macro | sym::debug_assert_eq_macro | sym::debug_assert_ne_macro) . ) 80 ( 0.00%) }) && let Some((lhs, rhs, _)) = find_assert_eq_args(cx, e, macro_call.expn) 25,224 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::find_assert_eq_args (8x) 56 ( 0.00%) && eq_expr_value(cx, macro_call.span.ctxt(), lhs, rhs) 13,200 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:clippy_utils::hir_utils::eq_expr_value (8x) . && macro_call.is_local() . && !is_in_test_function(cx.tcx, e.hir_id) . { . span_lint( . cx, . EQ_OP, . lhs.span.to(rhs.span), . format!( . "identical args used in this `{}!` macro call", . cx.tcx.item_name(macro_call.def_id) . ), . ); . } 355,200 ( 0.00%) } . 405 ( 0.00%) pub(crate) fn check<'tcx>( . cx: &LateContext<'tcx>, . e: &'tcx Expr<'_>, . op: BinOpKind, . left: &'tcx Expr<'_>, . right: &'tcx Expr<'_>, . ) { . if is_useless_with_eq_exprs(op) 203 ( 0.00%) && eq_expr_value(cx, e.span.ctxt(), left, right) 20,390 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:clippy_utils::hir_utils::eq_expr_value (29x) . && !is_in_test_function(cx.tcx, e.hir_id) . { . span_lint_and_then( . cx, . EQ_OP, . e.span, . format!("equal expressions as operands to `{}`", op.as_str()), . |diag| { -- line 49 ---------------------------------------- -- line 50 ---------------------------------------- . if let BinOpKind::Ne = op . && cx.typeck_results().expr_ty(left).is_floating_point() . { . diag.note("if you intended to check if the operand is NaN, use `.is_nan()` instead"); . } . }, . ); . } 360 ( 0.00%) } 133,356 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_lint/src/levels.rs -------------------------------------------------------------------------------- Ir -- line 482 ---------------------------------------- . } . } . . impl<'s, P: LintLevelsProvider> LintLevelsBuilder<'s, P> . where . LevelSpec: Into, . { . pub(crate) fn sess(&self) -> &Session { 150,268 ( 0.00%) self.sess . } . . pub(crate) fn features(&self) -> &Features { . self.features . } . . fn add_command_line(&mut self) { . for &(ref lint_name, level) in &self.sess.opts.lint_opts { -- line 498 ---------------------------------------- -- line 996 ---------------------------------------- . ); . } . . false . } . . /// Find the lint level for a lint. . pub fn lint_level_spec(&self, lint: &'static Lint) -> LevelSpec { 32,675 ( 0.00%) self.provider.get_lint_level_spec(lint, self.sess) 999 ( 0.00%) => ???:::get_lint_level_spec (9x) . } . . /// Used to emit a lint-related diagnostic based on the current state of . /// this lint context. . #[track_caller] . pub(crate) fn opt_span_lint( . &self, . lint: &'static Lint, . span: Option, . decorator: impl for<'a> Diagnostic<'a, ()>, . ) { . let level_spec = self.lint_level_spec(lint); 299 ( 0.00%) emit_lint_base(self.sess, lint, level_spec, span, decorator) . } . . #[track_caller] . pub fn emit_span_lint( . &self, . lint: &'static Lint, . span: MultiSpan, . decorator: impl for<'a> Diagnostic<'a, ()>, -- line 1025 ---------------------------------------- 8,394 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/unconditional_recursion.rs -------------------------------------------------------------------------------- Ir -- line 88 ---------------------------------------- . "function cannot return without recursing", . |diag| { . diag.span_note(expr.span, "recursive call site"); . }, . ); . } . . fn get_hir_ty_def_id<'tcx>(tcx: TyCtxt<'tcx>, hir_ty: rustc_hir::Ty<'tcx>) -> Option { 141 ( 0.00%) let TyKind::Path(qpath) = hir_ty.kind else { return None }; 94 ( 0.00%) match qpath { . QPath::Resolved(_, path) => path.res.opt_def_id(), . QPath::TypeRelative(_, _) => { . let ty = lower_ty(tcx, &hir_ty); . . match ty.kind() { . ty::Alias( . _, . proj @ ty::AliasTy { -- line 105 ---------------------------------------- -- line 111 ---------------------------------------- . } . }, . } . } . . fn get_return_calls_in_body<'tcx>(body: &'tcx Body<'tcx>) -> Vec<&'tcx Expr<'tcx>> { . let mut visitor = ReturnsVisitor::default(); . 5,408 ( 0.00%) visitor.visit_body(body); 1,443,098 ( 0.02%) => ???:::visit_body (2,704x) 8,112 ( 0.00%) visitor.returns . } . . fn has_conditional_return(body: &Body<'_>, expr: &Expr<'_>) -> bool { . match get_return_calls_in_body(body).as_slice() { 10,786 ( 0.00%) [] => false, 2,131 ( 0.00%) [return_expr] => return_expr.hir_id != expr.hir_id, . _ => true, . } . } . 2,340 ( 0.00%) fn get_impl_trait_def_id(cx: &LateContext<'_>, method_def_id: LocalDefId) -> Option { . let hir_id = cx.tcx.local_def_id_to_hir_id(method_def_id); 1,040 ( 0.00%) if let Some(( . _, . Node::Item(Item { . kind: ItemKind::Impl(impl_), . owner_id, . .. . }), 260 ( 0.00%) )) = cx.tcx.hir_parent_iter(hir_id).next() . // We exclude `impl` blocks generated from rustc's proc macros. 1,530 ( 0.00%) && !cx.tcx.is_automatically_derived(owner_id.to_def_id()) 27,470 ( 0.00%) => ???:::is_automatically_derived (255x) . // It is a implementation of a trait. 753 ( 0.00%) && let Some(of_trait) = impl_.of_trait . { 615 ( 0.00%) of_trait.trait_ref.trait_def_id() 2,665 ( 0.00%) => ???:::trait_def_id (205x) . } else { . None . } 2,340 ( 0.00%) } . . /// When we have `x == y` where `x = &T` and `y = &T`, then that resolves to . /// `<&T as PartialEq<&T>>::eq`, which is not the same as `>::eq`, . /// however we still would want to treat it the same, because we know that it's a blanket impl . /// that simply delegates to the `PartialEq` impl with one reference removed. . /// . /// Still, we can't just do `lty.peel_refs() == rty.peel_refs()` because when we have `x = &T` and . /// `y = &&T`, this is not necessarily the same as `>::eq` -- line 158 ---------------------------------------- -- line 174 ---------------------------------------- . } . false . } . . fn check_partial_eq(cx: &LateContext<'_>, method_span: Span, method_def_id: LocalDefId, name: Ident, expr: &Expr<'_>) { . let Some(sig) = cx . .typeck_results() . .liberated_fn_sigs() 3 ( 0.00%) .get(cx.tcx.local_def_id_to_hir_id(method_def_id)) . else { . return; . }; . . // That has two arguments. 9 ( 0.00%) if let [self_arg, other_arg] = sig.inputs() 9 ( 0.00%) && let &ty::Ref(_, self_arg, _) = self_arg.kind() 12 ( 0.00%) && let &ty::Ref(_, other_arg, _) = other_arg.kind() . // The two arguments are of the same type. 12 ( 0.00%) && let Some(trait_def_id) = get_impl_trait_def_id(cx, method_def_id) 1,071 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/unconditional_recursion.rs:clippy_lints::unconditional_recursion::get_impl_trait_def_id (3x) . // The trait is `PartialEq`. . && cx.tcx.is_diagnostic_item(sym::PartialEq, trait_def_id) . { . let to_check_op = if name.name == sym::eq { . BinOpKind::Eq . } else { . BinOpKind::Ne . }; -- line 200 ---------------------------------------- -- line 327 ---------------------------------------- . span_error(self.cx, self.method_span, expr); . return ControlFlow::Break(()); . } . ControlFlow::Continue(()) . } . } . . impl UnconditionalRecursion { 376 ( 0.00%) fn init_default_impl_for_type_if_needed(&mut self, cx: &LateContext<'_>) { 47 ( 0.00%) if self.default_impl_for_type.is_empty() 235 ( 0.00%) && let Some(default_trait_id) = cx.tcx.get_diagnostic_item(sym::Default) 3,384 ( 0.00%) => ???:::get_diagnostic_item (47x) . { . let impls = cx.tcx.trait_impls_of(default_trait_id); . for (ty, impl_def_ids) in impls.non_blanket_impls() { 29,140 ( 0.00%) let Some(self_def_id) = ty.def() else { continue }; 27,918 ( 0.00%) for &impl_def_id in impl_def_ids { 83,754 ( 0.00%) if !cx.tcx.is_automatically_derived(impl_def_id) && 2,160,851 ( 0.03%) => ???:::is_automatically_derived (13,959x) . let Some(assoc_item) = cx . .tcx . .associated_items(impl_def_id) . .in_definition_order() . // We're not interested in foreign implementations of the `Default` trait. . .find(|item| { 44,650 ( 0.00%) item.is_fn() && item.def_id.is_local() && item.name() == kw::Default . }) . && let Some(body_node) = cx.tcx.hir_get_if_local(assoc_item.def_id) . && let Some(body_id) = body_node.body_id() . && let body = cx.tcx.hir_body(body_id) . // We don't want to keep it if it has conditional return. . && let [return_expr] = get_return_calls_in_body(body).as_slice() . && let ExprKind::Call(call_expr, _) = return_expr.kind . // We need to use typeck here to infer the actual function being called. -- line 358 ---------------------------------------- -- line 361 ---------------------------------------- . && let typeck = cx.tcx.typeck_body(body_owner.id()) . && let Some(call_def_id) = typeck.type_dependent_def_id(call_expr.hir_id) . { . self.default_impl_for_type.insert(self_def_id, call_def_id); . } . } . } . } 376 ( 0.00%) } . . fn check_default_new<'tcx>( . &mut self, . cx: &LateContext<'tcx>, . decl: &FnDecl<'tcx>, . body: &'tcx Body<'tcx>, . method_span: Span, . method_def_id: LocalDefId, . ) { . // We're only interested into static methods. 4,292 ( 0.00%) if decl.implicit_self().has_implicit_self() { 17,168 ( 0.00%) => ???:::implicit_self (2,146x) . return; . } . // We don't check trait implementations. 1,285 ( 0.00%) if get_impl_trait_def_id(cx, method_def_id).is_some() { 93,628 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/unconditional_recursion.rs:clippy_lints::unconditional_recursion::get_impl_trait_def_id (257x) . return; . } . . let hir_id = cx.tcx.local_def_id_to_hir_id(method_def_id); 208 ( 0.00%) if let Some(( . _, . Node::Item(Item { . kind: ItemKind::Impl(impl_), . .. . }), 52 ( 0.00%) )) = cx.tcx.hir_parent_iter(hir_id).next() 470 ( 0.00%) && let Some(implemented_ty_id) = get_hir_ty_def_id(cx.tcx, *impl_.self_ty) . && { 141 ( 0.00%) self.init_default_impl_for_type_if_needed(cx); 4,328,886 ( 0.06%) => site/frontend/rust-clippy/clippy_lints/src/unconditional_recursion.rs:::init_default_impl_for_type_if_needed (47x) . true . } 94 ( 0.00%) && let Some(return_def_id) = self.default_impl_for_type.get(&implemented_ty_id) . && method_def_id.to_def_id() == *return_def_id . { . let mut c = CheckCalls { . cx, . implemented_ty_id, . method_span, . }; . let _ = walk_body(&mut c, body); -- line 409 ---------------------------------------- -- line 410 ---------------------------------------- . } . } . } . . fn check_from(cx: &LateContext<'_>, method_span: Span, method_def_id: LocalDefId, expr: &Expr<'_>) { . let Some(sig) = cx . .typeck_results() . .liberated_fn_sigs() 5 ( 0.00%) .get(cx.tcx.local_def_id_to_hir_id(method_def_id)) . else { . return; . }; . . // Check if we are calling `Into::into` where the node args match with our `From::from` signature: . // From::from signature: fn(S1) -> S2 . // >::into(s1), node_args=[S1, S2] . // If they do match, then it must mean that it is the blanket impl, . // which calls back into our `From::from` again (`Into` is not specializable). . // rustc's unconditional_recursion already catches calling `From::from` directly 28 ( 0.00%) if let Some((fn_def_id, node_args)) = fn_def_id_with_node_args(cx, expr) 503 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::fn_def_id_with_node_args (5x) 8 ( 0.00%) && let [s1, s2] = **node_args . && let (Some(s1), Some(s2)) = (s1.as_type(), s2.as_type()) . && let Some(trait_def_id) = cx.tcx.trait_of_assoc(fn_def_id) . && cx.tcx.is_diagnostic_item(sym::Into, trait_def_id) . && get_impl_trait_def_id(cx, method_def_id) == cx.tcx.get_diagnostic_item(sym::From) . && s1 == sig.inputs()[0] . && s2 == sig.output() . { . span_error(cx, method_span, expr); . } . } . . impl<'tcx> LateLintPass<'tcx> for UnconditionalRecursion { 21,920 ( 0.00%) fn check_fn( . &mut self, . cx: &LateContext<'tcx>, . kind: FnKind<'tcx>, . decl: &'tcx FnDecl<'tcx>, . body: &'tcx Body<'tcx>, . method_span: Span, . method_def_id: LocalDefId, . ) { . // If the function is a method... 8,184 ( 0.00%) if let FnKind::Method(name, _) = kind 13,523 ( 0.00%) && let expr = expr_or_init(cx, body.value).peel_blocks() 70,304 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::expr_or_init (2,704x) . // Doesn't have a conditional return. 7,539 ( 0.00%) && !has_conditional_return(body, expr) . { . match name.name { 15,016 ( 0.00%) sym::eq | sym::ne => check_partial_eq(cx, method_span, method_def_id, name, expr), . sym::to_string => check_to_string(cx, method_span, method_def_id, name, expr), . sym::from => check_from(cx, method_span, method_def_id, expr), . _ => {}, . } . self.check_default_new(cx, decl, body, method_span, method_def_id); . } 21,920 ( 0.00%) } . } 66,094 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/dep_graph/graph.rs -------------------------------------------------------------------------------- Ir -- line 60 ---------------------------------------- . . /// This field is used for assigning DepNodeIndices when running in . /// non-incremental mode. Even in non-incremental mode we make sure that . /// each task has a `DepNodeIndex` that uniquely identifies it. This unique . /// ID is used for self-profiling. . virtual_dep_node_index: Arc, . } . 143,687 ( 0.00%) rustc_index::newtype_index! { . pub struct DepNodeIndex {} . } . . // We store a large collection of these in `prev_index_to_index` during . // non-full incremental builds, and want to ensure that the element size . // doesn't inadvertently increase. . rustc_data_structures::static_assert_size!(Option, 4); . -- line 76 ---------------------------------------- -- line 500 ---------------------------------------- . hashing_timer.finish_with_query_invocation_id(dep_node_index.into()); . dep_node_index . } . } . . impl DepGraph { . #[inline] . pub fn read_index(&self, dep_node_index: DepNodeIndex) { 268,352 ( 0.00%) if let Some(ref data) = self.data { . read_deps(|task_deps| { . let mut task_deps = match task_deps { . TaskDepsRef::Allow(deps) => deps.lock(), . TaskDepsRef::EvalAlways => { . // We don't need to record dependencies of eval_always . // queries. They are re-evaluated unconditionally anyway. . return; . } -- line 516 ---------------------------------------- 6,008 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/disallowed_methods.rs -------------------------------------------------------------------------------- Ir -- line 64 ---------------------------------------- . impl_lint_pass!(DisallowedMethods => [DISALLOWED_METHODS]); . . pub struct DisallowedMethods { . disallowed: DefIdMap<(&'static str, &'static DisallowedPath)>, . } . . impl DisallowedMethods { . pub fn new(tcx: TyCtxt<'_>, conf: &'static Conf) -> Self { 10 ( 0.00%) let (disallowed, _) = create_disallowed_map( 38 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_config/src/types.rs:clippy_config::types::create_disallowed_map::::new::{closure#0}> (1x) . tcx, . &conf.disallowed_methods, . PathNS::Value, . |def_kind| { . matches!( . def_kind, . DefKind::Fn | DefKind::Ctor(_, CtorKind::Fn) | DefKind::AssocFn . ) . }, . "function", . false, 1 ( 0.00%) ); 4 ( 0.00%) Self { disallowed } . } . } . . impl<'tcx> LateLintPass<'tcx> for DisallowedMethods { 222,000 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 44,400 ( 0.00%) if self.disallowed.is_empty() { . return; . } . if expr.span.desugaring_kind().is_some() { . return; . } . let (id, span) = match &expr.kind { . ExprKind::Path(path) if let Res::Def(_, id) = cx.qpath_res(path, expr.hir_id) => (id, expr.span), . ExprKind::MethodCall(name, ..) if let Some(id) = cx.typeck_results().type_dependent_def_id(expr.hir_id) => { -- line 99 ---------------------------------------- -- line 105 ---------------------------------------- . span_lint_and_then( . cx, . DISALLOWED_METHODS, . span, . format!("use of a disallowed method `{path}`"), . disallowed_path.diag_amendment(span), . ); . } 266,400 ( 0.00%) } . } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/operators/float_cmp.rs -------------------------------------------------------------------------------- Ir -- line 7 ---------------------------------------- . use rustc_hir::def_id::DefId; . use rustc_hir::{BinOpKind, Expr, ExprKind, UnOp}; . use rustc_lint::LateContext; . use rustc_middle::ty; . use rustc_span::SyntaxContext; . . use super::{FLOAT_CMP, FLOAT_CMP_CONST}; . 399,600 ( 0.01%) pub(crate) fn check_assert<'tcx>(cx: &LateContext<'tcx>, e: &'tcx Expr<'_>) { . if let Some(macro_call) = . first_node_macro_backtrace(cx, e).find(|macro_call| is_assert_eq_diag(cx, macro_call.def_id)) 40 ( 0.00%) && let Some((lhs, rhs, _)) = find_assert_eq_args(cx, e, macro_call.expn) 25,224 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::find_assert_eq_args (8x) 8 ( 0.00%) && is_float(cx, lhs) . { . let ecx = ConstEvalCtxt::new(cx); . let ctxt = macro_call.span.ctxt(); . . let has_const = is_float_const(&ecx, lhs, ctxt) || is_float_const(&ecx, rhs, ctxt); . if !has_const { . return; . } -- line 27 ---------------------------------------- -- line 30 ---------------------------------------- . let msg = if is_comparing_arrays { . "strict comparison of `f32` or `f64` constant arrays" . } else { . "strict comparison of `f32` or `f64` constant" . }; . . clippy_utils::diagnostics::span_lint(cx, FLOAT_CMP_CONST, macro_call.span, msg); . } 355,200 ( 0.00%) } . . fn is_float_const(ecx: &ConstEvalCtxt<'_>, expr: &Expr<'_>, ctxt: SyntaxContext) -> bool { . match ecx.eval_with_source(expr, ctxt) { . Some((c, s)) if !is_allowed(&c) => !s.is_local(), . _ => false, . } . } . . fn is_assert_eq_diag(cx: &LateContext<'_>, def_id: DefId) -> bool { 8,696 ( 0.00%) matches!( 5,804 ( 0.00%) cx.tcx.get_diagnostic_name(def_id), 69,830 ( 0.00%) => ???:::get_diagnostic_name (1,451x) . Some(sym::assert_eq_macro | sym::assert_ne_macro | sym::debug_assert_eq_macro | sym::debug_assert_ne_macro) . ) . } . . fn is_inside_assert_eq(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool { . macro_backtrace(expr.span).any(|mc| is_assert_eq_diag(cx, mc.def_id)) . } . 4,992 ( 0.00%) pub(crate) fn check<'tcx>( . cx: &LateContext<'tcx>, . expr: &'tcx Expr<'_>, . op: BinOpKind, . left: &'tcx Expr<'_>, . right: &'tcx Expr<'_>, . ) { 2,150 ( 0.00%) if (op == BinOpKind::Eq || op == BinOpKind::Ne) && is_float(cx, left) { . // Skip if inside assert_eq!/assert_ne! macro to avoid double-linting . // (handled by check_assert) 6 ( 0.00%) if is_inside_assert_eq(cx, expr) { . return; . } . 2 ( 0.00%) let ecx = ConstEvalCtxt::new(cx); 56 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::new (1x) . let ctxt = expr.span.ctxt(); 7 ( 0.00%) let left_is_local = match ecx.eval_with_source(left, ctxt) { 161 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::eval_with_source (1x) . Some((c, s)) if !is_allowed(&c) => s.is_local(), . Some(_) => return, . None => true, . }; 8 ( 0.00%) let right_is_local = match ecx.eval_with_source(right, ctxt) { 161 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::eval_with_source (1x) . Some((c, s)) if !is_allowed(&c) => s.is_local(), . Some(_) => return, . None => true, . }; . . // Allow comparing the results of signum() . if is_signum(cx, left) && is_signum(cx, right) { . return; . } . 5 ( 0.00%) if let Some(name) = parent_item_name(cx, expr) { 144 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::parent_item_name (1x) . let name = name.as_str(); 1 ( 0.00%) if name == "eq" || name == "ne" || name == "is_nan" || name.starts_with("eq_") || name.ends_with("_eq") { . return; . } . } . let is_comparing_arrays = is_array(cx, left) || is_array(cx, right); . let (lint, msg) = get_lint_and_message(left_is_local && right_is_local, is_comparing_arrays); . span_lint_and_then(cx, lint, expr.span, msg, |diag| { . let lhs = Sugg::hir(cx, left, ".."); . let rhs = Sugg::hir(cx, right, ".."); -- line 100 ---------------------------------------- -- line 108 ---------------------------------------- . lhs - rhs, . if op == BinOpKind::Eq { '<' } else { '>' } . ), . Applicability::HasPlaceholders, // snippet . ); . } . }); . } 3,328 ( 0.00%) } . . fn get_lint_and_message(is_local: bool, is_comparing_arrays: bool) -> (&'static rustc_lint::Lint, &'static str) { . if is_local { . ( . FLOAT_CMP, . if is_comparing_arrays { . "strict comparison of `f32` or `f64` arrays" . } else { -- line 124 ---------------------------------------- -- line 149 ---------------------------------------- . }), . _ => false, . } . } . . // Return true if `expr` is the result of `signum()` invoked on a float value. . fn is_signum(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool { . // The negation of a signum is still a signum 3 ( 0.00%) if let ExprKind::Unary(UnOp::Neg, child_expr) = expr.kind { . return is_signum(cx, child_expr); . } . 2 ( 0.00%) if let ExprKind::MethodCall(method_name, self_arg, [], _) = expr.kind . && method_name.ident.name == sym::signum . // Check that the receiver of the signum() is a float (expressions[0] is the receiver of . // the method call) . { . return is_float(cx, self_arg); . } . false . } . . fn is_float(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool { 129 ( 0.00%) let value = &cx.typeck_results().expr_ty(expr).peel_refs().kind(); 1,400 ( 0.00%) => ???:::expr_ty (35x) . . if let ty::Array(arr_ty, _) = value { . return matches!(arr_ty.kind(), ty::Float(_)); . } . . matches!(value, ty::Float(_)) . } . -- line 180 ---------------------------------------- 298 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs -------------------------------------------------------------------------------- Ir -- line 24 ---------------------------------------- . pub(super) trait SpecFromIter { . fn from_iter(iter: I) -> Self; . } . . impl SpecFromIter for Vec . where . I: Iterator, . { 45,489 ( 0.00%) default fn from_iter(iterator: I) -> Self { 86,683 ( 0.00%) SpecFromIterNested::from_iter(iterator) 4,895 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:> as alloc::vec::spec_from_iter_nested::SpecFromIterNested, core::iter::adapters::filter_map::FilterMap, clippy_lints::matches::overlapping_arms::all_ranges::{closure#0}>>>::from_iter (5x) 40,926 ( 0.00%) } . } . . impl SpecFromIter> for Vec { . fn from_iter(iterator: IntoIter) -> Self { . // A common case is passing a vector into a function which immediately . // re-collects into a vector. We can short circuit this if the IntoIter . // has not been advanced at all. . // When it has been advanced We can also reuse the memory and move the data to the front. -- line 42 ---------------------------------------- 80 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/reference.rs -------------------------------------------------------------------------------- Ir -- line 34 ---------------------------------------- . pub DEREF_ADDROF, . complexity, . "use of `*&` or `*&mut` in an expression" . } . . declare_lint_pass!(DerefAddrOf => [DEREF_ADDROF]); . . impl LateLintPass<'_> for DerefAddrOf { 266,400 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'_>, e: &Expr<'_>) { 133,200 ( 0.00%) if !e.span.from_expansion() 203 ( 0.00%) && let ExprKind::Unary(UnOp::Deref, deref_target) = e.kind 134 ( 0.00%) && !deref_target.span.from_expansion() 134 ( 0.00%) && let ExprKind::AddrOf(_, _, addrof_target) = deref_target.kind . // NOTE(tesuji): `*&` forces rustc to const-promote the array to `.rodata` section. . // See #12854 for details. . && !matches!(addrof_target.kind, ExprKind::Array(_)) . && deref_target.span.eq_ctxt(e.span) . && !addrof_target.span.from_expansion() . { . let mut applicability = Applicability::MachineApplicable; . let mut sugg = || Sugg::hir_with_applicability(cx, addrof_target, "_", &mut applicability); -- line 54 ---------------------------------------- -- line 73 ---------------------------------------- . DEREF_ADDROF, . e.span, . "immediately dereferencing a reference", . "try", . sugg.to_string(), . applicability, . ); . } 266,400 ( 0.00%) } . } . . /// Is this a `ManuallyDrop` reached through a union, and when is `DerefMut` called on it? . enum ManuallyDropThroughUnion { . /// `ManuallyDrop` reached through a union and immediately explicitely dereferenced . Directly, . /// `ManuallyDrop` reached through a union, and dereferenced later on . Indirect, -- line 89 ---------------------------------------- 17,778 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/self_named_constructors.rs -------------------------------------------------------------------------------- Ir -- line 36 ---------------------------------------- . pub SELF_NAMED_CONSTRUCTORS, . style, . "method should not have the same name as the type it is implemented for" . } . . declare_lint_pass!(SelfNamedConstructors => [SELF_NAMED_CONSTRUCTORS]); . . impl<'tcx> LateLintPass<'tcx> for SelfNamedConstructors { 21,357 ( 0.00%) fn check_impl_item(&mut self, cx: &LateContext<'tcx>, impl_item: &'tcx ImplItem<'_>) { 6,102 ( 0.00%) match impl_item.kind { . ImplItemKind::Fn(ref sig, _) => { 7,938 ( 0.00%) if sig.decl.implicit_self().has_implicit_self() { 21,168 ( 0.00%) => ???:::implicit_self (2,646x) . return; . } . }, . _ => return, . } . 1,578 ( 0.00%) let parent = cx.tcx.hir_get_parent_item(impl_item.hir_id()).def_id; 26,730 ( 0.00%) => ???:::hir_get_parent_item (263x) 1,052 ( 0.00%) let item = cx.tcx.hir_expect_item(parent); 14,680 ( 0.00%) => ???:::hir_expect_item (263x) 526 ( 0.00%) let self_ty = cx.tcx.type_of(item.owner_id).instantiate_identity().skip_norm_wip(); 526 ( 0.00%) let ret_ty = return_ty(cx, impl_item.owner_id); 21,355 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::return_ty (263x) . . // Do not check trait impls 1,052 ( 0.00%) if matches!(item.kind, ItemKind::Impl(Impl { of_trait: Some(_), .. })) { . return; . } . . // Ensure method is constructor-like . if let Some(self_adt) = self_ty.ty_adt_def() { 92 ( 0.00%) if !contains_adt_constructor(ret_ty, self_adt) { 10,193 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::contains_adt_constructor (46x) . return; . } . } else if !ret_ty.contains(self_ty) { . return; . } . . if let Some(self_def) = self_ty.ty_adt_def() . && let Some(self_local_did) = self_def.did().as_local() 132 ( 0.00%) && let Node::Item(x) = cx.tcx.hir_node_by_def_id(self_local_did) 132 ( 0.00%) && let Some(type_ident) = x.kind.ident() 484 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/hir.rs:::ident (44x) 88 ( 0.00%) && let type_name = type_ident.name.as_str().to_lowercase() 8,221 ( 0.00%) => ???:::to_lowercase (44x) 45 ( 0.00%) && (impl_item.ident.name.as_str() == type_name 89 ( 0.00%) || impl_item.ident.name.as_str().replace('_', "") == type_name) 9,372 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/str.rs:::replace:: (44x) . { . span_lint( . cx, . SELF_NAMED_CONSTRUCTORS, . impl_item.span, . format!("constructor `{}` has the same name as the type", impl_item.ident.name), . ); . } 24,408 ( 0.00%) } . } 5,693 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/collections/hash/map.rs -------------------------------------------------------------------------------- Ir -- line 361 ---------------------------------------- . /// let mut map = HashMap::with_hasher(s); . /// map.insert(1, 2); . /// ``` . #[inline] . #[must_use] . #[stable(feature = "hashmap_build_hasher", since = "1.7.0")] . #[rustc_const_stable(feature = "const_collections_with_hasher", since = "1.85.0")] . pub const fn with_hasher(hash_builder: S) -> HashMap { 311,404 ( 0.00%) HashMap { base: base::HashMap::with_hasher(hash_builder) } . } . . /// Creates an empty `HashMap` with at least the specified capacity, using . /// `hasher` to hash the keys. . /// . /// The hash map will be able to hold at least `capacity` elements without . /// reallocating. This method is allowed to allocate for more elements than . /// `capacity`. If `capacity` is zero, the hash map will not allocate. -- line 377 ---------------------------------------- -- line 1006 ---------------------------------------- . /// assert_eq!(letters[&'s'], 2); . /// assert_eq!(letters[&'t'], 3); . /// assert_eq!(letters[&'u'], 1); . /// assert_eq!(letters.get(&'y'), None); . /// ``` . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . pub fn entry(&mut self, key: K) -> Entry<'_, K, V, A> { 460 ( 0.00%) map_entry(self.base.rustc_entry(key)) 17,820 ( 0.00%) => /rust/deps/hashbrown-0.17.1/src/rustc_entry.rs:>::rustc_entry (80x) . } . . /// Returns a reference to the value corresponding to the key. . /// . /// The key may be any borrowed form of the map's key type, but . /// [`Hash`] and [`Eq`] on the borrowed form *must* match those for . /// the key type. . /// -- line 1022 ---------------------------------------- -- line 1032 ---------------------------------------- . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . #[inline] . pub fn get(&self, k: &Q) -> Option<&V> . where . K: Borrow, . Q: Hash + Eq, . { 94 ( 0.00%) self.base.get(k) 188 ( 0.00%) => /rust/deps/hashbrown-0.17.1/src/raw.rs:>::get:: (47x) . } . . /// Returns the key-value pair corresponding to the supplied key. This is . /// potentially useful: . /// - for key types where non-identical keys can be considered equal; . /// - for getting the `&K` stored key value from a borrowed `&Q` lookup key; or . /// - for getting a reference to a key with the same lifetime as the collection. . /// -- line 1048 ---------------------------------------- -- line 1326 ---------------------------------------- . /// assert_eq!(map.insert(37, "c"), Some("b")); . /// assert_eq!(map[&37], "c"); . /// ``` . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_confusables("push", "append", "put")] . #[cfg_attr(not(test), rustc_diagnostic_item = "hashmap_insert")] . pub fn insert(&mut self, k: K, v: V) -> Option { 22,132 ( 0.00%) self.base.insert(k, v) 632 ( 0.00%) => /rust/deps/hashbrown-0.17.1/src/map.rs:>::insert (4x) . } . . /// Tries to insert a key-value pair into the map, and returns . /// a mutable reference to the value in the entry. . /// . /// If the map already had this key present, nothing is updated, and . /// an error containing the occupied entry, key, and the value is returned. . /// -- line 1342 ---------------------------------------- -- line 1388 ---------------------------------------- . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_confusables("delete", "take")] . pub fn remove(&mut self, k: &Q) -> Option . where . K: Borrow, . Q: Hash + Eq, . { 668 ( 0.00%) self.base.remove(k) . } . . /// Removes a key from the map, returning the stored key and value if the . /// key was previously in the map. . /// . /// The key may be any borrowed form of the map's key type, but . /// [`Hash`] and [`Eq`] on the borrowed form *must* match those for . /// the key type. -- line 1404 ---------------------------------------- -- line 1431 ---------------------------------------- . where . K: Clone, . V: Clone, . S: Clone, . A: Allocator + Clone, . { . #[inline] . fn clone(&self) -> Self { 184 ( 0.00%) Self { base: self.base.clone() } . } . . #[inline] . fn clone_from(&mut self, source: &Self) { . self.base.clone_from(&source.base); . } . } . -- line 1447 ---------------------------------------- -- line 3006 ---------------------------------------- . where . K: Eq + Hash, . S: BuildHasher + Default, . { . /// Constructs a `HashMap` from an iterator of key-value pairs. . /// . /// If the iterator produces any pairs with equal keys, . /// all but one of the corresponding values will be dropped. 169 ( 0.00%) fn from_iter>(iter: T) -> HashMap { . let mut map = HashMap::with_hasher(Default::default()); 13,075 ( 0.00%) map.extend(iter); 77 ( 0.00%) => ???:0x0000000000173dc0 (1x) 34,842 ( 0.00%) map 187 ( 0.00%) } . } . . /// Inserts all new key-values from the iterator and replaces values with existing . /// keys with new values returned from the iterator. . #[stable(feature = "rust1", since = "1.0.0")] . impl Extend<(K, V)> for HashMap . where . K: Eq + Hash, . S: BuildHasher, . A: Allocator, . { . #[inline] . fn extend>(&mut self, iter: T) { 4 ( 0.00%) self.base.extend(iter) 4,294 ( 0.00%) => /rust/deps/hashbrown-0.17.1/src/map.rs: as core::iter::traits::collect::Extend<(clippy_config::types::SourceItemOrderingModuleItemKind, alloc::string::String)>>::extend::<[(clippy_config::types::SourceItemOrderingModuleItemKind, alloc::string::String); 16]> (1x) 3,718 ( 0.00%) => /rust/deps/hashbrown-0.17.1/src/map.rs: as core::iter::traits::collect::Extend<(clippy_config::types::SourceItemOrderingModuleItemKind, usize)>>::extend::<[(clippy_config::types::SourceItemOrderingModuleItemKind, usize); 16]> (1x) . } . . #[inline] . fn extend_one(&mut self, (k, v): (K, V)) { . self.base.insert(k, v); . } . . #[inline] -- line 3040 ---------------------------------------- -- line 3066 ---------------------------------------- . Extend::<(K, V)>::extend_reserve(self, additional) . } . } . . #[inline] . fn map_entry<'a, K: 'a, V: 'a, A: Allocator>( . raw: base::RustcEntry<'a, K, V, A>, . ) -> Entry<'a, K, V, A> { 434 ( 0.00%) match raw { . base::RustcEntry::Occupied(base) => Entry::Occupied(OccupiedEntry { base }), 264 ( 0.00%) base::RustcEntry::Vacant(base) => Entry::Vacant(VacantEntry { base }), . } . } . . #[inline] . pub(super) fn map_try_reserve_error(err: hashbrown::TryReserveError) -> TryReserveError { . match err { . hashbrown::TryReserveError::CapacityOverflow => { . TryReserveErrorKind::CapacityOverflow.into() -- line 3084 ---------------------------------------- 128,129 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/infinite_iter.rs -------------------------------------------------------------------------------- Ir -- line 48 ---------------------------------------- . pub MAYBE_INFINITE_ITER, . pedantic, . "possible infinite iteration" . } . . declare_lint_pass!(InfiniteIter => [INFINITE_ITER, MAYBE_INFINITE_ITER]); . . impl<'tcx> LateLintPass<'tcx> for InfiniteIter { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 12 ( 0.00%) let (lint, msg) = match complete_infinite_iter(cx, expr) { . Infinite => (INFINITE_ITER, "infinite iteration detected"), . MaybeInfinite => (MAYBE_INFINITE_ITER, "possible infinite iteration detected"), . Finite => { . return; . }, . }; . span_lint(cx, lint, expr.span, msg); 266,400 ( 0.00%) } . } . . #[derive(Copy, Clone, Debug, PartialEq, Eq)] . enum Finiteness { . Infinite, . MaybeInfinite, . Finite, . } . . use self::Finiteness::{Finite, Infinite, MaybeInfinite}; . . impl Finiteness { . #[must_use] . fn and(self, b: Self) -> Self { 654 ( 0.00%) match (self, b) { . (Finite, _) | (_, Finite) => Finite, . (MaybeInfinite, _) | (_, MaybeInfinite) => MaybeInfinite, . _ => Infinite, . } . } . . #[must_use] . fn or(self, b: Self) -> Self { -- line 88 ---------------------------------------- -- line 91 ---------------------------------------- . (MaybeInfinite, _) | (_, MaybeInfinite) => MaybeInfinite, . _ => Finite, . } . } . } . . impl From for Finiteness { . fn from(b: bool) -> Self { 3 ( 0.00%) if b { Infinite } else { Finite } . } . } . . /// This tells us what to look for to know if the iterator returned by . /// this method is infinite . #[derive(Copy, Clone)] . enum Heuristic { . /// infinite no matter what -- line 107 ---------------------------------------- -- line 138 ---------------------------------------- . (sym::filter, 1, First, Infinite), . (sym::filter_map, 1, First, Infinite), . (sym::flat_map, 1, First, Infinite), . (sym::unzip, 0, First, Infinite), . (sym::take_while, 1, First, MaybeInfinite), . (sym::scan, 2, First, MaybeInfinite), . ]; . 6,560 ( 0.00%) fn is_infinite(cx: &LateContext<'_>, expr: &Expr<'_>) -> Finiteness { 5,248 ( 0.00%) match expr.kind { 32 ( 0.00%) ExprKind::MethodCall(method, receiver, args, _) => { . for &(name, len, heuristic, cap) in &HEURISTICS { 304 ( 0.00%) if method.ident.name == name && args.len() == len { . return (match heuristic { . Always => Infinite, . First => is_infinite(cx, receiver), . Any => is_infinite(cx, receiver).or(is_infinite(cx, &args[0])), . All => is_infinite(cx, receiver).and(is_infinite(cx, &args[0])), . }) . .and(cap); . } -- line 158 ---------------------------------------- -- line 163 ---------------------------------------- . { . let body = cx.tcx.hir_body(body); . return is_infinite(cx, body.value); . } . Finite . }, . ExprKind::Block(block, _) => block.expr.as_ref().map_or(Finite, |e| is_infinite(cx, e)), . ExprKind::AddrOf(BorrowKind::Ref, _, e) => is_infinite(cx, e), 1 ( 0.00%) ExprKind::Call(path, _) => { 3 ( 0.00%) if let ExprKind::Path(ref qpath) = path.kind { 6 ( 0.00%) cx.qpath_res(qpath, path.hir_id) 23 ( 0.00%) => ???:::qpath_res (1x) . .opt_def_id() 3 ( 0.00%) .is_some_and(|id| cx.tcx.is_diagnostic_item(sym::iter_repeat, id)) 90 ( 0.00%) => ???:::is_diagnostic_item (1x) . .into() . } else { . Finite . } . }, . ExprKind::Struct(..) => higher::Range::hir(cx, expr).is_some_and(|r| r.end.is_none()).into(), . _ => Finite, . } 4,592 ( 0.00%) } . . /// the names and argument lengths of methods that *may* exhaust their . /// iterators . const POSSIBLY_COMPLETING_METHODS: [(Symbol, usize); 6] = [ . (sym::find, 1), . (sym::rfind, 1), . (sym::position, 1), . (sym::rposition, 1), -- line 192 ---------------------------------------- -- line 207 ---------------------------------------- . (sym::min, 0), . (sym::min_by, 1), . (sym::min_by_key, 1), . (sym::sum, 0), . (sym::product, 0), . ]; . . fn complete_infinite_iter(cx: &LateContext<'_>, expr: &Expr<'_>) -> Finiteness { 221,168 ( 0.00%) match expr.kind { 11,427 ( 0.00%) ExprKind::MethodCall(method, receiver, args, _) => { 3,809 ( 0.00%) let method_str = method.ident.name; . for &(name, len) in &COMPLETING_METHODS { 83,758 ( 0.00%) if method_str == name && args.len() == len { . return is_infinite(cx, receiver); . } . } . for &(name, len) in &POSSIBLY_COMPLETING_METHODS { 29,730 ( 0.00%) if method_str == name && args.len() == len { . return MaybeInfinite.and(is_infinite(cx, receiver)); . } . } 7,614 ( 0.00%) if method.ident.name == sym::last && args.is_empty() { . let not_double_ended = cx . .tcx . .get_diagnostic_item(sym::DoubleEndedIterator) . .is_some_and(|id| !implements_trait(cx, cx.typeck_results().expr_ty(receiver), id, &[])); . if not_double_ended { . return is_infinite(cx, receiver); . } 3,807 ( 0.00%) } else if method.ident.name == sym::collect { . let ty = cx.typeck_results().expr_ty(expr); . if matches!( . ty.opt_diag_name(cx), . Some( . sym::BinaryHeap . | sym::BTreeMap . | sym::BTreeSet . | sym::HashMap -- line 244 ---------------------------------------- -- line 247 ---------------------------------------- . | sym::Vec . | sym::VecDeque, . ) . ) { . return is_infinite(cx, receiver); . } . } . }, 654 ( 0.00%) ExprKind::Binary(op, l, r) if op.node.is_comparison() => { 1,962 ( 0.00%) return is_infinite(cx, l).and(is_infinite(cx, r)).and(MaybeInfinite); 17,459 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/infinite_iter.rs:clippy_lints::infinite_iter::is_infinite (654x) . }, // TODO: ExprKind::Loop + Match . _ => (), . } . Finite . } 34,515 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/redundant_async_block.rs -------------------------------------------------------------------------------- Ir -- line 35 ---------------------------------------- . pub REDUNDANT_ASYNC_BLOCK, . complexity, . "`async { future.await }` can be replaced by `future`" . } . . declare_lint_pass!(RedundantAsyncBlock => [REDUNDANT_ASYNC_BLOCK]); . . impl<'tcx> LateLintPass<'tcx> for RedundantAsyncBlock { 399,600 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 44,400 ( 0.00%) let span = expr.span; 177,600 ( 0.00%) if !span.in_external_macro(cx.tcx.sess.source_map()) && 344,112 ( 0.00%) let Some(body_expr) = desugar_async_block(cx, expr) && 431,176 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/redundant_async_block.rs:clippy_lints::redundant_async_block::desugar_async_block (43,014x) . let Some(expr) = desugar_await(peel_blocks(body_expr)) && . // The await prefix must not come from a macro as its content could change in the future. . expr.span.eq_ctxt(body_expr.span) && . // The await prefix must implement Future, as implementing IntoFuture is not enough. . let Some(future_trait) = cx.tcx.lang_items().future_trait() && . implements_trait(cx, cx.typeck_results().expr_ty(expr), future_trait, &[]) && . // An async block does not have immediate side-effects from a `.await` point-of-view. . (!expr.can_have_side_effects() || desugar_async_block(cx, expr).is_some()) && -- line 54 ---------------------------------------- -- line 59 ---------------------------------------- . REDUNDANT_ASYNC_BLOCK, . span, . "this async expression only awaits a single future", . "you can reduce it to", . snippet(cx, shortened_span, "..").into_owned(), . Applicability::MachineApplicable, . ); . } 355,200 ( 0.00%) } . } . . /// If `expr` is a desugared `async` block, return the original expression if it does not capture . /// any variable by ref. 129,042 ( 0.00%) fn desugar_async_block<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) -> Option<&'tcx Expr<'tcx>> { 86,028 ( 0.00%) if let ExprKind::Closure(Closure { body, def_id, kind, .. }) = expr.kind 42 ( 0.00%) && let body = cx.tcx.hir_body(*body) 938 ( 0.00%) => ???:::hir_body (14x) 28 ( 0.00%) && matches!( . kind, . ClosureKind::Coroutine(CoroutineKind::Desugared( . CoroutineDesugaring::Async, . CoroutineSource::Block . )) . ) . { . cx.typeck_results() -- line 83 ---------------------------------------- -- line 89 ---------------------------------------- . .iter() . .all(|place| matches!(place.info.capture_kind, UpvarCapture::ByValue)) . }) . }) . .then_some(body.value) . } else { . None . } 172,056 ( 0.00%) } 43,042 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/manual_non_exhaustive.rs -------------------------------------------------------------------------------- Ir -- line 66 ---------------------------------------- . pub struct ManualNonExhaustive { . msrv: Msrv, . constructed_enum_variants: FxHashSet, . potential_enums: Vec<(LocalDefId, LocalDefId, Span, Span)>, . } . . impl ManualNonExhaustive { . pub fn new(conf: &'static Conf) -> Self { 8 ( 0.00%) Self { . msrv: conf.msrv.into(), . constructed_enum_variants: FxHashSet::default(), . potential_enums: Vec::new(), . } . } . } . . impl<'tcx> LateLintPass<'tcx> for ManualNonExhaustive { 16,522 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'_>) { 14,810 ( 0.00%) if !cx.effective_visibilities.is_exported(item.owner_id.def_id) || !self.msrv.meets(cx, msrvs::NON_EXHAUSTIVE) { 81,249 ( 0.00%) => ???:::is_exported (1,502x) 19,332 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/msrvs.rs:::meets (716x) . return; . } . . match item.kind { . ItemKind::Enum(_, _, def) if def.variants.len() > 1 => { . let iter = def.variants.iter().filter_map(|v| { . (matches!(v.data, VariantData::Unit(_, _)) && is_doc_hidden(cx.tcx.hir_attrs(v.hir_id))) . .then_some((v.def_id, v.span)) -- line 92 ---------------------------------------- -- line 142 ---------------------------------------- . // ``` . diag.span_help(field.span, "remove this field"); . }, . ); . } . }, . _ => {}, . } 12,016 ( 0.00%) } . . fn check_expr(&mut self, cx: &LateContext<'tcx>, e: &'tcx Expr<'_>) { 162,778 ( 0.00%) if let ExprKind::Path(QPath::Resolved(None, p)) = &e.kind 83,217 ( 0.00%) && let Res::Def(DefKind::Ctor(CtorOf::Variant, CtorKind::Const), ctor_id) = p.res . && let Some(local_ctor) = ctor_id.as_local() . { 405 ( 0.00%) let variant_id = cx.tcx.local_parent(local_ctor); 6,210 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/ty/mod.rs:::local_parent:: (135x) . self.constructed_enum_variants.insert(variant_id); . } . } . 8 ( 0.00%) fn check_crate_post(&mut self, cx: &LateContext<'tcx>) { . for (enum_id, _, enum_span, variant_span) in std::mem::take(&mut self.potential_enums) . .into_iter() . .filter(|(_, variant_id, _, _)| !self.constructed_enum_variants.contains(variant_id)) . { . let hir_id = cx.tcx.local_def_id_to_hir_id(enum_id); . span_lint_hir_and_then( . cx, . MANUAL_NON_EXHAUSTIVE, -- line 170 ---------------------------------------- -- line 180 ---------------------------------------- . Applicability::MaybeIncorrect, . ); . // FIXME: Ideally this would be a suggestion, but the span for that is annoying to get. . // See the comment above for examples. . diag.span_help(variant_span, "remove this variant"); . }, . ); . } 8 ( 0.00%) } . } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/eta_reduction.rs -------------------------------------------------------------------------------- Ir -- line 67 ---------------------------------------- . . declare_lint_pass!(EtaReduction => [ . REDUNDANT_CLOSURE, . REDUNDANT_CLOSURE_FOR_METHOD_CALLS, . ]); . . impl<'tcx> LateLintPass<'tcx> for EtaReduction { . fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &Expr<'tcx>) { 169,233 ( 0.00%) if let ExprKind::MethodCall(_method, receiver, args, _) = expr.kind { . for arg in args { 8,187 ( 0.00%) check_closure(cx, Some(receiver), arg); 56,636 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/eta_reduction.rs:clippy_lints::eta_reduction::check_closure (2,729x) . } . } 18,264 ( 0.00%) if let ExprKind::Call(func, args) = expr.kind { 18,264 ( 0.00%) check_closure(cx, None, func); 109,584 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/eta_reduction.rs:clippy_lints::eta_reduction::check_closure (6,088x) . for arg in args { 21,498 ( 0.00%) check_closure(cx, None, arg); 128,988 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/eta_reduction.rs:clippy_lints::eta_reduction::check_closure (7,166x) . } . } . } . } . . #[expect(clippy::too_many_lines)] 127,864 ( 0.00%) fn check_closure<'tcx>(cx: &LateContext<'tcx>, outer_receiver: Option<&Expr<'tcx>>, expr: &Expr<'tcx>) { 31,980 ( 0.00%) let body = if let ExprKind::Closure(c) = expr.kind 41 ( 0.00%) && c.fn_decl.inputs.iter().all(|ty| matches!(ty.kind, TyKind::Infer(()))) 28 ( 0.00%) && matches!(c.fn_decl.output, FnRetTy::DefaultReturn(_)) 28 ( 0.00%) && !expr.span.from_expansion() . { 84 ( 0.00%) cx.tcx.hir_body(c.body) 938 ( 0.00%) => ???:::hir_body (14x) . } else { . return; . }; . 42 ( 0.00%) if body.value.span.from_expansion() { . if body.params.is_empty() . && let Some(VecArgs::Vec(&[])) = VecArgs::hir(cx, body.value) . { . let vec_crate = if is_no_std_crate(cx) { "alloc" } else { "std" }; . // replace `|| vec![]` with `Vec::new` . span_lint_hir_and_then( . cx, . REDUNDANT_CLOSURE, -- line 109 ---------------------------------------- -- line 119 ---------------------------------------- . ); . }, . ); . } . // skip `foo(|| macro!())` . return; . } . 70 ( 0.00%) if is_adjusted(cx, body.value) { 592 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_adjusted (14x) . return; . } . . let typeck = cx.typeck_results(); 42 ( 0.00%) let closure = if let ty::Closure(_, closure_subs) = typeck.expr_ty(expr).kind() { 576 ( 0.00%) => ???:::expr_ty (14x) 14 ( 0.00%) closure_subs.as_closure() . } else { . return; . }; 84 ( 0.00%) let closure_sig = cx.tcx.signature_unclosure(closure.sig(), Safety::Safe).skip_binder(); 2,895 ( 0.00%) => ???:::signature_unclosure (14x) 700 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_type_ir/src/ty_kind/closure.rs:>::sig (14x) 78 ( 0.00%) match body.value.kind { 56 ( 0.00%) ExprKind::Call(callee, args) 14 ( 0.00%) if matches!( 7 ( 0.00%) callee.kind, . ExprKind::Path(QPath::Resolved(..) | QPath::TypeRelative(..)) . ) => . { 21 ( 0.00%) let callee_ty_raw = typeck.expr_ty(callee); 280 ( 0.00%) => ???:::expr_ty (7x) . let callee_ty = callee_ty_raw.peel_refs(); . if matches!(callee_ty.opt_diag_name(cx), Some(sym::Arc | sym::Rc)) 63 ( 0.00%) || !check_inputs(typeck, body.params, None, args) 154 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/eta_reduction.rs:clippy_lints::eta_reduction::check_inputs (7x) . { . return; . } . . let callee_ty_adjustments = typeck.expr_adjustments(callee); . let callee_ty_adjusted = callee_ty_adjustments.last().map_or(callee_ty, |a| a.target); . . let sig = match *callee_ty_adjusted.kind() { -- line 156 ---------------------------------------- -- line 257 ---------------------------------------- . snippet, . Applicability::MachineApplicable, . ); . } . }, . ); . } . }, 27 ( 0.00%) ExprKind::MethodCall(path, self_, args, _) if check_inputs(typeck, body.params, Some(self_), args) => { 66 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/eta_reduction.rs:clippy_lints::eta_reduction::check_inputs (3x) . if let Some(method_def_id) = typeck.type_dependent_def_id(body.value.hir_id) . && !find_attr!(cx.tcx, method_def_id, TrackCaller(..)) . && check_sig(closure_sig, cx.tcx.fn_sig(method_def_id).skip_binder().skip_binder()) . { . let mut app = Applicability::MachineApplicable; . let generic_args = match path.args.and_then(GenericArgs::span_ext) { . Some(span) => format!("::{}", snippet_with_applicability(cx, span, "<..>", &mut app)), . None => String::new(), -- line 273 ---------------------------------------- -- line 289 ---------------------------------------- . app, . ); . }, . ); . } . }, . _ => (), . } 127,864 ( 0.00%) } . 80 ( 0.00%) fn check_inputs( . typeck: &TypeckResults<'_>, . params: &[Param<'_>], . self_arg: Option<&Expr<'_>>, . args: &[Expr<'_>], . ) -> bool { 50 ( 0.00%) params.len() == self_arg.map_or(0, |_| 1) + args.len() . && params.iter().zip(self_arg.into_iter().chain(args)).all(|(p, arg)| { . matches!( . p.pat.kind, . PatKind::Binding(BindingMode::NONE, id, _, None) . if arg.res_local_id() == Some(id) . ) . // Only allow adjustments which change regions (i.e. re-borrowing). . && typeck . .expr_adjustments(arg) . .last() . .is_none_or(|a| a.target == typeck.expr_ty(arg)) . }) 80 ( 0.00%) } . . fn check_sig<'tcx>(closure_sig: FnSig<'tcx>, call_sig: FnSig<'tcx>) -> bool { . call_sig.safety().is_safe() && !has_late_bound_to_non_late_bound_regions(closure_sig, call_sig) . } . . /// This walks through both signatures and checks for any time a late-bound region is expected by an . /// `impl Fn` type, but the target signature does not have a late-bound region in the same position. . /// -- line 326 ---------------------------------------- 9,951 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/neg_cmp_op_on_partial_ord.rs -------------------------------------------------------------------------------- Ir -- line 38 ---------------------------------------- . pub NEG_CMP_OP_ON_PARTIAL_ORD, . complexity, . "The use of negated comparison operators on partially ordered types may produce confusing code." . } . . declare_lint_pass!(NoNegCompOpForPartialOrd => [NEG_CMP_OP_ON_PARTIAL_ORD]); . . impl<'tcx> LateLintPass<'tcx> for NoNegCompOpForPartialOrd { 310,800 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 89,079 ( 0.00%) if let ExprKind::Unary(UnOp::Not, inner) = expr.kind 10 ( 0.00%) && let ExprKind::Binary(ref op, left, _) = inner.kind 12 ( 0.00%) && let BinOpKind::Le | BinOpKind::Ge | BinOpKind::Lt | BinOpKind::Gt = op.node . && !expr.span.in_external_macro(cx.sess().source_map()) . { . let ty = cx.typeck_results().expr_ty(left); . . let implements_ord = { . if let Some(id) = cx.tcx.get_diagnostic_item(sym::Ord) { . implements_trait(cx, ty, id, &[]) . } else { -- line 57 ---------------------------------------- -- line 74 ---------------------------------------- . expr.span, . "the use of negated comparison operators on partially ordered \ . types produces code that is hard to read and refactor, please \ . consider using the `partial_cmp` method instead, to make it \ . clear that the two values could be incomparable", . ); . } . } 355,200 ( 0.00%) } . } 16 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/match_result_ok.rs -------------------------------------------------------------------------------- Ir -- line 39 ---------------------------------------- . pub MATCH_RESULT_OK, . style, . "usage of `ok()` in `let Some(pat)` statements is unnecessary, match on `Ok(pat)` instead" . } . . declare_lint_pass!(MatchResultOk => [MATCH_RESULT_OK]); . . impl<'tcx> LateLintPass<'tcx> for MatchResultOk { 444,000 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 326 ( 0.00%) let (let_pat, let_expr, ifwhile) = 177,738 ( 0.00%) if let Some(higher::IfLet { let_pat, let_expr, .. }) = higher::IfLet::hir(cx, expr) { 265,433 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir (44,400x) . (let_pat, let_expr, "if") . } else if let Some(higher::WhileLet { let_pat, let_expr, .. }) = higher::WhileLet::hir(expr) { . (let_pat, let_expr, "while") . } else { . return; . }; . 359 ( 0.00%) if let ExprKind::MethodCall(ok_path, recv, [], ..) = let_expr.kind //check is expr.ok() has type Result.ok(, _) 2 ( 0.00%) && ok_path.ident.name == sym::ok . && cx.typeck_results().expr_ty(recv).is_diag_item(cx, sym::Result) . && let Some([ok_pat]) = as_some_pattern(cx, let_pat) //get operation . && let ctxt = expr.span.ctxt() . && let_expr.span.ctxt() == ctxt . && let_pat.span.ctxt() == ctxt . { . let mut applicability = Applicability::MachineApplicable; . let some_expr_string = snippet_with_context(cx, ok_pat.span, ctxt, "", &mut applicability).0; -- line 66 ---------------------------------------- -- line 74 ---------------------------------------- . MATCH_RESULT_OK, . expr.span.with_hi(let_expr.span.hi()), . "matching on `Some` with `ok()` is redundant", . format!("consider matching on `Ok({some_expr_string})` and removing the call to `ok` instead"), . sugg, . applicability, . ); . } 355,200 ( 0.00%) } . } 276 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/char/methods.rs -------------------------------------------------------------------------------- Ir -- line 897 ---------------------------------------- . /// assert!(!CAPITAL_DELTA_IS_LOWERCASE); . /// ``` . #[must_use] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_stable(feature = "const_unicode_case_lookup", since = "1.84.0")] . #[inline] . pub const fn is_lowercase(self) -> bool { . match self { 260 ( 0.00%) 'a'..='z' => true, . '\0'..='\u{A9}' => false, . _ => unicode::Lowercase(self), . } . } . . /// Returns `true` if this `char` is in the general category for titlecase letters. . /// Conceptually, these characters consist of an uppercase portion followed by a lowercase portion. . /// -- line 913 ---------------------------------------- -- line 973 ---------------------------------------- . /// assert!(CAPITAL_DELTA_IS_UPPERCASE); . /// ``` . #[must_use] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_stable(feature = "const_unicode_case_lookup", since = "1.84.0")] . #[inline] . pub const fn is_uppercase(self) -> bool { . match self { 31,835 ( 0.00%) 'A'..='Z' => true, 19,658 ( 0.00%) '\0'..='\u{BF}' => false, . _ => unicode::Uppercase(self), . } . } . . /// Returns `true` if this `char` has one of the general categories for numbers. . /// . /// The general categories for numbers (`Nd` for decimal digits, `Nl` for letter-like numeric . /// characters, and `No` for other numeric characters) are [specified] in the Unicode Character -- line 990 ---------------------------------------- -- line 1017 ---------------------------------------- . /// assert!(!'藏'.is_numeric()); . /// assert!(!'三'.is_numeric()); . /// ``` . #[must_use] . #[stable(feature = "rust1", since = "1.0.0")] . #[inline] . pub fn is_numeric(self) -> bool { . match self { 264 ( 0.00%) '0'..='9' => true, 190 ( 0.00%) '\0'..='\u{B1}' => false, . _ => unicode::N(self), . } . } . . /// Returns `true` if this `char` satisfies either [`is_alphabetic()`] or [`is_numeric()`]. . /// . /// [`is_alphabetic()`]: Self::is_alphabetic . /// [`is_numeric()`]: Self::is_numeric -- line 1034 ---------------------------------------- -- line 1080 ---------------------------------------- . /// . /// assert!(!'越'.is_whitespace()); . /// ``` . #[must_use] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_stable(feature = "const_char_classify", since = "1.87.0")] . #[inline] . pub const fn is_whitespace(self) -> bool { 1,447,968 ( 0.02%) match self { . ' ' | '\x09'..='\x0d' => true, 71,372 ( 0.00%) '\0'..='\u{84}' => false, . _ => unicode::White_Space(self), . } . } . . /// Returns `true` if this `char` has the general category for control codes. . /// . /// Control codes (code points with the general category of `Cc`) are [described] in Chapter 23 . /// (Special Areas and Format Characters) of the Unicode Standard, and [specified] in the Unicode Character -- line 1098 ---------------------------------------- -- line 1414 ---------------------------------------- . /// holds across languages. . /// . /// [`SpecialCasing.txt`]: https://www.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt . #[must_use = "this returns the lowercased character as a new iterator, \ . without modifying the original"] . #[stable(feature = "rust1", since = "1.0.0")] . #[inline] . pub fn to_lowercase(self) -> ToLowercase { 189 ( 0.00%) ToLowercase(CaseMappingIter::new(conversions::to_lower(self))) 1,323 ( 0.00%) => ???:core::unicode::unicode_data::conversions::to_lower (63x) . } . . /// Returns an iterator that yields the titlecase mapping of this `char` as one or more . /// `char`s. . /// . /// This is usually, but not always, equivalent to the uppercase mapping . /// returned by [`to_uppercase()`]. Prefer this method when seeking to capitalize . /// Only The First Letter of a word, but use [`to_uppercase()`] for ALL CAPS. -- line 1430 ---------------------------------------- -- line 1703 ---------------------------------------- . /// holds across languages. . /// . /// [`to_titlecase()`]: Self::to_titlecase() . #[must_use = "this returns the uppercased character as a new iterator, \ . without modifying the original"] . #[stable(feature = "rust1", since = "1.0.0")] . #[inline] . pub fn to_uppercase(self) -> ToUppercase { 804 ( 0.00%) ToUppercase(CaseMappingIter::new(conversions::to_upper(self))) 5,896 ( 0.00%) => ???:core::unicode::unicode_data::conversions::to_upper (268x) . } . . /// Returns an iterator that yields the case folding of this `char` as one or more . /// `char`s. . /// . /// Case folding is meant to be used when performing case-insensitive string comparisons. . /// Case-folded strings should not usually be exposed directly to users. For most, . /// but not all, characters, the casefold mapping is identical to the lowercase one. -- line 1719 ---------------------------------------- -- line 2206 ---------------------------------------- . /// assert!(!lf.is_ascii_digit()); . /// assert!(!esc.is_ascii_digit()); . /// ``` . #[must_use] . #[stable(feature = "ascii_ctype_on_intrinsics", since = "1.24.0")] . #[rustc_const_stable(feature = "const_ascii_ctype_on_intrinsics", since = "1.47.0")] . #[inline] . pub const fn is_ascii_digit(&self) -> bool { 15,898 ( 0.00%) matches!(*self, '0'..='9') . } . . /// Checks if the value is an ASCII octal digit: . /// U+0030 '0' ..= U+0037 '7'. . /// . /// # Examples . /// . /// ``` -- line 2222 ---------------------------------------- -- line 2475 ---------------------------------------- . escape_double_quote: true, . }; . } . . #[inline] . #[must_use] . const fn len_utf8(code: u32) -> usize { . match code { 4,796 ( 0.00%) ..MAX_ONE_B => 1, . ..MAX_TWO_B => 2, . ..MAX_THREE_B => 3, . _ => 4, . } . } . . #[inline] . #[must_use] -- line 2491 ---------------------------------------- -- line 2547 ---------------------------------------- . #[doc(hidden)] . #[inline] . pub const unsafe fn encode_utf8_raw_unchecked(code: u32, dst: *mut u8) { . let len = len_utf8(code); . // SAFETY: The caller must guarantee that the buffer pointed to by `dst` . // is at least `len` bytes long. . unsafe { . if len == 1 { 4,231 ( 0.00%) *dst = code as u8; . return; . } . . let last1 = (code >> 0 & 0x3F) as u8 | TAG_CONT; . let last2 = (code >> 6 & 0x3F) as u8 | TAG_CONT; . let last3 = (code >> 12 & 0x3F) as u8 | TAG_CONT; . let last4 = (code >> 18 & 0x3F) as u8 | TAG_FOUR_B; . -- line 2563 ---------------------------------------- 1,736 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/slow_vector_initialization.rs -------------------------------------------------------------------------------- Ir -- line 95 ---------------------------------------- . . /// Resize is a slow initialization with the form `vec.resize(.., 0)` . Resize(&'tcx Expr<'tcx>), . } . . impl<'tcx> LateLintPass<'tcx> for SlowVectorInit { . fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { . // Matches initialization on reassignments. For example: `vec = Vec::with_capacity(100)` 88,854 ( 0.00%) if let ExprKind::Assign(left, right, _) = expr.kind . && let Some(local_id) = left.res_local_id() 205 ( 0.00%) && let Some(size_expr) = Self::as_vec_initializer(cx, right) 11,611 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/slow_vector_initialization.rs:::as_vec_initializer (41x) . { . let vi = VecAllocation { . local_id, . allocation_expr: right, . size_expr, . }; . . Self::search_initialization(cx, vi, expr.hir_id); . } . } . . fn check_stmt(&mut self, cx: &LateContext<'tcx>, stmt: &'tcx Stmt<'_>) { . // Matches statements which initializes vectors. For example: `let mut vec = Vec::with_capacity(10)` . // or `Vec::new()` 5,028 ( 0.00%) if let StmtKind::Let(local) = stmt.kind 4,451 ( 0.00%) && let PatKind::Binding(BindingMode::MUT, local_id, _, None) = local.pat.kind 441 ( 0.00%) && let Some(init) = local.init 735 ( 0.00%) && let Some(size_expr) = Self::as_vec_initializer(cx, init) 54,873 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/slow_vector_initialization.rs:::as_vec_initializer (147x) . { 15 ( 0.00%) let vi = VecAllocation { . local_id, . allocation_expr: init, . size_expr, . }; . 25 ( 0.00%) Self::search_initialization(cx, vi, stmt.hir_id); 7,434 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/slow_vector_initialization.rs:::search_initialization (5x) . } . } . } . . impl SlowVectorInit { . /// Looks for `Vec::with_capacity(size)` or `Vec::new()` calls and returns the initialized size, . /// if any. More specifically, it returns: . /// - `Some(InitializedSize::Initialized(size))` for `Vec::with_capacity(size)` . /// - `Some(InitializedSize::Uninitialized)` for `Vec::new()` . /// - `None` for other, unrelated kinds of expressions 940 ( 0.00%) fn as_vec_initializer<'tcx>(cx: &LateContext<'_>, expr: &'tcx Expr<'tcx>) -> Option> { . // Generally don't warn if the vec initializer comes from an expansion, except for the vec! macro. . // This lets us still warn on `vec![]`, while ignoring other kinds of macros that may output an . // empty vec 1,216 ( 0.00%) if expr.span.from_expansion() && matching_root_macro_call(cx, expr.span, sym::vec_macro).is_none() { 58,478 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::matching_root_macro_call (140x) . return None; . } . 515 ( 0.00%) if let ExprKind::Call(func, [len_expr]) = expr.kind 26 ( 0.00%) && func.ty_rel_def(cx).is_diag_item(cx, sym::vec_with_capacity) . { . Some(InitializedSize::Initialized(len_expr)) 29 ( 0.00%) } else if let ExprKind::Call(func, []) = expr.kind 6 ( 0.00%) && func.ty_rel_def(cx).is_diag_item(cx, sym::vec_new) . { . Some(InitializedSize::Uninitialized) . } else { . None . } 940 ( 0.00%) } . . /// Search initialization for the given vector 45 ( 0.00%) fn search_initialization<'tcx>(cx: &LateContext<'tcx>, vec_alloc: VecAllocation<'tcx>, parent_node: HirId) { 15 ( 0.00%) let enclosing_body = get_enclosing_block(cx, parent_node); 1,145 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_enclosing_block (5x) . 5 ( 0.00%) if enclosing_body.is_none() { . return; . } . 35 ( 0.00%) let mut v = VectorInitializationVisitor { . cx, . vec_alloc, . slow_expression: None, . initialization_found: false, . }; . . v.visit_block(enclosing_body.unwrap()); . 10 ( 0.00%) if let Some(ref allocation_expr) = v.slow_expression { . Self::lint_initialization(cx, allocation_expr, &v.vec_alloc); . } 40 ( 0.00%) } . . fn lint_initialization<'tcx>( . cx: &LateContext<'tcx>, . initialization: &InitializationType<'tcx>, . vec_alloc: &VecAllocation<'_>, . ) { . match initialization { . InitializationType::Extend(e) | InitializationType::Resize(e) => { -- line 191 ---------------------------------------- -- line 240 ---------------------------------------- . . /// `true` if the initialization of the vector has been found on the visited block. . initialization_found: bool, . } . . impl<'tcx> VectorInitializationVisitor<'_, 'tcx> { . /// Checks if the given expression is extending a vector with `repeat(0).take(..)` . fn search_slow_extend_filling(&mut self, expr: &'tcx Expr<'_>) { 5 ( 0.00%) if self.initialization_found . && let ExprKind::MethodCall(path, self_arg, [extend_arg], _) = expr.kind . && self_arg.res_local_id() == Some(self.vec_alloc.local_id) . && path.ident.name == sym::extend . && self.is_repeat_take(extend_arg) . { . self.slow_expression = Some(InitializationType::Extend(expr)); . } . } . . /// Checks if the given expression is resizing a vector with 0 . fn search_slow_resize_filling(&mut self, expr: &'tcx Expr<'tcx>) { 20 ( 0.00%) if self.initialization_found . && let ExprKind::MethodCall(path, self_arg, [len_arg, fill_arg], _) = expr.kind . && self_arg.res_local_id() == Some(self.vec_alloc.local_id) . && path.ident.name == sym::resize . // Check that is filled with 0 . && is_integer_literal(fill_arg, 0) . { . let is_matching_resize = if let InitializedSize::Initialized(size_expr) = self.vec_alloc.size_expr { . // If we have a size expression, check that it is equal to what's passed to `resize` -- line 268 ---------------------------------------- -- line 308 ---------------------------------------- . true . } else { . false . } . } . } . . impl<'tcx> Visitor<'tcx> for VectorInitializationVisitor<'_, 'tcx> { 104 ( 0.00%) fn visit_stmt(&mut self, stmt: &'tcx Stmt<'_>) { 26 ( 0.00%) if self.initialization_found { 10 ( 0.00%) match stmt.kind { 5 ( 0.00%) StmtKind::Expr(expr) | StmtKind::Semi(expr) => { . self.search_slow_extend_filling(expr); . self.search_slow_resize_filling(expr); . }, . _ => (), . } . 5 ( 0.00%) self.initialization_found = false; . } else { . walk_stmt(self, stmt); . } 104 ( 0.00%) } . . fn visit_block(&mut self, block: &'tcx Block<'_>) { . if self.initialization_found { . if let Some(s) = block.stmts.first() { . self.visit_stmt(s); . } . . self.initialization_found = false; . } else { . walk_block(self, block); . } . } . . fn visit_expr(&mut self, expr: &'tcx Expr<'_>) { . // Skip all the expressions previous to the vector initialization 132 ( 0.00%) if self.vec_alloc.allocation_expr.hir_id == expr.hir_id { 5 ( 0.00%) self.initialization_found = true; . } . 131 ( 0.00%) walk_expr(self, expr); 4,300 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/intravisit.rs:rustc_hir::intravisit::walk_expr::'2 (25x) . } . } 605 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/functions/duplicate_underscore_argument.rs -------------------------------------------------------------------------------- Ir -- line 2 ---------------------------------------- . use rustc_ast::PatKind; . use rustc_ast::visit::FnKind; . use rustc_data_structures::fx::FxHashMap; . use rustc_lint::EarlyContext; . use rustc_span::Span; . . use super::DUPLICATE_UNDERSCORE_ARGUMENT; . 22,640 ( 0.00%) pub(super) fn check(cx: &EarlyContext<'_>, fn_kind: FnKind<'_>) { . let mut registered_names: FxHashMap = FxHashMap::default(); . . for arg in &fn_kind.decl().inputs { 50,493 ( 0.00%) if let PatKind::Ident(_, ident, None) = arg.pat.kind { . let arg_name = ident.to_string(); . 162 ( 0.00%) if let Some(arg_name) = arg_name.strip_prefix('_') { . if let Some(correspondence) = registered_names.get(arg_name) { . span_lint( . cx, . DUPLICATE_UNDERSCORE_ARGUMENT, . *correspondence, . format!( . "`{arg_name}` already exists, having another argument having almost the same \ . name makes code comprehension and documentation more difficult" . ), . ); . } . } else { 27,510 ( 0.00%) registered_names.insert(arg_name, arg.pat.span); . } . } . } 22,640 ( 0.00%) } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/needless_bool.rs -------------------------------------------------------------------------------- Ir -- line 118 ---------------------------------------- . return true; . } . inner = i; . } . false . } . . impl<'tcx> LateLintPass<'tcx> for NeedlessBool { 399,600 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, e: &'tcx Expr<'_>) { . use self::Expression::{Bool, RetBool}; 88,800 ( 0.00%) if !e.span.from_expansion() . && let Some(higher::If { . cond, . then, . r#else: Some(else_expr), . }) = higher::If::hir(e) 68 ( 0.00%) && !span_contains_comment(cx, e.span) . { . let reduce = |ret, not| { . span_lint_and_then( . cx, . NEEDLESS_BOOL, . e.span, . "this if-then-else expression returns a bool literal", . |diag| { -- line 142 ---------------------------------------- -- line 159 ---------------------------------------- . { . snip = snip.maybe_paren(); . } . . diag.span_suggestion(e.span, "you can reduce it to", snip.to_string(), applicability); . }, . ); . }; 116 ( 0.00%) if let Some(a) = fetch_bool_block(then) 1,187 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_lints::needless_bool::fetch_bool_block (29x) . && let Some(b) = fetch_bool_block(else_expr) . { . match (a, b) { . (RetBool(true), RetBool(true)) | (Bool(true), Bool(true)) => { . span_lint( . cx, . NEEDLESS_BOOL, . e.span, -- line 175 ---------------------------------------- -- line 186 ---------------------------------------- . }, . (RetBool(true), RetBool(false)) => reduce(true, false), . (Bool(true), Bool(false)) => reduce(false, false), . (RetBool(false), RetBool(true)) => reduce(true, true), . (Bool(false), Bool(true)) => reduce(false, true), . _ => (), . } . } 145 ( 0.00%) if let Some((lhs_a, a)) = fetch_assign(then) 613 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_lints::needless_bool::fetch_assign (29x) . && let Some((lhs_b, b)) = fetch_assign(else_expr) . && SpanlessEq::new(cx).eq_expr(SyntaxContext::root(), lhs_a, lhs_b) . { . let mut applicability = Applicability::MachineApplicable; . let cond = Sugg::hir_with_context(cx, cond, e.span.ctxt(), "..", &mut applicability); . let (lhs, _) = snippet_with_context(cx, lhs_a.span, e.span.ctxt(), "..", &mut applicability); . let mut sugg = if a == b { . format!("{cond}; {lhs} = {a:?};") -- line 202 ---------------------------------------- -- line 214 ---------------------------------------- . e.span, . "this if-then-else expression assigns a bool literal", . "you can reduce it to", . sugg, . applicability, . ); . } . } 355,200 ( 0.00%) } . 27,328 ( 0.00%) fn check_block(&mut self, cx: &LateContext<'tcx>, block: &'tcx Block<'tcx>) { . // Detect the early-return form: . // if c { . // return Ok(true); . // } . // Ok(false) . // and reduce it to `Ok(c)`. The optional `Ok(..)` wrapper can be any tuple-like . // constructor (or absent), as long as the guard and the trailing expression use the . // same one. Constructors are pure, so folding the condition in keeps the behavior. 11,712 ( 0.00%) if let Some(tail) = block.expr 6,862 ( 0.00%) && !tail.span.from_expansion() 2,742 ( 0.00%) && let [.., last_stmt] = block.stmts 727 ( 0.00%) && let StmtKind::Semi(if_expr) | StmtKind::Expr(if_expr) = last_stmt.kind 178 ( 0.00%) && !if_expr.span.from_expansion() . && let Some(higher::If { . cond, . then, . r#else: None, . }) = higher::If::hir(if_expr) 14 ( 0.00%) && let ExprKind::Ret(Some(ret)) = peel_blocks_with_stmt(then).kind 44 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::peel_blocks_with_stmt (2x) 6 ( 0.00%) && let Some((then_func, then_val)) = fetch_bool_and_wrapper(ret) 50 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/needless_bool.rs:clippy_lints::needless_bool::fetch_bool_and_wrapper (2x) . && let Some((tail_func, tail_val)) = fetch_bool_and_wrapper(tail) . // `if c { return Ok(true) } Ok(true)` is always the same value; the condition might . // have side effects, so don't touch it. Comparing the values here is cheap, so do it . // before the constructor resolution in `wrapper_ctors_match`, which needs `qpath_res`. . && then_val != tail_val . && wrapper_ctors_match(cx, then_func, tail_func) . { . let span = if_expr.span.to(tail.span); -- line 252 ---------------------------------------- -- line 274 ---------------------------------------- . NEEDLESS_BOOL, . span, . "this `if` guard returns a bool literal and is followed by another", . "you can reduce it to", . sugg, . applicability, . ); . } 31,232 ( 0.00%) } . } . . /// Returns the optional constructor call wrapping a bool literal (e.g. the `Ok` in `Ok(true)`) . /// along with the bool value. The constructor is returned as the unresolved callee expression; . /// resolving it to a `DefId` (via [`wrapper_ctors_match`]) needs `qpath_res`, which is . /// comparatively expensive, so callers should only do that once the cheap bool-value comparison . /// has passed. A bare bool literal yields `None`. . fn fetch_bool_and_wrapper<'tcx>(expr: &'tcx Expr<'tcx>) -> Option<(Option<&'tcx Expr<'tcx>>, bool)> { . let expr = peel_blocks(expr); . if let Some(value) = fetch_bool_expr(expr) { . return Some((None, value)); . } 12 ( 0.00%) if let ExprKind::Call(func, [arg]) = expr.kind . && let Some(value) = fetch_bool_expr(arg) . { . return Some((Some(func), value)); . } . None 2 ( 0.00%) } . . /// Checks whether two optional wrapper-constructor call expressions (as returned by . /// [`fetch_bool_and_wrapper`]) are absent on both sides, or call the same tuple-like constructor. . fn wrapper_ctors_match(cx: &LateContext<'_>, a: Option<&Expr<'_>>, b: Option<&Expr<'_>>) -> bool { . fn resolve_ctor(cx: &LateContext<'_>, func: &Expr<'_>) -> Option { . if let ExprKind::Path(qpath) = &func.kind . && let Res::Def(DefKind::Ctor(..), did) = cx.qpath_res(qpath, func.hir_id) . { -- line 309 ---------------------------------------- -- line 319 ---------------------------------------- . } . . enum Expression { . Bool(bool), . RetBool(bool), . } . . fn fetch_bool_block(expr: &Expr<'_>) -> Option { 87 ( 0.00%) match peel_blocks_with_stmt(expr).kind { . ExprKind::Ret(Some(ret)) => Some(Expression::RetBool(fetch_bool_expr(ret)?)), . _ => Some(Expression::Bool(fetch_bool_expr(expr)?)), . } 29 ( 0.00%) } . . fn fetch_bool_expr(expr: &Expr<'_>) -> Option { . if let ExprKind::Lit(lit_ptr) = peel_blocks(expr).kind 3 ( 0.00%) && let LitKind::Bool(value) = lit_ptr.node . { . return Some(value); . } . None . } . . fn fetch_assign<'tcx>(expr: &'tcx Expr<'tcx>) -> Option<(&'tcx Expr<'tcx>, bool)> { 116 ( 0.00%) if let ExprKind::Assign(lhs, rhs, _) = peel_blocks_with_stmt(expr).kind { . fetch_bool_expr(rhs).map(|b| (lhs, b)) . } else { . None . } 29 ( 0.00%) } . . fn is_as_argument(cx: &LateContext<'_>, e: &Expr<'_>) -> bool { . matches!(get_parent_expr(cx, e).map(|e| e.kind), Some(ExprKind::Cast(_, _))) . } . . fn is_operand_of_binary_or_unary(cx: &LateContext<'_>, e: &Expr<'_>) -> bool { . matches!( . get_parent_expr(cx, e).map(|e| e.kind), -- line 356 ---------------------------------------- 3,465 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/assertions_on_constants.rs -------------------------------------------------------------------------------- Ir -- line 39 ---------------------------------------- . } . impl AssertionsOnConstants { . pub fn new(conf: &Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl<'tcx> LateLintPass<'tcx> for AssertionsOnConstants { 444,000 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, e: &'tcx Expr<'_>) { 1,337 ( 0.00%) if let Some(macro_call) = root_macro_call_first_node(cx, e) 1,528 ( 0.00%) && let is_debug = match cx.tcx.get_diagnostic_name(macro_call.def_id) { 9,233 ( 0.00%) => ???:::get_diagnostic_name (191x) . Some(sym::debug_assert_macro) => true, . Some(sym::assert_macro) => false, . _ => return, . } . && let Some((condition, _)) = find_assert_args(cx, e, macro_call.expn) . // Check if the whole expression can be moved into a const context. . // Note that const eval can evaluate things which cannot be moved (e.g. `false && x`). . && is_const_evaluatable(cx.tcx, cx.typeck_results(), condition) -- line 57 ---------------------------------------- -- line 76 ---------------------------------------- . ( . "this assertion is always `false`", . "replace this with `panic!()` or `unreachable!()`", . ) . }; . . span_lint_and_help(cx, ASSERTIONS_ON_CONSTANTS, macro_call.span, msg, None, help); . } 355,200 ( 0.00%) } . } . . fn as_bool_lit(e: &Expr<'_>) -> Option { . if let ExprKind::Lit(l) = e.kind . && let LitKind::Bool(b) = l.node . { . Some(b) . } else { -- line 92 ---------------------------------------- 382 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/tabs_in_doc_comments.rs -------------------------------------------------------------------------------- Ir -- line 57 ---------------------------------------- . style, . "using tabs in doc comments is not recommended" . } . . declare_lint_pass!(TabsInDocComments => [TABS_IN_DOC_COMMENTS]); . . impl TabsInDocComments { . fn warn_if_tabs_in_doc(cx: &EarlyContext<'_>, attr: &ast::Attribute) { 14,146 ( 0.00%) if let ast::AttrKind::DocComment(_, comment) = attr.kind { . let comment = comment.as_str(); . . for (lo, hi) in get_chunks_of_tabs(comment) { . // +3 skips the opening delimiter . let new_span = Span::new( . attr.span.lo() + BytePos(3 + lo), . attr.span.lo() + BytePos(3 + hi), . attr.span.ctxt(), -- line 73 ---------------------------------------- -- line 83 ---------------------------------------- . Applicability::MaybeIncorrect, . ); . } . } . } . } . . impl EarlyLintPass for TabsInDocComments { 42,736 ( 0.00%) fn check_attribute(&mut self, cx: &EarlyContext<'_>, attribute: &ast::Attribute) { . Self::warn_if_tabs_in_doc(cx, attribute); 42,736 ( 0.00%) } . } . . /// . /// scans the string for groups of tabs and returns the start(inclusive) and end positions . /// (exclusive) of all groups . /// e.g. "sd\tasd\t\taa" will yield [(2, 3), (6, 8)] as . /// 012 3456 7 89 . /// ^-^ ^---^ -- line 101 ---------------------------------------- 3,462 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/manual_rotate.rs -------------------------------------------------------------------------------- Ir -- line 52 ---------------------------------------- . f.write_str(match self { . Self::Left => "rotate_left", . Self::Right => "rotate_right", . }) . } . } . . fn parse_shift<'tcx>(expr: &'tcx Expr<'tcx>) -> Option<(ShiftDirection, &'tcx Expr<'tcx>, &'tcx Expr<'tcx>)> { 24 ( 0.00%) if let ExprKind::Binary(op, l, r) = expr.kind { . let dir = match op.node { . BinOpKind::Shl => ShiftDirection::Left, . BinOpKind::Shr => ShiftDirection::Right, . _ => return None, . }; . return Some((dir, l, r)); . } . None . } . . impl LateLintPass<'_> for ManualRotate { 310,800 ( 0.00%) fn check_expr<'tcx>(&mut self, cx: &LateContext<'tcx>, expr: &Expr<'tcx>) { 90,060 ( 0.00%) if let ExprKind::Binary(op, l, r) = expr.kind 1,248 ( 0.00%) && let BinOpKind::Add | BinOpKind::BitOr = op.node . && let Some((l_shift_dir, l_expr, l_amount)) = parse_shift(l) . && let Some((r_shift_dir, r_expr, r_amount)) = parse_shift(r) . && l_shift_dir != r_shift_dir . && let ctxt = expr.span.ctxt() . && clippy_utils::eq_expr_value(cx, ctxt, l_expr, r_expr) . && let Some(bit_width) = match cx.typeck_results().expr_ty(expr).kind() { . ty::Int(itype) => itype.bit_width(), . ty::Uint(itype) => itype.bit_width(), -- line 82 ---------------------------------------- -- line 130 ---------------------------------------- . expr.span, . "this expression can be rewritten as", . format!("{expr_sugg}.{shift_function}({amount})"), . applicability, . ); . }, . ); . } 355,200 ( 0.00%) } . } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/needless_question_mark.rs -------------------------------------------------------------------------------- Ir -- line 60 ---------------------------------------- . * Return statement . * A body's value (single line closure) . * . * What do we not match: . * Implicit calls to `from(..)` on the error value . */ . . fn check_expr(&mut self, cx: &LateContext<'_>, expr: &'_ Expr<'_>) { 95,241 ( 0.00%) if let ExprKind::Ret(Some(e)) = expr.kind { 6,441 ( 0.00%) check(cx, e); 497,966 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/needless_question_mark.rs:clippy_lints::needless_question_mark::check (2,147x) . } . } . . fn check_body(&mut self, cx: &LateContext<'_>, body: &'_ Body<'_>) { 14,104 ( 0.00%) if let ExprKind::Block( . Block { . expr: . Some(Expr { . kind: ExprKind::DropTemps(async_body), . .. . }), . .. . }, . _, 11,142 ( 0.00%) ) = body.value.kind . { . if let ExprKind::Block(Block { expr: Some(expr), .. }, ..) = async_body.kind { . check(cx, expr.peel_blocks()); . } . } else { . check(cx, body.value.peel_blocks()); . } . } . } . . fn check(cx: &LateContext<'_>, expr: &Expr<'_>) { 18,426 ( 0.00%) if let ExprKind::Call(path, [arg]) = expr.kind 16,086 ( 0.00%) && let Res::Def(DefKind::Ctor(..), ctor_id) = path.res(cx) . && let Some(variant_id) = cx.tcx.opt_parent(ctor_id) 6,152 ( 0.00%) && let variant = if cx.tcx.lang_items().option_some_variant() == Some(variant_id) { 79,410 ( 0.00%) => ???:::lang_items (2,647x) . "Some" 5,723 ( 0.00%) } else if cx.tcx.lang_items().result_ok_variant() == Some(variant_id) { 79,410 ( 0.00%) => ???:::lang_items (2,647x) . "Ok" . } else { . return; . } 858 ( 0.00%) && let ExprKind::Match(inner_expr_with_q, _, MatchSource::TryDesugar(_)) = &arg.kind . && let ExprKind::Call(called, [inner_expr]) = &inner_expr_with_q.kind . && let ExprKind::Path(qpath) = called.kind . && cx.tcx.qpath_is_lang_item(qpath, LangItem::TryTraitBranch) . && expr.span.eq_ctxt(inner_expr.span) . && let expr_ty = cx.typeck_results().expr_ty(expr) . && let inner_ty = cx.typeck_results().expr_ty(inner_expr) . && expr_ty == inner_ty . { -- line 114 ---------------------------------------- -- line 128 ---------------------------------------- . String::new(), . ), . ], . Applicability::MachineApplicable, . ); . }, . ); . } 5,111 ( 0.00%) } 30,812 ( 0.00%) -------------------------------------------------------------------------------- The following files chosen for auto-annotation could not be found: -------------------------------------------------------------------------------- /rust/deps/hashbrown-0.17.0/src/control/bitmask.rs /rust/deps/hashbrown-0.17.0/src/raw.rs /rust/deps/hashbrown-0.17.1/src/control/tag.rs /rust/deps/hashbrown-0.17.1/src/map.rs /rust/deps/hashbrown-0.17.1/src/raw.rs /rust/deps/indexmap-2.14.0/src/inner/entry.rs /rust/deps/indexmap-2.14.0/src/map.rs /rust/deps/parking_lot-0.12.5/src/raw_mutex.rs /rust/deps/pulldown-cmark-0.11.3/src/parse.rs /rust/deps/rustc-hash-2.1.1/src/lib.rs /rust/deps/scoped-tls-1.0.1/src/lib.rs /rust/deps/smallvec-1.15.1/src/lib.rs /rust/deps/thin-vec-0.2.19/src/lib.rs /rustc/84b36a78a28a63f134171c670be1932ffa2485f8/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/build/tikv-jemalloc-sys/80122c672fbe49ef/out/build/src/eset.c /rustc/84b36a78a28a63f134171c670be1932ffa2485f8/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/build/tikv-jemalloc-sys/80122c672fbe49ef/out/build/src/extent.c /rustc/84b36a78a28a63f134171c670be1932ffa2485f8/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/build/tikv-jemalloc-sys/80122c672fbe49ef/out/build/src/jemalloc.c /rustc/84b36a78a28a63f134171c670be1932ffa2485f8/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/build/tikv-jemalloc-sys/80122c672fbe49ef/out/build/src/pa.c /rustc/84b36a78a28a63f134171c670be1932ffa2485f8/obj/build/x86_64-unknown-linux-gnu/stage2-rustc/x86_64-unknown-linux-gnu/release/build/tikv-jemalloc-sys/80122c672fbe49ef/out/build/src/tcache.c include/jemalloc/internal/arena_inlines_b.h include/jemalloc/internal/atomic.h include/jemalloc/internal/bit_util.h include/jemalloc/internal/bitmap.h include/jemalloc/internal/cache_bin.h include/jemalloc/internal/div.h include/jemalloc/internal/edata.h include/jemalloc/internal/ehooks.h include/jemalloc/internal/emap.h include/jemalloc/internal/extent.h include/jemalloc/internal/fb.h include/jemalloc/internal/jemalloc_internal_inlines_a.h include/jemalloc/internal/jemalloc_internal_inlines_b.h include/jemalloc/internal/jemalloc_internal_inlines_c.h include/jemalloc/internal/mutex.h include/jemalloc/internal/pai.h include/jemalloc/internal/ph.h include/jemalloc/internal/rtree.h include/jemalloc/internal/sz.h include/jemalloc/internal/tcache_inlines.h include/jemalloc/internal/thread_event.h include/jemalloc/internal/ticker.h include/jemalloc/internal/tsd.h include/jemalloc/internal/tsd_tls.h include/jemalloc/internal/util.h src/arena.c src/base.c src/bitmap.c src/decay.c src/emap.c src/eset.c src/extent.c src/hook.c src/pa.c src/pac.c src/sz.c src/tcache.c src/thread_event.c -------------------------------------------------------------------------------- Ir -------------------------------------------------------------------------------- 335,310,788 ( 4.55%) events annotated