-------------------------------------------------------------------------------- Profile data file 'results/clgout-nightly-2026-08-14-syn-2.0.101-new-solver-Clippy-Full-Threads1' (creator: callgrind-3.25.1) -------------------------------------------------------------------------------- I1 cache: D1 cache: LL cache: Timerange: Basic block 0 - 687432624 Trigger: Program termination Profiled target: /home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver --crate-name syn --edition=2021 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="clone-impls" --cfg feature="default" --cfg feature="derive" --cfg feature="parsing" --cfg feature="printing" --cfg feature="proc-macro" --check-cfg cfg(docsrs,test) --check-cfg cfg(feature, values("clone-impls", "default", "derive", "extra-traits", "fold", "full", "parsing", "printing", "proc-macro", "test", "visit", "visit-mut")) -C metadata=1a6f1d00c9e689fc -C extra-filename=-661d9bc53cadef04 --out-dir /tmp/.tmptI17Jh/target/debug/deps -L dependency=/tmp/.tmptI17Jh/target/debug/deps --extern proc_macro2=/tmp/.tmptI17Jh/target/debug/deps/libproc_macro2-118a26b171366723.rmeta --extern quote=/tmp/.tmptI17Jh/target/debug/deps/libquote-e3e84a05ceeef45e.rmeta --extern unicode_ident=/tmp/.tmptI17Jh/target/debug/deps/libunicode_ident-1276b5caa63628a4.rmeta -Znext-solver=globally -Wclippy::all -Zthreads=1 -Adeprecated -Aunknown-lints -Zincremental-verify-ich (PID 724121, part 1) Events recorded: Ir Events shown: Ir Event sort order: Ir Thresholds: 99 Include dirs: User annotated: Auto-annotation: on -------------------------------------------------------------------------------- Ir -------------------------------------------------------------------------------- 4,069,194,321 (100.0%) PROGRAM TOTALS -------------------------------------------------------------------------------- Ir file:function -------------------------------------------------------------------------------- 110,126,426 ( 2.71%) ???:rustc_trait_selection::solve::normalize::deeply_normalize_with_skipped_universes_and_ambiguous_coroutine_goals:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 89,782,594 ( 2.21%) ???: as rustc_infer::traits::engine::TraitEngine>::try_evaluate_obligations [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 84,516,588 ( 2.08%) ???: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] 81,487,918 ( 2.00%) ???:0x0000000000173dc0 [/usr/lib/libc.so.6] 67,590,439 ( 1.66%) ???:>::evaluate_goal_no_fast_paths [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,671,107 ( 1.52%) ???:::intern_predicate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 57,521,699 ( 1.41%) ???:::intern_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 49,633,013 ( 1.22%) ???:rustc_borrowck::borrowck_check_region_constraints [???] 49,149,282 ( 1.21%) include/jemalloc/internal/rtree.h:free 47,920,893 ( 1.18%) ???: as rustc_infer::traits::engine::TraitEngine>::collect_remaining_errors [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 46,039,015 ( 1.13%) ???: as rustc_infer::traits::engine::TraitEngine>::try_evaluate_obligations [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 43,974,798 ( 1.08%) ???:rustc_next_trait_solver::canonical::instantiate_and_apply_query_response:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 35,571,235 ( 0.87%) ???:, rustc_middle::ty::context::TyCtxt>>::evaluate_goal::{closure#0} [???] 34,869,079 ( 0.86%) ???:::fully_expand_fragment [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,660,513 ( 0.85%) ???:rustc_trait_selection::solve::normalize::normalize_with_universes:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,314,036 ( 0.84%) ???:rustc_borrowck::type_check::liveness::generate [???] 34,282,591 ( 0.84%) ???:::visit_body [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 33,775,030 ( 0.83%) ???:rustc_borrowck::get_flow_results [???] 32,854,568 ( 0.81%) ???:::advance_token [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 31,699,596 ( 0.78%) ???: 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] 28,836,540 ( 0.71%) /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 27,667,246 ( 0.68%) ???:::visit_node_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 27,411,324 ( 0.67%) include/jemalloc/internal/jemalloc_internal_inlines_c.h:malloc [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 27,318,225 ( 0.67%) ???:::resolve_ident_in_scope_set_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 26,724,126 ( 0.66%) ???: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] 25,395,447 ( 0.62%) ???:rustc_mir_transform::simplify::simplify_cfg [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,406,889 ( 0.58%) ???: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] 23,278,064 ( 0.57%) 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] 20,882,708 ( 0.51%) ???:, rustc_borrowck::handle_placeholders::SccAnnotations>>::construct [???] 20,377,399 ( 0.50%) ???:::next_token_from_cursor [???] 19,453,017 ( 0.48%) include/jemalloc/internal/cache_bin.h:malloc 18,666,774 ( 0.46%) ???:>, &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] 18,014,883 ( 0.44%) ???:::evaluate_obligations_error_on_ambiguity [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 17,881,248 ( 0.44%) ???:::short_write_process_buffer::<8> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 17,398,420 ( 0.43%) ???:::do_mir_borrowck [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 17,275,626 ( 0.42%) include/jemalloc/internal/cache_bin.h:free 17,253,209 ( 0.42%) ???:rustc_next_trait_solver::solve::eval_ctxt::fast_path::compute_goal_fast_path:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 16,866,031 ( 0.41%) ???: as rustc_type_ir::relate::TypeRelation>::tys [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 16,427,339 ( 0.40%) ???: as rustc_type_ir::fold::TypeFolder>::fold_predicate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 16,043,976 ( 0.39%) ???:::to [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 15,616,754 ( 0.38%) ???:>::super_fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 15,542,802 ( 0.38%) ???:>::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] 15,521,452 ( 0.38%) ???:::lint_level_spec_at_node [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 13,711,125 ( 0.34%) include/jemalloc/internal/sz.h:malloc 13,602,662 ( 0.33%) ???:::stable_hash_span [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 13,315,223 ( 0.33%) ???: 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] 13,069,627 ( 0.32%) include/jemalloc/internal/sz.h:realloc 12,733,526 ( 0.31%) ???: 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] 12,674,995 ( 0.31%) ???: 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] 12,631,912 ( 0.31%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 12,128,762 ( 0.30%) ???:0x00000000001747c0 [/usr/lib/libc.so.6] 11,806,964 ( 0.29%) ???:::clone [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 11,781,427 ( 0.29%) ???:::resolve_path [???] 11,761,727 ( 0.29%) ???:::coerce [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 11,747,638 ( 0.29%) ???:::encode_def_ids'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 11,709,967 ( 0.29%) ???:::lower_qpath [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 11,198,517 ( 0.28%) ???:>::compute_trait_goal [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 10,909,806 ( 0.27%) ???: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] 10,677,320 ( 0.26%) ???:>::fold_predicate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 10,616,577 ( 0.26%) ???:>::union [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 10,601,424 ( 0.26%) ???:::traits_in_scope [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 10,590,113 ( 0.26%) include/jemalloc/internal/rtree.h:tcache_bin_flush_small 10,495,529 ( 0.26%) ???:::rollback_to [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 10,318,976 ( 0.25%) ???:::parse_token_tree [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 10,287,115 ( 0.25%) ???:::expr_into_dest'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 10,245,654 ( 0.25%) ???:::confirm [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 10,148,364 ( 0.25%) ???: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] 9,992,428 ( 0.25%) ???:::mk_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 9,909,616 ( 0.24%) ???:::check_expr [???] 9,750,260 ( 0.24%) ???:rustc_borrowck::type_check::type_check [???] 9,689,576 ( 0.24%) ???: 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] 9,300,293 ( 0.23%) ???:::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] 9,105,005 ( 0.22%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 9,054,349 ( 0.22%) ???:::hir_body_owner_def_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 9,020,164 ( 0.22%) ???:::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 8,941,112 ( 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/jemalloc.c:realloc [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 8,845,720 ( 0.22%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 8,827,358 ( 0.22%) ???:::shallow_resolve [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 8,685,111 ( 0.21%) /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] 8,657,802 ( 0.21%) ???:::evaluate_root_goal::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 8,650,019 ( 0.21%) ???:::take_and_reset_region_constraints [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 8,593,920 ( 0.21%) src/arena.c:realloc 8,581,704 ( 0.21%) ???:::parent_hir_node [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 8,545,392 ( 0.21%) ???:::compute_goal_fast_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 8,493,364 ( 0.21%) ???:::instantiate_into [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 8,383,653 ( 0.21%) ???: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] 8,321,493 ( 0.20%) ???:::parse_path_segment [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 8,196,342 ( 0.20%) include/jemalloc/internal/thread_event.h:malloc 8,167,398 ( 0.20%) ???:md5::compress::soft::compress [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 8,141,618 ( 0.20%) ???:::bump_minimal [???] 8,012,954 ( 0.20%) ???:::end_point [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 7,984,722 ( 0.20%) ???:::next_ty_var_with_origin [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 7,923,787 ( 0.19%) ???:::lex_token_trees'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 7,821,986 ( 0.19%) ???:::hir_attrs [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 7,706,215 ( 0.19%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 7,646,977 ( 0.19%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 7,529,457 ( 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] 7,472,054 ( 0.18%) ???: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] 7,466,774 ( 0.18%) ???: 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] 7,437,348 ( 0.18%) ???:::mirror_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 7,397,284 ( 0.18%) ???:::instantiate_value_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 7,325,814 ( 0.18%) ???:::is_imported [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 7,237,975 ( 0.18%) ???:>, &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] 7,198,227 ( 0.18%) ???: as rustc_type_ir::relate::TypeRelation>::tys [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,970,489 ( 0.17%) ???:::evaluate_root_goal [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,731,096 ( 0.17%) ???:> 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] 6,683,091 ( 0.16%) ???:::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] 6,607,200 ( 0.16%) ???:::smart_resolve_path_fragment [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,540,784 ( 0.16%) ???:::commit_from [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,317,088 ( 0.16%) ???:::stable_hash::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,226,551 ( 0.15%) ???:>::evaluate_added_goals_and_make_canonical_response::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,148,544 ( 0.15%) ???:::hash_owner_nodes::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,129,265 ( 0.15%) ???:>>>, ())>>::reserve_rehash::>>>, (), rustc_type_ir::binder::Binder>>::{closure#1}> [???] 6,121,234 ( 0.15%) ???:::build [???] 6,090,185 ( 0.15%) ???:::make_owner_info [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,072,688 ( 0.15%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,044,486 ( 0.15%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,043,370 ( 0.15%) include/jemalloc/internal/rtree.h:realloc 6,034,752 ( 0.15%) ???:::encode_span [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 6,019,434 ( 0.15%) ???:::opt_associated_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,969,572 ( 0.15%) ???:>::push [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,947,271 ( 0.15%) ???:::{closure#0}> as rustc_type_ir::fold::FallibleTypeFolder>::try_fold_ty::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,875,983 ( 0.14%) 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] 5,865,324 ( 0.14%) ???: as rustc_ast::visit::Visitor>::visit_expr'2 [???] 5,853,440 ( 0.14%) ???: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,818,128 ( 0.14%) ???:>::{closure#0}>>::normalize_alias_term [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,778,932 ( 0.14%) include/jemalloc/internal/sz.h:free 5,702,669 ( 0.14%) src/arena.c:malloc_default 5,656,659 ( 0.14%) ???: 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] 5,616,470 ( 0.14%) ???: as rustc_ast::visit::Visitor>::visit_id [???] 5,606,260 ( 0.14%) ???:::render [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,564,912 ( 0.14%) ???:::parse_path_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,483,980 ( 0.13%) ???:::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] 5,472,075 ( 0.13%) ???:::take [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,468,221 ( 0.13%) ???:::lookup_char_pos [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,456,494 ( 0.13%) ???: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] 5,409,161 ( 0.13%) ???: as rustc_type_ir::relate::TypeRelation>::tys'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,311,830 ( 0.13%) ???:::run_pass [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,284,873 ( 0.13%) ???:::solve [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,216,933 ( 0.13%) ???:::check_expr_call [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,215,674 ( 0.13%) ???: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] 5,200,968 ( 0.13%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,177,342 ( 0.13%) ???: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] 5,134,035 ( 0.13%) ???:::instantiate_into'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,096,771 ( 0.13%) ???:::normalize_and_prove_instantiated_clauses [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 5,034,290 ( 0.12%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,936,842 ( 0.12%) ???:>::fold_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,893,537 ( 0.12%) ???:::in_external_macro [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,887,121 ( 0.12%) ???:<&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] 4,740,890 ( 0.12%) ???:::decode_span [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,733,931 ( 0.12%) ???:::mk_canonical_var_kinds [???] 4,711,150 ( 0.12%) ???:::encode_crate_root'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,710,104 ( 0.12%) ???:::hir_body_const_context [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,697,658 ( 0.12%) ???:::fn_sig [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,675,685 ( 0.11%) ???: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] 4,636,735 ( 0.11%) ???:>::evaluate_goal_no_fast_paths'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,590,977 ( 0.11%) ???:>::compute_trait_goal'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,576,027 ( 0.11%) ???:core::fmt::write [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,563,165 ( 0.11%) ???: 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] 4,538,523 ( 0.11%) ???:, rustc_middle::ty::context::TyCtxt>>::evaluate_goal::{closure#0}'2 [???] 4,438,335 ( 0.11%) ???: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] 4,436,538 ( 0.11%) include/jemalloc/internal/emap.h:tcache_bin_flush_small 4,323,898 ( 0.11%) ???:::hir_node [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,303,722 ( 0.11%) ???:::lower_expr_mut'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,189,655 ( 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] 4,186,236 ( 0.10%) ???:::desugaring_kind [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,182,186 ( 0.10%) ???: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] 4,180,173 ( 0.10%) ???: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] 4,169,397 ( 0.10%) ???:::create_def [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,114,734 ( 0.10%) ???:::run_lint [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 4,093,541 ( 0.10%) ???:::check_attributes [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,985,563 ( 0.10%) include/jemalloc/internal/edata.h:tcache_bin_flush_small 3,985,484 ( 0.10%) ???:rustc_ast_lowering::lower_to_hir [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,979,620 ( 0.10%) ???:::recursion_limit [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,973,144 ( 0.10%) ???:>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,969,440 ( 0.10%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,968,794 ( 0.10%) ???:::parse_item_kind'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,958,854 ( 0.10%) ???: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] 3,945,440 ( 0.10%) ???: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] 3,921,101 ( 0.10%) /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] 3,914,924 ( 0.10%) ???:::super_body_preserves_cfg [???] 3,905,785 ( 0.10%) ???:::fully_perform_op::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,890,125 ( 0.10%) ???:::has_trivial_sizedness [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,795,427 ( 0.09%) ???:>::tys [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,794,043 ( 0.09%) ???: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] 3,753,023 ( 0.09%) ???:::equate_ty_vids_raw [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,748,334 ( 0.09%) ???: as rustc_type_ir::search_graph::Delegate>::compute_goal::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,735,429 ( 0.09%) ???: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] 3,728,360 ( 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] 3,724,778 ( 0.09%) ???: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] 3,715,947 ( 0.09%) include/jemalloc/internal/thread_event.h:realloc 3,656,295 ( 0.09%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,641,699 ( 0.09%) ???:::try_fast_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,635,029 ( 0.09%) ???:::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] 3,623,434 ( 0.09%) ???:::hash_expn:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,609,722 ( 0.09%) ???: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] 3,583,915 ( 0.09%) ???:::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] 3,571,557 ( 0.09%) ???: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] 3,567,686 ( 0.09%) ???:>>::upcast_from [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,553,422 ( 0.09%) ???:rustc_type_ir::relate::structurally_relate_tys::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,550,556 ( 0.09%) ???:<&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] 3,542,087 ( 0.09%) ???:::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] 3,528,874 ( 0.09%) ???: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] 3,526,857 ( 0.09%) ???:>::call_once'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,522,017 ( 0.09%) ???:core::ptr::drop_glue::> [???] 3,474,155 ( 0.09%) ???:<&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] 3,453,782 ( 0.08%) ???:::as_lang_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,446,793 ( 0.08%) include/jemalloc/internal/arena_inlines_b.h:realloc 3,441,488 ( 0.08%) ???:0x000000000000fb40 [/usr/lib/ld-linux-x86-64.so.2] 3,426,224 ( 0.08%) ???:::mk_external_constraints [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,422,179 ( 0.08%) ???:::check_expr_call'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,400,887 ( 0.08%) ???:::register [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,386,520 ( 0.08%) ???:>::tys'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,361,914 ( 0.08%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,345,308 ( 0.08%) ???:::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] 3,322,026 ( 0.08%) ???:>::insert_full [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,302,978 ( 0.08%) ???:::encode_def_ids [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,280,336 ( 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] 3,270,088 ( 0.08%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,213,089 ( 0.08%) ???:::parse_item_kind [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,193,055 ( 0.08%) ???:::putc [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,191,826 ( 0.08%) ???:::parse_ty_common [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,189,038 ( 0.08%) ???:::resolve_type_vars_in_body [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,184,394 ( 0.08%) ???:::equate_regions [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,154,684 ( 0.08%) include/jemalloc/internal/tcache_inlines.h:realloc 3,138,917 ( 0.08%) ???:>::tys::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,134,222 ( 0.08%) ???:rustc_resolve::rustdoc::unindent_doc_fragments [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,131,482 ( 0.08%) ???: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,109,388 ( 0.08%) ???:::hir_enclosing_body_owner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,099,679 ( 0.08%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,072,017 ( 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] 3,054,630 ( 0.08%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,053,398 ( 0.08%) ???:::compute_drop_data [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,025,774 ( 0.07%) ???:::mk_type_list [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 3,005,863 ( 0.07%) ???: as rustc_next_trait_solver::solve::assembly::GoalKind>::consider_impl_candidate::<>::assemble_impl_candidates>::{closure#0}::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,996,327 ( 0.07%) ???:::check_expr_method_call [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,994,731 ( 0.07%) ???:>::tys::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,988,608 ( 0.07%) ???:pthread_mutex_unlock [/usr/lib/libc.so.6] 2,974,948 ( 0.07%) ???:::register_obligation [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,958,382 ( 0.07%) ???:::hir_span [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,947,584 ( 0.07%) ???:>::super_fold_with::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,947,329 ( 0.07%) ???:::resolve_vars_if_possible:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,916,521 ( 0.07%) ???:::run_lint [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,910,208 ( 0.07%) ???:>::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] 2,891,239 ( 0.07%) include/jemalloc/internal/tsd_tls.h:free [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 2,891,238 ( 0.07%) include/jemalloc/internal/atomic.h:free 2,890,440 ( 0.07%) ???: 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] 2,890,392 ( 0.07%) ???: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] 2,884,368 ( 0.07%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,844,691 ( 0.07%) ???:::run_lint [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,824,540 ( 0.07%) ???:::pick_all_method [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,816,378 ( 0.07%) ???:thin_vec::drop_non_singleton:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,808,153 ( 0.07%) include/jemalloc/internal/cache_bin.h:realloc 2,783,407 ( 0.07%) ???: as core::clone::Clone>::clone'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,779,256 ( 0.07%) include/jemalloc/internal/arena_inlines_b.h:tcache_bin_flush_small 2,778,213 ( 0.07%) ???:>::instantiate_supertrait [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,762,910 ( 0.07%) ???: 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] 2,756,097 ( 0.07%) ???:::check_expr [???] 2,752,288 ( 0.07%) ???: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] 2,745,747 ( 0.07%) ???:>>, ())>>::reserve_rehash::>>, (), rustc_type_ir::ty_kind::TyKind>::{closure#1}> [???] 2,740,549 ( 0.07%) ???:::encode_crate_root [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,731,561 ( 0.07%) ???:::parse_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,725,589 ( 0.07%) ???:::check_stability_allow_unstable [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,711,892 ( 0.07%) /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 2,709,235 ( 0.07%) ???: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] 2,689,048 ( 0.07%) ???:0x0000000000173660 [/usr/lib/libc.so.6] 2,677,998 ( 0.07%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,665,996 ( 0.07%) ???:::parse_item_impl [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,658,821 ( 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] 2,650,817 ( 0.07%) 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] 2,645,289 ( 0.07%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,590,432 ( 0.06%) ???:pthread_mutex_trylock [/usr/lib/libc.so.6] 2,586,384 ( 0.06%) ???: 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] 2,586,319 ( 0.06%) ???: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] 2,579,094 ( 0.06%) ???: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,573,528 ( 0.06%) ???:::short_write_process_buffer::<1> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,554,879 ( 0.06%) ???:::bump [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,553,767 ( 0.06%) ???:>::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,525,212 ( 0.06%) ???:>::get_attrs [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,503,736 ( 0.06%) ???:> 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,492,011 ( 0.06%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::try_fold_with::::{closure#0}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,476,117 ( 0.06%) ???:::mark_live_symbols'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,467,182 ( 0.06%) ???:::is_diagnostic_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,451,243 ( 0.06%) ???:::lint_level_spec_at_node [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,449,793 ( 0.06%) ???: 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,446,779 ( 0.06%) ???:rustc_next_trait_solver::solve::eval_ctxt::evaluate_root_goal_for_proof_tree:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,442,289 ( 0.06%) ???:::xform_self_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,440,313 ( 0.06%) ???:::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] 2,434,885 ( 0.06%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,426,553 ( 0.06%) ???: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] 2,426,480 ( 0.06%) ???: as core::cmp::PartialEq>::eq [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,426,228 ( 0.06%) ???:>>::walk_ref [???] 2,421,620 ( 0.06%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,412,712 ( 0.06%) ???:::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] 2,409,685 ( 0.06%) ???:::opportunistic_resolve_lt_var [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,403,597 ( 0.06%) ???:rustc_mir_transform::mir_promoted [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,393,480 ( 0.06%) ???:::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] 2,380,002 ( 0.06%) ???:rustc_privacy::check_mod_privacy [???] 2,362,243 ( 0.06%) ???:>::drop_slow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,360,753 ( 0.06%) ???:>::union'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,357,514 ( 0.06%) ???:<&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] 2,352,155 ( 0.06%) ???:>::add_goal [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,347,500 ( 0.06%) ???:::slice_write_process_buffer [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,326,863 ( 0.06%) ???:::as_operand'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,323,954 ( 0.06%) ???:::trait_of_assoc [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,306,944 ( 0.06%) ???:>>::drop_slow'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,302,915 ( 0.06%) ???:::hir_span_with_body [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,302,689 ( 0.06%) ???:::expr_as_place'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,297,667 ( 0.06%) ???:::resolve_pattern_inner::{closure#0} [???] 2,284,671 ( 0.06%) ???: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,281,355 ( 0.06%) ???:::as_call_operand [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,272,841 ( 0.06%) ???:>::fold_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,265,454 ( 0.06%) ???:::is_mutable [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,245,441 ( 0.06%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,241,265 ( 0.06%) ???:> 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,230,044 ( 0.05%) ???:>::visit_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,215,380 ( 0.05%) ???:, 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,203,605 ( 0.05%) ???:::make_deduplicated_region_constraints [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,185,928 ( 0.05%) ???:>, ())>>::reserve_rehash::>, (), [rustc_middle::ty::generic_args::GenericArg]>::{closure#1}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,180,540 ( 0.05%) ???:>::fold_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,160,534 ( 0.05%) ???:::insert [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,156,221 ( 0.05%) ???:::get_diagnostic_name [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,154,218 ( 0.05%) ???:::find_by_ident_and_namespace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,143,166 ( 0.05%) ???:rustc_hir_typeck::check::check_fn [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,142,270 ( 0.05%) ???:::generalize [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,142,258 ( 0.05%) ???:annotate_snippets::renderer::render::normalize_whitespace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,138,780 ( 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 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 2,134,696 ( 0.05%) /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:: 2,097,147 ( 0.05%) ???: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] 2,096,292 ( 0.05%) include/jemalloc/internal/bitmap.h:tcache_bin_flush_small 2,095,824 ( 0.05%) ???: 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,095,023 ( 0.05%) ???:::is_sizedness_trait [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,091,499 ( 0.05%) ???: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,072,350 ( 0.05%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,069,302 ( 0.05%) ???:>::fold_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,065,972 ( 0.05%) ???: as rustc_mir_transform::pass_manager::MirPass>::run_pass [???] 2,064,669 ( 0.05%) ???:::next'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,051,890 ( 0.05%) ???: as rustc_hir::intravisit::Visitor>::visit_expr'2 [???] 2,039,698 ( 0.05%) ???:thin_vec::drop_non_singleton::<(rustc_infer::traits::Obligation, core::option::Option>)> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,029,933 ( 0.05%) ???:::trait_is_auto [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,013,015 ( 0.05%) ???:::check_def_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 2,011,856 ( 0.05%) ???:::resolve_regions_with_outlives_env [???] 2,003,865 ( 0.05%) ???:> 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,001,930 ( 0.05%) ???:>::assumed_wf_types_and_report_errors [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,988,967 ( 0.05%) ???:, 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,982,758 ( 0.05%) ???:::typeck_body [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,970,173 ( 0.05%) ???:::consider_probe::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,963,351 ( 0.05%) ???:::parse_item_common [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,961,247 ( 0.05%) ???:::resolve_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,953,412 ( 0.05%) ???: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,938,582 ( 0.05%) ???:::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,935,017 ( 0.05%) ???:::as_operand [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,934,795 ( 0.05%) ???:rustc_traits::implied_outlives_bounds::implied_outlives_bounds [???] 1,932,727 ( 0.05%) ???:::parse_fn_params [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,931,853 ( 0.05%) ???:::is_trivially_wf [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,929,360 ( 0.05%) ???:::assemble_inherent_impl_candidates_for_type [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,927,476 ( 0.05%) ???: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,923,294 ( 0.05%) ???:::def_key [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,919,002 ( 0.05%) ???:::hir_maybe_body_owned_by [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,911,158 ( 0.05%) ???: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] 1,911,049 ( 0.05%) ???:, 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,903,440 ( 0.05%) ???:::short_write_process_buffer::<4> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,894,235 ( 0.05%) ???:, 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,884,745 ( 0.05%) ???:>>::walk_ref'2 [???] 1,854,931 ( 0.05%) ???: as rustc_hir::intravisit::Visitor>::visit_expr::{closure#0}::{closure#0}'2 [???] 1,843,158 ( 0.05%) ???:::get_lint_level_spec [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,831,970 ( 0.05%) ???:>, &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] 1,829,511 ( 0.04%) ???:::evaluate_root_goal_for_proof_tree_raw [???] 1,820,610 ( 0.04%) ???:::add_wf_preds_for_trait_pred [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,814,669 ( 0.04%) ???:>::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] 1,810,176 ( 0.04%) ???:::goals_to_obligations [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,799,800 ( 0.04%) ???: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] 1,799,136 ( 0.04%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,792,457 ( 0.04%) ???:::instantiate_identity_into [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,789,331 ( 0.04%) ???:>::add_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,781,149 ( 0.04%) ???:::instantiate_nested_goals [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,779,409 ( 0.04%) ???:::get_line [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,766,160 ( 0.04%) ???: 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] 1,764,506 ( 0.04%) ???: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,754,952 ( 0.04%) ???:rustc_pattern_analysis::rustc::analyze_match [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,752,584 ( 0.04%) ???:rustc_hir_analysis::collect::generics_of::generics_of [???] 1,749,787 ( 0.04%) ???:>::fold_with::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,741,890 ( 0.04%) ???:::lower_attrs_vec [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,728,919 ( 0.04%) ???: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] 1,717,530 ( 0.04%) include/jemalloc/internal/thread_event.h:calloc 1,716,140 ( 0.04%) ???:::parse_line [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,715,821 ( 0.04%) ???:::is_conditionally_const:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,715,328 ( 0.04%) ???:>::reserve_rehash::>>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,714,636 ( 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] 1,708,315 ( 0.04%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,708,074 ( 0.04%) ???:stacker::remaining_stack [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,705,040 ( 0.04%) ???:>::fold_predicate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,698,102 ( 0.04%) ???:::lookup_byte_offset [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,696,848 ( 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] 1,690,432 ( 0.04%) ???:0x000000000000ba80 [/usr/lib/ld-linux-x86-64.so.2] 1,684,629 ( 0.04%) ???:::write_char [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,672,698 ( 0.04%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,658,308 ( 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] 1,656,072 ( 0.04%) ???:::from_tokens [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,654,116 ( 0.04%) ???:rust_psm_stack_pointer [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,652,542 ( 0.04%) include/jemalloc/internal/bit_util.h:malloc_default 1,650,650 ( 0.04%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,647,225 ( 0.04%) ???:::visit_fn [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,643,519 ( 0.04%) ???:::lookup_probe [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,639,314 ( 0.04%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,616,408 ( 0.04%) ???:::{closure#0}> as rustc_type_ir::fold::FallibleTypeFolder>::try_fold_ty::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,611,053 ( 0.04%) ???: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,603,012 ( 0.04%) ???:>, &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,593,920 ( 0.04%) include/jemalloc/internal/tsd.h:realloc 1,591,866 ( 0.04%) ???:::resolve_macro_invocation [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,577,897 ( 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] 1,577,215 ( 0.04%) ???:>::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] 1,572,219 ( 0.04%) include/jemalloc/internal/div.h:tcache_bin_flush_small 1,571,332 ( 0.04%) ???:::fresh_args_for_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,554,992 ( 0.04%) ???:::check_ident [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,553,383 ( 0.04%) ???:::adjust_ident_and_get_scope [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,552,611 ( 0.04%) ???: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] 1,549,945 ( 0.04%) include/jemalloc/internal/cache_bin.h:calloc 1,545,817 ( 0.04%) ???:::get_lint_level_spec'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,541,494 ( 0.04%) ???:core::slice::memchr::memchr_aligned [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,539,971 ( 0.04%) 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,529,070 ( 0.04%) ???:>::evaluate_added_goals_and_make_canonical_response::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,523,371 ( 0.04%) ???:::build_exit_tree [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,522,499 ( 0.04%) ???: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,521,350 ( 0.04%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,520,834 ( 0.04%) ???:::qpath_res [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,517,859 ( 0.04%) ???: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,512,994 ( 0.04%) ???:::resolve_path_with_ribs [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,508,656 ( 0.04%) ???: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] 1,508,607 ( 0.04%) ???:::test_candidates [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,505,314 ( 0.04%) ???:::apply_primary_statement_effect [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,502,806 ( 0.04%) ???:::pop_scope [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,501,351 ( 0.04%) ???:::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] 1,500,619 ( 0.04%) ???:::update_decl_chain [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,484,819 ( 0.04%) ???:::as_temp::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,483,504 ( 0.04%) ???:>::fold_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,477,747 ( 0.04%) ???: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] 1,466,728 ( 0.04%) ???: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,464,591 ( 0.04%) ???:>::fold_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,463,728 ( 0.04%) ???:::get_str [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,452,484 ( 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] 1,450,617 ( 0.04%) ???:>::fold_predicate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,449,432 ( 0.04%) ???:<[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] 1,447,462 ( 0.04%) ???:::resolve_doc_links [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,447,132 ( 0.04%) include/jemalloc/internal/rtree.h:pa_alloc 1,435,530 ( 0.04%) ???:::visit_qpath [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,433,457 ( 0.04%) 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] 1,430,148 ( 0.04%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,427,104 ( 0.04%) ???:>::reserve_rehash::>::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,426,542 ( 0.04%) ???:::build_drop_trees [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,412,209 ( 0.03%) ???:::resolve_imports [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,404,707 ( 0.03%) ???:::lower_path_segment [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,399,969 ( 0.03%) include/jemalloc/internal/ph.h:pa_alloc 1,399,306 ( 0.03%) ???:::visit_operand [???] 1,394,454 ( 0.03%) ???: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,393,725 ( 0.03%) ???:>::get_attrs [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,392,754 ( 0.03%) ???:::lower_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,383,972 ( 0.03%) ???:annotate_snippets::renderer::render::draw_line [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,381,758 ( 0.03%) ???:>, ())>>::reserve_rehash::>, (), rustc_hash::FxBuildHasher>::{closure#0}> [???] 1,377,077 ( 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] 1,373,402 ( 0.03%) ???:::resolve_crate::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,371,165 ( 0.03%) ???:::shallow_resolve_term [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,366,187 ( 0.03%) ???:::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,361,930 ( 0.03%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,361,661 ( 0.03%) ???: as rustc_infer::traits::engine::TraitEngine>::collect_remaining_errors [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,360,110 ( 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,358,593 ( 0.03%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,348,810 ( 0.03%) ???: as core::ops::drop::Drop>::drop::drop_non_singleton::<(rustc_infer::traits::Obligation, core::option::Option>)> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,341,756 ( 0.03%) ???:::trait_impl_of_assoc [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,327,669 ( 0.03%) ???: as core::clone::Clone>::clone [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,323,102 ( 0.03%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,319,189 ( 0.03%) ???:::type_is_copy_modulo_regions [???] 1,314,696 ( 0.03%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,312,844 ( 0.03%) include/jemalloc/internal/sz.h:calloc 1,312,656 ( 0.03%) src/hook.c:realloc 1,309,539 ( 0.03%) ???:::check_stability [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,307,620 ( 0.03%) ???:)>>::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,307,403 ( 0.03%) ???: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,305,404 ( 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,304,439 ( 0.03%) ???:>, rustc_type_ir::search_graph::global_cache::CacheEntry)>>::reserve_rehash::>, rustc_type_ir::search_graph::global_cache::CacheEntry, rustc_hash::FxBuildHasher>::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,299,627 ( 0.03%) ???: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] 1,293,855 ( 0.03%) ???: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] 1,283,442 ( 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] 1,282,304 ( 0.03%) ???:::lower_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,272,666 ( 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] 1,265,530 ( 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,263,755 ( 0.03%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,261,288 ( 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] 1,259,790 ( 0.03%) ???:::try_evaluate_obligations [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,258,078 ( 0.03%) ???:<&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,257,007 ( 0.03%) ???:::expect_hir_owner_nodes [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,247,130 ( 0.03%) ???:::enter_forall_and_leak_universe::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,241,118 ( 0.03%) ???:::lookup_source_file [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,240,626 ( 0.03%) ???:::is_exported [???] 1,238,318 ( 0.03%) ???:::check_pat_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,237,566 ( 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] 1,236,660 ( 0.03%) ???: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] 1,235,738 ( 0.03%) ???: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,234,259 ( 0.03%) /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,231,558 ( 0.03%) ???:::run_lint [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,231,508 ( 0.03%) ???:::expr_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,230,166 ( 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,227,526 ( 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] 1,224,324 ( 0.03%) ???:::parse_fn [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,221,211 ( 0.03%) ???:>> as rustc_trait_selection::traits::query::type_op::TypeOp>::fully_perform [???] 1,220,580 ( 0.03%) ???:::lang_items [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,219,478 ( 0.03%) ???:::lower_pattern [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,218,394 ( 0.03%) ???:::par_items::::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,204,735 ( 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,201,267 ( 0.03%) ???:::resolve_vars_if_possible::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,201,145 ( 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,195,135 ( 0.03%) ???:::parse_stmt_without_recovery [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,194,973 ( 0.03%) ???:::run_pass [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,193,418 ( 0.03%) ???: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,191,894 ( 0.03%) ???:>::fold_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,188,394 ( 0.03%) ???:rustc_type_ir::fold::fold_arc:: as rustc_type_ir::fold::TypeFoldable>::fold_with::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,183,961 ( 0.03%) ???:::resolve_vars_if_possible::<(rustc_middle::ty::predicate::Predicate, rustc_middle::traits::ObligationCause)> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,182,394 ( 0.03%) ???: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] 1,178,983 ( 0.03%) ???:::unresolved_root_variables [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,175,235 ( 0.03%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,172,602 ( 0.03%) ???:::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,172,313 ( 0.03%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,169,052 ( 0.03%) ???:>::fold_clauses [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,168,959 ( 0.03%) ???:::finish [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,166,922 ( 0.03%) ???:::parse_outer_attributes [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,162,623 ( 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] 1,160,900 ( 0.03%) ???:::expr_as_place [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,157,356 ( 0.03%) ???:::add_implied_bounds [???] 1,157,022 ( 0.03%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,155,308 ( 0.03%) ???:>::new'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,152,798 ( 0.03%) ???: as rustc_hir::intravisit::Visitor>::visit_path [???] 1,152,679 ( 0.03%) ???:::stable_hash::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,151,461 ( 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,150,493 ( 0.03%) ???:>::try_merge_candidates [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,149,431 ( 0.03%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,141,267 ( 0.03%) ???: 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,136,579 ( 0.03%) ???: 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,135,440 ( 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] 1,134,231 ( 0.03%) ???:::lower_item_kind [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,126,845 ( 0.03%) ???:::desugar_doc_comments::desugar_inner'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,119,449 ( 0.03%) ???:::liberate_late_bound_regions::>::{closure#0} [???] 1,118,351 ( 0.03%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,115,209 ( 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::macros::root_macro_call 1,114,135 ( 0.03%) ???:::visit_generic_params [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,111,373 ( 0.03%) ???:::intern_str [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,110,340 ( 0.03%) ???:>, &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] 1,100,864 ( 0.03%) ???:rustc_type_ir::relate::structurally_relate_tys::>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,100,254 ( 0.03%) ???:::leaf_def [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,097,523 ( 0.03%) ???:core::ptr::drop_glue::<[rustc_expand::mbe::macro_parser::NamedMatch]>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,097,458 ( 0.03%) 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] 1,094,784 ( 0.03%) include/jemalloc/internal/edata.h:pa_alloc 1,092,560 ( 0.03%) include/jemalloc/internal/ph.h:tcache_bin_flush_small 1,087,447 ( 0.03%) ???:0x000000000000aec0 [/usr/lib/ld-linux-x86-64.so.2] 1,087,239 ( 0.03%) 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,086,826 ( 0.03%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,084,304 ( 0.03%) ???:::ensure_lines [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,080,506 ( 0.03%) ???:::union_var_term [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,079,463 ( 0.03%) ???:annotate_snippets::renderer::render::char_width [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,077,809 ( 0.03%) ???:::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,075,281 ( 0.03%) ???:rustc_next_trait_solver::canonical::unify_query_var_values:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,074,944 ( 0.03%) ???:::fork [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,069,633 ( 0.03%) ???:::visit_assoc_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,068,950 ( 0.03%) ???:rustc_resolve::rustdoc::prepare_to_doc_link_resolution [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,068,661 ( 0.03%) ???:::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,067,060 ( 0.03%) ???: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,063,979 ( 0.03%) ???:::visit_def_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,063,301 ( 0.03%) ???: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,063,253 ( 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,058,442 ( 0.03%) ???: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] 1,056,163 ( 0.03%) include/jemalloc/internal/atomic.h:realloc 1,053,330 ( 0.03%) ???:> 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] 1,051,728 ( 0.03%) include/jemalloc/internal/jemalloc_internal_inlines_a.h:realloc 1,048,201 ( 0.03%) ???: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] 1,048,146 ( 0.03%) include/jemalloc/internal/util.h:tcache_bin_flush_small 1,045,985 ( 0.03%) ???:::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,040,761 ( 0.03%) ???: 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] 1,038,707 ( 0.03%) ???: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] 1,038,395 ( 0.03%) ???:::opt_rpitit_info [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,037,137 ( 0.03%) include/jemalloc/internal/sz.h:pa_alloc 1,032,844 ( 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] 1,024,720 ( 0.03%) ???:::record_use [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,023,186 ( 0.03%) ???:, 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,021,736 ( 0.03%) ???:> 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] 1,020,386 ( 0.03%) ???:::ast_block [???] 1,016,434 ( 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,015,341 ( 0.02%) ???:::assemble_extension_candidates_for_trait [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,014,484 ( 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,012,276 ( 0.02%) ???:::start_new_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,009,570 ( 0.02%) ???:::span_to_snippet [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 1,008,250 ( 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,006,083 ( 0.02%) include/jemalloc/internal/tsd.h:calloc 1,005,661 ( 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,002,664 ( 0.02%) ???:, alloc::vec::Vec, rustc_hash::FxBuildHasher>>::get::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 999,862 ( 0.02%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 999,062 ( 0.02%) ???:::mirror_expr_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 998,588 ( 0.02%) ???:>::assemble_and_evaluate_candidates::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 997,641 ( 0.02%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 997,086 ( 0.02%) ???:::parse_block_common [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 996,719 ( 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] 996,607 ( 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] 994,192 ( 0.02%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 989,746 ( 0.02%) ???:::parse_ty_common'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 981,908 ( 0.02%) ???:::intern_region [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 981,631 ( 0.02%) ???:::from_token_lit [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 980,763 ( 0.02%) ???: as rustc_hir::intravisit::Visitor>::visit_nested_item'2 [???] 979,374 ( 0.02%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 979,141 ( 0.02%) ???:::as_call_operand'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 977,554 ( 0.02%) include/jemalloc/internal/cache_bin.h:malloc_default 975,952 ( 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] 969,250 ( 0.02%) ???:rustc_mir_build::thir::pattern::check_match::check_match'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 968,308 ( 0.02%) ???:::eval_stability [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 965,700 ( 0.02%) ???:::expn_data [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 964,130 ( 0.02%) ???: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] 963,744 ( 0.02%) ???:::make_subregion [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 961,920 ( 0.02%) ???:::is_path_start_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 953,920 ( 0.02%) /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] 952,898 ( 0.02%) ???:::assemble_inherent_candidates [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 943,097 ( 0.02%) ???:::parse_attr_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 942,812 ( 0.02%) ???:::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] 942,411 ( 0.02%) ???:::check_expr_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 940,255 ( 0.02%) ???: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] 937,330 ( 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] 935,882 ( 0.02%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 934,079 ( 0.02%) ???:::parse_stmt_without_recovery'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 931,290 ( 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] 929,846 ( 0.02%) ???:::check_item [???] 928,445 ( 0.02%) ???:::lower_pat_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 926,184 ( 0.02%) ???:::ast_block'2 [???] 925,236 ( 0.02%) ???:::is_lang_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 922,889 ( 0.02%) ???:rustc_span::normalize_src [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 917,369 ( 0.02%) ???:::range_span [???] 916,720 ( 0.02%) ???:::normalize:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 916,162 ( 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] 915,201 ( 0.02%) ???:<&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] 914,433 ( 0.02%) ???:::resolve_and_cache_rustdoc_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 912,342 ( 0.02%) ???: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] 911,594 ( 0.02%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 911,006 ( 0.02%) ???: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] 910,989 ( 0.02%) ???:rustc_privacy::effective_visibilities'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 910,866 ( 0.02%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 910,524 ( 0.02%) ???:::relate:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 909,217 ( 0.02%) ???:::expr_into_dest [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 904,908 ( 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] 904,495 ( 0.02%) site/frontend/rust-clippy/clippy_lints/src/incompatible_msrv.rs:::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 902,140 ( 0.02%) ???:::visit_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 899,431 ( 0.02%) ???:::candidates_recur'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 897,803 ( 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] 897,307 ( 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] 895,964 ( 0.02%) ???:::check_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 894,350 ( 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] 892,747 ( 0.02%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 890,616 ( 0.02%) /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 888,370 ( 0.02%) ???:::candidates_recur [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 880,065 ( 0.02%) ???:>::walk_mut'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 872,380 ( 0.02%) ???:::span [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 870,504 ( 0.02%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 868,956 ( 0.02%) 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] 867,955 ( 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] 867,221 ( 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] 866,890 ( 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] 866,664 ( 0.02%) ???:>::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] 862,542 ( 0.02%) ???:::consider_probe::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 861,910 ( 0.02%) ???:>::update [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 860,706 ( 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] 860,500 ( 0.02%) src/eset.c:pa_alloc 860,408 ( 0.02%) ???:rustc_hir_analysis::variance::crate_variances [???] 857,660 ( 0.02%) ???:rustc_next_trait_solver::canonical::canonicalize_goal:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 853,259 ( 0.02%) ???:::leak_check [???] 852,799 ( 0.02%) src/base.c:pa_alloc 851,351 ( 0.02%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 848,153 ( 0.02%) ???:)>>::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] 844,406 ( 0.02%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 842,926 ( 0.02%) ???:::visit_nested_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 842,784 ( 0.02%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 842,657 ( 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] 842,291 ( 0.02%) ???:::lower_thir_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 842,049 ( 0.02%) ???:>::walk_mut'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 840,512 ( 0.02%) ???:::clone_pending [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 838,499 ( 0.02%) ???:rustc_ty_utils::needs_drop::needs_drop_raw [???] 838,305 ( 0.02%) ???: 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] 835,667 ( 0.02%) ???:::parse_item_common'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 835,658 ( 0.02%) ???:<&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] 832,356 ( 0.02%) ???:::lookup_line [???] 831,684 ( 0.02%) ???:>::finalize [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 830,995 ( 0.02%) ???:::ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 830,507 ( 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] 830,310 ( 0.02%) ???:::instantiate_var::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 827,331 ( 0.02%) ???:::hir_body_owned_by [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 824,777 ( 0.02%) ???:>::encode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 823,646 ( 0.02%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 821,937 ( 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] 819,646 ( 0.02%) ???:::lower_match_arms [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 818,828 ( 0.02%) ???:::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] 814,719 ( 0.02%) ???:core::ptr::drop_glue::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 810,193 ( 0.02%) ???:::lower_method_sig [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 808,179 ( 0.02%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 807,911 ( 0.02%) ???:::def_id_partial_cmp [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 807,824 ( 0.02%) 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] 806,276 ( 0.02%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 798,385 ( 0.02%) ???:::visit_impl_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 794,013 ( 0.02%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 792,728 ( 0.02%) ???:::write_str [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 792,471 ( 0.02%) ???:::check_expr_match [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 791,273 ( 0.02%) ???:::add_import::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 791,111 ( 0.02%) ???:::demand_eqtype_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 788,814 ( 0.02%) include/jemalloc/internal/tsd_tls.h:realloc 788,385 ( 0.02%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 787,836 ( 0.02%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 787,229 ( 0.02%) 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] 786,636 ( 0.02%) ???:rustc_const_eval::const_eval::eval_queries::eval_in_interpreter:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 785,902 ( 0.02%) ???:rustc_resolve::rustdoc::add_doc_fragment [???] 783,835 ( 0.02%) ???:>, ::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] 783,465 ( 0.02%) ???:>::reserve_rehash::>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 782,735 ( 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] 781,956 ( 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] 780,480 ( 0.02%) /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> 778,981 ( 0.02%) ???:::check_pat_inner'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 778,532 ( 0.02%) ???: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] 778,095 ( 0.02%) ???:::call_once_force::<>, rustc_hash::FxBuildHasher>>>::initialize<>, rustc_hash::FxBuildHasher>>>::get_or_init<::resolutions::{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] 777,504 ( 0.02%) /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] 775,609 ( 0.02%) ???:::stable_hash::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 771,567 ( 0.02%) ???: as rustc_type_ir::relate::TypeRelation>::relate_with_variance:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 770,197 ( 0.02%) ???:>::insert_full [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 766,622 ( 0.02%) ???:>::types_may_unify_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 763,728 ( 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] 763,134 ( 0.02%) ???: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] 761,804 ( 0.02%) ???:>, ())>>::reserve_rehash::>, (), [rustc_middle::ty::Ty]>::{closure#1}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 761,720 ( 0.02%) ???:rustc_next_trait_solver::canonical::instantiate_canonical_state:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 760,644 ( 0.02%) ???:::type_dependent_def_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 760,464 ( 0.02%) ???:::check_snake_case [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 759,540 ( 0.02%) ???:::to_attr_token_stream [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 758,290 ( 0.02%) ???:::visit_nested_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 755,294 ( 0.02%) ???:::break_scope [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 754,336 ( 0.02%) /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] 753,674 ( 0.02%) ???:::apply_primary_terminator_effect [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 752,210 ( 0.02%) ???:::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] 751,745 ( 0.02%) ???: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] 749,416 ( 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] 747,564 ( 0.02%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 745,428 ( 0.02%) ???: as rustc_ast::visit::Visitor>::visit_expr [???] 744,781 ( 0.02%) ???:::check_expr_block'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 744,290 ( 0.02%) ???:::lower_qpath'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 744,181 ( 0.02%) ???:::hir_body [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 741,525 ( 0.02%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 741,386 ( 0.02%) ???:::typing_env [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 740,315 ( 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] 736,712 ( 0.02%) ???:::lex_token_trees [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 736,642 ( 0.02%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 733,639 ( 0.02%) 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] 733,188 ( 0.02%) ???:rustc_ty_utils::layout::layout_of_uncached'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 731,717 ( 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] 728,535 ( 0.02%) ???:::is_desugaring [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 727,882 ( 0.02%) ???:, core::option::Option>)>, as rustc_infer::traits::engine::TraitEngine>::collect_remaining_errors::{closure#0}>, core::iter::adapters::map::Map>, as rustc_infer::traits::engine::TraitEngine>::collect_remaining_errors::{closure#1}>>, as rustc_infer::traits::engine::TraitEngine>::collect_remaining_errors::{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] 727,018 ( 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] 727,018 ( 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] 725,323 ( 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] 723,044 ( 0.02%) ???:::list_from_tokens [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 722,918 ( 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] 722,180 ( 0.02%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:::check_attributes 720,054 ( 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] 719,489 ( 0.02%) ???:, rustc_middle::query::erase::ErasedData<[u8; 1]>> 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] 718,635 ( 0.02%) ???:::parse_expr_force_collect [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 718,110 ( 0.02%) ???:::parse_expr_paren_seq [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 717,594 ( 0.02%) ???:::next_ty_vid_in_universe [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 715,986 ( 0.02%) 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] 715,748 ( 0.02%) /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 714,944 ( 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] 714,287 ( 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] 713,071 ( 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] 711,275 ( 0.02%) include/jemalloc/internal/atomic.h:tcache_bin_flush_small 710,722 ( 0.02%) ???:>::walk_mut'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 710,704 ( 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] 710,504 ( 0.02%) 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] 709,758 ( 0.02%) ???:::lower_expr_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 708,840 ( 0.02%) ???:::mk_layout [???] 696,027 ( 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] 695,957 ( 0.02%) ???:>::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] 694,989 ( 0.02%) ???:>::deeply_normalize:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 694,499 ( 0.02%) ???: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] 692,107 ( 0.02%) ???:rustc_ast::mut_visit::walk_fn:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 690,299 ( 0.02%) ???:::check_false_global_bounds [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 688,684 ( 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] 688,205 ( 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/jemalloc.c:malloc_default [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 688,002 ( 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] 687,546 ( 0.02%) 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] 687,475 ( 0.02%) ???:::next_ty_var [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 686,154 ( 0.02%) ???:::finish128_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 686,071 ( 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] 686,071 ( 0.02%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:::check_attributes_post 685,714 ( 0.02%) ???:::normalize::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 685,610 ( 0.02%) /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] 685,610 ( 0.02%) 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] 683,698 ( 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] 680,962 ( 0.02%) ???: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] 677,557 ( 0.02%) ???: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] 677,294 ( 0.02%) ???:::expr_guaranteed_to_constitute_read_for_never [???] 674,990 ( 0.02%) include/jemalloc/internal/arena_inlines_b.h:malloc_default 674,382 ( 0.02%) ???:>>::instantiate::<&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] 672,656 ( 0.02%) ???:::visit_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 669,640 ( 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] 667,245 ( 0.02%) ???:dladdr [/usr/lib/libc.so.6] 666,743 ( 0.02%) ???:::mark_span_with_reason [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 665,369 ( 0.02%) ???: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] 665,176 ( 0.02%) ???:::resolve_ident_in_lexical_scope [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 664,122 ( 0.02%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 661,959 ( 0.02%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 661,959 ( 0.02%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 661,959 ( 0.02%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 659,394 ( 0.02%) ???: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] 654,135 ( 0.02%) 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] 653,844 ( 0.02%) include/jemalloc/internal/tcache_inlines.h:calloc 653,163 ( 0.02%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 653,156 ( 0.02%) 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] 652,656 ( 0.02%) 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] 651,419 ( 0.02%) 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] 650,731 ( 0.02%) ???:::check_expr_struct_fields [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 650,242 ( 0.02%) ???:>::univariant::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 647,418 ( 0.02%) ???:::register_type_outlives_constraint [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 645,755 ( 0.02%) 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] 644,160 ( 0.02%) /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> 642,765 ( 0.02%) ???:::encode_info_for_mod [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 642,250 ( 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] 641,328 ( 0.02%) ???:>::relate::>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 641,089 ( 0.02%) 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] 640,919 ( 0.02%) ???: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] 638,295 ( 0.02%) 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] 637,769 ( 0.02%) ???:::clauses_of [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 636,648 ( 0.02%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 636,615 ( 0.02%) ???:::flat_map_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 633,232 ( 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] 633,006 ( 0.02%) 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] 632,955 ( 0.02%) ???:::check_expr_field [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 631,859 ( 0.02%) ???: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] 630,480 ( 0.02%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 629,296 ( 0.02%) ???:::check_struct_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 628,941 ( 0.02%) 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] 628,714 ( 0.02%) ???:::visit_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 627,639 ( 0.02%) ???: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] 620,410 ( 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] 619,357 ( 0.02%) ???:::lower_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 619,045 ( 0.02%) ???:rustc_ty_utils::assoc::associated_items [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 618,803 ( 0.02%) 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] 617,913 ( 0.02%) 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] 617,793 ( 0.02%) 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] 616,994 ( 0.02%) ???:::add_annotation_to_file'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 616,993 ( 0.02%) include/jemalloc/internal/fb.h:pa_alloc 616,158 ( 0.02%) ???:>::copy_op_no_validate:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 615,627 ( 0.02%) ???:>::fold_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 615,530 ( 0.02%) ???:::write_import_resolutions::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 615,304 ( 0.02%) 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] 615,272 ( 0.02%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 614,168 ( 0.02%) ???:::finalize_import::{closure#2} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 613,808 ( 0.02%) 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] 613,121 ( 0.02%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 613,076 ( 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] 611,468 ( 0.02%) 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] 608,171 ( 0.01%) ???:::parse_constness_ [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 606,875 ( 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] 606,809 ( 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] 605,695 ( 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] 602,428 ( 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] 600,606 ( 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] 600,446 ( 0.01%) ???:core::ptr::drop_glue::]>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 599,153 ( 0.01%) ???:::insert [???] 598,885 ( 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] 598,870 ( 0.01%) ???:::check_struct_pat_fields [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 595,261 ( 0.01%) ???:, 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] 594,815 ( 0.01%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 590,631 ( 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] 589,889 ( 0.01%) ???: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] 588,083 ( 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] 584,555 ( 0.01%) ???:::mirror_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 584,206 ( 0.01%) ???:::evaluate_root_goal_for_proof_tree [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 582,008 ( 0.01%) ???:::parse_block_common'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 581,967 ( 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] 578,547 ( 0.01%) ???:::visit_place [???] 577,685 ( 0.01%) ???:::lower_lifetime [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 577,665 ( 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] 574,666 ( 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] 574,666 ( 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] 574,125 ( 0.01%) 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] 573,709 ( 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] 573,162 ( 0.01%) ???:::parse_pat_ident [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 572,749 ( 0.01%) ???:::resolve:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 572,108 ( 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] 571,934 ( 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] 571,698 ( 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] 571,320 ( 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] 570,069 ( 0.01%) ???:>::grow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 569,747 ( 0.01%) ???:::hir_expect_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 568,950 ( 0.01%) ???:::hir_get_parent_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 568,373 ( 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] 567,576 ( 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] 567,477 ( 0.01%) ???:rustc_ast::visit::visit_items::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 565,950 ( 0.01%) ???:::parse_expr_prefix'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 565,502 ( 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] 565,289 ( 0.01%) 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] 565,200 ( 0.01%) ???:>::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] 559,102 ( 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] 559,091 ( 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] 558,563 ( 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] 558,194 ( 0.01%) ???:::lower_pattern'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 557,348 ( 0.01%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 556,069 ( 0.01%) ???:::eat_token_lit [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 553,953 ( 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] 553,799 ( 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] 550,541 ( 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] 549,003 ( 0.01%) ???:>::decode'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 546,450 ( 0.01%) ???:::visit_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 546,379 ( 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] 546,204 ( 0.01%) ???:::lower_fn_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 545,967 ( 0.01%) ???:::well_formed_goals::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 545,256 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 543,504 ( 0.01%) ???:>::decode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 543,251 ( 0.01%) ???:rustc_hir::hir::is_range_literal [???] 542,930 ( 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] 542,685 ( 0.01%) ???:::next_region_var [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 542,310 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 541,815 ( 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] 541,635 ( 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] 541,527 ( 0.01%) ???: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] 541,225 ( 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] 539,927 ( 0.01%) ???:rustc_ast::util::comments::beautify_doc_string [???] 539,694 ( 0.01%) ???:::parse_visibility [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 539,448 ( 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] 539,160 ( 0.01%) ???:::consume_operand [???] 536,262 ( 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] 535,541 ( 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] 535,396 ( 0.01%) ???:::try_plant_decl_into_local_module [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 535,187 ( 0.01%) ???:rustc_query_impl::execution::try_execute_query::>, usize), rustc_middle::query::erase::ErasedData<[u8; 48]>>, false> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 532,730 ( 0.01%) 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> 528,873 ( 0.01%) ???:::lower_match_tree [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 528,508 ( 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] 528,072 ( 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] 527,217 ( 0.01%) ???:::visit_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 526,291 ( 0.01%) ???:::visit_goal [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 525,621 ( 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] 522,259 ( 0.01%) ???: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] 521,999 ( 0.01%) ???:::expect [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 521,921 ( 0.01%) ???:>>::drop_slow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 521,368 ( 0.01%) ???:annotate_snippets::renderer::render::render [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 520,883 ( 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] 520,676 ( 0.01%) ???:::stmt_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 520,492 ( 0.01%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 520,409 ( 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] 518,480 ( 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] 517,853 ( 0.01%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 517,578 ( 0.01%) ???:::lower_variant_or_leaf [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 517,284 ( 0.01%) ???:::lower_node_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 516,510 ( 0.01%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 515,906 ( 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] 515,070 ( 0.01%) include/jemalloc/internal/tcache_inlines.h:malloc_default 514,577 ( 0.01%) ???: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] 513,735 ( 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] 513,591 ( 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] 513,473 ( 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] 513,452 ( 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] 511,308 ( 0.01%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 511,293 ( 0.01%) ???:core::str::count::do_count_chars [???] 510,252 ( 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] 509,441 ( 0.01%) ???:::variances_of [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 509,164 ( 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] 508,987 ( 0.01%) ???:::stmt_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 508,084 ( 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] 507,457 ( 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] 507,122 ( 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] 506,219 ( 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] 505,823 ( 0.01%) ???:::visit_assoc_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 505,809 ( 0.01%) ???:::typeck_root_def_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 505,540 ( 0.01%) ???:::param_or_placeholder_bound [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 504,408 ( 0.01%) ???:::visit_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 503,618 ( 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] 501,941 ( 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] 501,133 ( 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] 500,949 ( 0.01%) ???:rustc_ast::visit::walk_item_inner::>'2 [???] 500,778 ( 0.01%) ???:::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 499,068 ( 0.01%) ???:::run_pass [???] 498,380 ( 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] 497,995 ( 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] 496,860 ( 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] 496,680 ( 0.01%) ???:<&char as core::fmt::Display>::fmt [???] 496,614 ( 0.01%) ???:::visit_expr::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 495,858 ( 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] 495,824 ( 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] 495,734 ( 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] 494,612 ( 0.01%) ???: as rustc_type_ir::fold::TypeFolder>::fold_predicate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 493,193 ( 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] 492,682 ( 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] 492,495 ( 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] 492,068 ( 0.01%) ???:> 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] 491,918 ( 0.01%) src/extent.c:pa_alloc 491,743 ( 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] 491,711 ( 0.01%) ???:::brg_visit_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 491,681 ( 0.01%) ???:::visit_fn [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 491,525 ( 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] 490,584 ( 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] 490,419 ( 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] 490,373 ( 0.01%) ???:::lower_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 490,369 ( 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] 489,957 ( 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] 489,747 ( 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] 488,880 ( 0.01%) ???:::features [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 486,176 ( 0.01%) ???:>>::walk_ref [???] 486,173 ( 0.01%) ???:rustc_ty_utils::instance::resolve_instance_raw [???] 485,431 ( 0.01%) ???:::ancestors [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 485,089 ( 0.01%) ???:::resolve_crate_root [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 484,157 ( 0.01%) ???: 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] 484,053 ( 0.01%) ???:::fmt_to [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 483,006 ( 0.01%) ???:::sub_unify_ty_vids_raw [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 482,674 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/casts/cast_slice_from_raw_parts.rs:clippy_lints::casts::cast_slice_from_raw_parts::check_implicit_cast [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 481,823 ( 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] 481,809 ( 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] 481,043 ( 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] 480,360 ( 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 480,360 ( 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 479,710 ( 0.01%) ???:rustc_next_trait_solver::canonical::compute_query_response_instantiation_values::>>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 478,785 ( 0.01%) ???:>::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] 477,926 ( 0.01%) ???:<[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] 477,905 ( 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] 477,842 ( 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] 477,308 ( 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] 477,250 ( 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] 475,454 ( 0.01%) ???:::intern_region [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 474,996 ( 0.01%) ???:rustc_resolve::rustdoc::span_of_fragments [???] 474,659 ( 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] 474,057 ( 0.01%) ???:::annotated_lines'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 474,057 ( 0.01%) ???:rustc_query_impl::plumbing::verify_query_key_hashes_inner::>, usize), rustc_middle::query::erase::ErasedData<[u8; 48]>>>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 473,251 ( 0.01%) ???:::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 472,750 ( 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] 472,683 ( 0.01%) ???:>::finalize [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 471,311 ( 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] 471,069 ( 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] 470,952 ( 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] 470,752 ( 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] 470,565 ( 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] 470,088 ( 0.01%) ???:__rustc::__rust_alloc [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 470,009 ( 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] 469,715 ( 0.01%) ???:, core::option::Option>)> as core::clone::Clone>::clone [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 469,652 ( 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] 469,417 ( 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] 467,928 ( 0.01%) ???:>::finalize'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 467,510 ( 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] 466,291 ( 0.01%) ???:::new_with_implied_bounds_compat::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 466,183 ( 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] 466,169 ( 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] 465,987 ( 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] 465,592 ( 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] 465,457 ( 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] 465,188 ( 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] 465,175 ( 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] 464,755 ( 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] 464,536 ( 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] 464,136 ( 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] 463,849 ( 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] 463,743 ( 0.01%) 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] 463,554 ( 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] 463,148 ( 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] 462,728 ( 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] 462,686 ( 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] 462,610 ( 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] 462,553 ( 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] 462,298 ( 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] 462,183 ( 0.01%) ???:>::drop_slow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 460,799 ( 0.01%) ???: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] 459,716 ( 0.01%) ???:::stable_hash::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 459,665 ( 0.01%) ???:::impl_polarity [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 458,188 ( 0.01%) ???:::intern_const [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 457,984 ( 0.01%) ???: as rustc_type_ir::visit::TypeVisitableExt>::has_vars_bound_at_or_above [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 457,388 ( 0.01%) ???:::edition [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 457,123 ( 0.01%) ???:::lower_thir_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 456,639 ( 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] 456,044 ( 0.01%) ???:>, rustc_type_ir::search_graph::global_cache::CacheEntry)>>::reserve_rehash::>, rustc_type_ir::search_graph::global_cache::CacheEntry, rustc_hash::FxBuildHasher>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 455,434 ( 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] 454,727 ( 0.01%) include/jemalloc/internal/cache_bin.h:tcache_bin_flush_stashed 454,590 ( 0.01%) ???:>::fold_region [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 452,717 ( 0.01%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 452,557 ( 0.01%) ???:::lookup_method_for_operator [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 451,926 ( 0.01%) ???:::check_def_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 451,407 ( 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 451,116 ( 0.01%) ???:::visit_node:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 450,922 ( 0.01%) ???: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] 450,328 ( 0.01%) ???:::clone [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 450,276 ( 0.01%) include/jemalloc/internal/cache_bin.h:tcache_bin_flush_small 450,023 ( 0.01%) ???: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] 449,994 ( 0.01%) ???:>::probe_final_state [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 448,439 ( 0.01%) ???:rustc_borrowck::mir_borrowck [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 448,286 ( 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::::check::{closure#0}>>'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 447,223 ( 0.01%) ???:::anonymize_bound_vars::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 446,722 ( 0.01%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 446,340 ( 0.01%) ???:::as_constant [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 445,609 ( 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] 445,541 ( 0.01%) ???:::parse_expr_assoc_with [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 444,975 ( 0.01%) ???:, 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] 444,876 ( 0.01%) ???:::path_matches [???] 444,704 ( 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] 444,592 ( 0.01%) ???:rustc_ast::visit::visit_stmts::> [???] 444,523 ( 0.01%) /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] 444,473 ( 0.01%) ???:::encode_symbol [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 443,875 ( 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] 442,542 ( 0.01%) ???:::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 442,129 ( 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] 441,940 ( 0.01%) ???:>::walk_ref [/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] 439,098 ( 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] 439,091 ( 0.01%) ???:::next_nll_region_var [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 438,188 ( 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] 437,789 ( 0.01%) ???:> 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] 436,537 ( 0.01%) ???:::qpath_res [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 436,305 ( 0.01%) ???:::lifetime_res_to_generic_param [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 436,018 ( 0.01%) ???:::is_intrinsic [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 435,979 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 435,975 ( 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] 435,791 ( 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] 433,782 ( 0.01%) ???:core::str::converts::from_utf8 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 433,110 ( 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] 432,644 ( 0.01%) ???:::prepare_to_combine [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 432,393 ( 0.01%) ???: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] 432,266 ( 0.01%) ???:::make [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 432,028 ( 0.01%) ???:>::components_must_outlive [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 431,758 ( 0.01%) ???: as rustc_ast::visit::Visitor>::visit_item'2 [???] 431,252 ( 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] 430,814 ( 0.01%) ???:::mk_canonical_var_kinds [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 430,733 ( 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] 430,270 ( 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 429,494 ( 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] 429,442 ( 0.01%) ???:, 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] 429,105 ( 0.01%) include/jemalloc/internal/tsd_tls.h:calloc 428,673 ( 0.01%) ???:>>::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] 426,536 ( 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] 425,845 ( 0.01%) include/jemalloc/internal/sz.h:malloc_default 425,582 ( 0.01%) ???:::parse_dot_suffix_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 425,538 ( 0.01%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 424,606 ( 0.01%) ???:::from_tokens'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 424,520 ( 0.01%) ???:rustc_ty_utils::ty::impl_self_is_guaranteed_unsized [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 424,512 ( 0.01%) ???:rustc_next_trait_solver::solve::eval_ctxt::fast_path::compute_goal_fast_path_cold:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 424,481 ( 0.01%) ???: as core::cmp::PartialEq>::eq [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 423,828 ( 0.01%) 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] 423,756 ( 0.01%) ???:rustc_hir::intravisit::walk_expr::>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 423,069 ( 0.01%) ???:rustc_hir_typeck::method::probe::method_autoderef_steps [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 422,647 ( 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] 422,593 ( 0.01%) ???:::new_with_implied_bounds_compat::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 422,170 ( 0.01%) ???:rustc_hir_analysis::coherence::coherent_trait [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 419,591 ( 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] 419,569 ( 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] 419,348 ( 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] 418,688 ( 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] 418,184 ( 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> 418,110 ( 0.01%) include/jemalloc/internal/arena_inlines_b.h:calloc 417,992 ( 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] 416,844 ( 0.01%) src/arena.c:calloc 415,651 ( 0.01%) ???:::insert [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 415,530 ( 0.01%) ???:>>,)>>::call_once [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 415,495 ( 0.01%) ???: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] 415,255 ( 0.01%) ???:::try_resolve [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 414,974 ( 0.01%) ???:::clone_opaque_types_lookup_table [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 414,490 ( 0.01%) ???:::flat_map_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 413,825 ( 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] 413,737 ( 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] 413,706 ( 0.01%) ???:rustc_passes::dead::check_mod_deathness [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 412,929 ( 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] 411,180 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 411,079 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 410,154 ( 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] 409,680 ( 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] 409,642 ( 0.01%) 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] 409,424 ( 0.01%) ???:::opportunistic_resolve_ty_var [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 408,717 ( 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] 408,646 ( 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] 408,324 ( 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] 407,871 ( 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] 406,350 ( 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] 405,850 ( 0.01%) ???:::hash_one::<&unicase::UniCase> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 405,096 ( 0.01%) ???:::lower_pat [???] 404,393 ( 0.01%) ???:::flat_map_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 404,055 ( 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] 403,905 ( 0.01%) ???:>::walk_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 403,807 ( 0.01%) ???:::append [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 403,300 ( 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 402,676 ( 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] 402,325 ( 0.01%) ???: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] 402,038 ( 0.01%) ???:::update_field [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 401,956 ( 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 401,356 ( 0.01%) ???:>>::walk_ref [???] 400,966 ( 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] 400,953 ( 0.01%) ???:::opt_item_name:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 400,385 ( 0.01%) ???:>>::walk_ref [???] 400,222 ( 0.01%) ???:::lower_fn_decl [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 399,778 ( 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> 398,753 ( 0.01%) ???:::create_def [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 398,597 ( 0.01%) ???:::impl_super_outlives [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 397,138 ( 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] 396,625 ( 0.01%) ???:::lower_use_tree [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 395,122 ( 0.01%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 395,056 ( 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] 394,995 ( 0.01%) ???:::is_changed_arg [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 394,887 ( 0.01%) ???:::resolve_vars_if_possible:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 394,711 ( 0.01%) ???:::late_bound_vars [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 393,554 ( 0.01%) ???:::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] 393,255 ( 0.01%) ???:rustc_ast::visit::visit_assoc_items::> [???] 393,148 ( 0.01%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 392,669 ( 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,346 ( 0.01%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 390,808 ( 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] 390,468 ( 0.01%) ???: as rustc_ast::visit::Visitor>::visit_pat [???] 389,318 ( 0.01%) ???:::probe_for_name'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 389,167 ( 0.01%) ???:rustc_ast_pretty::pprust::path_to_string [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 388,848 ( 0.01%) ???:)>, rustc_middle::query::erase::ErasedData<[u8; 32]>> 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] 388,681 ( 0.01%) ???:::parse_limited_sym [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 388,416 ( 0.01%) ???:::mk_poly_existential_predicates [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 387,971 ( 0.01%) site/frontend/rust-clippy/clippy_utils/src/msrvs.rs:::check_attributes 387,971 ( 0.01%) site/frontend/rust-clippy/clippy_utils/src/msrvs.rs:::check_attributes_post 387,558 ( 0.01%) ???:, core::slice::iter::Iter, ::all_fields::{closure#0}>, >::all_field_tys::{closure#0}>, &rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg>>, >::skip_norm_wip> 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] 387,092 ( 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] 387,079 ( 0.01%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 386,046 ( 0.01%) ???:core::ptr::drop_glue::> [???] 385,600 ( 0.01%) ???:>::normalize::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 385,576 ( 0.01%) ???:::visit_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 385,398 ( 0.01%) 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] 384,045 ( 0.01%) ???:::visit_impl_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 383,609 ( 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] 380,703 ( 0.01%) ???:::instantiate_identity_into'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 380,224 ( 0.01%) ???:::resolve_crate::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 380,216 ( 0.01%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 379,649 ( 0.01%) ???:::instantiate_opt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 379,458 ( 0.01%) ???:::project_deeper [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 379,059 ( 0.01%) ???:::visit_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 378,595 ( 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] 377,851 ( 0.01%) ???:core::ptr::drop_glue::, core::option::Option>)>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 377,727 ( 0.01%) ???: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] 377,667 ( 0.01%) ???:::brg_visit_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 375,736 ( 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] 375,010 ( 0.01%) ???:rustc_passes::stability::check_mod_unstable_api_usage [???] 374,740 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/incompatible_msrv.rs:::emit_lint_if_under_msrv [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 374,709 ( 0.01%) ???:::alloc_ctxt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 373,479 ( 0.01%) ???:::flat_map_stmt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 373,022 ( 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] 372,516 ( 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 372,321 ( 0.01%) ???:>::reserve_rehash::>>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 371,958 ( 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] 371,946 ( 0.01%) ???:::hir_owner_parent'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 371,268 ( 0.01%) ???: as rustc_const_eval::interpret::visitor::ValueVisitor>::walk_value'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 371,242 ( 0.01%) ???:::find_ancestor_inside [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 370,912 ( 0.01%) ???:::node [???] 370,712 ( 0.01%) ???:::visit_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 370,692 ( 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] 370,424 ( 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] 369,542 ( 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> 368,371 ( 0.01%) ???:rustc_ast::visit::visit_stmts::>'2 [???] 367,810 ( 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] 367,388 ( 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] 366,578 ( 0.01%) ???:0x0000000000029600 [/usr/lib/ld-linux-x86-64.so.2] 366,417 ( 0.01%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 366,414 ( 0.01%) include/jemalloc/internal/rtree.h:ecache_evict 365,107 ( 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] 365,072 ( 0.01%) ???:::var_for_def [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 364,286 ( 0.01%) ???:::try_find_coercion_lub [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 363,517 ( 0.01%) ???:::parse_meta_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 363,252 ( 0.01%) ???:::check_expr_method_call'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 363,200 ( 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] 363,164 ( 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] 362,970 ( 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] 361,348 ( 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] 360,077 ( 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] 359,319 ( 0.01%) ???:::find [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 359,308 ( 0.01%) ???: as rustc_next_trait_solver::solve::assembly::GoalKind>::consider_impl_candidate::<>::assemble_impl_candidates>::{closure#0}::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 359,248 ( 0.01%) ???:::lower_stmts [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 358,386 ( 0.01%) ???:::pad [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 357,693 ( 0.01%) ???:::set_bindings_effective_visibilities [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 355,824 ( 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] 355,793 ( 0.01%) ???:>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 355,508 ( 0.01%) ???:::flat_map_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 355,044 ( 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] 354,202 ( 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] 353,051 ( 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 352,107 ( 0.01%) ???:::new_named_lifetime [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 351,815 ( 0.01%) ???:::parse_expr_prefix [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 351,694 ( 0.01%) ???:::check_decl [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 350,378 ( 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] 350,307 ( 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] 350,014 ( 0.01%) ???:>>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 349,384 ( 0.01%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 349,046 ( 0.01%) ???:>::call_once [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 348,073 ( 0.01%) src/tcache.c:free_default 347,760 ( 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] 347,521 ( 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] 347,472 ( 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] 347,374 ( 0.01%) ???: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] 346,880 ( 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::expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 345,372 ( 0.01%) ???:>::fold_const [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 344,602 ( 0.01%) ???:::new'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 344,218 ( 0.01%) ???:>::{closure#0}> as rustc_type_ir::fold::FallibleTypeFolder>::try_fold_ty::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 343,744 ( 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] 343,009 ( 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] 341,266 ( 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] 340,754 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 340,142 ( 0.01%) ???:::span_to_locations'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 339,387 ( 0.01%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 339,345 ( 0.01%) ???: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] 339,308 ( 0.01%) ???:::fmt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 338,759 ( 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] 338,449 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 337,503 ( 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] 337,415 ( 0.01%) ???:rustc_hir::intravisit::walk_qpath::> [???] 337,108 ( 0.01%) ???:::check_match [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 336,974 ( 0.01%) ???:>>::push [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 336,950 ( 0.01%) ???: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] 336,373 ( 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] 336,072 ( 0.01%) /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:: 335,966 ( 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] 335,953 ( 0.01%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_lexer/src/lib.rs:::with_source_text::::{closure#0}> 335,821 ( 0.01%) ???:::lower_stmts'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 335,809 ( 0.01%) ???: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] 334,716 ( 0.01%) ???:>::reserve_rehash::, ()>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 334,300 ( 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] 334,196 ( 0.01%) ???: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] 333,989 ( 0.01%) ???:::mark_live_symbols [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 333,634 ( 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:clippy_lints::doc::doc_suspicious_footnotes::check 331,886 ( 0.01%) ???:::access_place [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 331,029 ( 0.01%) ???:::mirror_expr_inner'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 330,842 ( 0.01%) ???:rustc_mir_transform::cross_crate_inline::cross_crate_inlinable [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 330,371 ( 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] 329,491 ( 0.01%) ???:::parse_single:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 327,498 ( 0.01%) ???:>>::walk_ref [???] 326,980 ( 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] 326,493 ( 0.01%) ???: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] 326,328 ( 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] 325,656 ( 0.01%) ???:::check_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 325,370 ( 0.01%) ???:::fill_well_known'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 325,347 ( 0.01%) ???:::get_terminator_edges [???] 325,227 ( 0.01%) ???:::get_diagnostic_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 324,545 ( 0.01%) ???:>::rebase_onto [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 324,340 ( 0.01%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 323,760 ( 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] 323,537 ( 0.01%) ???:::visit_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 323,334 ( 0.01%) ???:>, usize)>>::drop_and_maybe_poison [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 322,567 ( 0.01%) ???:::check_args_compatible_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 322,274 ( 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] 321,532 ( 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] 320,353 ( 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_qpath:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 320,246 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 319,928 ( 0.01%) ???:rustc_ast::visit::walk_item_inner::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 319,446 ( 0.01%) ???:rustc_middle::hir::map::crate_hash [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 319,389 ( 0.01%) ???:::pick_method [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 319,186 ( 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] 319,080 ( 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] 318,687 ( 0.01%) ???:rustc_lint::levels::skippable_lints'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 318,000 ( 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] 317,948 ( 0.01%) ???:::resolve_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 317,555 ( 0.01%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 317,397 ( 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> 317,375 ( 0.01%) ???:::mk_predefined_opaques_in_body [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 317,096 ( 0.01%) src/tcache.c:malloc_default 316,723 ( 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] 316,690 ( 0.01%) ???:std::exception::~exception() [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 315,896 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 315,284 ( 0.01%) ???:>::get_attrs [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 315,194 ( 0.01%) ???:rustc_next_trait_solver::solve::has_only_region_constraints:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 314,634 ( 0.01%) ???:rustc_hir_analysis::collect::generics_of::generics_of'2 [???] 314,605 ( 0.01%) ???:::eq [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 314,140 ( 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] 313,998 ( 0.01%) ???:::visit_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 313,505 ( 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] 313,503 ( 0.01%) ???:::match_candidates'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 313,259 ( 0.01%) include/jemalloc/internal/rtree.h:pa_dalloc 312,480 ( 0.01%) ???:rustc_attr_parsing::attributes::cfg::parse_cfg_attr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 312,200 ( 0.01%) ???:rustc_trait_selection::solve::evaluate_root_goal_for_proof_tree_raw [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 311,192 ( 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] 310,765 ( 0.01%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 310,455 ( 0.01%) ???:::build_reduced_graph_for_use_tree [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 309,121 ( 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] 308,944 ( 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 308,466 ( 0.01%) ???: as rustc_hir::intravisit::Visitor>::visit_ty [???] 308,066 ( 0.01%) ???:::fully_expand_fragment'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 307,554 ( 0.01%) ???: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] 307,110 ( 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] 307,071 ( 0.01%) ???: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] 306,768 ( 0.01%) ???:::field_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 306,704 ( 0.01%) ???: 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] 306,670 ( 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] 306,264 ( 0.01%) ???:::resolve_anonymous_lifetime [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 305,857 ( 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] 304,717 ( 0.01%) ???:::parse_pat_tuple_struct [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 303,520 ( 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> 302,691 ( 0.01%) ???:rustc_type_ir::relate::combine::combine_ty_args::, as rustc_type_ir::relate::TypeRelation>::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] 301,828 ( 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] 301,542 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 301,491 ( 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] 301,491 ( 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] 300,552 ( 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] 300,226 ( 0.01%) ???:::parse_struct_fields [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 299,785 ( 0.01%) ???:>::make_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 299,744 ( 0.01%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 299,741 ( 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] 299,158 ( 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 298,691 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 298,429 ( 0.01%) ???:> as rustc_middle::query::caches::QueryCache>::for_each'2 [???] 298,009 ( 0.01%) ???: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] 297,947 ( 0.01%) ???:::register_wf_obligation [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 297,295 ( 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] 296,945 ( 0.01%) ???:::resolve_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 296,794 ( 0.01%) ???:::lower_resolved_ty_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 296,559 ( 0.01%) ???:rustc_mir_transform::mir_keys'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 295,293 ( 0.01%) ???:>::call_once [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 294,078 ( 0.01%) ???:>::take_and_enter_probe [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 293,100 ( 0.01%) ???:::parse_where_clause_common [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 293,038 ( 0.01%) include/jemalloc/internal/thread_event.h:malloc_default 292,656 ( 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] 292,470 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 291,652 ( 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] 291,564 ( 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> 291,506 ( 0.01%) ???: as rustc_ast::visit::Visitor>::visit_stmt::{closure#0} [???] 291,491 ( 0.01%) ???:::demand_suptype_diag [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 290,520 ( 0.01%) ???:::is_impl_trait_in_trait [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 289,410 ( 0.01%) ???:::cmp [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 289,077 ( 0.01%) ???: as rustc_hir::intravisit::Visitor>::visit_nested_body [???] 288,994 ( 0.01%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 288,903 ( 0.01%) ???:>>::upcast_from [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 288,377 ( 0.01%) ???:::feed_visibility [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 287,638 ( 0.01%) ???:>::walk_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 287,469 ( 0.01%) ???:::parse_expr_field::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 287,150 ( 0.01%) ???:::check_expr_pat_type [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 287,006 ( 0.01%) ???:::relate_types [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 286,578 ( 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] 286,338 ( 0.01%) ???:::lower_path_segment [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 286,046 ( 0.01%) ???:rustc_hir_analysis::check_crate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 284,999 ( 0.01%) ???:>::reserve [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 284,974 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 284,396 ( 0.01%) ???:>::with_lint_attrs::< as rustc_ast::visit::Visitor>::visit_param::{closure#0}>::{closure#0} [???] 284,311 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 284,305 ( 0.01%) ???:>::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.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 284,006 ( 0.01%) ???:rustc_lint::expect::lint_expectations [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 283,894 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 283,387 ( 0.01%) ???: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] 283,062 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 282,953 ( 0.01%) ???:::check_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 282,724 ( 0.01%) ???:::adjust_ident [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 282,284 ( 0.01%) site/frontend/rust-clippy/clippy_utils/src/res.rs:::check_expr 282,206 ( 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] 281,630 ( 0.01%) ???:::check_let [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 280,540 ( 0.01%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 280,492 ( 0.01%) ???: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] 279,826 ( 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] 279,744 ( 0.01%) ???:::deeply_normalize:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 279,478 ( 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] 279,326 ( 0.01%) ???:rustc_ast::visit::walk_item_inner::> [???] 278,975 ( 0.01%) ???:::prohibit_generic_args::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 278,679 ( 0.01%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 278,679 ( 0.01%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 278,508 ( 0.01%) include/jemalloc/internal/edata.h:malloc_default 278,201 ( 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] 276,479 ( 0.01%) ???:::annotated_lines [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 276,290 ( 0.01%) ???:::opaque_types_defined_by [???] 276,098 ( 0.01%) ???:::resolve_lifetime_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 275,255 ( 0.01%) ???:rustc_hir_analysis::coherence::orphan::orphan_check [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 275,046 ( 0.01%) ???:::lower_attrs_with_extra [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 274,889 ( 0.01%) ???:::lower_pat_mut'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 274,729 ( 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] 274,447 ( 0.01%) ???:::get_extern_module_with_lock [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 273,716 ( 0.01%) ???:::flat_map_stmt'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 272,612 ( 0.01%) ???:::visit_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 272,487 ( 0.01%) ???:::check_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 272,382 ( 0.01%) ???:::parent_hir_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 272,146 ( 0.01%) ???:>::inner_fold_ty::{closure#1} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 272,059 ( 0.01%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 271,646 ( 0.01%) ???:rustc_ast::visit::walk_fn::> [???] 271,640 ( 0.01%) ???:::parse_local [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 269,921 ( 0.01%) ???:::parse_path_segment'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 268,419 ( 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> 268,135 ( 0.01%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 268,072 ( 0.01%) ???:::check_tokens'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 267,410 ( 0.01%) ???:::check_args_compatible_inner'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 266,897 ( 0.01%) ???:::type_is_copy_modulo_regions [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 265,800 ( 0.01%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 265,271 ( 0.01%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 264,923 ( 0.01%) ???:>, usize)>>::complete::>, usize), rustc_middle::query::erase::ErasedData<[u8; 48]>>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 264,332 ( 0.01%) 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] 263,686 ( 0.01%) ???:::hir_owner_parent [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 263,354 ( 0.01%) ???:>::register_obligations::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 262,694 ( 0.01%) ???:::lower_expr_try [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 262,660 ( 0.01%) include/jemalloc/internal/sz.h:tcache_bin_flush_small 262,032 ( 0.01%) ???: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] 261,955 ( 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] 261,396 ( 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:: 261,362 ( 0.01%) ???:annotate_snippets::renderer::render::render'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 261,059 ( 0.01%) ???:rustc_trait_selection::traits::specialize::specialization_graph_provider [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 261,010 ( 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] 259,553 ( 0.01%) 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] 258,623 ( 0.01%) ???:::compute_object_lifetime_defaults [???] 258,440 ( 0.01%) 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] 258,253 ( 0.01%) ???:::check_fn [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 258,176 ( 0.01%) ???:::instantiate_proof_tree_for_nested_goal [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 258,132 ( 0.01%) ???:>::assemble_alias_bound_candidates_recur::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 257,171 ( 0.01%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 257,058 ( 0.01%) ???:::imported_source_file::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 256,985 ( 0.01%) src/sz.c:pa_alloc 255,245 ( 0.01%) src/thread_event.c:free_default 255,151 ( 0.01%) include/jemalloc/internal/bit_util.h:pa_alloc 254,569 ( 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] 254,173 ( 0.01%) include/jemalloc/internal/mutex.h:pa_alloc 253,862 ( 0.01%) ???:::resolve_vars_with_obligations:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 253,765 ( 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] 253,388 ( 0.01%) ???:rustc_type_ir::infer_ctxt::eager_resolve_vars::, alloc::vec::Vec<(rustc_type_ir::opaque_ty::OpaqueTypeKey, rustc_middle::ty::Ty)>)> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 253,093 ( 0.01%) ???: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] 251,875 ( 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] 250,907 ( 0.01%) ???:::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] 250,633 ( 0.01%) ???: as rustc_next_trait_solver::solve::assembly::GoalKind>::consider_builtin_fn_trait_candidates [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 250,094 ( 0.01%) ???:pulldown_cmark::parse::item_to_event [???] 249,745 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/functions/too_many_lines.rs:::check_fn 249,656 ( 0.01%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 249,452 ( 0.01%) include/jemalloc/internal/edata.h:pa_dalloc 249,163 ( 0.01%) include/jemalloc/internal/jemalloc_internal_inlines_b.h:malloc_default 248,478 ( 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] 248,194 ( 0.01%) ???:::lower_maybe_coroutine_body [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 247,581 ( 0.01%) ???:>::fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 247,315 ( 0.01%) ???:::span_to_locations [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 247,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] 246,790 ( 0.01%) ???:::span [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 246,636 ( 0.01%) ???:>::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] 246,507 ( 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] 245,819 ( 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_qpath:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 245,414 ( 0.01%) ???:::parse_arm::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 245,312 ( 0.01%) ???:>::insert_from_slice [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 244,582 ( 0.01%) ???:>::reserve_rehash::>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 243,812 ( 0.01%) /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] 243,431 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 242,970 ( 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> 242,890 ( 0.01%) ???:>>>>::encode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 242,798 ( 0.01%) ???:>::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,299 ( 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] 242,256 ( 0.01%) ???: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] 241,714 ( 0.01%) ???:>::insert [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 241,393 ( 0.01%) site/frontend/rust-clippy/clippy_utils/src/consts.rs:::expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 241,194 ( 0.01%) ???:::canonicalize_user_type_annotation:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 241,134 ( 0.01%) ???: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] 240,786 ( 0.01%) /rust/deps/thin-vec-0.2.19/src/lib.rs:::check_attributes 240,692 ( 0.01%) ???:::decode_symbol [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 240,676 ( 0.01%) ???: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] 240,183 ( 0.01%) ???:::is_suggestable_infer_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 239,944 ( 0.01%) ???:> 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] 239,928 ( 0.01%) ???:::normalize:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 239,815 ( 0.01%) ???:::handle_res [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 239,531 ( 0.01%) ???:::confirm'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 239,439 ( 0.01%) ???:::coerce [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 239,383 ( 0.01%) ???: as rustc_ast::visit::Visitor>::visit_stmt::{closure#0}'2 [???] 238,579 ( 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] 238,552 ( 0.01%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 238,491 ( 0.01%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 238,114 ( 0.01%) ???:::break_and_eat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 238,069 ( 0.01%) ???:::parse_safety [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 237,923 ( 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] 237,791 ( 0.01%) ???:rustc_ast::visit::walk_item_inner::> [???] 237,707 ( 0.01%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 237,374 ( 0.01%) ???: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] 237,216 ( 0.01%) ???:::visit_generics [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 237,198 ( 0.01%) ???:>::cat_expr_unadjusted [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 236,922 ( 0.01%) src/thread_event.c:malloc_default 236,874 ( 0.01%) ???:::normalize::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 236,711 ( 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 236,564 ( 0.01%) ???: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] 236,560 ( 0.01%) ???:::check_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 236,361 ( 0.01%) ???: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] 236,315 ( 0.01%) include/jemalloc/internal/rtree.h:free_default 236,189 ( 0.01%) ???:::visit_assoc_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 236,104 ( 0.01%) include/jemalloc/internal/bit_util.h:realloc 235,883 ( 0.01%) ???:>::walk_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 235,622 ( 0.01%) ???:__cxa_finalize [/usr/lib/libc.so.6] 235,527 ( 0.01%) ???:>, usize), (rustc_middle::query::erase::ErasedData<[u8; 48]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<>, usize), (rustc_middle::query::erase::ErasedData<[u8; 48]>, 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] 235,170 ( 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_post 234,882 ( 0.01%) ???:::lower [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 234,858 ( 0.01%) ???:rustc_mir_transform::mir_built [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 234,727 ( 0.01%) ???:::is_const_fn:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 232,526 ( 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] 232,478 ( 0.01%) ???:::test_candidates'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 231,701 ( 0.01%) ???:::nominal_obligations [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 231,088 ( 0.01%) ???:::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] 231,002 ( 0.01%) ???:::goal_may_hold_opaque_types_jank [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 230,608 ( 0.01%) ???:::entire [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 230,403 ( 0.01%) ???:::lower_pat'2 [???] 230,205 ( 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] 229,900 ( 0.01%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 229,888 ( 0.01%) ???:::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] 229,690 ( 0.01%) ???:, rustc_middle::ty::context::TyCtxt>>::evaluate_goal_in_task [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 229,673 ( 0.01%) ???:::lower_param [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 229,259 ( 0.01%) ???:::visit_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 228,852 ( 0.01%) ???:::require_lang_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 228,631 ( 0.01%) ???:::require_type_is_sized [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 228,512 ( 0.01%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 228,473 ( 0.01%) ???:<&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] 228,454 ( 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 227,578 ( 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 227,256 ( 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] 227,191 ( 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 227,172 ( 0.01%) site/frontend/rust-clippy/clippy_lints/src/loops/never_loop.rs:clippy_lints::loops::never_loop::never_loop_expr'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 227,128 ( 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 227,128 ( 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 227,128 ( 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 227,128 ( 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 227,128 ( 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 227,128 ( 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 227,128 ( 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 227,128 ( 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 227,128 ( 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 227,128 ( 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 227,128 ( 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 227,099 ( 0.01%) ???:::parse_self_param [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 226,995 ( 0.01%) ???:::typing_mode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 226,705 ( 0.01%) /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 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 226,422 ( 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] 225,936 ( 0.01%) ???:rustc_hir_analysis::check::wfcheck::check_type_defn [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 225,750 ( 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] 225,653 ( 0.01%) ???:<&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] 225,119 ( 0.01%) ???: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] 225,035 ( 0.01%) ???:::impl_is_default [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 224,611 ( 0.01%) ???:::parse_ident_common [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 223,560 ( 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}> [???] 223,308 ( 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] 223,129 ( 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 222,840 ( 0.01%) ???:<&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] 222,804 ( 0.01%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 221,917 ( 0.01%) ???:rustc_passes::check_attr::check_mod_attrs [???] 221,885 ( 0.01%) ???:>>::walk_ref [???] 221,533 ( 0.01%) ???: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] 220,970 ( 0.01%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 220,970 ( 0.01%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 220,646 ( 0.01%) /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 220,080 ( 0.01%) ???:::parse_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 219,892 ( 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] 219,342 ( 0.01%) ???:>>::walk_ref [???] 219,286 ( 0.01%) ???:::parse_generic_params [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 218,773 ( 0.01%) ???:::ident [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 218,651 ( 0.01%) ???:>::encode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 218,290 ( 0.01%) ???:::into_outputs [???] 218,009 ( 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:::trim_matches::<::is_whitespace> 218,001 ( 0.01%) ???: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] 217,560 ( 0.01%) ???:>::with_capacity_in [???] 217,552 ( 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 217,552 ( 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 217,552 ( 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_cmp::check 217,523 ( 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] 217,445 ( 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 217,433 ( 0.01%) ???:::resolve_block'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 217,426 ( 0.01%) ???:::maybe_new_source_scope [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 217,312 ( 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] 217,263 ( 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] 216,867 ( 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] 216,677 ( 0.01%) include/jemalloc/internal/edata.h:ecache_evict 216,225 ( 0.01%) include/jemalloc/internal/ph.h:malloc_default 216,146 ( 0.01%) ???:::mut_visit_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 215,316 ( 0.01%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 214,991 ( 0.01%) ???:rustc_hir_analysis::check::wfcheck::check_impl [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 214,946 ( 0.01%) ???:::defaultness [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 214,867 ( 0.01%) include/jemalloc/internal/mutex.h:tcache_bin_flush_small 214,673 ( 0.01%) ???:::next_ty_infer [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 214,610 ( 0.01%) ???:::symbol_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 214,572 ( 0.01%) ???:::is_trivially_pure_clone_copy [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 214,430 ( 0.01%) ???:::create_def [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 214,283 ( 0.01%) ???:::register_lints [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 214,155 ( 0.01%) include/jemalloc/internal/atomic.h:pa_alloc 214,092 ( 0.01%) ???:::list_from_tokens'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 213,857 ( 0.01%) ???:::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] 213,771 ( 0.01%) ???:rustc_trait_selection::traits::specialize::specialization_graph::assoc_def [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 213,155 ( 0.01%) ???:>::normalize::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 212,953 ( 0.01%) ???:::new'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 212,949 ( 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] 212,896 ( 0.01%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 212,812 ( 0.01%) ???:<&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] 212,745 ( 0.01%) ???:::serialize::<&mut serde_json::ser::Serializer<&mut alloc::boxed::Box>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 212,390 ( 0.01%) ???:::expr_adjustments [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 212,355 ( 0.01%) ???: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] 212,355 ( 0.01%) ???: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] 212,130 ( 0.01%) ???:>::{closure#0}>>::normalize_alias_term [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 212,095 ( 0.01%) include/jemalloc/internal/mutex.h:malloc_default 211,665 ( 0.01%) 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] 211,420 ( 0.01%) ???:::in_external_macro'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 211,120 ( 0.01%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 210,842 ( 0.01%) ???:>::register_bound [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 210,806 ( 0.01%) ???:>::record_impl_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 210,666 ( 0.01%) ???:::next'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 210,590 ( 0.01%) ???:>::drop_slow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 210,579 ( 0.01%) ???:::check_impl_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 209,827 ( 0.01%) /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 209,790 ( 0.01%) ???:::check_lint_name [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 209,097 ( 0.01%) ???: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,093 ( 0.01%) ???:::parse_path_inner'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 208,131 ( 0.01%) ???: as rustc_hir::intravisit::Visitor>::visit_block [???] 207,456 ( 0.01%) ???:::finish_grow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 207,294 ( 0.01%) ???:rustc_trait_selection::traits::query::dropck_outlives::trivial_dropck_outlives'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 207,052 ( 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] 206,787 ( 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] 206,476 ( 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] 206,131 ( 0.01%) ???:rustc_hir::intravisit::walk_pat::> [???] 205,575 ( 0.01%) ???:rustc_attr_parsing::attributes::cfg::eval_config_entry [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 205,075 ( 0.01%) ???: as rustc_hir::intravisit::Visitor>::visit_block'2 [???] 204,670 ( 0.01%) include/jemalloc/internal/ph.h:pa_dalloc 203,938 ( 0.01%) ???:>::{closure#0}>>::normalize_alias_term [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 203,728 ( 0.01%) 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] 203,624 ( 0.01%) ???:>>::walk_ref [???] 203,350 ( 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] 203,154 ( 0.00%) ???:rustc_middle::query::inner::query_feed::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 203,148 ( 0.00%) ???: as rustc_type_ir::relate::TypeRelation>::tys'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 203,063 ( 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] 202,981 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 202,943 ( 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] 202,620 ( 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] 202,501 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/incompatible_msrv.rs:::check_ty 202,335 ( 0.00%) ???:>::{closure#0}> as rustc_type_ir::fold::FallibleTypeFolder>::try_fold_ty::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 202,255 ( 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] 202,231 ( 0.00%) ???:>::seek_after [???] 202,066 ( 0.00%) ???:::flat_map_assoc_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 201,650 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/attrs.rs:::check_attributes 201,452 ( 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::macros::root_macro_call 201,385 ( 0.00%) ???:::mk_args_from_iter::, core::iter::adapters::skip::Skip>>>, >::into>, rustc_middle::ty::generic_args::GenericArg> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 201,333 ( 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] 200,054 ( 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] 199,992 ( 0.00%) src/thread_event.c:realloc 199,934 ( 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 199,864 ( 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] 199,856 ( 0.00%) ???: as rustc_ast::visit::Visitor>::visit_pat'2 [???] 199,699 ( 0.00%) ???:rustc_trait_selection::traits::coherence::overlap [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 199,469 ( 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] 199,068 ( 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] 198,875 ( 0.00%) ???:rustc_traits::codegen::codegen_select_candidate [???] 198,526 ( 0.00%) ???: as rustc_ast::visit::Visitor>::visit_item [???] 198,271 ( 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] 198,107 ( 0.00%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 198,037 ( 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 197,890 ( 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::macros::root_macro_call 197,716 ( 0.00%) ???:::pat_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 197,572 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_in_test [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 197,497 ( 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] 197,151 ( 0.00%) ???:core::ptr::drop_glue::, core::option::Option>)>, as rustc_infer::traits::engine::TraitEngine>::collect_remaining_errors::{closure#0}>, core::iter::adapters::map::Map>, as rustc_infer::traits::engine::TraitEngine>::collect_remaining_errors::{closure#1}>>, as rustc_infer::traits::engine::TraitEngine>::collect_remaining_errors::{closure#2}>>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 197,010 ( 0.00%) ???:>::drop_slow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 196,873 ( 0.00%) ???:>::fill_item:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 196,820 ( 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] 196,680 ( 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:>::with::<::with::outer_expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 196,595 ( 0.00%) ???:>::walk_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 196,443 ( 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] 195,945 ( 0.00%) ???:::data_untracked [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 195,698 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/cognitive_complexity.rs:rustc_hir::intravisit::walk_expr::::check::{closure#0}>>'2 195,676 ( 0.00%) ???:::hir_body [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 195,186 ( 0.00%) ???:::check_missing_docs_attrs [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 194,982 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 194,853 ( 0.00%) ???:::name [???] 194,676 ( 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] 194,583 ( 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] 194,376 ( 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:>::with::<::with::outer_expn::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnId> 194,364 ( 0.00%) ???:>::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] 194,250 ( 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] 193,989 ( 0.00%) ???:::parse_generic_bounds_common [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 193,873 ( 0.00%) ???:::visit_body'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 193,634 ( 0.00%) ???:::unify_raw [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 193,607 ( 0.00%) ???:core::str::count::char_count_general_case [???] 193,371 ( 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 193,242 ( 0.00%) ???:::visit_const_operand [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 193,098 ( 0.00%) ???:>>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 193,088 ( 0.00%) ???:::eq [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 192,874 ( 0.00%) src/tcache.c:realloc 192,858 ( 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 192,721 ( 0.00%) ???:> 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] 192,268 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs:::check_expr 192,208 ( 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> 192,160 ( 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] 191,966 ( 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] 191,875 ( 0.00%) ???:0x000000000000ad20 [/usr/lib/ld-linux-x86-64.so.2] 191,707 ( 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] 191,663 ( 0.00%) ???:::insert_blindly [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 190,964 ( 0.00%) ???:::parse_pat_no_top_guard_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 190,782 ( 0.00%) ???:>::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] 190,358 ( 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 190,358 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/regex.rs:::check_expr_post 190,356 ( 0.00%) ???:::evaluate_obligation_no_overflow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 190,060 ( 0.00%) ???:::walk_::<::pat_error_reported::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 188,817 ( 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] 188,351 ( 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] 188,340 ( 0.00%) ???:::insert_placeholder_assumptions [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 188,148 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 188,101 ( 0.00%) ???:>::apply_constructor [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 187,797 ( 0.00%) ???:::check_stmt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 187,694 ( 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] 187,397 ( 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::is_in_test 187,356 ( 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] 187,312 ( 0.00%) include/jemalloc/internal/ticker.h:malloc_default 186,700 ( 0.00%) ???: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] 186,520 ( 0.00%) ???:::pat_lang_item_variant [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 186,445 ( 0.00%) ???:::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] 186,400 ( 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] 186,274 ( 0.00%) ???:::check_assoc_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 185,994 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 185,733 ( 0.00%) ???:::lower_use_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 185,673 ( 0.00%) ???:rustc_attr_parsing::attributes::cfg::parse_cfg_entry [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 185,519 ( 0.00%) ???:::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] 185,466 ( 0.00%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 184,699 ( 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,466 ( 0.00%) ???:>::normalize::{closure#0}> as rustc_type_ir::fold::FallibleTypeFolder>::try_fold_ty::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 184,352 ( 0.00%) ???: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] 183,989 ( 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] 183,379 ( 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,325 ( 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] 182,172 ( 0.00%) ???:::from_token [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 182,108 ( 0.00%) ???:>::fill_item::<::fresh_args_for_item::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 181,897 ( 0.00%) ???:::generics [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 181,310 ( 0.00%) /rust/deps/smallvec-1.15.1/src/lib.rs: as core::iter::traits::collect::Extend>::extend::>> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 180,381 ( 0.00%) ???: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] 180,216 ( 0.00%) ???:::is_conditionally_const::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 180,014 ( 0.00%) ???:>::decode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 178,444 ( 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] 178,444 ( 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] 178,444 ( 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] 178,434 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 178,372 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/unnested_or_patterns.rs:::check_expr 178,233 ( 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] 178,166 ( 0.00%) ???: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] 178,115 ( 0.00%) ???:::walk_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 177,990 ( 0.00%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 176,748 ( 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] 176,699 ( 0.00%) ???:::clone [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 176,546 ( 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] 175,972 ( 0.00%) ???:::visit_nested_no_probe:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 175,968 ( 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: 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> 175,800 ( 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] 175,717 ( 0.00%) ???:::hir_item [???] 175,290 ( 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 175,290 ( 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] 175,290 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/msrvs.rs:::meets 175,108 ( 0.00%) ???:::expr_lang_item_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 174,867 ( 0.00%) ???:::lookup_line [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 174,860 ( 0.00%) ???:::break_for_else [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 174,560 ( 0.00%) ???:rustc_ast::visit::visit_generic_params::> [???] 174,514 ( 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 174,264 ( 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:clippy_utils::macros::first_node_in_macro:: 174,078 ( 0.00%) ???:::body_codegen_attrs [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 173,970 ( 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] 173,640 ( 0.00%) ???:::hir_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 173,558 ( 0.00%) ???:::get_locales [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 172,804 ( 0.00%) ???:::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 172,041 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 171,581 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 171,279 ( 0.00%) src/extent.c:tcache_bin_flush_small 171,225 ( 0.00%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 171,110 ( 0.00%) ???: as rustc_ast::visit::Visitor>::visit_fn [???] 170,992 ( 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] 170,745 ( 0.00%) ???:>>::walk_ref'2 [???] 170,726 ( 0.00%) ???:::decode_span'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 170,577 ( 0.00%) ???:::register_predicates::>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 170,433 ( 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] 169,948 ( 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] 169,782 ( 0.00%) ???:::mk_clauses [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 169,199 ( 0.00%) ???:::check_assoc_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 169,177 ( 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] 169,176 ( 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 169,110 ( 0.00%) ???:::normalize:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 169,090 ( 0.00%) include/jemalloc/internal/ph.h:eset_remove 169,031 ( 0.00%) ???:>::decode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 168,759 ( 0.00%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 168,495 ( 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] 168,168 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/cmp.rs:::with_source_text::::{closure#0}> 167,971 ( 0.00%) ???:rustc_middle::ty::erase_regions::erase_and_anonymize_regions_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 167,841 ( 0.00%) ???:>::with_lint_attrs::< as rustc_ast::visit::Visitor>::visit_local::{closure#0}>::{closure#0} [???] 167,694 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 167,502 ( 0.00%) ???:<::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] 167,387 ( 0.00%) ???:rustc_trait_selection::traits::coherence::fresh_impl_header [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 167,181 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), (rustc_type_ir::opaque_ty::OpaqueTypeKey, 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] 167,178 ( 0.00%) /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] 167,033 ( 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:::with_source_text::::{closure#0}> 166,650 ( 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] 166,404 ( 0.00%) ???:::hir_body_owner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 166,193 ( 0.00%) src/emap.c:pa_alloc 166,056 ( 0.00%) ???:::type_dependent_def [???] 166,033 ( 0.00%) ???: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] 165,816 ( 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] 165,801 ( 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] 165,396 ( 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] 165,203 ( 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] 165,180 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 165,069 ( 0.00%) ???:::universe_canonicalized_var_kinds [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 165,060 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 165,043 ( 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] 164,838 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 164,619 ( 0.00%) ???:::trait_def_id [???] 164,157 ( 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] 164,038 ( 0.00%) ???:::parse_expr_paren_seq'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 163,910 ( 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] 163,840 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 163,757 ( 0.00%) ???:::reduce_and [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 163,547 ( 0.00%) ???:::visit_goal'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 163,164 ( 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 163,164 ( 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 163,164 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/unit_types/mod.rs:::check_expr 162,248 ( 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] 161,839 ( 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] 161,837 ( 0.00%) ???:>::walk_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 161,320 ( 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 161,320 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/attrs.rs:::check_attributes_post 160,465 ( 0.00%) ???:::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] 160,234 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_generics [???] 160,034 ( 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] 159,866 ( 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 158,862 ( 0.00%) ???:>::try_evaluate_obligations [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 158,783 ( 0.00%) ???:::visit_def_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 158,615 ( 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 158,454 ( 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] 158,159 ( 0.00%) ???: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] 158,140 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 158,050 ( 0.00%) ???:::expr_ty_adjusted [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 157,076 ( 0.00%) ???:::write_str [???] 156,984 ( 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] 156,960 ( 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] 156,944 ( 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] 156,569 ( 0.00%) include/jemalloc/internal/ph.h:ecache_evict 156,534 ( 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] 156,521 ( 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] 156,510 ( 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] 156,310 ( 0.00%) ???:::register_predicates::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 155,819 ( 0.00%) ???:::qualif_local:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 155,661 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 155,610 ( 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] 155,396 ( 0.00%) ???:::to_token_trees [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 154,735 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 154,708 ( 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] 154,395 ( 0.00%) ???:::sub_concrete_regions [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 154,192 ( 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] 154,111 ( 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] 153,969 ( 0.00%) ???:>>::add [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 153,747 ( 0.00%) include/jemalloc/internal/thread_event.h:free_default 153,416 ( 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] 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,268 ( 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] 153,237 ( 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_from_raw_parts::check_implicit_cast 153,223 ( 0.00%) ???:::lower_use_tree'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 153,051 ( 0.00%) ???:::build_constraints_for_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 152,952 ( 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 152,845 ( 0.00%) ???:>::normalize:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 152,835 ( 0.00%) ???:>>::upcast_from [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 152,785 ( 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] 152,416 ( 0.00%) ???:::construct [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 152,203 ( 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] 151,885 ( 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] 151,829 ( 0.00%) ???:::clone_opaque_types [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 151,813 ( 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] 151,640 ( 0.00%) ???:::check_item [???] 150,973 ( 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] 150,912 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 150,595 ( 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] 150,560 ( 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] 150,489 ( 0.00%) ???:::from_attr_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 150,328 ( 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] 150,268 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::Ty> as rustc_type_ir::fold::TypeFoldable>::try_fold_with::>::{closure#0}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 150,180 ( 0.00%) ???:::parent_module [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 149,826 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/res.rs:::check_expr 149,823 ( 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] 149,584 ( 0.00%) src/arena.c:tcache_bin_flush_small 149,384 ( 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] 148,920 ( 0.00%) ???:>::fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 148,722 ( 0.00%) ???:>>::walk_ref [???] 148,521 ( 0.00%) ???:::visit_node::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 148,427 ( 0.00%) ???:::iterate_to_fixpoint [???] 148,417 ( 0.00%) ???:rustc_privacy::effective_visibilities [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 147,934 ( 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] 147,326 ( 0.00%) ???:::visit_generics [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 147,005 ( 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] 146,996 ( 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] 146,848 ( 0.00%) include/jemalloc/internal/tsd.h:malloc_default 146,518 ( 0.00%) ???:::clauses [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 146,511 ( 0.00%) ???:::hash::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 146,508 ( 0.00%) ???:, core::option::Option>)>, as rustc_infer::traits::engine::TraitEngine>::collect_remaining_errors::{closure#0}>, core::iter::adapters::map::Map>, as rustc_infer::traits::engine::TraitEngine>::collect_remaining_errors::{closure#1}>>, as rustc_infer::traits::engine::TraitEngine>::collect_remaining_errors::{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] 146,490 ( 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] 146,219 ( 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] 146,218 ( 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] 146,160 ( 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] 146,158 ( 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] 146,080 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_expr [???] 145,950 ( 0.00%) ???:::span_to_location_info [???] 145,791 ( 0.00%) ???:::node_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 145,782 ( 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:>::with::<::with::outer_expn::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnId> 145,782 ( 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::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnId> 145,782 ( 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::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnId> 145,578 ( 0.00%) ???:::lower_mod [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 145,417 ( 0.00%) ???:::clone [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 145,392 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/eta_reduction.rs:::check_expr 145,387 ( 0.00%) ???:>::reserve_rehash::>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 145,355 ( 0.00%) ???:>::visit_ty::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 145,236 ( 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] 145,086 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 145,044 ( 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] 145,025 ( 0.00%) ???:::visit_qpath'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 144,937 ( 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] 144,848 ( 0.00%) ???:>::evaluate_obligations_error_on_ambiguity [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 144,557 ( 0.00%) ???:::has_dtor [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 144,501 ( 0.00%) ???:::collect_tokens::::parse_stmt_without_recovery::{closure#4}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 144,436 ( 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 144,436 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/attrs/mod.rs:::check_attributes_post 144,221 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_fn [???] 144,011 ( 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] 143,997 ( 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] 143,993 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 143,993 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 143,883 ( 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 143,774 ( 0.00%) ???:std::path::compare_components [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 143,680 ( 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] 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,593 ( 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] 142,534 ( 0.00%) ???:::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 142,520 ( 0.00%) ???:::mk_const_alloc [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 142,408 ( 0.00%) ???:>::walk_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 142,310 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 142,114 ( 0.00%) ???:::check_case [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 142,089 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 142,085 ( 0.00%) ???:::decode_syntax_context [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 141,892 ( 0.00%) 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] 141,304 ( 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] 141,287 ( 0.00%) ???:::reserve_and_set_dedup [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 141,240 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 140,947 ( 0.00%) ???:> 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] 140,888 ( 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] 140,696 ( 0.00%) ???:::from_self [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 140,530 ( 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] 140,450 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/manual_non_exhaustive.rs:::check_expr 140,436 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 140,250 ( 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] 140,243 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 140,201 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 139,762 ( 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] 139,707 ( 0.00%) ???:>::get_pattern [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 139,483 ( 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] 139,426 ( 0.00%) ???:::is_conditionally_const:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 139,330 ( 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 139,147 ( 0.00%) ???:::check_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 138,930 ( 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 138,838 ( 0.00%) ???:::lower_match_arms'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 138,835 ( 0.00%) ???:::flat_map_stmt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 138,676 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::method_chain_args [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 138,498 ( 0.00%) ???:::lower_block_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 138,254 ( 0.00%) ???:rustc_hir_analysis::check::wfcheck::check_type_wf [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 138,190 ( 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] 138,178 ( 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 137,743 ( 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 137,445 ( 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] 137,289 ( 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] 137,117 ( 0.00%) ???:::opt_item_name [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 137,053 ( 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] 136,881 ( 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] 136,833 ( 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] 136,510 ( 0.00%) ???:::compute_definition_site_hidden_types [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 136,436 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/needless_parens_on_range_literals.rs:::check_expr 136,225 ( 0.00%) ???:::size_and_align [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 136,189 ( 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] 136,044 ( 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] 135,970 ( 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 135,970 ( 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 135,970 ( 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 135,970 ( 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 135,970 ( 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 135,970 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/functions/mod.rs:::check_expr 135,937 ( 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] 135,810 ( 0.00%) ???:::alloc_ctxt'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 135,668 ( 0.00%) include/jemalloc/internal/sz.h:eset_remove 135,568 ( 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] 135,457 ( 0.00%) ???:::declare [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 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,199 ( 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] 135,158 ( 0.00%) ???:::is_freeze [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 135,148 ( 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 135,136 ( 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] 135,016 ( 0.00%) ???:<::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] 135,006 ( 0.00%) ???:::check_tokens'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 134,866 ( 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 134,811 ( 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] 134,791 ( 0.00%) ???: as rustc_next_trait_solver::solve::assembly::GoalKind>::consider_impl_candidate::<>::assemble_impl_candidates>::{closure#0}::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 134,753 ( 0.00%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 134,715 ( 0.00%) ???:::iterate_to_fixpoint::{closure#1} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 134,308 ( 0.00%) ???:::parse_borrowed_pointee [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 134,219 ( 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] 134,139 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 133,918 ( 0.00%) ???:::from_span [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 133,801 ( 0.00%) ???:::lower_generic_param [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 133,795 ( 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] 133,781 ( 0.00%) ???:::filter_map_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 133,714 ( 0.00%) ???:core::slice::sort::shared::smallsort::insert_tail::::sort_by_key<(core::cmp::Reverse, u128, u64), >::univariant_biased>::{closure#5}>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 133,654 ( 0.00%) ???:::node_type [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 133,487 ( 0.00%) ???:>::get_identifier [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 133,433 ( 0.00%) ???:::visit_generic_arg [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 133,404 ( 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_utils::method_chain_args 133,308 ( 0.00%) include/jemalloc/internal/edata.h:eset_remove 133,275 ( 0.00%) ???:::guess_print_mode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 133,191 ( 0.00%) ???:>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 133,136 ( 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] 133,032 ( 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 132,954 ( 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::> 132,930 ( 0.00%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 132,808 ( 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] 132,681 ( 0.00%) ???:::visit_generics [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 132,578 ( 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] 132,537 ( 0.00%) ???:>::relate::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 132,516 ( 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: 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> 132,149 ( 0.00%) ???:::check_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 132,141 ( 0.00%) ???:, rustc_type_ir::solve::VisibleForLeakCheck)>>::retain::<>::evaluate_added_goals_and_make_canonical_response::{closure#0}::{closure#2}>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 131,957 ( 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:::emit_lint_if_under_msrv 131,914 ( 0.00%) ???:rustc_ast::visit::visit_arms::> [???] 131,886 ( 0.00%) ???:::as_rvalue [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 131,786 ( 0.00%) ???:::without_first_quote [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 131,478 ( 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] 131,370 ( 0.00%) ???:::is_mutable'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 131,114 ( 0.00%) ???:>::instantiate_cold::<::instantiate_canonical>::{closure#1}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 130,916 ( 0.00%) ???:rustc_query_impl::query_impl::check_tail_calls::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] 130,808 ( 0.00%) src/emap.c:tcache_bin_flush_small 130,419 ( 0.00%) ???: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] 130,369 ( 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] 130,274 ( 0.00%) ???:::expect_variant_res [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 130,080 ( 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:>::with::<::with::expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 130,080 ( 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::expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 130,080 ( 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::expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 129,885 ( 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] 129,777 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 129,620 ( 0.00%) ???: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] 129,576 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 129,524 ( 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] 129,479 ( 0.00%) ???:::check_expr_match'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 129,473 ( 0.00%) include/jemalloc/internal/cache_bin.h:free_default 129,040 ( 0.00%) ???:::check_use_tree [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 129,022 ( 0.00%) ???:>::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] 129,021 ( 0.00%) ???:::try_to_place [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 128,908 ( 0.00%) ???:>::write_immediate_no_validate:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 128,732 ( 0.00%) ???:::walk_::<::necessary_variants::{closure#0}> [???] 128,156 ( 0.00%) ???:::visit_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 127,959 ( 0.00%) ???:::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] 127,520 ( 0.00%) ???:>::encode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 127,461 ( 0.00%) ???:>::tys [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 127,388 ( 0.00%) ???:::mirror_stmts::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 127,345 ( 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] 127,219 ( 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] 127,008 ( 0.00%) ???:::clone [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 126,940 ( 0.00%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 126,900 ( 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] 126,889 ( 0.00%) ???:>>::make_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 126,784 ( 0.00%) ???:::as_str [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 126,584 ( 0.00%) ???:::probe_generic_path_segments [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 126,492 ( 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] 126,407 ( 0.00%) ???:::resolve_arm [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 126,361 ( 0.00%) ???:::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] 126,134 ( 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] 126,037 ( 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] 125,929 ( 0.00%) src/decay.c:tcache_bin_flush_small 125,853 ( 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] 125,844 ( 0.00%) ???:core::ptr::drop_glue::, core::option::Option>)>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 125,697 ( 0.00%) ???:rustc_errors::formatting::format_fluent_str [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 125,664 ( 0.00%) ???:>::reserve_rehash::, ()>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 125,560 ( 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] 125,491 ( 0.00%) ???:::check_expr_tuple [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 125,474 ( 0.00%) ???:__cxa_atexit [/usr/lib/libc.so.6] 125,121 ( 0.00%) ???:::flat_map_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 125,111 ( 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] 125,001 ( 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] 125,001 ( 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] 124,830 ( 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] 124,792 ( 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] 124,740 ( 0.00%) ???:::parse_coroutine_kind [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 124,172 ( 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 124,172 ( 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 124,172 ( 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 124,104 ( 0.00%) ???:::relate:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 123,915 ( 0.00%) ???:>::fold_with::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 123,897 ( 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:: 123,819 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 123,724 ( 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] 123,578 ( 0.00%) 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] 123,535 ( 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] 123,528 ( 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] 123,527 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 123,447 ( 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] 123,417 ( 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] 123,083 ( 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] 122,953 ( 0.00%) ???:rustc_trait_selection::traits::misc::all_fields_implement_trait [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 122,911 ( 0.00%) ???:::check_expr_closure'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 122,773 ( 0.00%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 122,696 ( 0.00%) ???:::eval_verify_bound'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 122,543 ( 0.00%) ???:::adjust_steps [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 122,452 ( 0.00%) ???:> 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] 122,212 ( 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] 122,206 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 122,157 ( 0.00%) ???:::collect_bang [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 122,120 ( 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] 122,038 ( 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] 122,004 ( 0.00%) ???:::take_opaque_types [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 121,995 ( 0.00%) ???:::expr_ty_opt [???] 121,897 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/res.rs:::check_expr 121,752 ( 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] 121,681 ( 0.00%) ???:>::finish_probe [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 121,600 ( 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] 121,558 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 121,423 ( 0.00%) ???:::parse_footnote [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 121,357 ( 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] 121,232 ( 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] 120,990 ( 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 120,990 ( 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 120,990 ( 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 120,941 ( 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 120,891 ( 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] 120,817 ( 0.00%) ???:::hir_impl_item [???] 120,756 ( 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> 120,572 ( 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_utils::macros::first_node_in_macro:: 120,427 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 120,416 ( 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] 120,393 ( 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 120,308 ( 0.00%) ???:::trait_is_unsafe [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 120,220 ( 0.00%) ???:::source_callee [???] 120,163 ( 0.00%) ???:>::encode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 120,130 ( 0.00%) ???:>::visit_clauses [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 120,032 ( 0.00%) ???:> as rustc_ast::visit::Visitable>>::visit [???] 119,841 ( 0.00%) ???:::check_expr_return [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 119,768 ( 0.00%) ???:::record_lifetime_use [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 119,745 ( 0.00%) ???:::eq [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 119,640 ( 0.00%) ???:::is_trait_lang_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 119,326 ( 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] 119,199 ( 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] 119,177 ( 0.00%) ???:::check_stmt [???] 118,798 ( 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] 118,738 ( 0.00%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 118,576 ( 0.00%) ???:>::tys [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 118,542 ( 0.00%) ???: as rustc_infer::traits::engine::TraitEngine>::drain_stalled_obligations_for_coroutines [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 118,476 ( 0.00%) ???:>::fold_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 118,475 ( 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] 118,424 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 118,335 ( 0.00%) ???:>>::walk_ref [???] 118,297 ( 0.00%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 118,236 ( 0.00%) ???:>::visit_ty::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 118,081 ( 0.00%) ???:::check_expr_addr_of [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 117,903 ( 0.00%) ???:>::walk_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 117,813 ( 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] 117,662 ( 0.00%) ???:::anonymize_bound_vars::Anonymize> 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] 117,193 ( 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 117,187 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 117,130 ( 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 117,072 ( 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 117,000 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 116,916 ( 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] 116,700 ( 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] 115,905 ( 0.00%) ???:::typing_env [???] 115,696 ( 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] 115,654 ( 0.00%) ???:::ascribe_user_type [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 115,507 ( 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] 115,299 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/vec_init_then_push.rs:::check_expr 115,272 ( 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] 115,229 ( 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] 115,169 ( 0.00%) ???:>::encode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 114,994 ( 0.00%) ???:::to_token_trees'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 114,972 ( 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] 114,949 ( 0.00%) ???:::filter_map_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 114,935 ( 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] 114,840 ( 0.00%) ???:::write_str [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 114,612 ( 0.00%) include/jemalloc/internal/bit_util.h:calloc 114,252 ( 0.00%) ???:::relate_universal_regions [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 114,013 ( 0.00%) ???:::walk::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 113,858 ( 0.00%) ???:realpath [/usr/lib/libc.so.6] 113,771 ( 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] 113,472 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 113,341 ( 0.00%) ???:::check_expr_post [???] 113,305 ( 0.00%) ???:::expect_one_of [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 113,101 ( 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] 112,878 ( 0.00%) ???:core::ptr::drop_glue::, rustc_middle::ty::context::TyCtxt>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 112,590 ( 0.00%) ???:::handle_missing_lit::::mk_meta_item_lit_char>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 112,319 ( 0.00%) ???:>::args_may_unify_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 112,201 ( 0.00%) ???:>::reserve_rehash::>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 112,113 ( 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] 112,013 ( 0.00%) ???:::{closure#0}> as rustc_type_ir::fold::FallibleTypeFolder>::try_fold_ty::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 111,988 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/disallowed_types.rs:::check_ty 111,804 ( 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] 111,652 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 111,572 ( 0.00%) ???:::check_expr_closure [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 111,535 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/suspicious_trait_impl.rs:::check_expr 111,494 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 111,472 ( 0.00%) ???:::fallible_with_capacity:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 111,423 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::try_fold_with::>::{closure#0}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 111,237 ( 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 111,051 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/item_name_repetitions.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 110,989 ( 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] 110,952 ( 0.00%) ???:::fmt [???] 110,830 ( 0.00%) ???:, rustc_hash::FxBuildHasher>>::insert_full [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 110,808 ( 0.00%) ???:::visit_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 110,782 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 110,544 ( 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 110,541 ( 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] 110,535 ( 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] 110,418 ( 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] 110,370 ( 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 110,328 ( 0.00%) ???:::apply_adjustments [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 110,326 ( 0.00%) ???:::write_method_call_and_enforce_effects [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 110,250 ( 0.00%) ???:::visit_method_receiver_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 110,244 ( 0.00%) ???:<::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] 110,042 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 109,643 ( 0.00%) ???:>::try_visit_primitive [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 109,469 ( 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 109,389 ( 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 109,356 ( 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 109,329 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/derive/mod.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 109,312 ( 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] 109,215 ( 0.00%) ???:rustc_query_impl::query_impl::erase_and_anonymize_regions_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] 109,022 ( 0.00%) ???:::record_use'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 109,012 ( 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 108,972 ( 0.00%) include/jemalloc/internal/tcache_inlines.h:free_default 108,944 ( 0.00%) ???:::def_path_hash [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 108,816 ( 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 108,777 ( 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] 108,776 ( 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 108,776 ( 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 108,776 ( 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 108,776 ( 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 108,766 ( 0.00%) ???:>, (), rustc_hash::FxBuildHasher>>::insert [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 108,760 ( 0.00%) ???:::is_suggestable_infer_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 108,660 ( 0.00%) include/jemalloc/internal/tsd_tls.h:malloc_default 108,522 ( 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] 108,484 ( 0.00%) ???:::visit_generic_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 108,422 ( 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] 108,387 ( 0.00%) ???:::lower_poly_trait_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 108,377 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_expr::{closure#0}::{closure#0} [???] 108,374 ( 0.00%) ???:::multi_projection_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 108,318 ( 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] 108,256 ( 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:: 108,020 ( 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] 107,817 ( 0.00%) ???:::visit_pat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 107,817 ( 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] 107,774 ( 0.00%) ???:>::reserve_rehash::>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 107,730 ( 0.00%) ???:>::size_and_align_from_meta [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 107,650 ( 0.00%) ???:::parse_inner_attributes [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 107,400 ( 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] 107,390 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 107,345 ( 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] 107,339 ( 0.00%) ???:::visit_local [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 107,316 ( 0.00%) ???:::insert'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 107,313 ( 0.00%) ???:rustc_metadata::rmeta::decoder::cstore_impl::provide_extern::is_doc_hidden [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 107,194 ( 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] 106,953 ( 0.00%) ???:::analyze_closure [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 106,917 ( 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] 106,838 ( 0.00%) ???:::new_import_decl [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 106,757 ( 0.00%) ???:::visit_invoc_in_module [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 106,400 ( 0.00%) ???:::build_with_typing_env [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 106,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] 106,162 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 106,150 ( 0.00%) ???:::run_pass [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 105,934 ( 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] 105,825 ( 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] 105,820 ( 0.00%) ???:::visit_use [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 105,712 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 105,662 ( 0.00%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 105,458 ( 0.00%) ???:::collect_invocations [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 105,330 ( 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] 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,262 ( 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] 105,251 ( 0.00%) ???:::new [???] 105,225 ( 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] 105,088 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 104,900 ( 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] 104,880 ( 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] 104,779 ( 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> 104,650 ( 0.00%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 104,629 ( 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] 104,574 ( 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] 104,572 ( 0.00%) ???:::visit_poly_trait_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 104,486 ( 0.00%) ???:::span_to_lines [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 104,368 ( 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] 104,246 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/manual_non_exhaustive.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 104,102 ( 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] 104,018 ( 0.00%) ???:::new'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 103,920 ( 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] 103,768 ( 0.00%) ???:>>::walk_ref'2 [???] 103,514 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 103,398 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:::check_attributes [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 103,398 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:::check_attributes_post [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 103,343 ( 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] 103,164 ( 0.00%) ???:::update [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 103,089 ( 0.00%) ???:<::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] 103,064 ( 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] 103,013 ( 0.00%) ???:::obligations_for_self_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 102,843 ( 0.00%) ???:core::slice::sort::unstable::quicksort::quicksort::::sort_unstable_by_key<(i64, usize), rustc_trait_selection::traits::specialize::specialization_graph_provider::{closure#2}>::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 102,748 ( 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] 102,677 ( 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] 102,665 ( 0.00%) ???:rustc_next_trait_solver::solve::assembly::structural_traits::extract_tupled_inputs_and_output_from_callable:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 102,642 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 102,580 ( 0.00%) ???:rustc_query_impl::query_impl::evaluate_root_goal_for_proof_tree_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] 102,542 ( 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] 102,463 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 102,330 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 102,324 ( 0.00%) include/jemalloc/internal/tsd.h:pa_alloc 102,243 ( 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] 102,202 ( 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] 102,095 ( 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] 101,765 ( 0.00%) ???:>>>::set [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 101,698 ( 0.00%) ???:::source_callsite [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 101,616 ( 0.00%) ???:>::relate::::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 101,497 ( 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 101,388 ( 0.00%) ???:::trait_is_alias [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 101,226 ( 0.00%) include/jemalloc/internal/arena_inlines_b.h:free_default 101,166 ( 0.00%) ???:::visit_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 101,150 ( 0.00%) ???:::mk_adt_def [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 101,143 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 101,079 ( 0.00%) /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:: 101,006 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 100,973 ( 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 100,958 ( 0.00%) ???:::body_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 100,954 ( 0.00%) ???:::check_crate'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 100,923 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/empty_line_after.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 100,899 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 100,739 ( 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] 100,395 ( 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] 100,374 ( 0.00%) ???:::visit_method_receiver_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 100,252 ( 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] 100,192 ( 0.00%) ???:::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 99,902 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 99,427 ( 0.00%) ???:::apply_switch_int_edge_effect [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 99,350 ( 0.00%) ???:>::read_immediate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 99,325 ( 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] 99,271 ( 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] 99,249 ( 0.00%) ???:::anonymize_bound_vars::Anonymize> 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] 99,230 ( 0.00%) ???:0x0000000000067b30 [/usr/lib/libc.so.6] 99,220 ( 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] 99,132 ( 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] 98,983 ( 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] 98,836 ( 0.00%) ???:, (rustc_middle::query::erase::ErasedData<[u8; 16]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<, (rustc_middle::query::erase::ErasedData<[u8; 16]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [???] 98,580 ( 0.00%) ???:>>::walk_ref [???] 98,564 ( 0.00%) ???:::instantiate_impl_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 98,540 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 98,491 ( 0.00%) ???:>>::reserve [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 98,394 ( 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] 98,295 ( 0.00%) ???: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] 98,136 ( 0.00%) ???:>::consts [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 98,135 ( 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] 98,050 ( 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] 97,871 ( 0.00%) ???:::article_and_description [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 97,755 ( 0.00%) ???:rustc_trait_selection::traits::impossible_clauses [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 97,643 ( 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] 97,604 ( 0.00%) ???:>::check_safe_pointer [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 97,593 ( 0.00%) ???:>>::walk_ref'2 [???] 97,546 ( 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 97,526 ( 0.00%) ???:::impl_trait_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 97,491 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 97,491 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 97,491 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 97,480 ( 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::is_in_test 97,474 ( 0.00%) ???:0x0000000000040520 [/usr/lib/libc.so.6] 97,472 ( 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] 97,421 ( 0.00%) ???:>::consume_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 97,358 ( 0.00%) ???:::run_pass'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 97,345 ( 0.00%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 97,318 ( 0.00%) ???:>::insert [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 97,294 ( 0.00%) ???: 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] 97,215 ( 0.00%) ???:rustc_trait_selection::solve::fulfill::derive_errors::find_best_leaf_obligation [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 97,195 ( 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] 97,075 ( 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] 96,976 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 96,955 ( 0.00%) ???:::opportunistic_resolve_ct_var [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 96,886 ( 0.00%) ???:::visit_item_id_use_tree [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 96,867 ( 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] 96,750 ( 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] 96,671 ( 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] 96,610 ( 0.00%) ???:::mk_place_elems [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 96,532 ( 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] 96,461 ( 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] 96,432 ( 0.00%) ???:::add_constraints_from_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 96,333 ( 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] 96,278 ( 0.00%) include/jemalloc/internal/sz.h:pa_dalloc 96,255 ( 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] 96,250 ( 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] 96,194 ( 0.00%) ???:::run_pass [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 96,062 ( 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 95,943 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/upper_case_acronyms.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 95,549 ( 0.00%) ???:::visit_generic_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 95,468 ( 0.00%) ???:::insert_field_idents [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 95,448 ( 0.00%) ???:>::types_may_unify_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 95,203 ( 0.00%) ???:>::complete::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 95,143 ( 0.00%) ???:>>::drop_slow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 95,140 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 95,043 ( 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] 94,450 ( 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] 94,374 ( 0.00%) ???:::flat_map_arm [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 94,087 ( 0.00%) ???:::walk:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 94,045 ( 0.00%) ???: 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] 93,690 ( 0.00%) ???:::clone [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 93,674 ( 0.00%) ???:::universe_of_region [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 93,672 ( 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] 93,606 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/higher.rs:clippy_utils::higher::has_let_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 93,223 ( 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] 93,196 ( 0.00%) ???:::visit_block'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 93,060 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 93,052 ( 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] 92,979 ( 0.00%) ???:::relate_bound [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 92,957 ( 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> 92,835 ( 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,674 ( 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] 92,542 ( 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:>::cat_expr_unadjusted [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 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,222 ( 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 92,181 ( 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] 92,173 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 92,089 ( 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:: 91,988 ( 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] 91,976 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/useless_conversion.rs:::check_expr_post 91,863 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 91,860 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs:::check_path 91,803 ( 0.00%) include/jemalloc/internal/edata.h:realloc 91,510 ( 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] 91,506 ( 0.00%) ???: as rustc_ast::visit::Visitor>::visit_arm::{closure#0} [???] 91,488 ( 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] 91,305 ( 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] 91,235 ( 0.00%) ???:, (), rustc_hash::FxBuildHasher>>::insert_full [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 91,204 ( 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> 91,158 ( 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 90,980 ( 0.00%) ???:::visit_basic_block_data [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 90,676 ( 0.00%) ???:>::structurally_normalize_term [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 90,632 ( 0.00%) ???:::check_impl_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 90,422 ( 0.00%) ???:::deref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 90,305 ( 0.00%) ???: 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] 90,284 ( 0.00%) ???:::own_clauses_of [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 90,283 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/unnested_or_patterns.rs:clippy_lints::unnested_or_patterns::lint_unnested_or_patterns [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 90,004 ( 0.00%) ???:>::call_once [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 89,880 ( 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] 89,828 ( 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_utils::macros::first_node_in_macro:: 89,510 ( 0.00%) ???:>::components_must_outlive [???] 89,481 ( 0.00%) ???:>::probe_and_evaluate_goal_for_constituent_tys::< as rustc_next_trait_solver::solve::assembly::GoalKind>::consider_builtin_sizedness_candidates::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 89,481 ( 0.00%) ???:> 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] 89,477 ( 0.00%) ???:>::types_may_unify_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 89,302 ( 0.00%) ???:::visit_variant [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 89,214 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 89,128 ( 0.00%) ???:<[rustc_hir::hir::FieldDef] 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] 89,023 ( 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] 88,932 ( 0.00%) ???:::check_tokens [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 88,864 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/higher.rs:::check_expr 88,845 ( 0.00%) ???:::parse_mod [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 88,744 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 88,714 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/casts/needless_type_cast.rs:rustc_hir::intravisit::walk_expr::>'2 88,475 ( 0.00%) ???:::check_overloaded_binop [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 88,427 ( 0.00%) ???:>::inner_fold_ty::{closure#1}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 88,412 ( 0.00%) ???:)>>::call_once [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 88,293 ( 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] 88,217 ( 0.00%) ???:::from_def_id [???] 88,006 ( 0.00%) ???:::stable_hash::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 87,768 ( 0.00%) ???:::parse_attr_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 87,738 ( 0.00%) ???:>>::drop_slow'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 87,697 ( 0.00%) ???:::visit_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 87,645 ( 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 87,606 ( 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] 87,556 ( 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 87,343 ( 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] 87,303 ( 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] 87,188 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/visitors.rs:rustc_hir::intravisit::walk_expr::>'2 87,132 ( 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:: 87,120 ( 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] 87,120 ( 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] 87,120 ( 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] 87,120 ( 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] 87,000 ( 0.00%) ???:::mk_probe [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 86,927 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/non_canonical_impls.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 86,860 ( 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] 86,800 ( 0.00%) ???:>::super_fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 86,790 ( 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] 86,683 ( 0.00%) ???:rustc_trait_selection::solve::normalize::normalize_with_universes::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 86,500 ( 0.00%) ???:::visit_ty_common [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 86,498 ( 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] 86,451 ( 0.00%) ???:>; 8]>>::insert_from_slice [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 86,421 ( 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] 86,420 ( 0.00%) ???:rustc_hir_analysis::collect::lower_variant [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 86,377 ( 0.00%) ???:>::register_obligations::>>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 86,189 ( 0.00%) ???:::visit_goal [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 86,143 ( 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 85,976 ( 0.00%) ???:rustc_hir_analysis::check::wfcheck::check_item_fn [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 85,929 ( 0.00%) ???:::resolve_regions::<[rustc_middle::ty::Ty; 1]> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 85,742 ( 0.00%) ???:::instantiate_canonical::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 85,614 ( 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] 85,584 ( 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] 85,570 ( 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] 85,569 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::try_fold_with::>::{closure#0}>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 85,439 ( 0.00%) ???:::record_scope_parent [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 85,274 ( 0.00%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 85,140 ( 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] 85,140 ( 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] 85,008 ( 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] 84,746 ( 0.00%) ???:>>::grow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 84,719 ( 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] 84,681 ( 0.00%) ???:::parse_use_tree'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 84,506 ( 0.00%) ???:::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 84,420 ( 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] 84,343 ( 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] 84,321 ( 0.00%) /rust/deps/hashbrown-0.17.1/src/map.rs:::check 84,194 ( 0.00%) ???:::expr_ident_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 84,168 ( 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] 84,109 ( 0.00%) src/emap.c:ecache_evict 84,010 ( 0.00%) ???:pulldown_cmark::scanners::scan_entity [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 83,834 ( 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] 83,760 ( 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] 83,751 ( 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] 83,595 ( 0.00%) ???:::visit_variant_data [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 83,558 ( 0.00%) ???:::parse_match_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 83,454 ( 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] 83,448 ( 0.00%) ???:::lower_field_def [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 83,420 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 83,419 ( 0.00%) ???:::match_candidates [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 83,411 ( 0.00%) ???:::parse_use_tree_glob_or_nested [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 83,380 ( 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] 83,380 ( 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] 83,265 ( 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] 83,246 ( 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] 83,240 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 83,226 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:::check_expr 83,226 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:::check_expr 83,226 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:::check_expr 83,226 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:::check_expr 83,226 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:::check_expr 83,199 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:::check_expr 83,155 ( 0.00%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 83,148 ( 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> 83,148 ( 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] 82,998 ( 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] 82,976 ( 0.00%) ???:core::ptr::drop_glue::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 82,833 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/impl_hash_with_borrow_str_and_bytes.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 82,694 ( 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] 82,589 ( 0.00%) ???:::run_pass [???] 82,560 ( 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] 82,552 ( 0.00%) ???:rustc_ty_utils::layout::layout_of'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 82,230 ( 0.00%) ???:>::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] 82,102 ( 0.00%) ???:::to_place [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 81,778 ( 0.00%) ???:::as_packed [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 81,724 ( 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] 81,652 ( 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] 81,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:>::reserve::do_reserve_and_handle:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 81,582 ( 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 81,582 ( 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 81,476 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/attrs.rs:clippy_utils::attrs::has_non_exhaustive_attr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 81,464 ( 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] 81,439 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/partialeq_ne_impl.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 81,429 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/manual_noop_waker.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 81,378 ( 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] 81,351 ( 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] 81,335 ( 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] 81,312 ( 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] 81,310 ( 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] 81,285 ( 0.00%) ???:::walk [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 81,238 ( 0.00%) ???:::as_trait_lang_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 81,207 ( 0.00%) ???:::inhabited_predicate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 81,142 ( 0.00%) ???:rustc_mir_transform::mir_for_ctfe [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 81,132 ( 0.00%) ???:::projection_parent [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 81,107 ( 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] 80,940 ( 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> 80,922 ( 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> 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,693 ( 0.00%) ???:::canonical_var [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 80,660 ( 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 80,465 ( 0.00%) ???:rustc_next_trait_solver::canonical::compute_query_response_instantiation_values::>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 80,363 ( 0.00%) src/pac.c:tcache_bin_flush_small 80,355 ( 0.00%) ???:::check_expr_if [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 80,353 ( 0.00%) ???:::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 80,188 ( 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] 80,059 ( 0.00%) src/emap.c:pa_dalloc 80,004 ( 0.00%) ???: as rustc_serialize::serialize::Encodable>::encode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 79,902 ( 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] 79,885 ( 0.00%) ???:::insert [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 79,765 ( 0.00%) include/jemalloc/internal/bit_util.h:tcache_bin_flush_small 79,580 ( 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] 79,528 ( 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] 79,398 ( 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] 79,336 ( 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 79,276 ( 0.00%) ???:::lower_arm [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 79,276 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/infallible_try_from.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 79,249 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/unwrap.rs:clippy_lints::unwrap::extract_local [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 79,156 ( 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] 79,055 ( 0.00%) ???:::unique_applicable_candidate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 79,025 ( 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 78,989 ( 0.00%) ???:::find_library_crate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 78,949 ( 0.00%) ???:>::probe_trait_candidate::{closure#0}>>::enter::<>::forced_ambiguity::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 78,840 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/attrs/mod.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 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,792 ( 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] 78,761 ( 0.00%) ???:::flat_map_expr_field [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 78,672 ( 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> 78,665 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 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,532 ( 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 78,507 ( 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 78,353 ( 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] 78,349 ( 0.00%) ???:>::insert [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 78,343 ( 0.00%) ???:::alias_term_kind_from_def_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 78,264 ( 0.00%) ???:::requires_monomorphization [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 78,192 ( 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 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 78,156 ( 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] 78,117 ( 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] 78,004 ( 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] 77,930 ( 0.00%) ???:>::consts::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 77,899 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 77,824 ( 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] 77,627 ( 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] 77,508 ( 0.00%) ???:>::evaluate_goal [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 77,469 ( 0.00%) ???:::imported_source_file::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 77,443 ( 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] 77,442 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_expr'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 77,324 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 77,249 ( 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 77,238 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 77,196 ( 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] 77,169 ( 0.00%) ???:::visit_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 77,120 ( 0.00%) ???:>::ty_and_layout_field::field_ty_or_layout::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 76,932 ( 0.00%) ???:::clone [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 76,754 ( 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] 76,568 ( 0.00%) src/pac.c:pa_alloc 76,427 ( 0.00%) ???:rustc_hir::intravisit::walk_pat::>'2 [???] 76,274 ( 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,038 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 76,029 ( 0.00%) ???:::enter_forall_and_leak_universe::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 75,853 ( 0.00%) ???:::check_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 75,821 ( 0.00%) ???: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] 75,775 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/consts.rs:::expr'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 75,772 ( 0.00%) ???:::lower_expr_field [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 75,712 ( 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] 75,708 ( 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] 75,605 ( 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] 75,559 ( 0.00%) ???:rustc_mir_transform::run_analysis_to_runtime_passes'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 75,504 ( 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] 75,504 ( 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] 75,492 ( 0.00%) ???:::normalize:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 75,433 ( 0.00%) ???:>::read_immediate_from_mplace_raw [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 75,432 ( 0.00%) src/extent.c:pa_dalloc 75,424 ( 0.00%) ???:::visit_stmt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 75,345 ( 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] 75,334 ( 0.00%) ???:::clone'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 75,295 ( 0.00%) include/jemalloc/internal/rtree.h:extent_try_coalesce_impl.llvm.9305427869391012685 75,240 ( 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] 75,240 ( 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] 75,240 ( 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] 75,231 ( 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] 75,131 ( 0.00%) ???:>::normalize:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 75,100 ( 0.00%) ???:::apply_call_return_effect [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 75,076 ( 0.00%) ???:::visit_block'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 75,012 ( 0.00%) ???:::name_value_from_tokens [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 74,959 ( 0.00%) ???:::hir_impl_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 74,910 ( 0.00%) ???: as rustc_serialize::serialize::Encodable>::encode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 74,806 ( 0.00%) ???:::anonymize_bound_vars::Anonymize> 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] 74,721 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 74,707 ( 0.00%) ???:::explicit_super_clauses_of [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 74,622 ( 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] 74,613 ( 0.00%) ???:::def_path_hash [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 74,589 ( 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 74,583 ( 0.00%) ???:::with_parent [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 74,511 ( 0.00%) ???:>::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] 74,429 ( 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] 74,253 ( 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] 74,221 ( 0.00%) ???:::parse_meta_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 74,027 ( 0.00%) ???:::is_multiline [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 73,950 ( 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] 73,883 ( 0.00%) ???:>::project_downcast:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 73,850 ( 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] 73,794 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/legacy_numeric_constants.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 73,772 ( 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] 73,722 ( 0.00%) ???:::coerce'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 73,674 ( 0.00%) ???:rustc_trait_selection::solve::normalize::normalize_with_universes:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 73,539 ( 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] 73,482 ( 0.00%) ???:>::destroy [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 73,416 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/combined_late_pass.rs:::check_item_post [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 73,363 ( 0.00%) ???:rustc_trait_selection::traits::dyn_compatibility::dyn_compatibility_violations_for_assoc_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 73,290 ( 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}> 73,255 ( 0.00%) ???:::next_region_var_in_universe [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 73,217 ( 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] 73,129 ( 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] 73,124 ( 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] 73,079 ( 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] 73,079 ( 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] 73,079 ( 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] 73,076 ( 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] 72,936 ( 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,807 ( 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,556 ( 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] 72,541 ( 0.00%) ???:rustc_query_impl::query_impl::is_doc_hidden::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] 72,453 ( 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,407 ( 0.00%) ???:::lower_variant_data [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 72,365 ( 0.00%) ???:rustc_mir_transform::pass_manager::run_passes_inner'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 72,294 ( 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,227 ( 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] 72,218 ( 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 72,192 ( 0.00%) ???:rustc_ast::mut_visit::walk_fn:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 72,145 ( 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 72,142 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/missing_enforced_import_rename.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 72,037 ( 0.00%) ???:::resolve_vars_if_possible::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 71,843 ( 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] 71,836 ( 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] 71,812 ( 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 71,809 ( 0.00%) ???:::push_hir_typeck_potentially_region_dependent_goal [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 71,789 ( 0.00%) ???:rustc_trait_selection::solve::normalize::normalize_with_universes::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 71,778 ( 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] 71,661 ( 0.00%) ???:::new'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 71,581 ( 0.00%) ???:::evaluate_obligation [???] 71,559 ( 0.00%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 71,559 ( 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] 71,538 ( 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] 71,534 ( 0.00%) ???: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] 71,452 ( 0.00%) ???:rustc_ty_utils::ty::adt_sizedness_constraint [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 71,439 ( 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] 71,329 ( 0.00%) ???:::instantiate_opt'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 71,295 ( 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] 71,167 ( 0.00%) ???:rustc_ty_utils::representability::check_representability'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 71,118 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 71,017 ( 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] 70,970 ( 0.00%) ???:::parse_record_struct_body [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 70,953 ( 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,816 ( 0.00%) ???:>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 70,604 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/utils/dump_hir.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 70,590 ( 0.00%) ???:>::fold_with::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 70,480 ( 0.00%) ???:rustc_builtin_macros::concat::expand_concat [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 70,427 ( 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] 70,406 ( 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] 70,380 ( 0.00%) ???:::recover_vcs_conflict_marker [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 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,368 ( 0.00%) src/eset.c:tcache_bin_flush_small 70,347 ( 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] 70,291 ( 0.00%) ???:::add_early_lint [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 70,079 ( 0.00%) ???:core::ptr::drop_glue::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 70,014 ( 0.00%) ???:core::slice::sort::stable::drift::sort::<(&rustc_span::symbol::Symbol, &rustc_span::span_encoding::Span), <[(&rustc_span::symbol::Symbol, &rustc_span::span_encoding::Span)]>::sort_by_key<&rustc_span::span_encoding::Span, ::check_crate::{closure#0}>::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 69,890 ( 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::has_non_exhaustive_attr 69,455 ( 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] 69,390 ( 0.00%) src/sz.c:tcache_bin_flush_small 69,371 ( 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] 69,275 ( 0.00%) ???:>::fill_item::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 69,047 ( 0.00%) ???:>::relate:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 69,019 ( 0.00%) ???:::mirror_stmts::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 68,959 ( 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 68,932 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_lint/src/passes.rs:::check_attributes [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 68,884 ( 0.00%) ???:::new_imported_source_file [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 68,838 ( 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> 68,418 ( 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] 68,282 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 68,220 ( 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] 68,210 ( 0.00%) ???: as rustc_ast::visit::Visitor>::visit_generic_param::{closure#0} [???] 68,123 ( 0.00%) ???:::visit_generics [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 68,042 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_expr'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 67,925 ( 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] 67,899 ( 0.00%) ???:>::fold_predicate'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 67,844 ( 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] 67,795 ( 0.00%) ???:::hir_get_generics [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 67,711 ( 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 67,640 ( 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] 67,625 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/enum_clike.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 67,620 ( 0.00%) include/jemalloc/internal/atomic.h:ecache_evict 67,549 ( 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] 67,538 ( 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::attrs::mixed_attributes_style::check 67,510 ( 0.00%) ???: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] 67,478 ( 0.00%) ???:>::assemble_and_evaluate_candidates::>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 67,433 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/new_without_default.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 67,390 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 67,330 ( 0.00%) ???:>::get_placeable [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 67,248 ( 0.00%) ???:::visit_fn'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 67,183 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 67,113 ( 0.00%) ???:>::write_discriminant:: [???] 67,082 ( 0.00%) ???:rustc_attr_parsing::attributes::cfg::parse_cfg [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 67,080 ( 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] 67,053 ( 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] 66,984 ( 0.00%) ???:::visit_lifetime [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 66,944 ( 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] 66,787 ( 0.00%) ???:rustc_query_impl::query_impl::associated_types_for_impl_traits_in_trait_or_impl::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,712 ( 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 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 66,632 ( 0.00%) ???:::scan_refdef_space [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 66,562 ( 0.00%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 66,522 ( 0.00%) ???:>::fold_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 66,521 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_generic_args [???] 66,492 ( 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 66,427 ( 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] 66,327 ( 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 66,216 ( 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] 66,178 ( 0.00%) ???:::visit_generics [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 66,088 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 66,078 ( 0.00%) ???:::opaque_types_added_in_snapshot [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 66,051 ( 0.00%) ???:rustc_hir_analysis::check::compare_impl_item::check_type_bounds [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 65,955 ( 0.00%) ???:rustc_next_trait_solver::solve::assembly::structural_traits::instantiate_constituent_tys_for_copy_clone_trait:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 65,908 ( 0.00%) ???:::flat_map_stmt'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 65,849 ( 0.00%) ???:::is_inhabited_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 65,807 ( 0.00%) ???:::get_variant [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 65,704 ( 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_item 65,694 ( 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] 65,448 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 65,417 ( 0.00%) ???:::is_automatically_derived [???] 65,405 ( 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] 65,392 ( 0.00%) ???:::flat_map_field_def [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 65,386 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 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,271 ( 0.00%) ???:>::univariant_biased::>::{closure#5} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 65,229 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/serde_api.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 65,208 ( 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] 65,208 ( 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] 65,014 ( 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] 64,964 ( 0.00%) ???:::find_by_ident_and_kind [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 64,963 ( 0.00%) ???:rustc_ast::visit::visit_field_defs::> [???] 64,959 ( 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] 64,914 ( 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 64,884 ( 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] 64,881 ( 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] 64,736 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/functions/result.rs:clippy_lints::functions::result::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 64,690 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/methods/clone_on_copy.rs:clippy_lints::methods::clone_on_copy::check_function [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 64,686 ( 0.00%) ???:; 1]>>::reserve_one_unchecked [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 64,601 ( 0.00%) ???:::parse_next_component_back [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 64,598 ( 0.00%) ???:::mk_bound_variable_kinds [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 64,585 ( 0.00%) ???:::{closure#0}> as core::iter::traits::iterator::Iterator>::next [???] 64,534 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_expr_use_site [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 64,464 ( 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] 64,416 ( 0.00%) ???:::compute_and_check_or_pat_binding_map [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 64,410 ( 0.00%) ???:::destructor [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 64,386 ( 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] 64,356 ( 0.00%) ???:::demand_coerce_diag [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 64,342 ( 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] 64,288 ( 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] 64,080 ( 0.00%) ???:::span [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 64,056 ( 0.00%) ???:::parse_literal_maybe_minus [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 64,027 ( 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 64,020 ( 0.00%) ???:::apply_mark [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 63,864 ( 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<&rustc_hir::hir::Expr, core::iter::adapters::filter::Filter, core::slice::iter::Iter>, clippy_lints::unit_types::unit_arg::check::{closure#0}>>>::from_iter [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 63,808 ( 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,762 ( 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] 63,709 ( 0.00%) ???:>::with::::new::{closure#0}::{closure#0}>::{closure#0}, u32> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 63,667 ( 0.00%) ???: as rustc_const_eval::interpret::visitor::ValueVisitor>::visit_value'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 63,640 ( 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] 63,633 ( 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,572 ( 0.00%) ???:>::drop_and_maybe_poison [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 63,468 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::try_fold_with::>::normalize::{closure#0}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 63,400 ( 0.00%) ???:::canonicalize_free_region [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 63,360 ( 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] 63,350 ( 0.00%) ???:::parse_single_args::, rustc_attr_parsing::parser::MetaItemOrLitParser> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 63,339 ( 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 63,310 ( 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] 63,297 ( 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] 63,260 ( 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:extent_try_coalesce_impl.llvm.9305427869391012685 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 63,204 ( 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,129 ( 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] 63,076 ( 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] 63,012 ( 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,009 ( 0.00%) ???:<::anonymize_bound_vars::Anonymize as rustc_middle::ty::fold::BoundVarReplacerDelegate>::replace_region [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 62,986 ( 0.00%) ???:>::evaluate_added_goals_step [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 62,918 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/extra_unused_type_parameters.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 62,908 ( 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,904 ( 0.00%) ???:::check_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 62,832 ( 0.00%) ???:>::contains [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 62,803 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_variant_data [???] 62,801 ( 0.00%) ???:<::find_self_aliases::MyVisitor 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] 62,663 ( 0.00%) ???:>::layout_of [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 62,649 ( 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::> 62,618 ( 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] 62,499 ( 0.00%) ???:::register_wf_obligation [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 62,490 ( 0.00%) ???:::choose_generics_over_qpath [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 62,449 ( 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] 62,332 ( 0.00%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 62,331 ( 0.00%) ???:<&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] 62,211 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/doc/missing_headers.rs: as rustc_hir::intravisit::Visitor>::visit_expr'2 62,195 ( 0.00%) ???:::next_match [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,928 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_generic_param [???] 61,807 ( 0.00%) ???:::visit_block'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,790 ( 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] 61,764 ( 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] 61,764 ( 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] 61,764 ( 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] 61,734 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_fn_decl [???] 61,718 ( 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] 61,657 ( 0.00%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,657 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,632 ( 0.00%) ???:::meta [???] 61,584 ( 0.00%) ???:::region_constraints_added_in_snapshot [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,438 ( 0.00%) ???:rustc_ty_utils::common_traits::is_trait_raw [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,386 ( 0.00%) ???:::local_def_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,386 ( 0.00%) ???:::lint_vec [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,283 ( 0.00%) ???:>::fold_const [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 61,272 ( 0.00%) /rust/deps/thin-vec-0.2.19/src/lib.rs:>::walk_ref'2 61,272 ( 0.00%) ???:::normalize:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,959 ( 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] 60,928 ( 0.00%) ???:>::insert [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,916 ( 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:: 60,888 ( 0.00%) ???:::run_pass [???] 60,855 ( 0.00%) ???: as rustc_ast::visit::Visitor>::visit_use_tree [???] 60,773 ( 0.00%) ???:::visit_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,768 ( 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,768 ( 0.00%) ???:, rustc_hash::FxBuildHasher> as core::iter::traits::collect::Extend<(rustc_span::symbol::Ident, rustc_hir::def::Res)>>::extend::, rustc_hash::FxBuildHasher>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,759 ( 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] 60,748 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/option_env_unwrap.rs:::check_expr 60,674 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/peekable.rs:clippy_lints::doc::check_doc::> 60,667 ( 0.00%) ???:::expr_ty_adjusted_opt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,525 ( 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] 60,509 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,501 ( 0.00%) ???:::meta_kind [???] 60,467 ( 0.00%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,402 ( 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,400 ( 0.00%) ???: as rustc_next_trait_solver::solve::assembly::GoalKind>::match_assumption::< as rustc_next_trait_solver::solve::assembly::GoalKind>::probe_and_consider_implied_clause<[(rustc_type_ir::solve::GoalSource, rustc_type_ir::solve::Goal); 1]>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,318 ( 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] 60,236 ( 0.00%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,199 ( 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] 60,108 ( 0.00%) src/bitmap.c:malloc_default 60,096 ( 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 60,080 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 60,028 ( 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] 59,986 ( 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 59,958 ( 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] 59,919 ( 0.00%) ???:::visit_generics [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,834 ( 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] 59,714 ( 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] 59,661 ( 0.00%) ???:::visit_poly_trait_ref_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,640 ( 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] 59,462 ( 0.00%) ???:::should_run_pass_for_callee [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,452 ( 0.00%) ???: as rustc_type_ir::interner::CollectAndApply, &rustc_middle::ty::list::RawList<(), rustc_type_ir::binder::BoundVariableKind>>>::collect_and_apply::>, ::mk_bound_variable_kinds_from_iter>, rustc_type_ir::binder::BoundVariableKind>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,441 ( 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:>::handle_inline_pass1 59,438 ( 0.00%) ???:::ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,393 ( 0.00%) ???:::is_path_start [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,367 ( 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 59,339 ( 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] 59,308 ( 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] 59,200 ( 0.00%) ???:>::args_may_unify_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,079 ( 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] 59,067 ( 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] 59,062 ( 0.00%) ???:rustc_passes::reachable::reachable_set [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 59,037 ( 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] 58,845 ( 0.00%) ???:rustc_query_impl::query_impl::associated_items::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] 58,761 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_path'2 [???] 58,698 ( 0.00%) ???:> as rustc_serialize::serialize::Decodable>::decode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 58,656 ( 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> 58,616 ( 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] 58,615 ( 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] 58,592 ( 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] 58,507 ( 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] 58,470 ( 0.00%) ???:::eq:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 58,466 ( 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:>::expr_ty [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 58,430 ( 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 58,398 ( 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] 58,393 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/higher.rs:::check_expr 58,332 ( 0.00%) ???:::visit_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 58,318 ( 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:::visit_pat 58,274 ( 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 58,219 ( 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] 58,200 ( 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] 58,140 ( 0.00%) ???:rustc_query_impl::query_impl::cross_crate_inlinable::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] 58,127 ( 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] 58,050 ( 0.00%) ???:rustc_query_impl::query_impl::impl_is_fully_generic_for_reflection::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] 58,050 ( 0.00%) ???:rustc_query_impl::query_impl::impl_self_is_guaranteed_unsized::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] 58,042 ( 0.00%) ???:::def_key:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 57,921 ( 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] 57,886 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/needless_question_mark.rs:::check_expr 57,771 ( 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::fn_def_id_with_node_args 57,706 ( 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> 57,664 ( 0.00%) ???:::adjust [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 57,652 ( 0.00%) ???:::kind [???] 57,555 ( 0.00%) ???:rustc_query_impl::query_impl::generics_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] 57,545 ( 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 57,536 ( 0.00%) ???:::add_implicit_sizedness_bounds [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 57,473 ( 0.00%) ???: 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] 57,473 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/question_mark.rs:::check_stmt [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 57,447 ( 0.00%) ???:rustc_query_impl::query_impl::sanitizer_settings_for::execute_query_non_incr::__rust_end_short_backtrace'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 57,431 ( 0.00%) ???:rustc_next_trait_solver::solve::eval_ctxt::should_rerun_after_erased_canonicalization:: [???] 57,418 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with::::anonymize_bound_vars::Anonymize>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 57,200 ( 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] 57,141 ( 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] 57,070 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/definition_in_module_root.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 57,057 ( 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] 56,980 ( 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] 56,952 ( 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::missing_headers::check 56,909 ( 0.00%) ???:>::visit_region [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 56,820 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/attrs/duplicated_attributes.rs:::check_attributes 56,805 ( 0.00%) ???:::inhabited_predicate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 56,792 ( 0.00%) ???:::convert_all [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 56,738 ( 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] 56,733 ( 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 56,729 ( 0.00%) ???:rustc_query_impl::query_impl::impl_item_implementor_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] 56,630 ( 0.00%) ???:::repr_options_of_def [???] 56,614 ( 0.00%) include/jemalloc/internal/atomic.h:pa_dalloc 56,541 ( 0.00%) ???:::maybe_resolve_crate'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 56,526 ( 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,476 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/temporary_assignment.rs:::check_expr 56,419 ( 0.00%) ???:>::walk_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 56,393 ( 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] 56,224 ( 0.00%) ???:>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 56,211 ( 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] 56,206 ( 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] 56,187 ( 0.00%) ???:::symbol_path'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 56,120 ( 0.00%) ???:> 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] 56,106 ( 0.00%) ???:::visit_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 56,106 ( 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] 56,106 ( 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] 56,106 ( 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] 56,106 ( 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] 56,073 ( 0.00%) ???:::visit_block [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 56,073 ( 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] 56,023 ( 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] 55,985 ( 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 55,985 ( 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 55,953 ( 0.00%) ???:>::insert [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,921 ( 0.00%) ???:>::drop_slow'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,845 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:::eq 55,737 ( 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] 55,733 ( 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 55,673 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:::with_source_text::::{closure#0}> 55,661 ( 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,637 ( 0.00%) ???:::lower_generic_bound_predicate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,611 ( 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] 55,554 ( 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] 55,533 ( 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 55,502 ( 0.00%) ???:rustc_trait_selection::traits::specialize::translate_args_with_cause [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,490 ( 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 55,479 ( 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] 55,477 ( 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] 55,428 ( 0.00%) ???:core::slice::sort::unstable::quicksort::quicksort::::sort_unstable_by_key<(i64, usize), rustc_trait_selection::traits::specialize::specialization_graph_provider::{closure#2}>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,361 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/slow_vector_initialization.rs:::check_expr 55,248 ( 0.00%) ???:rustc_query_impl::query_impl::generics_of::execute_query_non_incr::__rust_end_short_backtrace'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,236 ( 0.00%) ???: as rustc_type_ir::relate::TypeRelation>::relate_with_variance::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,223 ( 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 55,118 ( 0.00%) ???:::check_expr_struct_fields'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,104 ( 0.00%) ???:::visit_generic_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,074 ( 0.00%) ???:rustc_expand::mbe::quoted::parse [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,062 ( 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 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 55,033 ( 0.00%) ???:rustc_ty_utils::representability::params_in_repr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 55,030 ( 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::has_non_exhaustive_attr 55,018 ( 0.00%) ???:>::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 54,916 ( 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:: 54,861 ( 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] 54,857 ( 0.00%) ???:rustc_hir_analysis::coherence::builtin::check_trait [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 54,813 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/question_mark.rs:::check_expr_post 54,784 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/higher.rs:::check_expr 54,665 ( 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_item 54,635 ( 0.00%) ???: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] 54,606 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/len_without_is_empty.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 54,587 ( 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 54,530 ( 0.00%) ???:::add_node [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 54,470 ( 0.00%) ???:::demand_eqtype_with_origin [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 54,445 ( 0.00%) ???: as rustc_ast::visit::Visitor>::visit_field_def::{closure#0} [???] 54,437 ( 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] 54,412 ( 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 54,392 ( 0.00%) ???:::visit_goal [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 54,388 ( 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 54,388 ( 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 54,388 ( 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 54,388 ( 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 54,388 ( 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 54,388 ( 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 54,388 ( 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 54,388 ( 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 54,388 ( 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 54,388 ( 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 54,388 ( 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 54,388 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/pointers_in_nomem_asm_block.rs:::check_expr 54,388 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_lints::operators::eq_op::check_assert 54,388 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_lints::operators::float_cmp::check_assert 54,370 ( 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 54,295 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_ty'2 [???] 54,271 ( 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] 54,264 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/large_const_arrays.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 54,264 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/non_copy_const.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 54,242 ( 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] 54,242 ( 0.00%) ???:::visit_generic_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 54,242 ( 0.00%) ???:::visit_generic_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 54,242 ( 0.00%) ???:::visit_generic_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 54,220 ( 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] 54,196 ( 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] 54,171 ( 0.00%) ???:::check_arm [???] 54,103 ( 0.00%) include/jemalloc/internal/extent.h:tcache_bin_flush_small 53,970 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/module_style.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 53,970 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/module_style.rs:::check_item_post [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 53,970 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/single_component_path_imports.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 53,837 ( 0.00%) ???:::instantiate_binder_with_infer::<(rustc_middle::ty::Ty, rustc_middle::ty::Ty)> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 53,689 ( 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,601 ( 0.00%) include/jemalloc/internal/tsd.h:free_default 53,586 ( 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] 53,520 ( 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,452 ( 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] 53,390 ( 0.00%) ???:rustc_query_impl::query_impl::enforce_impl_non_lifetime_params_are_constrained::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] 53,360 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/visitors.rs: as rustc_hir::intravisit::Visitor>::visit_expr'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 53,322 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/derive/derive_ord_xor_partial_ord.rs:clippy_lints::derive::derive_ord_xor_partial_ord::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 53,270 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/char/methods.rs:::visit_pat 53,258 ( 0.00%) ???:>::push_stack_frame_done [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 53,248 ( 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] 53,242 ( 0.00%) ???:::visit_where_predicate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 53,209 ( 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,199 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::try_fold_with::::{closure#0}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 53,172 ( 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] 53,100 ( 0.00%) include/jemalloc/internal/rtree.h:emap_merge_prepare 53,086 ( 0.00%) ???:::parse_use_tree [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 53,081 ( 0.00%) ???:>::walk_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 53,081 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 53,081 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 53,051 ( 0.00%) ???:>)>>, ::encode_impls::{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] 53,033 ( 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] 53,016 ( 0.00%) ???:::try_new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,987 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,985 ( 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] 52,961 ( 0.00%) ???:rustc_middle::query::inner::query_ensure_result::>, ()> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,900 ( 0.00%) ???:>::walk_mut [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,877 ( 0.00%) ???:::qualif_local:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,836 ( 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:: 52,704 ( 0.00%) ???:::pat_ident_binding_mode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,674 ( 0.00%) ???:>::append_text [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,669 ( 0.00%) ???:::parse_pat_tuple_or_parens [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,578 ( 0.00%) ???:rustc_mir_transform::validate::validate_types [???] 52,568 ( 0.00%) ???:::maybe_report_lifetime_uses [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,543 ( 0.00%) include/jemalloc/internal/ph.h:realloc 52,521 ( 0.00%) ???:::check_expr_if'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,406 ( 0.00%) ???:>::decode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,357 ( 0.00%) ???:::check_expr_field'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,350 ( 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] 52,306 ( 0.00%) ???:::eq [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,281 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,235 ( 0.00%) ???:::smart_resolve_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,232 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,203 ( 0.00%) ???:rustc_type_ir::fast_reject::simplify_type:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,199 ( 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] 52,195 ( 0.00%) ???:::visit_block'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,165 ( 0.00%) /rust/deps/smallvec-1.15.1/src/lib.rs:::check_attributes 52,165 ( 0.00%) /rust/deps/smallvec-1.15.1/src/lib.rs:::check_attributes_post 52,134 ( 0.00%) ???:::schedule_expn_data_for_encoding [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,132 ( 0.00%) ???:::sub_regions [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 52,094 ( 0.00%) ???:::has_item_definition [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,989 ( 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'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 51,899 ( 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] 51,888 ( 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] 51,884 ( 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] 51,864 ( 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] 51,779 ( 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] 51,770 ( 0.00%) /rust/deps/indexmap-2.14.0/src/inner.rs:, rustc_type_ir::sty::Region>>::insert_unique [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 51,744 ( 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] 51,642 ( 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:: 51,634 ( 0.00%) ???:::visit_use_tree [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,603 ( 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] 51,582 ( 0.00%) ???:::meta_item_list [???] 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,538 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_nested_item [???] 51,520 ( 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] 51,496 ( 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] 51,400 ( 0.00%) ???:thin_vec::drop_non_singleton::<(rustc_ast::attr::data_structures::CfgEntry, rustc_span::span_encoding::Span)> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,354 ( 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] 51,318 ( 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] 51,300 ( 0.00%) ???:rustc_query_impl::query_impl::orphan_check_impl::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,282 ( 0.00%) ???:::is_trivially_freeze [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,276 ( 0.00%) ???:__tls_get_addr [/usr/lib/ld-linux-x86-64.so.2] 51,213 ( 0.00%) ???:::instantiate_supertrait [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,158 ( 0.00%) ???:::opportunistic_resolve_int_var [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 51,148 ( 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] 51,056 ( 0.00%) ???:>::visit_with::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 50,874 ( 0.00%) ???: as rustc_ast::visit::Visitor>::visit_use_tree'2 [???] 50,845 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/str_utils.rs:clippy_utils::str_utils::to_camel_case [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 50,802 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 50,768 ( 0.00%) ???:::make_query_response_ignoring_pending_obligations::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 50,763 ( 0.00%) ???:::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 50,748 ( 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:rustc_hir::intravisit::walk_qpath:: 50,664 ( 0.00%) ???:::clone [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 50,585 ( 0.00%) ???:>::imm_ptr_to_mplace [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 50,580 ( 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] 50,577 ( 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::collect::Extend>::extend::>> 50,569 ( 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] 50,509 ( 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] 50,496 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/doc/suspicious_doc_comments.rs:<&mut clippy_lints::doc::suspicious_doc_comments::collect_doc_replacements::{closure#0} as core::ops::function::FnMut<(&rustc_hir::hir::Attribute,)>>::call_mut 50,481 ( 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] 50,479 ( 0.00%) ???:::diverge_from [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 50,453 ( 0.00%) ???:::define_local [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 50,387 ( 0.00%) ???:rustc_mir_transform::deref_separator::deref_finder [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 50,363 ( 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 50,315 ( 0.00%) ???:::find_constraint_path_between_regions_inner::<&::constraint_path_between_regions::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 50,315 ( 0.00%) ???:rustc_metadata::rmeta::decoder::cstore_impl::provide_extern::fn_sig [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 50,208 ( 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 50,160 ( 0.00%) ???:rustc_ty_utils::representability::params_in_repr_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 50,101 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/incompatible_msrv.rs:::get_def_id_availability [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 50,096 ( 0.00%) ???:::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 50,093 ( 0.00%) ???:::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 50,092 ( 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> 50,092 ( 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> 50,092 ( 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> 50,024 ( 0.00%) src/emap.c:extent_try_coalesce_impl.llvm.9305427869391012685 50,018 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/methods/unnecessary_fallible_conversions.rs:clippy_lints::methods::unnecessary_fallible_conversions::check_function [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 49,998 ( 0.00%) ???:>>::upcast_from [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 49,760 ( 0.00%) ???:::visit_attribute [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 49,736 ( 0.00%) ???:>::decode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 49,715 ( 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] 49,641 ( 0.00%) ???:::visit_stmt'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 49,542 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/sync.rs:>::with::<::with::expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 49,498 ( 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] 49,495 ( 0.00%) ???:pulldown_cmark::firstpass::delim_run_can_close [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 49,476 ( 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 49,438 ( 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] 49,418 ( 0.00%) ???:::hygienic_eq [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 49,400 ( 0.00%) ???:::lower_spans::<::lower_attrs_vec::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 49,367 ( 0.00%) ???:::parse_mod'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 49,353 ( 0.00%) ???:rustc_middle::ty::trait_def::incoherent_impls_provider [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 49,312 ( 0.00%) ???:__strtoul_internal [/usr/lib/libc.so.6] 49,242 ( 0.00%) ???:::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 49,170 ( 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> 49,167 ( 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 49,018 ( 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 49,018 ( 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> 48,983 ( 0.00%) include/jemalloc/internal/edata.h:pac_decay_to_limit.llvm.9344053299937794623 48,904 ( 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] 48,857 ( 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] 48,814 ( 0.00%) ???:rustc_hir_analysis::check::region::resolve_local::record_rvalue_scope_if_borrow_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 48,736 ( 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] 48,736 ( 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] 48,736 ( 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] 48,735 ( 0.00%) ???:::universe_of_lt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 48,734 ( 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] 48,704 ( 0.00%) /home/moon/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.8.2/src/arch/x86_64/avx2/memchr.rs:memchr::arch::x86_64::memchr::memchr_raw::find_avx2 48,697 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/unused_io_amount.rs:clippy_lints::unused_io_amount::should_lint [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 48,640 ( 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] 48,592 ( 0.00%) ???:>::fold_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 48,587 ( 0.00%) ???:core::slice::sort::unstable::quicksort::quicksort::::sort_unstable_by<::new::{closure#2}>::{closure#0}>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 48,568 ( 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] 48,560 ( 0.00%) ???:::start_point [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 48,464 ( 0.00%) ???:createX86MCAsmInfo(llvm::MCRegisterInfo const&, llvm::Triple const&, llvm::MCTargetOptions const&) [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/libLLVM.so.23.1-rust-1.99.0-nightly] 48,366 ( 0.00%) ???:>::swap_remove:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 48,258 ( 0.00%) ???:::type_of [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 48,224 ( 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 48,128 ( 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] 48,021 ( 0.00%) ???: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] 47,988 ( 0.00%) ???:::evaluate [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 47,979 ( 0.00%) ???:::alloc_from_iter::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 47,916 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 47,898 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 47,784 ( 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] 47,779 ( 0.00%) ???:rustc_query_impl::query_impl::visibility::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] 47,747 ( 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] 47,736 ( 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:::check_item 47,732 ( 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] 47,637 ( 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] 47,635 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 47,576 ( 0.00%) ???:::until [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 47,510 ( 0.00%) ???:<::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] 47,495 ( 0.00%) ???:::walk_::<::necessary_variants::{closure#0}>'2 [???] 47,454 ( 0.00%) ???:::check_for_duplicate_items_in_impl [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 47,432 ( 0.00%) ???:>::reserve_rehash::, ()>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 47,429 ( 0.00%) ???:>::node_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 47,379 ( 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] 47,324 ( 0.00%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 47,310 ( 0.00%) ???:::resolve_vars_if_possible::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 47,039 ( 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] 46,794 ( 0.00%) ???:getopts::find_opt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 46,711 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 46,674 ( 0.00%) ???:>::fold_clauses [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 46,658 ( 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] 46,616 ( 0.00%) ???:::sup:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 46,608 ( 0.00%) ???:::emit_messages_default'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 46,557 ( 0.00%) include/jemalloc/internal/tsd_tls.h:free_default 46,556 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/duplicate_mod.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 46,548 ( 0.00%) ???:::meta [???] 46,526 ( 0.00%) ???:::eat_path_sep [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 46,508 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/map_unit_fn.rs:::check_stmt [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 46,504 ( 0.00%) ???:::visit_nested_body [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 46,438 ( 0.00%) ???:::visit_block'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 46,438 ( 0.00%) ???:rustc_hir::intravisit::walk_block::<::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] 46,438 ( 0.00%) ???:rustc_hir::intravisit::walk_block::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 46,438 ( 0.00%) ???:rustc_hir::intravisit::walk_block::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 46,438 ( 0.00%) ???:rustc_hir::intravisit::walk_block::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 46,429 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/else_if_without_else.rs:::check_expr 46,399 ( 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] 46,397 ( 0.00%) ???:::visit_block'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 46,397 ( 0.00%) ???:rustc_hir::intravisit::walk_block::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 46,359 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/misc_early/unneeded_wildcard_pattern.rs:::check_pat 46,340 ( 0.00%) ???:::make_eqregion [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 46,224 ( 0.00%) include/jemalloc/internal/extent.h:pa_dalloc 46,210 ( 0.00%) ???:::hir_span::until_within [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 46,095 ( 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:::qpath 46,090 ( 0.00%) ???:__rustc::__rdl_dealloc [???] 46,058 ( 0.00%) ???:::eval_verify_bound [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 46,038 ( 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] 46,002 ( 0.00%) ???:::check_snake_case'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 45,976 ( 0.00%) ???:::sizedness_constraint [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 45,946 ( 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] 45,853 ( 0.00%) ???: 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] 45,840 ( 0.00%) ???:>::push'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 45,811 ( 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 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 45,808 ( 0.00%) ???:::then_else_break_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 45,766 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/higher.rs:::check_expr 45,729 ( 0.00%) ???:::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 45,717 ( 0.00%) ???:>::visit_with:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 45,543 ( 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 45,499 ( 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] 45,447 ( 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::iter::traits::iterator::Iterator>::next 45,427 ( 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] 45,418 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:::search_pat [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 45,416 ( 0.00%) ???:<::is_fully_generic_for_reflection::ParamFinder 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] 45,351 ( 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] 45,318 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/partial_pub_fields.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 45,277 ( 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::lifetimes::could_use_elision 45,112 ( 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::SpecFromIter, ::check_item_kind::{closure#0}>, ::check_item_kind::{closure#1}>, core::option::Option>>>::from_iter 45,066 ( 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] 45,029 ( 0.00%) ???:::relate::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 44,987 ( 0.00%) ???:0x0000000000040c70 [/usr/lib/libc.so.6] 44,959 ( 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] 44,932 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/unnecessary_self_imports.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 44,856 ( 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] 44,833 ( 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_item_kind::{closure#0}>, ::check_item_kind::{closure#1}>, core::option::Option> as core::iter::traits::iterator::Iterator>::next 44,820 ( 0.00%) ???:>::instantiate_cold::>>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 44,724 ( 0.00%) ???:::parse_generics [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 44,604 ( 0.00%) ???:::stable_hash:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 44,513 ( 0.00%) ???:::insert_field_visibilities_local [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 44,488 ( 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_utils::method_chain_args 44,466 ( 0.00%) ???:::instantiate_int_var_raw [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 44,448 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/alloc.rs:clippy_utils::method_chain_args 44,424 ( 0.00%) ???:::build_reduced_graph_for_external_crate_res::{closure#2} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 44,406 ( 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 44,392 ( 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 44,322 ( 0.00%) ???:::visit_generic_params'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 44,289 ( 0.00%) ???:::discriminant_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 44,284 ( 0.00%) ???: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] 44,282 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 44,269 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/types/mod.rs:::check_ty'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 44,085 ( 0.00%) ???:::mk_adt_def_from_data [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 44,049 ( 0.00%) ???:>::with_lint_attrs::::{closure#0}>::{closure#0} [???] 43,992 ( 0.00%) ???:::name [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 43,968 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 43,875 ( 0.00%) ???:::check_type_for_external_abi_fnptr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 43,875 ( 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] 43,751 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::Ty> as rustc_type_ir::fold::TypeFoldable>::fold_with::::anonymize_bound_vars::Anonymize>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 43,684 ( 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] 43,677 ( 0.00%) ???:::parse_arm::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 43,671 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/derive/expl_impl_clone_on_copy.rs:clippy_lints::derive::expl_impl_clone_on_copy::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 43,621 ( 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 43,621 ( 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 43,578 ( 0.00%) ???:>::visit_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 43,550 ( 0.00%) ???:annotate_snippets::renderer::render::style_substitution_highlights [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 43,539 ( 0.00%) ???:::as_rvalue'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 43,525 ( 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] 43,513 ( 0.00%) ???:::prepend [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 43,490 ( 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] 43,488 ( 0.00%) ???:rustc_mir_build::thir::cx::thir_body'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 43,452 ( 0.00%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 43,407 ( 0.00%) include/jemalloc/internal/ticker.h:realloc 43,395 ( 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 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 43,376 ( 0.00%) ???:::check_block [???] 43,360 ( 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> 43,360 ( 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> 43,301 ( 0.00%) ???:__rustc::__rust_realloc [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 43,265 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::check_ctxt [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 43,248 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/matches/mod.rs:::check_expr::{closure#0} [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 43,233 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/higher.rs:clippy_utils::higher::has_let_expr'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 43,200 ( 0.00%) ???:::break_two_token_op [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 43,186 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/def.rs:::check_expr 43,176 ( 0.00%) include/jemalloc/internal/sz.h:ecache_evict 43,132 ( 0.00%) ???:>::project_field:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 43,066 ( 0.00%) ???:::push_assign [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 43,004 ( 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] 42,975 ( 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::::check::{closure#0}>>'2 42,964 ( 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 42,947 ( 0.00%) ???:::lower_pat_tuple [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 42,873 ( 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] 42,868 ( 0.00%) ???:rustc_mir_transform::mir_const_qualif [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 42,825 ( 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:::check_item_kind 42,780 ( 0.00%) ???:::type_is_copy_modulo_regions [???] 42,713 ( 0.00%) ???:::string [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 42,710 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 42,694 ( 0.00%) ???:rustc_ast_lowering::lower_to_hir'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 42,650 ( 0.00%) ???:rustc_query_impl::query_impl::associated_types_for_impl_traits_in_trait_or_impl::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] 42,637 ( 0.00%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 42,637 ( 0.00%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 42,622 ( 0.00%) ???:::alloc_from_iter::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 42,600 ( 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] 42,598 ( 0.00%) ???:::is_positional [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 42,458 ( 0.00%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 42,425 ( 0.00%) ???:rustc_span::hygiene::register_expn_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 42,414 ( 0.00%) ???:::record_var_scope [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 42,412 ( 0.00%) ???:::single_pat_field [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 42,235 ( 0.00%) ???:::insert [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 41,962 ( 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] 41,941 ( 0.00%) ???:::visit_qpath [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 41,880 ( 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 41,821 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/higher.rs:::check_expr 41,728 ( 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] 41,725 ( 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] 41,689 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:::get::{closure#0}> as rustc_hir::intravisit::Visitor>::visit_expr'2 41,643 ( 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::lifetimes::could_use_elision 41,615 ( 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] 41,575 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 41,565 ( 0.00%) ???:>::apply_constructor'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 41,513 ( 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::lifetimes::could_use_elision 41,490 ( 0.00%) ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results [???] 41,377 ( 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] 41,373 ( 0.00%) include/jemalloc/internal/mutex.h:realloc 41,318 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/methods/swap_with_temporary.rs:clippy_lints::methods::swap_with_temporary::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 41,149 ( 0.00%) ???:::visit_stmt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 41,141 ( 0.00%) ???:::collect_field [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 41,128 ( 0.00%) include/jemalloc/internal/ph.h:edata_cache_put 41,123 ( 0.00%) ???:rustc_builtin_macros::util::get_exprs_from_tts [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 41,120 ( 0.00%) /rust/deps/hashbrown-0.17.1/src/raw.rs:)>>::remove_entry::>::{closure#0}> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 41,108 ( 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}>> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 41,092 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/toplevel_ref_arg.rs:::check_stmt [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 41,088 ( 0.00%) ???:::as_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 41,086 ( 0.00%) /rust/deps/hashbrown-0.17.0/src/raw.rs:, rustc_type_ir::sty::Region>>::new 41,085 ( 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] 41,067 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/char/methods.rs:clippy_utils::str_utils::to_camel_case 41,054 ( 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] 41,044 ( 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 41,039 ( 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] 41,031 ( 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] 41,007 ( 0.00%) ???:::parse_enum_variant::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 40,979 ( 0.00%) ???:>::get_pattern'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 40,892 ( 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:: 40,890 ( 0.00%) ???:>::rustc_entry [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 40,869 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 40,867 ( 0.00%) ???:::splice_lines::push_trailing [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 40,859 ( 0.00%) /rust/deps/indexmap-2.14.0/src/inner.rs:>::insert_full 40,839 ( 0.00%) ???:rustc_lint::unused::must_use::is_ty_must_use [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 40,713 ( 0.00%) ???:::lower_pat_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 40,684 ( 0.00%) ???:::break_scope'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 40,679 ( 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 40,616 ( 0.00%) ???:::shallow_resolve_const [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 40,516 ( 0.00%) ???:::variant_of_res [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 40,510 ( 0.00%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 40,497 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/def.rs:::eq [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 40,478 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/dereference.rs:::check_item 40,429 ( 0.00%) ???:rustc_trait_selection::traits::dyn_compatibility::virtual_call_violations_for_method [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 40,425 ( 0.00%) ???:>::reserve [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 40,408 ( 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] 40,402 ( 0.00%) ???:rustc_query_impl::query_impl::ty_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] 40,398 ( 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 40,394 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/write/mod.rs:::check_item 40,344 ( 0.00%) /rust/deps/hashbrown-0.17.1/src/raw.rs:>::insert 40,330 ( 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 40,330 ( 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 40,330 ( 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 40,242 ( 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] 40,222 ( 0.00%) ???:rustc_ast::mut_visit::walk_fn:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 40,216 ( 0.00%) ???:0x0000000000176b40 [/usr/lib/libc.so.6] 40,198 ( 0.00%) ???:rustc_lint::lint_mod [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 40,140 ( 0.00%) ???:rustc_query_impl::query_impl::evaluate_root_goal_for_proof_tree_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] 40,137 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/res.rs:::check_expr 40,130 ( 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] 40,119 ( 0.00%) ???:::is_thread_local_static [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 40,089 ( 0.00%) ???:::liberate_late_bound_regions::::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 39,974 ( 0.00%) ???:rustc_hir_analysis::check::adt_destructor [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 39,960 ( 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] 39,954 ( 0.00%) ???:::serialize::<&mut serde_json::ser::Serializer<&mut alloc::boxed::Box>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 39,925 ( 0.00%) ???:>::super_fold_with::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 39,896 ( 0.00%) ???:::parse_if_after_cond [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 39,880 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/higher.rs:::check_expr 39,824 ( 0.00%) ???:::implicit_self [???] 39,801 ( 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] 39,801 ( 0.00%) ???:::evaluate'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 39,746 ( 0.00%) ???:, pulldown_cmark::parse::LinkDef)>>::reserve_rehash::, pulldown_cmark::parse::LinkDef, std::hash::random::RandomState>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 39,732 ( 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] 39,705 ( 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] 39,693 ( 0.00%) ???:::check_target [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 39,652 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/crate_in_macro_def.rs:clippy_lints::crate_in_macro_def::contains_unhygienic_crate_reference'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 39,612 ( 0.00%) ???:::has_typeck_results [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 39,610 ( 0.00%) include/jemalloc/internal/edata.h:extent_record 39,596 ( 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 39,592 ( 0.00%) ???:::add_constraints_from_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 39,588 ( 0.00%) ???:> as rustc_ast::visit::Visitable>>::visit [???] 39,530 ( 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 39,529 ( 0.00%) ???: as rustc_infer::traits::engine::TraitEngine>::try_evaluate_obligations'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 39,497 ( 0.00%) ???:rustc_ast::util::literal::escape_string_symbol [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 39,446 ( 0.00%) include/jemalloc/internal/edata.h:extent_try_coalesce_impl.llvm.9305427869391012685 39,442 ( 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:extent_record [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 39,331 ( 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] 39,281 ( 0.00%) ???:::resolve_type_relative_path [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 39,262 ( 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] 39,254 ( 0.00%) ???:::fmt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 39,212 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 39,207 ( 0.00%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 39,176 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/asm_syntax.rs:::check_expr 39,124 ( 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_impl_item 39,086 ( 0.00%) ???:::validate_local [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 39,066 ( 0.00%) /rust/deps/rustc-hash-2.1.1/src/lib.rs:>::insert 39,065 ( 0.00%) ???:::lower_const_arg [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 39,048 ( 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] 39,000 ( 0.00%) ???:::call [???] 38,962 ( 0.00%) ???:> as rustc_ast::visit::Visitable>>::visit [???] 38,908 ( 0.00%) ???:::next'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 38,836 ( 0.00%) ???:> as rustc_ast::visit::Visitable>>::visit [???] 38,719 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/higher.rs:::check_expr 38,719 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/higher.rs:::check_expr 38,710 ( 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] 38,662 ( 0.00%) ???:::qualif_local::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 38,659 ( 0.00%) ???:::parse_item_enum [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 38,657 ( 0.00%) /rust/deps/indexmap-2.14.0/src/map.rs:clippy_lints::lifetimes::could_use_elision 38,624 ( 0.00%) include/jemalloc/internal/bit_util.h:eset_remove 38,550 ( 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_item 38,550 ( 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_item_post 38,516 ( 0.00%) ???:rustc_ast::visit::visit_field_defs:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 38,496 ( 0.00%) ???:rustc_ast::attr::mk_doc_comment [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 38,492 ( 0.00%) ???:> as alloc::vec::spec_extend::SpecExtend, core::result::IntoIter>>>::spec_extend [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 38,465 ( 0.00%) ???:::needs_drop [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 38,395 ( 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:: 38,392 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/unused_io_amount.rs:clippy_lints::unused_io_amount::check_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 38,387 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/mut_key.rs:::check_ty_ [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 38,348 ( 0.00%) ???:::lower_poly_trait_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 38,319 ( 0.00%) ???:::define_macro [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 38,315 ( 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 38,208 ( 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 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 38,193 ( 0.00%) ???:::policy [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 38,144 ( 0.00%) ???:>::relate:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 38,136 ( 0.00%) ???:::parse_meta_item_inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 38,100 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs: as alloc::vec::spec_from_iter_nested::SpecFromIterNested<&rustc_hir::hir::Expr, core::iter::adapters::filter::Filter, core::slice::iter::Iter>, clippy_lints::unit_types::unit_arg::check::{closure#0}>>>::from_iter 38,068 ( 0.00%) ???:::fn_sig [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 38,038 ( 0.00%) ???:rustc_query_impl::query_impl::assumed_wf_types::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] 38,028 ( 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] 38,013 ( 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] 38,005 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 37,997 ( 0.00%) ???:>::walk_mut'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 37,987 ( 0.00%) ???:::visit_fn [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 37,986 ( 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> 37,986 ( 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> 37,986 ( 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> 37,950 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/unnested_or_patterns.rs:::visit_pat [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 37,913 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/from_over_into.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 37,886 ( 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] 37,884 ( 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:::finish_grow 37,870 ( 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:::qpath 37,736 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs:::check_ty 37,705 ( 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] 37,693 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_variant_data [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 37,674 ( 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::'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 37,602 ( 0.00%) ???:::is_inhabited_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 37,595 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_expr_use_or_unification_node [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 37,533 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs:::check_crate [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 37,532 ( 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:::check_attribute 37,515 ( 0.00%) /home/moon/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/toml_parser-1.1.2+spec-1.1.0/src/lexer/mod.rs:::next [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 37,506 ( 0.00%) ???:>, usize), rustc_middle::query::erase::ErasedData<[u8; 48]>> 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] 37,503 ( 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 37,451 ( 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 37,443 ( 0.00%) ???:>::walk_mut'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 37,438 ( 0.00%) ???:::flat_map_variant [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 37,436 ( 0.00%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 37,398 ( 0.00%) ???:<[rustc_ast::tokenstream::TokenTree] as rustc_serialize::serialize::Encodable>::encode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 37,397 ( 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] 37,392 ( 0.00%) ???:::visit_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 37,374 ( 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] 37,352 ( 0.00%) ???:::visit_operand [???] 37,277 ( 0.00%) ???:rustc_hir_analysis::coherence::inherent_impls_overlap::crate_inherent_impls_overlap_check'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 37,173 ( 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] 37,158 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::try_fold_with::::{closure#0}>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 37,096 ( 0.00%) ???:::has_name [???] 37,085 ( 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_utils::method_chain_args 37,082 ( 0.00%) ???:::write [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 37,040 ( 0.00%) ???:rustc_hir_analysis::collect::lower_fn_sig_recovering_infer_ret_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 37,032 ( 0.00%) ???:::placeholder_region [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 36,993 ( 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] 36,985 ( 0.00%) ???:::between [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 36,956 ( 0.00%) ???:::check_attributes'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 36,922 ( 0.00%) ???:::run_pass [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 36,893 ( 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] 36,867 ( 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] 36,852 ( 0.00%) ???:rustc_expand::mbe::quoted::parse_one_tt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 36,792 ( 0.00%) ???:::relate::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 36,661 ( 0.00%) ???:::method_callee [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 36,603 ( 0.00%) ???:::intern_bound_region [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 36,594 ( 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] 36,582 ( 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 36,546 ( 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 36,360 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/types/type_complexity.rs:::visit_ty [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 36,356 ( 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 36,326 ( 0.00%) ???:::lower_format_args'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 36,274 ( 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_item 36,269 ( 0.00%) ???:>::normalize::{closure#0}> as rustc_type_ir::fold::FallibleTypeFolder>::try_fold_ty::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 36,222 ( 0.00%) ???:, rustc_resolve::Used)>>::reserve_rehash::, rustc_resolve::Used, rustc_hash::FxBuildHasher>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 36,176 ( 0.00%) ???:rustc_query_impl::query_impl::cross_crate_inlinable::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] 36,160 ( 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] 36,123 ( 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] 36,109 ( 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:: 36,077 ( 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] 36,055 ( 0.00%) ???:::{closure#0}>, alloc::vec::Vec, rustc_trait_selection::traits::dyn_compatibility::dyn_compatibility_violations::{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] 36,010 ( 0.00%) ???:::probe_assoc_item_unchecked [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 35,968 ( 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_item 35,940 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 35,903 ( 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] 35,893 ( 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] 35,886 ( 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] 35,875 ( 0.00%) include/jemalloc/internal/mutex.h:pa_dalloc 35,869 ( 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] 35,842 ( 0.00%) ???:)>>::call_once [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 35,834 ( 0.00%) ???:::emit_unreachable_field_error [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 35,794 ( 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:::opt_item_name:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 35,728 ( 0.00%) /rust/deps/indexmap-2.14.0/src/map.rs:::instantiate_bound_regions_with_erased:: 35,720 ( 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] 35,709 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/only_used_in_recursion.rs:::check_body_post [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 35,686 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/needless_ifs.rs:::check_stmt [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 35,684 ( 0.00%) ???:rustc_query_impl::query_impl::layout_of::execute_query_non_incr::__rust_end_short_backtrace'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 35,652 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/higher.rs:clippy_lints::loops::while_let_on_iterator::check 35,615 ( 0.00%) ???:rustc_expand::mbe::macro_check::check_nested_occurrences [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 35,596 ( 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 35,565 ( 0.00%) ???:::requires_monomorphization'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 35,546 ( 0.00%) include/jemalloc/internal/ticker.h:tcache_bin_flush_small 35,525 ( 0.00%) ???:::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 35,510 ( 0.00%) ???:rustc_hir_analysis::collect::adt_def [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 35,480 ( 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] 35,459 ( 0.00%) ???:>>::drop_slow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 35,433 ( 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] 35,415 ( 0.00%) ???:>::reserve_rehash::>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 35,398 ( 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] 35,361 ( 0.00%) ???:::check_attributes [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 35,343 ( 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::> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 35,334 ( 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] 35,286 ( 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::'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 35,262 ( 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::fn_def_id 35,253 ( 0.00%) ???:::check_ident [???] 35,236 ( 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 35,236 ( 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 35,236 ( 0.00%) /rust/deps/hashbrown-0.17.1/src/raw.rs:::check_expr 35,220 ( 0.00%) ???:::evaluate_obligations_error_on_ambiguity'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 35,217 ( 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, clippy_lints::lifetimes::could_use_elision::{closure#2}>>>::from_iter [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 35,212 ( 0.00%) ???:::check_pat'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 35,194 ( 0.00%) ???:rustc_lint::levels::shallow_lint_levels_on'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 35,160 ( 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 35,126 ( 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_utils::attrs::get_unique_builtin_attr:: 35,058 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/reserve_after_initialization.rs:::check_stmt [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 35,056 ( 0.00%) include/jemalloc/internal/extent.h:ecache_evict 35,008 ( 0.00%) include/jemalloc/internal/pai.h:pa_alloc 34,964 ( 0.00%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,945 ( 0.00%) ???:core::ptr::drop_glue::>>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,919 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/methods/unwrap_expect_used.rs:clippy_lints::methods::unwrap_expect_used::check_call [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 34,917 ( 0.00%) ???:>::decode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,901 ( 0.00%) src/bitmap.c:realloc 34,894 ( 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] 34,881 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/attrs/deprecated_cfg_attr.rs:clippy_lints::attrs::deprecated_cfg_attr::check_deprecated_cfg_recursively [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 34,873 ( 0.00%) ???:>::decode [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,872 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_inside_always_const_context [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 34,856 ( 0.00%) ???:::ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,754 ( 0.00%) ???:::visit_expr'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,745 ( 0.00%) ???:::check_decl'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,719 ( 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] 34,652 ( 0.00%) ???:::visit_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,648 ( 0.00%) ???:::resolve_visibility [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,614 ( 0.00%) ???: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] 34,583 ( 0.00%) ???:rustc_attr_parsing::attributes::cfg::parse_cfg_entry'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,569 ( 0.00%) ???:::lower_expr_if [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,516 ( 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:::expr 34,500 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,467 ( 0.00%) ???:rustc_middle::hir::map::hir_module_items [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,426 ( 0.00%) ???:::parse_expr_lit [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,408 ( 0.00%) ???:::expr_call_lang_item_fn [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,365 ( 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_block 34,334 ( 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 34,317 ( 0.00%) ???: as rustc_next_trait_solver::solve::assembly::GoalKind>::consider_builtin_destruct_candidate'2 [???] 34,316 ( 0.00%) ???:core::ptr::drop_glue::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,301 ( 0.00%) ???:::lazy::>, rustc_hash::FxBuildHasher>, &indexmap::map::IndexMap<(rustc_span::symbol::Symbol, rustc_hir::def::Namespace), core::option::Option>, rustc_hash::FxBuildHasher>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,282 ( 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] 34,281 ( 0.00%) ???:::parse_expr_struct [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,280 ( 0.00%) src/sz.c:eset_remove 34,273 ( 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] 34,270 ( 0.00%) ???:::expect_lifetime [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,185 ( 0.00%) ???:::eq_trace::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,147 ( 0.00%) ???:rustc_hir_analysis::collect::type_of::type_of'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 34,144 ( 0.00%) /rust/deps/hashbrown-0.17.0/src/raw.rs:, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::get:: 34,140 ( 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] 34,008 ( 0.00%) ???:::visit_goal [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 33,954 ( 0.00%) ???:::grow_amortized [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 33,928 ( 0.00%) ???:::generics [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 33,874 ( 0.00%) ???:rustc_next_trait_solver::solve::eval_ctxt::fast_path::compute_goal_fast_path::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 33,859 ( 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] 33,807 ( 0.00%) ???:::add_import::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 33,780 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/source.rs:::check_fn 33,769 ( 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] 33,692 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 33,686 ( 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_item_kind::{closure#0}>, ::check_item_kind::{closure#1}>, core::option::Option> as core::iter::traits::iterator::Iterator>::next 33,670 ( 0.00%) ???:::visit_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 33,668 ( 0.00%) ???: 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] 33,660 ( 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<(rustc_hir_id::HirId, clippy_lints::casts::needless_type_cast::BindingInfo), std::collections::hash::map::IntoIter>>::from_iter [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 33,640 ( 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 33,625 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 33,613 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/char/methods.rs:clippy_utils::check_proc_macro::span_matches_pat 33,594 ( 0.00%) ???:::visit_rvalue [???] 33,588 ( 0.00%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 33,584 ( 0.00%) ???:>::insert_full [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 33,556 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 33,513 ( 0.00%) ???:::visit:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 33,480 ( 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_expr 33,465 ( 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] 33,445 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 33,408 ( 0.00%) ???:::opt_span_lint:: [???] 33,397 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 33,391 ( 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_expr 33,371 ( 0.00%) ???:>, bool), rustc_middle::query::erase::ErasedData<[u8; 8]>> 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] 33,357 ( 0.00%) ???:::check_expr_struct [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 33,329 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/methods/or_fun_call.rs:clippy_lints::methods::or_fun_call::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 33,306 ( 0.00%) ???:::select_in_new_trait_solver [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 33,294 ( 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 33,294 ( 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 33,293 ( 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:::check_expr 33,198 ( 0.00%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 33,179 ( 0.00%) ???:rustc_ast::visit::walk_item_inner::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 33,121 ( 0.00%) ???:>::eval_rvalue_into_place [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 33,099 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/uninit_vec.rs:clippy_lints::uninit_vec::handle_uninit_vec_pair [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 33,077 ( 0.00%) ???:>::fold_with::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 33,060 ( 0.00%) ???:::in_any_value_of_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 32,988 ( 0.00%) ???:rustc_attr_parsing::attributes::cfg::eval_config_entry'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 32,943 ( 0.00%) ???:>::get_live_alloc_size_and_align [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 32,937 ( 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] 32,932 ( 0.00%) ???:::hir_get_if_local [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 32,911 ( 0.00%) ???:0x00000000000162d0 [/usr/lib/ld-linux-x86-64.so.2] 32,876 ( 0.00%) ???:::cancel [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 32,860 ( 0.00%) ???:::emit_diagnostic::{closure#3} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 32,840 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 32,755 ( 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] 32,752 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 32,697 ( 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 32,696 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/methods/manual_c_str_literals.rs:clippy_lints::methods::manual_c_str_literals::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 32,628 ( 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] 32,628 ( 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] 32,625 ( 0.00%) ???:>::int_to_int_or_float [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 32,513 ( 0.00%) ???:>::reserve [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 32,500 ( 0.00%) ???:>::get_alloc_info [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 32,363 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/loops/never_loop.rs:clippy_lints::loops::never_loop::combine_branches [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 32,349 ( 0.00%) ???:>::add_id'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 32,345 ( 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] 32,344 ( 0.00%) ???:>::encode'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 32,330 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/lib.rs:::defined_ty [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 32,320 ( 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] 32,306 ( 0.00%) include/jemalloc/internal/ph.h:extent_record 32,304 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::is_assert_arg [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 32,263 ( 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] 32,244 ( 0.00%) ???:>::complete::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 32,186 ( 0.00%) ???:::clone [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 32,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/ty_kind.rs: as core::cmp::PartialEq>::eq 32,154 ( 0.00%) ???:rustc_query_impl::query_impl::resolve_instance_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] 32,151 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/visitors.rs: as rustc_hir::intravisit::Visitor>::visit_expr'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 32,150 ( 0.00%) ???: as alloc::vec::spec_extend::SpecExtend<(rustc_abi::Size, rustc_middle::mir::interpret::pointer::CtfeProvenance), &mut core::iter::adapters::chain::Chain, core::iter::adapters::map::Map, ::apply_copy::{closure#1}>>, core::option::IntoIter<(rustc_abi::Size, rustc_middle::mir::interpret::pointer::CtfeProvenance)>>>>::spec_extend [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 32,144 ( 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] 32,137 ( 0.00%) ???:::run_pass [???] 32,121 ( 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] 32,107 ( 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] 32,104 ( 0.00%) ???:>>::freeze [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 32,100 ( 0.00%) ???:rustc_hir::intravisit::walk_fn:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 32,094 ( 0.00%) ???:::fn_trait_kind_from_def_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 32,070 ( 0.00%) ???:::opt_field_index [???] 32,046 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/methods/ip_constant.rs:clippy_lints::methods::ip_constant::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 32,045 ( 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] 32,045 ( 0.00%) ???:::checked_add [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 31,991 ( 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] 31,962 ( 0.00%) include/jemalloc/internal/jemalloc_internal_inlines_b.h:realloc 31,960 ( 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] 31,913 ( 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:::into_range 31,913 ( 0.00%) ???:>::reserve_rehash::>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 31,892 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 31,888 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/redundant_static_lifetimes.rs:::check_item 31,790 ( 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_expr 31,770 ( 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 31,707 ( 0.00%) ???:>>::or_default [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 31,688 ( 0.00%) ???:>::drop_slow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 31,680 ( 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] 31,675 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/attrs/duplicated_attributes.rs:clippy_lints::attrs::duplicated_attributes::check_duplicated_attr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 31,670 ( 0.00%) ???:>>::walk_ref [???] 31,515 ( 0.00%) ???:>::cat_expr_ [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 31,490 ( 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] 31,462 ( 0.00%) ???:>>>::get::<&rustc_metadata::rmeta::decoder::CrateMetadata> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 31,431 ( 0.00%) ???:::visit_stmt'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 31,426 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::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] 31,424 ( 0.00%) ???:>::walk_pat::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 31,398 ( 0.00%) ???:::def_key [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 31,361 ( 0.00%) ???:::should_warn_about_field [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 31,292 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 31,222 ( 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 31,184 ( 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:>::make_code_span 31,162 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/no_effect.rs:clippy_lints::no_effect::reduce_expression [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 31,130 ( 0.00%) ???: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] 31,104 ( 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] 31,083 ( 0.00%) /rust/deps/hashbrown-0.17.0/src/table.rs:>::entry::::{closure#0}, indexmap::inner::get_hash::{closure#0}> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 31,039 ( 0.00%) include/jemalloc/internal/sz.h:free_default 31,031 ( 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] 31,028 ( 0.00%) ???:::def_path_hash [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 30,997 ( 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] 30,975 ( 0.00%) src/sz.c:pa_dalloc 30,964 ( 0.00%) include/jemalloc/internal/atomic.h:malloc_default 30,945 ( 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] 30,901 ( 0.00%) ???:::visit_operand [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 30,872 ( 0.00%) ???:rustc_middle::ty::inhabitedness::inhabited_predicate_adt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 30,852 ( 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:::emit_lint_if_under_msrv 30,844 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 30,825 ( 0.00%) ???:::visit_fn [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 30,814 ( 0.00%) ???:rustc_privacy::check_private_in_public [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 30,787 ( 0.00%) ???:::recover_after_dot [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 30,730 ( 0.00%) ???:::process_collected_capture_information [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 30,664 ( 0.00%) ???:>::fold_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 30,664 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_path [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 30,661 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/res.rs:::check_expr 30,624 ( 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] 30,573 ( 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:>::cat_expr_unadjusted [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 30,537 ( 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] 30,535 ( 0.00%) ???: as rustc_infer::traits::engine::TraitEngine>::drain_stalled_obligations_for_coroutines [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 30,529 ( 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] 30,517 ( 0.00%) /rust/deps/hashbrown-0.17.1/src/raw.rs:::check_pat 30,487 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/functions/not_unsafe_ptr_arg_deref.rs:::check_fn 30,486 ( 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<&rustc_ast::ast::GenericParam, core::iter::adapters::filter::Filter, clippy_lints::inline_trait_bounds::lint_fn::{closure#0}>>>::from_iter [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 30,446 ( 0.00%) include/jemalloc/internal/tsd.h:pa_dalloc 30,429 ( 0.00%) ???:>::from [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 30,408 ( 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::attrs::mixed_attributes_style::check 30,391 ( 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:>::consume_expr'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 30,372 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_lints::unit_types::unit_cmp::check 30,362 ( 0.00%) ???: as rustc_hir::intravisit::Visitor>::visit_generics [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 30,346 ( 0.00%) ???:annotate_snippets::renderer::render::draw_line'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 30,269 ( 0.00%) ???:::implied_target_features [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 30,215 ( 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:::visit_pat 30,178 ( 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_mut'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 30,178 ( 0.00%) ???:rustc_hir_analysis::check::region::resolve_local::record_rvalue_scope_if_borrow_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 30,121 ( 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] 30,118 ( 0.00%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 30,118 ( 0.00%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 30,118 ( 0.00%) ???:>::walk_ref'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 30,106 ( 0.00%) ???:rustc_expand::mbe::macro_rules::check_matcher_core [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 30,099 ( 0.00%) ???:::add_inferreds_for_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 30,079 ( 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:clippy_utils::check_proc_macro::span_matches_pat 30,038 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/visitors.rs:rustc_hir::intravisit::walk_expr::::check::{closure#0}>>'2 30,032 ( 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 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 30,016 ( 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_attribute 30,016 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/functions/must_use.rs:clippy_lints::functions::must_use::is_mutable_ty [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 29,987 ( 0.00%) ???:::parse_struct_fields'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 29,985 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::try_fold_with::>::normalize::{closure#0}>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 29,960 ( 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] 29,953 ( 0.00%) ???:>::insert_full [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 29,940 ( 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] 29,920 ( 0.00%) include/jemalloc/internal/rtree.h:extent_record 29,901 ( 0.00%) ???:::span_labels [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 29,901 ( 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] 29,888 ( 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_expr 29,870 ( 0.00%) ???:::new_local_module [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 29,856 ( 0.00%) ???:::visit_use_tree'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 29,784 ( 0.00%) ???:::scan_paragraph_interrupt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 29,782 ( 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] 29,778 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/unwrap.rs:::check_fn [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 29,774 ( 0.00%) include/jemalloc/internal/jemalloc_internal_inlines_b.h:tcache_bin_flush_small 29,724 ( 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::SpecFromIter, ::check_item_kind::{closure#0}>, ::check_item_kind::{closure#1}>, core::option::Option>>>::from_iter 29,718 ( 0.00%) ???:>::is_ptr_misaligned [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 29,700 ( 0.00%) ???:::contains [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 29,700 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/dereference.rs:::check_body_post [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 29,700 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/needless_borrows_for_generic_args.rs:::check_body_post [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 29,699 ( 0.00%) ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable>::fold_with::::anonymize_bound_vars::Anonymize>>'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 29,666 ( 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] 29,665 ( 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] 29,657 ( 0.00%) ???:rustc_metadata::rmeta::decoder::cstore_impl::provide_extern::variances_of [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 29,632 ( 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:clippy_utils::method_chain_args 29,632 ( 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] 29,551 ( 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] 29,502 ( 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:>::with::<::with::outer_expn_data::{closure#0}>::{closure#0}, rustc_span::hygiene::ExpnData> 29,502 ( 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> 29,502 ( 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> 29,393 ( 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] 29,343 ( 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::> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 29,338 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/returns/needless_return.rs:clippy_lints::returns::needless_return::check_final_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 29,327 ( 0.00%) ???:::ctor_sub_tys [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 29,297 ( 0.00%) ???:::parse_if_after_cond'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 29,245 ( 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_item_kind 29,243 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 29,240 ( 0.00%) ???: as rustc_next_trait_solver::solve::assembly::GoalKind>::fast_reject_assumption [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 29,236 ( 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] 29,236 ( 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] 29,228 ( 0.00%) ???:rustc_query_impl::query_impl::fn_arg_idents::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] 29,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:::meets 29,210 ( 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::> 29,205 ( 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 29,196 ( 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/mod.rs:::check_attribute 29,194 ( 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_attribute 29,127 ( 0.00%) ???:::maybe_recover_trailing_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 29,103 ( 0.00%) ???:::has_target_features [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 29,052 ( 0.00%) ???:llvm::cl::opt >::~opt() [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/libLLVM.so.23.1-rust-1.99.0-nightly] 29,004 ( 0.00%) ???:annotate_snippets::renderer::render::maybe_anonymized [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 29,000 ( 0.00%) ???:::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 28,937 ( 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:>::super_fold_with::> 28,907 ( 0.00%) ???:::lazy_array::, &rustc_span::def_id::DefId> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 28,872 ( 0.00%) ???:core::ptr::drop_glue::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 28,867 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/methods/useless_nonzero_new_unchecked.rs:clippy_lints::methods::useless_nonzero_new_unchecked::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 28,865 ( 0.00%) ???:::get [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 28,834 ( 0.00%) ???:::descent_to_ambiguity [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 28,750 ( 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:::check_mac_def::check_ts'2 28,743 ( 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::check_proc_macro::span_matches_pat 28,740 ( 0.00%) ???:rustc_metadata::rmeta::decoder::cstore_impl::provide_extern::module_children'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 28,737 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/crate_in_macro_def.rs:clippy_lints::crate_in_macro_def::is_token [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 28,728 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/functions/mod.rs:::check_item 28,711 ( 0.00%) src/decay.c:arena_decay 28,706 ( 0.00%) ???:::default [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 28,702 ( 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] 28,672 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/collect.rs:::check_item_kind 28,622 ( 0.00%) include/jemalloc/internal/mutex.h:ecache_evict 28,608 ( 0.00%) include/jemalloc/internal/pai.h:tcache_bin_flush_small 28,608 ( 0.00%) src/pa.c:tcache_bin_flush_small 28,603 ( 0.00%) ???:::parse_tuple_struct_body::{closure#0}::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 28,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/def.rs:::check_expr 28,517 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/returns/needless_return.rs:clippy_lints::returns::needless_return::check_block_return [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 28,516 ( 0.00%) ???:>::complete::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 28,499 ( 0.00%) /rust/deps/hashbrown-0.17.1/src/raw.rs:clippy_lints::functions::duplicate_underscore_argument::check 28,404 ( 0.00%) ???:::check_body [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 28,400 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/reserve_after_initialization.rs:::check_block_post [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 28,382 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 28,367 ( 0.00%) ???:::expect_any_with_type [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 28,350 ( 0.00%) ???:>::translate_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 28,350 ( 0.00%) ???:::normalize [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 28,306 ( 0.00%) ???:::is_keyword_ahead [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 28,270 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/combined_early_pass.rs:::check_item_post [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 28,261 ( 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: as core::iter::traits::iterator::Iterator>::next 28,214 ( 0.00%) ???:::stable_hash::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 28,089 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/operators/numeric_arithmetic.rs:::check_body 28,055 ( 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_item 28,035 ( 0.00%) ???:>::wild_from_ctor [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 27,999 ( 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_item 27,954 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/redundant_locals.rs:::check_local [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 27,912 ( 0.00%) ???:::resolve_pattern_inner::{closure#0}'2 [???] 27,899 ( 0.00%) /rust/deps/hashbrown-0.17.1/src/raw.rs:::get_def_id_availability 27,889 ( 0.00%) ???:>::tys'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 27,868 ( 0.00%) ???:::new::build_recur [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 27,868 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/loops/never_loop.rs:clippy_lints::loops::never_loop::never_loop_block'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 27,822 ( 0.00%) ???:::eq [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 27,792 ( 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 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 27,782 ( 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] 27,701 ( 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:::check_expr_post 27,692 ( 0.00%) ???:::{closure#0}> as rustc_type_ir::fold::FallibleTypeFolder>::try_fold_ty::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 27,684 ( 0.00%) ???:> as alloc::vec::spec_extend::SpecExtend, alloc::vec::into_iter::IntoIter>>>::spec_extend [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 27,675 ( 0.00%) ???:::call_once_force::<>>::initialize<>>::get_or_init<::dominators::{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] 27,661 ( 0.00%) ???:::qpath_lang_item [???] 27,634 ( 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] 27,624 ( 0.00%) ???:>>::walk_ref [???] 27,617 ( 0.00%) ???:::collect_fn_info [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 27,612 ( 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] 27,594 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/neg_multiply.rs:::check_expr 27,478 ( 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::::instantiate_bound_regions_with_erased::{closure#0}>::{closure#0} [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 27,451 ( 0.00%) ???:rustc_hir_analysis::check::adt_async_destructor [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 27,432 ( 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] 27,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_ty:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 27,413 ( 0.00%) ???:::emit_diagnostic [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 27,407 ( 0.00%) ???:::unify_raw'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 27,400 ( 0.00%) /rust/deps/pulldown-cmark-0.11.3/src/parse.rs:::check_attributes 27,398 ( 0.00%) include/jemalloc/internal/sz.h:extent_record 27,364 ( 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:::def_key:: 27,343 ( 0.00%) ???:::visit_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 27,339 ( 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 27,315 ( 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:: 27,293 ( 0.00%) ???:::hash_owner_nodes::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 27,292 ( 0.00%) /rust/deps/hashbrown-0.17.1/src/raw.rs:>::insert 27,258 ( 0.00%) /rust/deps/hashbrown-0.17.1/src/control/tag.rs:>::insert 27,224 ( 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] 27,194 ( 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 27,194 ( 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 27,194 ( 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 27,194 ( 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 27,194 ( 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 27,194 ( 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 27,194 ( 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 27,194 ( 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 27,194 ( 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 27,194 ( 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 27,194 ( 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::eq_op::check_assert 27,194 ( 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 27,194 ( 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 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 27,194 ( 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_expr 27,194 ( 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_expr 27,194 ( 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_expr 27,194 ( 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_expr 27,194 ( 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_expr 27,194 ( 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_expr 27,194 ( 0.00%) /rust/deps/hashbrown-0.17.1/src/map.rs:::check_expr 27,100 ( 0.00%) ???:rustc_hir::intravisit::walk_qpath::>'2 [???] 27,080 ( 0.00%) ???:>::try_fold_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 27,073 ( 0.00%) ???:llvm::DenseMapBase, llvm::detail::DenseMapPair >, llvm::MCRegister, int, 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] 27,072 ( 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] 27,068 ( 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:rustc_hir::intravisit::walk_expr::'2 27,056 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/no_effect.rs:::check_expr 27,030 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 27,025 ( 0.00%) ???:, core::option::Option>)>>::push [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 27,020 ( 0.00%) ???:::parse_match_block'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 26,992 ( 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:, ::check_item_kind::{closure#0}>, ::check_item_kind::{closure#1}>, core::option::Option> as core::iter::traits::iterator::Iterator>::next 26,983 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/ptr/ptr_arg.rs:clippy_lints::ptr::ptr_arg::check_body [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 26,964 ( 0.00%) ???:>, &mut rustc_infer::infer::snapshot::undo_log::InferCtxtUndoLogs>>>::update_value::<>, &mut rustc_infer::infer::snapshot::undo_log::InferCtxtUndoLogs>>>::inlined_get_root_key::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 26,962 ( 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] 26,954 ( 0.00%) ???:::lower_anon_const_to_const_arg [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 26,949 ( 0.00%) ???:rustc_builtin_macros::util::parse_expr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 26,936 ( 0.00%) ???:), (rustc_middle::query::erase::ErasedData<[u8; 16]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<), (rustc_middle::query::erase::ErasedData<[u8; 16]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [???] 26,927 ( 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] 26,926 ( 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] 26,885 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 26,869 ( 0.00%) ???:>, (rustc_middle::query::erase::ErasedData<[u8; 16]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<>, (rustc_middle::query::erase::ErasedData<[u8; 16]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>>::insert_unique::{closure#0}> [???] 26,844 ( 0.00%) ???:::expand_cfg_attr [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 26,842 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/def.rs:::check_ty 26,836 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/methods/should_implement_trait.rs:clippy_lints::methods::should_implement_trait::check_impl_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 26,824 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/doc/include_in_doc_without_cfg.rs:::check_attributes 26,799 ( 0.00%) ???:::visit_fn [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 26,777 ( 0.00%) ???:::check_item_post [???] 26,774 ( 0.00%) ???:::from_bytes_with_nul [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 26,752 ( 0.00%) ???:rustc_query_impl::query_impl::ty_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] 26,750 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/returns/needless_return.rs:clippy_lints::returns::needless_return::check_block_return'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 26,743 ( 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'2 26,726 ( 0.00%) ???:::set_range [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 26,652 ( 0.00%) ???:>>::drop_and_maybe_poison [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 26,612 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/disallowed_macros.rs:::check_pat 26,551 ( 0.00%) include/jemalloc/internal/ehooks.h:pa_alloc 26,539 ( 0.00%) include/jemalloc/internal/bit_util.h:pa_dalloc 26,532 ( 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_utils::check_proc_macro::span_matches_pat 26,493 ( 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] 26,453 ( 0.00%) ???:getenv [/usr/lib/libc.so.6] 26,447 ( 0.00%) ???:::parse_tuple_struct_body [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 26,446 ( 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:::check_expr::{closure#0} 26,438 ( 0.00%) ???:::check_field_def [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 26,432 ( 0.00%) ???:>::walk_ref [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 26,432 ( 0.00%) ???:::parse_item_struct [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 26,432 ( 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] 26,427 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:clippy_lints::lifetimes::non_elidable_self_type [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 26,418 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/alloc.rs:::check_item 26,416 ( 0.00%) ???:::parse_item_enum::{closure#1} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 26,404 ( 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] 26,375 ( 0.00%) ???:rustc_type_ir::relate::combine::combine_ty_args::, as rustc_type_ir::relate::TypeRelation>::relate_ty_args>::{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] 26,357 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/types/type_complexity.rs:::visit_ty'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 26,283 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/functions/impl_trait_in_params.rs:::check_impl_item 26,278 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/attrs/inline_always.rs:clippy_lints::attrs::inline_always::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 26,258 ( 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:::trim_start_matches::<::is_whitespace> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 26,241 ( 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:rustc_hir::intravisit::walk_expr::::check::{closure#0}>>'2 26,240 ( 0.00%) ???:rustc_metadata::rmeta::decoder::cstore_impl::provide_extern::crate_incoherent_impls [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 26,237 ( 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::>'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 26,181 ( 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 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 26,180 ( 0.00%) ???:::probe_for_name [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 26,179 ( 0.00%) ???:::visit_ty [???] 26,169 ( 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] 26,100 ( 0.00%) ???:pulldown_cmark::parse::scan_link_label [???] 26,096 ( 0.00%) include/jemalloc/internal/jemalloc_internal_inlines_a.h:tcache_bin_flush_small 26,073 ( 0.00%) ???:::final_upvar_tys [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 26,054 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/question_mark.rs:clippy_lints::question_mark::check_if_try_match [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 26,053 ( 0.00%) ???:core::ptr::drop_glue::, rustc_hash::FxBuildHasher>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 26,050 ( 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] 26,018 ( 0.00%) ???:::intern_valtree [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 26,016 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/attrs/mod.rs:::check_impl_item 25,994 ( 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_expr 25,965 ( 0.00%) ???:rustc_metadata::rmeta::decoder::cstore_impl::provide_extern::def_ident_span [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 25,951 ( 0.00%) ???:<&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] 25,945 ( 0.00%) ???:::record_late_bound_vars [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 25,938 ( 0.00%) ???:rustc_ast::visit::visit_arms::>'2 [???] 25,919 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 25,864 ( 0.00%) ???:>>::walk_ref'2 [???] 25,828 ( 0.00%) ???:rustc_query_impl::query_impl::method_autoderef_steps::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] 25,821 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/cfg_not_test.rs:::check_attribute 25,782 ( 0.00%) ???:::ty_is_opaque_future [???] 25,756 ( 0.00%) ???:core::ptr::drop_glue::>>>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 25,750 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:::emit_lint_if_under_msrv 25,740 ( 0.00%) ???:<::find_lifetime_for_self::SelfVisitor 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] 25,717 ( 0.00%) ???:::parse_meta_seq_top [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 25,700 ( 0.00%) ???:LLVMRustVersionPatch [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 25,651 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/types/mod.rs:::check_item 25,649 ( 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] 25,634 ( 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] 25,631 ( 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] 25,620 ( 0.00%) ???:::grow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 25,612 ( 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] 25,597 ( 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] 25,589 ( 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:::hir_body_owner_kind:: 25,582 ( 0.00%) ???:rustc_builtin_macros::format::make_format_args [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 25,564 ( 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] 25,563 ( 0.00%) ???:::is_trivially_wf'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 25,558 ( 0.00%) ???:rustc_next_trait_solver::solve::assembly::structural_traits::predicates_for_object_candidate:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 25,546 ( 0.00%) ???:::visit_qpath [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 25,532 ( 0.00%) /rust/deps/hashbrown-0.17.0/src/raw.rs:>::entry::::{closure#0}, indexmap::inner::get_hash::{closure#0}> 25,499 ( 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] 25,488 ( 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/tcache.c:tcache_bin_flush_large [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 25,448 ( 0.00%) ???:::{closure#0}>, 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] 25,439 ( 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_methods 25,380 ( 0.00%) ???:>::reserve_rehash::::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 25,365 ( 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_mut'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 25,357 ( 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] 25,340 ( 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::> 25,332 ( 0.00%) ???:::replace_region [???] 25,327 ( 0.00%) ???:::macro_backtrace::{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] 25,317 ( 0.00%) ???:::run_pass [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 25,305 ( 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] 25,269 ( 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_item_kind 25,251 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/higher.rs:::check_expr 25,239 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/doc/missing_headers.rs:clippy_lints::doc::missing_headers::check [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 25,238 ( 0.00%) ???:::new [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 25,230 ( 0.00%) ???:::source_callsite'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 25,212 ( 0.00%) ???:rustc_next_trait_solver::coherence::orphan_check_trait_ref::>::trait_ref_is_knowable::{closure#0}>::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 25,210 ( 0.00%) ???:::parse_expr_dot_or_call_with::{closure#0}'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 25,152 ( 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:::def_key:: 25,124 ( 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_item 25,119 ( 0.00%) ???:rustc_hir_analysis::collect::fn_sig'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 25,098 ( 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] 25,091 ( 0.00%) ???:::supplied_sig_of_closure [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 25,069 ( 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:::clone [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 25,045 ( 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 25,003 ( 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::check_proc_macro::span_matches_pat 24,966 ( 0.00%) ???:rustc_const_eval::interpret::intern::intern_const_alloc_recursive:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 24,953 ( 0.00%) ???:std::sys::fs::metadata [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 24,938 ( 0.00%) ???:::convert_normal_to_synthetic [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 24,924 ( 0.00%) ???:rustc_ty_utils::representability::check_representability_ty'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 24,910 ( 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'2 24,897 ( 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] 24,888 ( 0.00%) ???:::visit_local [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 24,849 ( 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:::next 24,841 ( 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] 24,836 ( 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_lints::unit_types::unit_arg::check 24,830 ( 0.00%) src/eset.c:pa_dalloc 24,804 ( 0.00%) ???:rustc_query_impl::query_impl::check_representability::execute_query_non_incr::__rust_end_short_backtrace'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 24,788 ( 0.00%) ???:::inhabited_predicate'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 24,751 ( 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] 24,731 ( 0.00%) ???:llvm::SubtargetFeatureKV const* Find(llvm::StringRef, llvm::ArrayRef) [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/libLLVM.so.23.1-rust-1.99.0-nightly] 24,695 ( 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] 24,669 ( 0.00%) include/jemalloc/internal/sz.h:large_ralloc 24,635 ( 0.00%) ???:rustc_query_impl::query_impl::typeck_root::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] 24,617 ( 0.00%) ???:, (rustc_middle::query::erase::ErasedData<[u8; 16]>, rustc_middle::dep_graph::graph::DepNodeIndex))>>::reserve_rehash::<, (rustc_middle::query::erase::ErasedData<[u8; 16]>, 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] 24,591 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/returns/needless_return_with_question_mark.rs:clippy_lints::returns::needless_return_with_question_mark::check_stmt [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 24,576 ( 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 24,559 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/crate_in_macro_def.rs:::check_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 24,529 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/returns/needless_return.rs:clippy_lints::returns::needless_return::check_final_expr'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 24,521 ( 0.00%) ???:::parse_meta_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 24,518 ( 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:core::ptr::drop_glue::> 24,499 ( 0.00%) ???:::eq_trace:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 24,495 ( 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:rustc_hir::intravisit::walk_expr::'2 24,484 ( 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:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 24,464 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:::interior_mut_ty_chain_inner'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 24,426 ( 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] 24,406 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/len_without_is_empty.rs:::check_impl_item [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 24,397 ( 0.00%) ???:::decode_expn_id [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 24,395 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:clippy_utils::hir_utils::eq_expr_value [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 24,393 ( 0.00%) ???:>::drop_and_maybe_poison [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 24,380 ( 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] 24,373 ( 0.00%) ???:::hir_body_param_idents [???] 24,366 ( 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] 24,350 ( 0.00%) ???:llvm::X86_MC::initLLVMToSEHAndCVRegMapping(llvm::MCRegisterInfo*) [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/libLLVM.so.23.1-rust-1.99.0-nightly] 24,349 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/no_effect.rs:clippy_lints::no_effect::has_no_effect [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 24,285 ( 0.00%) ???:rustc_ty_utils::representability::check_representability [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 24,252 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 24,233 ( 0.00%) ???:::check_impl_item'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 24,215 ( 0.00%) ???:rustc_expand::mbe::macro_parser::compute_locs::inner [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 24,213 ( 0.00%) /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/alloc.rs:clippy_lints::lifetimes::could_use_elision 24,205 ( 0.00%) ???:::from_span_full::::macro_backtrace::{closure#0}>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 24,195 ( 0.00%) ???:::visit_local_use [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 24,192 ( 0.00%) /rust/deps/hashbrown-0.17.1/src/raw.rs:clippy_lints::attrs::mixed_attributes_style::check 24,166 ( 0.00%) ???:core::ptr::drop_glue::>> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 24,147 ( 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_local:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 24,147 ( 0.00%) ???:rustc_next_trait_solver::canonical::instantiate_canonical_state::'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 24,138 ( 0.00%) ???:>::insert_entry [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 24,110 ( 0.00%) ???:0x0000000000016d80 [/usr/lib/ld-linux-x86-64.so.2] 24,103 ( 0.00%) ???:>::trait_ref_is_knowable::{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] 24,099 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/to_string_trait_impl.rs:::check_item 24,054 ( 0.00%) ???:core::ptr::drop_glue::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 24,040 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/doc/too_long_first_doc_paragraph.rs:::check_attributes 24,035 ( 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] 24,024 ( 0.00%) ???:rustc_query_impl::query_impl::implementations_of_trait::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] 24,018 ( 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] 23,956 ( 0.00%) ???:::is_valid_span [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,956 ( 0.00%) ???:core::ptr::drop_glue:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,951 ( 0.00%) ???:rustc_query_impl::query_impl::adt_sizedness_constraint::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] 23,920 ( 0.00%) /rust/deps/indexmap-2.14.0/src/map.rs:>::insert_full [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 23,904 ( 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] 23,868 ( 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] 23,828 ( 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::> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 23,823 ( 0.00%) ???:>::assemble_alias_bound_candidates_recur::> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,812 ( 0.00%) ???:::{closure#0}> as rustc_type_ir::fold::FallibleTypeFolder>::try_fold_ty::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,786 ( 0.00%) ???:::from_errors_diagnostic [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,785 ( 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_alloc [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 23,760 ( 0.00%) /rust/deps/hashbrown-0.17.1/src/raw.rs:clippy_lints::casts::needless_type_cast::check 23,736 ( 0.00%) ???:rustc_borrowck::handle_placeholders::rewrite_placeholder_outlives [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,706 ( 0.00%) ???:rustc_passes::lang_items::get_lang_items [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,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:core::ptr::drop_glue:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 23,670 ( 0.00%) ???:::allocate_cow [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,630 ( 0.00%) ???: 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] 23,625 ( 0.00%) ???:::fetch_eligible_assoc_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,625 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/needless_nonzero_get.rs:clippy_lints::needless_nonzero_get::nonzero_get [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 23,592 ( 0.00%) ???:rustc_hir::intravisit::walk_fn:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,586 ( 0.00%) ???:>>>::get_or_insert_with::<>::ensure_row::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,585 ( 0.00%) ???:::lower_expr_mut::{closure#0} [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,584 ( 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] 23,553 ( 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] 23,467 ( 0.00%) ???:rustc_expand::mbe::macro_rules::check_lhs [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,455 ( 0.00%) ???:::check_expr_unop [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,432 ( 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:: [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 23,363 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/unwrap.rs:::visit_expr [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 23,360 ( 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] 23,291 ( 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] 23,286 ( 0.00%) ???:::intern [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,281 ( 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} 23,281 ( 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> 23,272 ( 0.00%) ???:::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] 23,256 ( 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<&rustc_hir::hir::Expr, core::iter::adapters::chain::Chain, core::slice::iter::Iter>>>::from_iter [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 23,245 ( 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 23,237 ( 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 23,219 ( 0.00%) ???:::walk_::<::walk_always<::check_local::{closure#0}>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,197 ( 0.00%) ???:>::reserve_one_unchecked [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,186 ( 0.00%) ???:::visit_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,120 ( 0.00%) ???:rustc_trait_selection::solve::normalize::deeply_normalize_with_skipped_universes:: [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,113 ( 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/large.c:large_ralloc [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 23,101 ( 0.00%) ???:, rustc_middle::ty::assoc::AssocItem)>, , rustc_middle::ty::assoc::AssocItem>>::iter::{closure#0}>, ::in_definition_order::{closure#0}>, alloc::vec::Vec, rustc_trait_selection::traits::dyn_compatibility::dyn_compatibility_violations_for_trait::{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] 23,098 ( 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::test_item_names 23,097 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/unnested_or_patterns.rs:::visit_pat'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 23,086 ( 0.00%) ???: as rustc_next_trait_solver::solve::assembly::GoalKind>::match_assumption::< as rustc_next_trait_solver::solve::assembly::GoalKind>::probe_and_consider_param_env_candidate::{closure#1}::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,059 ( 0.00%) ???:::compute_min_captures [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,056 ( 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_stmt 23,046 ( 0.00%) ???:::future_proof_import [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,010 ( 0.00%) ???:::from_scalar_int [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 23,000 ( 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] 23,000 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/res.rs:::check_expr 22,983 ( 0.00%) ???:::visit_fn [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,900 ( 0.00%) ???:>::add_goal'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,896 ( 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_item_kind::{closure#0}>, ::check_item_kind::{closure#1}>, core::option::Option> as core::iter::traits::iterator::Iterator>::next 22,888 ( 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] 22,885 ( 0.00%) ???:::pop [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,884 ( 0.00%) ???:::ty [???] 22,870 ( 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_utils::str_utils::to_camel_case 22,858 ( 0.00%) ???:rustc_expand::config::pre_configure_attrs [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,854 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:::search_pat [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 22,832 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/attrs/non_minimal_cfg.rs:clippy_lints::attrs::non_minimal_cfg::check_nested_cfg [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 22,824 ( 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 22,801 ( 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> 22,795 ( 0.00%) ???:::flat_map_generic_param [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,763 ( 0.00%) ???:rustc_metadata::rmeta::decoder::cstore_impl::provide_extern::const_conditions [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,755 ( 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] 22,752 ( 0.00%) ???:>::insert [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,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:clippy_lints::non_expressive_names::do_check 22,683 ( 0.00%) ???:>::next [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,620 ( 0.00%) /rust/deps/hashbrown-0.17.1/src/raw.rs:>::remove_entry::::{closure#0}> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 22,594 ( 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:>::make_code_span 22,560 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/combined_late_pass.rs:::check_impl_item_post [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 22,550 ( 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::check_proc_macro::span_matches_pat 22,545 ( 0.00%) ???:llvm::DenseMapBase, llvm::detail::DenseMapPair >, void const*, llvm::PassInfo const*, 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] 22,529 ( 0.00%) ???:::ident [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,512 ( 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] 22,507 ( 0.00%) ???:>::characterize_param_env_assumption [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,482 ( 0.00%) ???:::visit_param_bound [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,464 ( 0.00%) ???:>::grow_one [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,454 ( 0.00%) ???: as rustc_type_ir::relate::TypeRelation>::consts [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,453 ( 0.00%) ???:rustc_ty_utils::needs_drop::drop_tys_helper::::{closure#0}::{closure#0} [???] 22,425 ( 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] 22,421 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_path [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 22,398 ( 0.00%) ???:::visit_fn'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,369 ( 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}>> [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 22,347 ( 0.00%) ???:rustc_metadata::rmeta::decoder::cstore_impl::provide_extern::trait_def [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,337 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/consts.rs:::eq_expr 22,335 ( 0.00%) ???:::collect_pos [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,289 ( 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::method_chain_args 22,282 ( 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_pat:: 22,268 ( 0.00%) ???:::check_expr_post [???] 22,258 ( 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] 22,253 ( 0.00%) ???:>::visit_ty [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,241 ( 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::attrs::mixed_attributes_style::check 22,241 ( 0.00%) ???:>::cat_pattern::<>::walk_pat::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,239 ( 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:clippy_utils::method_chain_args 22,229 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/higher.rs:clippy_utils::higher::get_vec_init_kind [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 22,220 ( 0.00%) ???:::visit_field_def [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,218 ( 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] 22,218 ( 0.00%) ???:rustc_hir_analysis::check::wfcheck::check_static_item [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,196 ( 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:clippy_utils::trait_ref_of_method 22,196 ( 0.00%) ???:::unwrap [???] 22,180 ( 0.00%) ???:>::insert [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,154 ( 0.00%) ???:::parse_pat_no_top_guard_inner'2 [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,148 ( 0.00%) site/frontend/rust-clippy/clippy_lints/src/derive/derived_hash_with_manual_eq.rs:::check_item 22,131 ( 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 22,125 ( 0.00%) ???:::find_ancestor_inside_same_ctxt [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,119 ( 0.00%) ???:>::reserve_rehash::>::{closure#0}> [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,118 ( 0.00%) site/frontend/rust-clippy/clippy_utils/src/visitors.rs: as rustc_hir::intravisit::Visitor>::visit_expr'2 [/home/moon/git/rustc-perf/site/frontend/rust-clippy/target/clippy-build/clippy-driver] 22,110 ( 0.00%) ???:::apply [/home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/librustc_driver-173404cd07acc0f2.so] 22,100 ( 0.00%) /home/moon/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winnow-1.0.3/src/stream/mod.rs:::next -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/ptr/ptr_arg.rs -------------------------------------------------------------------------------- Ir -- line 17 ---------------------------------------- . use rustc_middle::hir::nested_filter; . use rustc_middle::ty::{self, Binder, ClauseKind, ExistentialPredicate, List, PredicateKind, Ty}; . use rustc_span::Span; . use rustc_span::symbol::Symbol; . use rustc_trait_selection::infer::InferCtxtExt as _; . use rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt as _; . use std::{fmt, iter}; . 4,248 ( 0.00%) pub(super) fn check_body<'tcx>( . cx: &LateContext<'tcx>, . body: &Body<'tcx>, . item_id: OwnerId, . sig: &FnSig<'tcx>, . is_trait_item: bool, . ) { 944 ( 0.00%) if !matches!(sig.header.abi, ExternAbi::Rust) { . // Ignore `extern` functions with non-Rust calling conventions . return; . } . . let decl = sig.decl; 472 ( 0.00%) let sig = cx . .tcx . .fn_sig(item_id) . .instantiate_identity() . .skip_norm_wip() . .skip_binder(); 2,832 ( 0.00%) let lint_args: Vec<_> = check_fn_args(cx, sig, decl.inputs, body.params) 4 ( 0.00%) .filter(|arg| !is_trait_item || arg.mutability() == Mutability::Not) . .collect(); . let results = check_ptr_arg_usage(cx, body, &lint_args); . . for (result, args) in iter::zip(&results, &lint_args).filter(|(r, _)| !r.skip) { . span_lint_hir_and_then(cx, PTR_ARG, args.emission_id, args.span, args.build_msg(), |diag| { . diag.multipart_suggestion( . "change this to", . iter::once((args.span, format!("{}{}", args.ref_prefix, args.deref_ty.display(cx)))) -- line 53 ---------------------------------------- -- line 57 ---------------------------------------- . format!("{}{}", r.self_span.get_text(cx).unwrap(), r.replacement), . ) . })) . .collect(), . Applicability::Unspecified, . ); . }); . } 3,776 ( 0.00%) } . 105 ( 0.00%) pub(super) fn check_trait_item<'tcx>(cx: &LateContext<'tcx>, item_id: OwnerId, sig: &FnSig<'tcx>) { 30 ( 0.00%) if !matches!(sig.header.abi, ExternAbi::Rust) { . // Ignore `extern` functions with non-Rust calling conventions . return; . } . . for arg in check_fn_args( . cx, 15 ( 0.00%) cx.tcx . .fn_sig(item_id) . .instantiate_identity() . .skip_norm_wip() . .skip_binder(), 45 ( 0.00%) sig.decl.inputs, . &[], . ) . .filter(|arg| arg.mutability() == Mutability::Not) . { . span_lint_hir_and_then(cx, PTR_ARG, arg.emission_id, arg.span, arg.build_msg(), |diag| { . diag.span_suggestion( . arg.span, . "change this to", . format!("{}{}", arg.ref_prefix, arg.deref_ty.display(cx)), . Applicability::Unspecified, . ); . }); . } 120 ( 0.00%) } . . #[derive(Default)] . struct PtrArgResult { . skip: bool, . replacements: Vec, . } . . struct PtrArgReplacement { -- line 102 ---------------------------------------- -- line 166 ---------------------------------------- . } . . enum DerefTy<'tcx> { . Str, . Path, . Slice(Option, Ty<'tcx>), . } . impl<'tcx> DerefTy<'tcx> { 14 ( 0.00%) fn ty(&self, cx: &LateContext<'tcx>) -> Ty<'tcx> { 8 ( 0.00%) match *self { . Self::Str => cx.tcx.types.str_, . Self::Path => Ty::new_adt( . cx.tcx, . cx.tcx.adt_def(cx.tcx.get_diagnostic_item(sym::Path).unwrap()), . List::empty(), . ), . Self::Slice(_, ty) => Ty::new_slice(cx.tcx, ty), . } 14 ( 0.00%) } . . fn argless_str(&self) -> &'static str { . match *self { . Self::Str => "str", . Self::Path => "Path", . Self::Slice(..) => "[_]", . } . } -- line 192 ---------------------------------------- -- line 200 ---------------------------------------- . cx: &'cx LateContext<'tcx>, . fn_sig: ty::FnSig<'tcx>, . hir_tys: &'tcx [hir::Ty<'tcx>], . params: &'tcx [Param<'tcx>], . ) -> impl Iterator> + 'cx { . iter::zip(fn_sig.inputs(), hir_tys) . .enumerate() . .filter_map(move |(i, (ty, hir_ty))| { 3,024 ( 0.00%) if let ty::Ref(_, ty, mutability) = *ty.kind() 670 ( 0.00%) && let ty::Adt(adt, args) = *ty.kind() 584 ( 0.00%) && let TyKind::Ref(lt, ref ty) = hir_ty.kind 1,736 ( 0.00%) && let TyKind::Path(QPath::Resolved(None, path)) = ty.ty.kind . // Check that the name as typed matches the actual name of the type. . // e.g. `fn foo(_: &Foo)` shouldn't trigger the lint when `Foo` is an alias for `Vec` 868 ( 0.00%) && let [.., name] = path.segments 868 ( 0.00%) && cx.tcx.item_name(adt.did()) == name.ident.name . { 304 ( 0.00%) let emission_id = params.get(i).map_or(hir_ty.hir_id, |param| param.hir_id); 972 ( 0.00%) let (method_renames, deref_ty) = match cx.tcx.get_diagnostic_name(adt.did()) { 3,472 ( 0.00%) => ???:::get_diagnostic_name (76x) . Some(sym::Vec) => ( . [(sym::clone, ".to_owned()")].as_slice(), . DerefTy::Slice( 8 ( 0.00%) if let Some(name_args) = name.args 14 ( 0.00%) && let [GenericArg::Type(ty), ..] = name_args.args . { 8 ( 0.00%) Some(ty.span) . } else { . None . }, . args.type_at(0), . ), . ), 148 ( 0.00%) _ if Some(adt.did()) == cx.tcx.lang_items().string() => ( 2,220 ( 0.00%) => ???:::lang_items (74x) . [(sym::clone, ".to_owned()"), (sym::as_str, "")].as_slice(), . DerefTy::Str, . ), . Some(sym::PathBuf) => ( . [(sym::clone, ".to_path_buf()"), (sym::as_path, "")].as_slice(), . DerefTy::Path, . ), . Some(sym::Cow) if mutability == Mutability::Not => { -- line 240 ---------------------------------------- -- line 322 ---------------------------------------- . impl<'tcx> Visitor<'tcx> for V<'_, 'tcx> { . type NestedFilter = nested_filter::OnlyBodies; . fn maybe_tcx(&mut self) -> Self::MaybeTyCtxt { . self.cx.tcx . } . . fn visit_anon_const(&mut self, _: &'tcx AnonConst) {} . 3,556 ( 0.00%) fn visit_expr(&mut self, e: &'tcx Expr<'_>) { 1,524 ( 0.00%) if self.skip_count == self.args.len() { . return; . } . . // Check if this is local we care about 30 ( 0.00%) let Some(&args_idx) = e.res_local_id().and_then(|id| self.bindings.get(&id)) else { 164 ( 0.00%) => /rust/deps/indexmap-2.14.0/src/map.rs:>::get:: (7x) 29 ( 0.00%) return walk_expr(self, e); 3,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_expr:: (2x) . }; 6 ( 0.00%) let args = &self.args[args_idx]; . let result = &mut self.results[args_idx]; . . // Helper function to handle early returns. . let mut set_skip_flag = || { 4 ( 0.00%) if !result.skip { 2 ( 0.00%) self.skip_count += 1; . } 2 ( 0.00%) result.skip = true; . }; . 14 ( 0.00%) match get_expr_use_or_unification_node(self.cx.tcx, e) { 352 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_expr_use_or_unification_node (2x) . Some((Node::Stmt(_), _)) => (), . Some((Node::LetStmt(l), _)) => { . // Only trace simple bindings. e.g `let x = y;` . if let PatKind::Binding(BindingMode::NONE, id, ident, None) = l.pat.kind . // Let's not lint for the current parameter. The user may still intend to mutate . // (or, if not mutate, then perhaps call a method that's not otherwise available . // for) the referenced value behind the parameter through this local let binding . // with the underscore being only temporary. . && !ident.name.as_str().starts_with('_') . { . self.bindings.insert(id, args_idx); . } else { . set_skip_flag(); . } . }, 6 ( 0.00%) Some((Node::Expr(use_expr), child_id)) => { 6 ( 0.00%) if let ExprKind::Index(e, ..) = use_expr.kind . && e.hir_id == child_id . { . // Indexing works with both owned and its dereferenced type . return; . } . 2 ( 0.00%) if let ExprKind::MethodCall(name, receiver, ..) = use_expr.kind 2 ( 0.00%) && receiver.hir_id == child_id . { 2 ( 0.00%) let name = name.ident.name; . . // Check if the method can be renamed. 2 ( 0.00%) if let Some((_, replacement)) = args.method_renames.iter().find(|&&(x, _)| x == name) { . result.replacements.push(PtrArgReplacement { . expr_span: use_expr.span, . self_span: receiver.span, . replacement, . }); . return; . } . -- line 388 ---------------------------------------- -- line 391 ---------------------------------------- . // but it would still be valid to call with a slice . if VEC_METHODS_SHADOWING_SLICE_METHODS.contains(&name) { . return; . } . } . . // If the expression's type gets adjusted down to the deref type, we might as . // well have started with that deref type -- the lint should fire 14 ( 0.00%) let deref_ty = args.deref_ty.ty(self.cx); 228 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/ptr/ptr_arg.rs:::ty (2x) 6 ( 0.00%) let adjusted_ty = self.cx.typeck_results().expr_ty_adjusted(e).peel_refs(); 106 ( 0.00%) => ???:::expr_ty_adjusted (2x) 2 ( 0.00%) if adjusted_ty == deref_ty { . return; . } . . // If the expression's type is constrained by `dyn Trait`, see if the deref . // type implements the trait(s) as well, and if so, the lint should fire 4 ( 0.00%) if let ty::Dynamic(preds, ..) = adjusted_ty.kind() . && matches_preds(self.cx, deref_ty, preds) . { . return; . } . . set_skip_flag(); . }, 2 ( 0.00%) _ => set_skip_flag(), . } 4,064 ( 0.00%) } . } . 472 ( 0.00%) let mut skip_count = 0; 944 ( 0.00%) let mut results = args.iter().map(|_| PtrArgResult::default()).collect::>(); 6,136 ( 0.00%) let mut v = V { . cx, . bindings: args . .iter() . .enumerate() . .filter_map(|(i, arg)| { 6 ( 0.00%) let param = &body.params[arg.idx]; 18 ( 0.00%) match param.pat.kind { 6 ( 0.00%) PatKind::Binding(BindingMode::NONE, id, ident, None) 22 ( 0.00%) if !is_lint_allowed(cx, PTR_ARG, param.hir_id) 2,194 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_lint_allowed (2x) . // Let's not lint for the current parameter. The user may still intend to mutate . // (or, if not mutate, then perhaps call a method that's not otherwise available . // for) the referenced value behind the parameter with the underscore being only . // temporary. 2 ( 0.00%) && !ident.name.as_str().starts_with('_') => . { . Some((id, i)) . }, . _ => { . skip_count += 1; . results[i].skip = true; . None . }, . } . }) . .collect(), . args, 1,888 ( 0.00%) results, 472 ( 0.00%) skip_count, . }; 1,416 ( 0.00%) v.visit_expr(body.value); 12,474 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/ptr/ptr_arg.rs:::visit_expr (472x) 1,888 ( 0.00%) v.results . } . . fn matches_preds<'tcx>( . cx: &LateContext<'tcx>, . ty: Ty<'tcx>, . preds: &'tcx [ty::PolyExistentialPredicate<'tcx>], . ) -> bool { . let infcx = cx.tcx.infer_ctxt().build(cx.typing_mode()); -- line 461 ---------------------------------------- 4,396 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/new_without_default.rs -------------------------------------------------------------------------------- Ir -- line 47 ---------------------------------------- . #[clippy::version = "pre 1.29.0"] . pub NEW_WITHOUT_DEFAULT, . style, . "`pub fn new() -> Self` method without `Default` implementation" . } . . impl_lint_pass!(NewWithoutDefault => [NEW_WITHOUT_DEFAULT]); . 1 ( 0.00%) #[derive(Clone, Default)] . pub struct NewWithoutDefault { . impling_types: Option, . } . . impl<'tcx> LateLintPass<'tcx> for NewWithoutDefault { . #[expect(clippy::too_many_lines)] 28,728 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx hir::Item<'_>) { 9,194 ( 0.00%) let hir::ItemKind::Impl(hir::Impl { . of_trait: None, . generics, . self_ty: impl_self_ty, . .. . }) = item.kind . else { . return; . }; . 605 ( 0.00%) for assoc_item in cx . .tcx 110 ( 0.00%) .associated_items(item.owner_id.def_id) 110 ( 0.00%) .filter_by_name_unhygienic(sym::new) 3,487 ( 0.00%) => ???:::filter_by_name_unhygienic (55x) . { 72 ( 0.00%) if let AssocKind::Fn { has_self: false, .. } = assoc_item.kind 72 ( 0.00%) && let assoc_item_hir_id = cx.tcx.local_def_id_to_hir_id(assoc_item.def_id.expect_local()) 180 ( 0.00%) && let impl_item = cx.tcx.hir_node(assoc_item_hir_id).expect_impl_item() 936 ( 0.00%) => ???:::hir_node (18x) 90 ( 0.00%) => ???:::expect_impl_item (18x) 72 ( 0.00%) && !impl_item.span.in_external_macro(cx.sess().source_map()) 36 ( 0.00%) && let hir::ImplItemKind::Fn(ref sig, _) = impl_item.kind . && let id = impl_item.owner_id . // can't be implemented for unsafe new . && !sig.header.is_unsafe() . // shouldn't be implemented when it is hidden in docs 36 ( 0.00%) && !cx.tcx.is_doc_hidden(impl_item.owner_id.def_id) . // when the result of `new()` depends on a parameter we should not require . // an impl of `Default` 36 ( 0.00%) && impl_item.generics.params.is_empty() 22 ( 0.00%) && sig.decl.inputs.is_empty() 10 ( 0.00%) && cx.effective_visibilities.is_exported(impl_item.owner_id.def_id) 114 ( 0.00%) => ???:::is_exported (2x) 1 ( 0.00%) && let self_ty = cx.tcx.type_of(item.owner_id).instantiate_identity().skip_norm_wip() 4 ( 0.00%) && self_ty == return_ty(cx, impl_item.owner_id) 77 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::return_ty (1x) 4 ( 0.00%) && let Some(default_trait_id) = cx.tcx.get_diagnostic_item(sym::Default) 72 ( 0.00%) => ???:::get_diagnostic_item (1x) . { 1 ( 0.00%) if self.impling_types.is_none() { . let mut impls = HirIdSet::default(); 218 ( 0.00%) for &d in cx.tcx.local_trait_impls(default_trait_id) { . let ty = cx.tcx.type_of(d).instantiate_identity().skip_norm_wip(); . if let Some(ty_def) = ty.ty_adt_def() . && let Some(local_def_id) = ty_def.did().as_local() . { . impls.insert(cx.tcx.local_def_id_to_hir_id(local_def_id)); . } . } 19 ( 0.00%) self.impling_types = Some(impls); 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) . } . . // Check if a Default implementation exists for the Self type, regardless of . // generics 2 ( 0.00%) if let Some(ref impling_types) = self.impling_types . && let self_def = cx.tcx.type_of(item.owner_id).instantiate_identity().skip_norm_wip() . && let Some(self_def) = self_def.ty_adt_def() . && let Some(self_local_did) = self_def.did().as_local() 2 ( 0.00%) && let self_id = cx.tcx.local_def_id_to_hir_id(self_local_did) 1 ( 0.00%) && impling_types.contains(&self_id) . { . return; . } . . let mut app = Applicability::MachineApplicable; . let attrs_sugg = { . let mut sugg = String::new(); . for attr in cx.tcx.hir_attrs(assoc_item_hir_id) { -- line 125 ---------------------------------------- -- line 190 ---------------------------------------- . &where_clause_sugg, . ), . app, . ); . }, . ); . } . } 25,536 ( 0.00%) } . } . . fn create_new_without_default_suggest_msg( . attrs_sugg: &str, . self_type_snip: &str, . generics_sugg: &str, . where_clause_sugg: &str, . ) -> String { -- line 206 ---------------------------------------- 2,362 ( 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. 3 ( 0.00%) unsafe { next_code_point(&mut self.iter).map(|ch| char::from_u32_unchecked(ch)) } 30 ( 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::> (3x) . } . . #[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() }; . } . } . 16 ( 0.00%) while (remainder > 0) && (self.iter.len() > 0) { . remainder -= 1; 8 ( 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(); 129,107 ( 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> { 99 ( 0.00%) self.0.next() 10,989 ( 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 (99x) . } . } . . $(#[$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> { 501 ( 0.00%) self.0.next_back() 28,937 ( 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 (492x) . } . } . . $(#[$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 { 282 ( 0.00%) self.finished = true; . 705 ( 0.00%) if self.allow_trailing_empty || self.end - self.start > 0 { . // SAFETY: `self.start` and `self.end` always lie on unicode boundaries. 198 ( 0.00%) let string = unsafe { self.matcher.haystack().get_unchecked(self.start..self.end) }; . return Some(string); . } . } . . None . } . . #[inline] 693 ( 0.00%) fn next(&mut self) -> Option<&'a str> { 1,293 ( 0.00%) if self.finished { . return None; . } . 475 ( 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 { 51 ( 0.00%) let elt = haystack.get_unchecked(self.start..a); 249 ( 0.00%) self.start = b; . Some(elt) 42 ( 0.00%) }, 201 ( 0.00%) None => self.get_end(), . } 891 ( 0.00%) } . . #[inline] . fn next_inclusive(&mut self) -> Option<&'a str> { 17,330 ( 0.00%) if self.finished { . return None; . } . 744 ( 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 { 324 ( 0.00%) let elt = haystack.get_unchecked(self.start..b); 324 ( 0.00%) self.start = b; . Some(elt) 324 ( 0.00%) }, 3,472 ( 0.00%) None => self.get_end(), . } . } . . #[inline] 3,507 ( 0.00%) fn next_back(&mut self) -> Option<&'a str> . where . P::Searcher<'a>: ReverseSearcher<'a>, . { 1,002 ( 0.00%) if self.finished { . return None; . } . 510 ( 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; . } . } . } . } . 765 ( 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 { 9 ( 0.00%) let elt = haystack.get_unchecked(b..self.end); 9 ( 0.00%) self.end = a; . Some(elt) . }, . // SAFETY: `self.start` and `self.end` always lie on unicode boundaries. . None => unsafe { 246 ( 0.00%) self.finished = true; 492 ( 0.00%) Some(haystack.get_unchecked(self.start..self.end)) . }, . } 4,017 ( 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] 2,940 ( 0.00%) fn next(&mut self) -> Option<&'a str> { . self.0.next() 3,780 ( 0.00%) } . . #[inline] . fn size_hint(&self) -> (usize, Option) { . self.0.size_hint() . } . . #[inline] . fn last(mut self) -> Option<&'a str> { -- line 1179 ---------------------------------------- 25,475 ( 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 { 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &Expr<'tcx>) { . // `&[foo.clone()]` expressions 55,732 ( 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 1,805 ( 0.00%) && let ExprKind::Array([item]) = &arr.kind . . // check for clones 10 ( 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, . ); . } 217,552 ( 0.01%) } . } . . /// 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: site/frontend/rust-clippy/clippy_lints/src/from_over_into.rs -------------------------------------------------------------------------------- Ir -- line 61 ---------------------------------------- . impl FromOverInto { . pub fn new(conf: &'static Conf) -> Self { . FromOverInto { msrv: conf.msrv.into() } . } . } . . impl<'tcx> LateLintPass<'tcx> for FromOverInto { . fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'_>) { 10,489 ( 0.00%) if let ItemKind::Impl(Impl { . of_trait: Some(of_trait), . self_ty, . items: [impl_item_ref], . .. 2,810 ( 0.00%) }) = item.kind 2,727 ( 0.00%) && let Some(into_trait_seg) = of_trait.trait_ref.path.segments.last() . // `impl Into for self_ty` 3,269 ( 0.00%) && let Some(GenericArgs { args: [GenericArg::Type(target_ty)], .. }) = into_trait_seg.args 756 ( 0.00%) && span_is_local(item.span) 18,448 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::span_is_local (108x) 972 ( 0.00%) && let middle_trait_ref = cx.tcx.impl_trait_ref(item.owner_id).instantiate_identity().skip_norm_wip() 4,884 ( 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:: (108x) 540 ( 0.00%) && cx.tcx.is_diagnostic_item(sym::Into, middle_trait_ref.def_id) 9,260 ( 0.00%) => ???:::is_diagnostic_item (108x) . && !matches!( . middle_trait_ref.args.type_at(1).kind(), . ty::Alias(_, ty::AliasTy { kind: ty::Opaque{..} , .. }) . ) . && self.msrv.meets(cx, msrvs::RE_REBALANCING_COHERENCE) . // skip if there's a blanket From impl, the suggested impl would conflict . && !has_blanket_from_impl(cx, middle_trait_ref.self_ty()) . { -- line 88 ---------------------------------------- -- line 115 ---------------------------------------- . { . diag.multipart_suggestion(message, suggestions, Applicability::MachineApplicable); . } else { . diag.help(message); . } . }, . ); . } 3,192 ( 0.00%) } . } . . /// Finds the occurrences of `Self` and `self` . /// . /// Returns `ControlFlow::break` if any of the `self`/`Self` usages were from an expansion, or the . /// body contained a binding already named `val`. . struct SelfFinder<'a, 'tcx> { . cx: &'a LateContext<'tcx>, -- line 131 ---------------------------------------- 13,158 ( 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>) { 81,582 ( 0.00%) if cx.tcx.sess.edition() >= Edition2024 { . return; . } . 27,264 ( 0.00%) if let Some(higher::IfLet { 29 ( 0.00%) let_expr, 29 ( 0.00%) if_then, . if_else: Some(if_else), . .. 54,528 ( 0.00%) }) = higher::IfLet::hir(cx, expr) 152,379 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir (27,194x) 58 ( 0.00%) && let ctxt = expr.span.ctxt() 58 ( 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, . ); . } 27,194 ( 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 36 ( 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 ---------------------------------------- 462,414 ( 0.01%) -------------------------------------------------------------------------------- -- 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, . { 41,810 ( 0.00%) default fn from_iter(iterator: I) -> Self { 51,295 ( 0.00%) SpecFromIterNested::from_iter(iterator) 18,376 ( 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<&str, core::str::iter::Split>>::from_iter (81x) 37,606 ( 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 ---------------------------------------- 52 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/borrow_deref_ref.rs -------------------------------------------------------------------------------- Ir -- line 46 ---------------------------------------- . pub BORROW_DEREF_REF, . complexity, . "deref on an immutable reference returns the same type as itself" . } . . declare_lint_pass!(BorrowDerefRef => [BORROW_DEREF_REF]); . . impl<'tcx> LateLintPass<'tcx> for BorrowDerefRef { 163,164 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, e: &'tcx Expr<'tcx>) { 57,672 ( 0.00%) if let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, addrof_target) = e.kind 1,423 ( 0.00%) && let ExprKind::Unary(UnOp::Deref, deref_target) = addrof_target.kind 154 ( 0.00%) && !matches!(deref_target.kind, ExprKind::Unary(UnOp::Deref, ..)) 154 ( 0.00%) && !e.span.from_expansion() 14 ( 0.00%) && !deref_target.span.from_expansion() 14 ( 0.00%) && !addrof_target.span.from_expansion() 21 ( 0.00%) && let ref_ty = cx.typeck_results().expr_ty(deref_target) 280 ( 0.00%) => ???:::expr_ty (7x) 14 ( 0.00%) && let ty::Ref(_, inner_ty, Mutability::Not) = ref_ty.kind() . && get_parent_expr(cx, e).is_none_or(|parent| { . match parent.kind { . // `*&*foo` should lint `deref_addrof` instead. . ExprKind::Unary(UnOp::Deref, _) => is_lint_allowed(cx, DEREF_ADDROF, parent.hir_id), . // `&*foo` creates a distinct temporary from `foo` . ExprKind::AddrOf(_, Mutability::Mut, _) => !matches!( . deref_target.kind, . ExprKind::Path(..) -- line 70 ---------------------------------------- -- line 119 ---------------------------------------- . e.span, . "if you would like to deref, try using `&**`", . format!("&**{deref_text}"), . Applicability::MaybeIncorrect, . ); . }, . ); . } 190,358 ( 0.00%) } . } . . /// Checks if `expr` is used as part of a `let` statement containing a `ref mut` binding. . fn potentially_bound_to_mutable_ref<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) -> bool { . matches!(cx.tcx.parent_hir_node(expr.hir_id), Node::LetStmt(let_stmt) . if let_stmt.pat.contains_explicit_ref_binding() == Some(Mutability::Mut)) . } 749 ( 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 { 135,970 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 81,582 ( 0.00%) if cx.tcx.sess.edition() >= Edition::Edition2024 { . return; . } . 136,122 ( 0.00%) let (scrutinee, keyword_fallback) = match expr.kind { 2,259 ( 0.00%) ExprKind::Match(scrutinee, _, _) => (scrutinee, "`match`"), 152 ( 0.00%) ExprKind::Let(let_expr) => (let_expr.init, "`if let` / `while let`"), . _ => return, . }; . 2,182 ( 0.00%) if scrutinee.span.from_expansion() || expr.span.from_expansion() { . return; . } . 522 ( 0.00%) if let ExprKind::Block(block, _) = scrutinee.kind 8 ( 0.00%) && 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"; . . span_lint_and_then(cx, BLOCK_SCRUTINEE, scrutinee.span, main_msg, |diag| { -- line 59 ---------------------------------------- -- line 102 ---------------------------------------- . vec![ . (outer_span.shrink_to_lo(), format!("let res = {inner_snippet};\n{pad}")), . (scrutinee.span, "res".to_string()), . ], . Applicability::MaybeIncorrect, . ); . }); . } 135,970 ( 0.00%) } . } 1,057 ( 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/traits/collect.rs -------------------------------------------------------------------------------- Ir -- line 315 ---------------------------------------- . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_iter", issue = "92476")] . const impl IntoIterator for I { . type Item = I::Item; . type IntoIter = I; . . #[inline] . fn into_iter(self) -> I { 42,416 ( 0.00%) self . } . } . . /// Extend a collection with the contents of an iterator. . /// . /// Iterators produce a series of values, and collections can also be thought . /// of as a series of values. The `Extend` trait bridges this gap, allowing you . /// to extend a collection by including the contents of that iterator. When -- line 331 ---------------------------------------- 8 ( 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 { 271,940 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, e: &'tcx Expr<'_>) { 81,582 ( 0.00%) eq_op::check_assert(cx, e); 3,027,050 ( 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 (27,194x) 81,582 ( 0.00%) float_cmp::check_assert(cx, e); 2,095,262 ( 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 (27,194x) 128,558 ( 0.00%) match e.kind { 1,146 ( 0.00%) ExprKind::Binary(op, lhs, rhs) => { 764 ( 0.00%) if !e.span.from_expansion() { 2,148 ( 0.00%) absurd_extreme_comparisons::check(cx, e, op.node, lhs, rhs); 132,323 ( 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 (358x) . if !(macro_with_not_op(lhs) || macro_with_not_op(rhs)) { 2,148 ( 0.00%) eq_op::check(cx, e, op.node, lhs, rhs); 337,050 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/eq_op.rs:clippy_lints::operators::eq_op::check (358x) 2,148 ( 0.00%) op_ref::check(cx, e, op.node, lhs, rhs); 17,657 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/op_ref.rs:clippy_lints::operators::op_ref::check (358x) . } . erasing_op::check(cx, e, op.node, lhs, rhs); 2,148 ( 0.00%) identity_op::check(cx, e, op.node, lhs, rhs); 114,411 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/identity_op.rs:clippy_lints::operators::identity_op::check (358x) . invalid_upcast_comparisons::check(cx, op.node, lhs, rhs, e.span); 2,506 ( 0.00%) needless_bitwise_bool::check(cx, e, op.node, lhs, rhs); 7,518 ( 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 (358x) 2,864 ( 0.00%) manual_midpoint::check(cx, e, op.node, lhs, rhs, self.msrv); 9,402 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/manual_midpoint.rs:clippy_lints::operators::manual_midpoint::check (358x) 2,506 ( 0.00%) manual_is_multiple_of::check(cx, e, op.node, lhs, rhs, self.msrv); 18,974 ( 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 (358x) 2,506 ( 0.00%) manual_isolate_lowest_one::check(cx, e, op.node, lhs, rhs, self.msrv); 6,086 ( 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 (358x) 1,790 ( 0.00%) decimal_bitwise_operands::check(cx, op.node, lhs, rhs); 6,444 ( 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 (358x) . } 2,674 ( 0.00%) self.arithmetic_context.check_binary(cx, e, op.node, lhs, rhs); 18,437 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/numeric_arithmetic.rs:::check_binary (382x) 2,292 ( 0.00%) bit_mask::check(cx, e, op.node, lhs, rhs); 49,264 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/bit_mask.rs:clippy_lints::operators::bit_mask::check (382x) . verbose_bit_mask::check(cx, e, op.node, lhs, rhs, self.verbose_bit_mask_threshold); 2,674 ( 0.00%) double_comparison::check(cx, op.node, lhs, rhs, e.span); 25,118 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/double_comparison.rs:clippy_lints::operators::double_comparison::check (382x) 2,292 ( 0.00%) const_comparisons::check(cx, op, lhs, rhs, e.span); 7,103 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/const_comparisons.rs:clippy_lints::operators::const_comparisons::check (382x) 2,292 ( 0.00%) duration_subsec::check(cx, e, op.node, lhs, rhs); 6,498 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/duration_subsec.rs:clippy_lints::operators::duration_subsec::check (382x) 2,292 ( 0.00%) float_equality_without_abs::check(cx, e, op.node, lhs, rhs); 8,453 ( 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 (382x) 2,292 ( 0.00%) integer_division::check(cx, e, op.node, lhs, rhs); 9,522 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/integer_division.rs:clippy_lints::operators::integer_division::check (382x) 2,292 ( 0.00%) integer_division_remainder_used::check(cx, op.node, lhs, rhs, e.span); 15,366 ( 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 (382x) . cmp_owned::check(cx, e, op.node, lhs, rhs); 2,042 ( 0.00%) float_cmp::check(cx, e, op.node, lhs, rhs); 14,948 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/float_cmp.rs:clippy_lints::operators::float_cmp::check (382x) . modulo_one::check(cx, e, op.node, rhs); 2,292 ( 0.00%) modulo_arithmetic::check( 8,618 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/modulo_arithmetic.rs:clippy_lints::operators::modulo_arithmetic::check (382x) . cx, . e, . op.node, . lhs, . rhs, 382 ( 0.00%) self.modulo_arithmetic_allow_comparison_to_zero, . ); 5,348 ( 0.00%) manual_div_ceil::check(cx, e, op.node, lhs, rhs, self.msrv); 7,542 ( 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 (382x) . }, 51 ( 0.00%) ExprKind::AssignOp(op, lhs, rhs) => { . let bin_op = op.node.into(); 34 ( 0.00%) if !e.span.from_expansion() { 85 ( 0.00%) decimal_bitwise_operands::check(cx, bin_op, lhs, rhs); 340 ( 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 (17x) . } 136 ( 0.00%) self.arithmetic_context.check_binary(cx, e, bin_op, lhs, rhs); 2,154 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/numeric_arithmetic.rs:::check_binary (17x) 102 ( 0.00%) misrefactored_assign_op::check(cx, e, bin_op, lhs, rhs); 87 ( 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 (17x) 238 ( 0.00%) modulo_arithmetic::check(cx, e, bin_op, lhs, rhs, false); 289 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/modulo_arithmetic.rs:clippy_lints::operators::modulo_arithmetic::check (17x) . }, 326 ( 0.00%) ExprKind::Assign(lhs, rhs, _) => { 978 ( 0.00%) assign_op_pattern::check(cx, e, lhs, rhs, self.msrv); 23,831 ( 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 (163x) 1,956 ( 0.00%) self_assignment::check(cx, e, lhs, rhs); 201,941 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/self_assignment.rs:clippy_lints::operators::self_assignment::check (163x) . }, 4 ( 0.00%) ExprKind::Unary(op, arg) => . { . #[expect(clippy::collapsible_match)] 451 ( 0.00%) if op == UnOp::Neg { 48 ( 0.00%) self.arithmetic_context.check_negate(cx, e, arg); 2,037 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/operators/numeric_arithmetic.rs:::check_negate (4x) . } . }, . _ => (), . } 213,024 ( 0.01%) } . . 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 { 1,483 ( 0.00%) if let ExprKind::Unary(_, e) = e.kind { 102 ( 0.00%) e.span.from_expansion() . } else { . false . } . } 8,140 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/attrs/non_minimal_cfg.rs -------------------------------------------------------------------------------- Ir -- line 3 ---------------------------------------- . use clippy_utils::source::SpanExt as _; . use rustc_ast::{MetaItemInner, MetaItemKind}; . use rustc_errors::Applicability; . use rustc_lint::EarlyContext; . use rustc_span::sym; . . pub(super) fn check(cx: &EarlyContext<'_>, attr: &Attribute) { . if attr.has_name(sym::cfg) 4,758 ( 0.00%) && let Some(items) = attr.meta_item_list() 609,609 ( 0.01%) => ???:::meta_item_list (793x) . { 1,586 ( 0.00%) check_nested_cfg(cx, &items); 59,501 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/attrs/non_minimal_cfg.rs:clippy_lints::attrs::non_minimal_cfg::check_nested_cfg (793x) . } . } . 7,704 ( 0.00%) fn check_nested_cfg(cx: &EarlyContext<'_>, items: &[MetaItemInner]) { . for item in items { 2,268 ( 0.00%) if let MetaItemInner::MetaItem(meta) = item { 10,660 ( 0.00%) if !meta.has_name(sym::any) && !meta.has_name(sym::all) { 11,696 ( 0.00%) => ???:::has_name (1,462x) . continue; . } 340 ( 0.00%) if let MetaItemKind::List(list) = &meta.kind { 340 ( 0.00%) check_nested_cfg(cx, list); 14,833 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/attrs/non_minimal_cfg.rs:clippy_lints::attrs::non_minimal_cfg::check_nested_cfg'2 (156x) 680 ( 0.00%) if list.len() == 1 { . span_lint_and_then( . cx, . NON_MINIMAL_CFG, . meta.span, . "unneeded sub `cfg` when there is only one condition", . |diag| { . if let Some(snippet) = list[0].span().get_text(cx) { . diag.span_suggestion( -- line 33 ---------------------------------------- -- line 46 ---------------------------------------- . meta.span, . "unneeded sub `cfg` when there is no condition", . |_| {}, . ); . } . } . } . } 7,704 ( 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 { 21,288 ( 0.00%) fn check_fn( . &mut self, . cx: &LateContext<'tcx>, . fn_kind: FnKind<'_>, . decl: &FnDecl<'tcx>, . _: &Body<'_>, . _: Span, . def_id: LocalDefId, . ) { 8,791 ( 0.00%) let is_in_trait_impl = if let hir::Node::Item(item) = cx . .tcx 3,548 ( 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) 164,723 ( 0.00%) => ???:::hir_get_parent_item (1,774x) . { 7,704 ( 0.00%) matches!(item.kind, ItemKind::Impl(hir::Impl { of_trait: Some(_), .. })) . } else { . false . }; . 3,548 ( 0.00%) let is_exported = cx.effective_visibilities.is_exported(def_id); 98,568 ( 0.00%) => ???:::is_exported (1,774x) . 1,114 ( 0.00%) self.check_fn_decl( . cx, . decl, . CheckTyContext { . is_in_trait_impl, 7,096 ( 0.00%) in_body: matches!(fn_kind, FnKind::Closure), . is_exported, . ..CheckTyContext::default() . }, . ); 14,192 ( 0.00%) } . . fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'tcx>) { 9,576 ( 0.00%) let is_exported = cx.effective_visibilities.is_exported(item.owner_id.def_id); 173,514 ( 0.00%) => ???:::is_exported (3,192x) . 15,914 ( 0.00%) match item.kind { 115 ( 0.00%) ItemKind::Static(_, _, ty, _) | ItemKind::Const(_, _, ty, _) => self.check_ty( 44,121 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/types/mod.rs:::check_ty (23x) . cx, . ty, . CheckTyContext { . is_exported, . ..CheckTyContext::default() . }, . ), . // functions, enums, structs, impls and traits are covered . _ => (), . } . } . 10,528 ( 0.00%) fn check_impl_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx ImplItem<'tcx>) { 3,008 ( 0.00%) match item.kind { 3 ( 0.00%) ImplItemKind::Const(ty, _) => { 12 ( 0.00%) let is_in_trait_impl = if let hir::Node::Item(item) = cx . .tcx 12 ( 0.00%) .hir_node_by_def_id(cx.tcx.hir_get_parent_item(item.hir_id()).def_id) 276 ( 0.00%) => ???:::hir_get_parent_item (3x) . { 24 ( 0.00%) matches!(item.kind, ItemKind::Impl(hir::Impl { of_trait: Some(_), .. })) . } else { . false . }; . 9 ( 0.00%) self.check_ty( 639 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/types/mod.rs:::check_ty (3x) . cx, . ty, . CheckTyContext { . is_in_trait_impl, . ..CheckTyContext::default() . }, . ); . }, . // 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(..) => (), . } 12,032 ( 0.00%) } . . fn check_field_def(&mut self, cx: &LateContext<'tcx>, field: &hir::FieldDef<'tcx>) { 1,170 ( 0.00%) if field.span.from_expansion() { . return; . } . 1,371 ( 0.00%) let is_exported = cx.effective_visibilities.is_exported(field.def_id); 24,864 ( 0.00%) => ???:::is_exported (457x) . 2,285 ( 0.00%) self.check_ty( 248,025 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/types/mod.rs:::check_ty (457x) . cx, 457 ( 0.00%) field.ty, . CheckTyContext { . is_exported, . ..CheckTyContext::default() . }, . ); . } . 220 ( 0.00%) fn check_trait_item(&mut self, cx: &LateContext<'tcx>, item: &TraitItem<'tcx>) { 66 ( 0.00%) let is_exported = cx.effective_visibilities.is_exported(item.owner_id.def_id); 1,239 ( 0.00%) => ???:::is_exported (22x) . . let context = CheckTyContext { . is_exported, . ..CheckTyContext::default() . }; . 184 ( 0.00%) match item.kind { 1 ( 0.00%) TraitItemKind::Const(ty, _) | TraitItemKind::Type(_, Some(ty)) => { 4 ( 0.00%) 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. 36 ( 0.00%) if let TraitFn::Required(_) = trait_method { 45 ( 0.00%) self.check_fn_decl(cx, sig.decl, context); . } . }, . TraitItemKind::Type(..) => (), . } 56 ( 0.00%) } . . fn check_local(&mut self, cx: &LateContext<'tcx>, local: &LetStmt<'tcx>) { 2,118 ( 0.00%) if let Some(ty) = local.ty { 222 ( 0.00%) self.check_ty( 14,246 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/types/mod.rs:::check_ty (74x) . 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. 5,322 ( 0.00%) if context.is_in_trait_impl { . return; . } . 572 ( 0.00%) for input in decl.inputs { 2,980 ( 0.00%) self.check_ty(cx, input, context); 4,690 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/types/mod.rs:::check_ty (15x) . } . 1,583 ( 0.00%) if let FnRetTy::Return(ty) = decl.output { 1,756 ( 0.00%) self.check_ty(cx, ty, context); 274,617 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/types/mod.rs:::check_ty (425x) . } . } . . /// 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. 25,322 ( 0.00%) fn check_ty<'tcx>(&mut self, cx: &LateContext<'tcx>, hir_ty: &hir::Ty<'tcx>, mut context: CheckTyContext) { 10,992 ( 0.00%) if hir_ty.span.from_expansion() { . return; . } . . // Skip trait implementations; see issue #605. . if context.is_in_trait_impl { . return; . } . 5,202 ( 0.00%) if !context.is_nested_call && type_complexity::check(cx, hir_ty, self.type_complexity_threshold) { . return; . } . 16,982 ( 0.00%) match hir_ty.kind { 5,214 ( 0.00%) TyKind::Path(ref qpath) if !context.in_body => { 3,378 ( 0.00%) let hir_id = hir_ty.hir_id; 5,067 ( 0.00%) let res = cx.qpath_res(qpath, hir_id); 28,363 ( 0.00%) => ???:::qpath_res (1,225x) . 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; 3,564 ( 0.00%) triggered |= box_collection::check(cx, hir_ty, qpath, def_id); 23,245 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/types/box_collection.rs:clippy_lints::types::box_collection::check (385x) 4,752 ( 0.00%) triggered |= redundant_allocation::check(cx, hir_ty, qpath, def_id); 46,804 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/types/redundant_allocation.rs:clippy_lints::types::redundant_allocation::check (385x) 4,158 ( 0.00%) triggered |= rc_buffer::check(cx, hir_ty, qpath, def_id); 30,335 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/types/rc_buffer.rs:clippy_lints::types::rc_buffer::check (385x) 5,346 ( 0.00%) triggered |= vec_box::check(cx, hir_ty, qpath, def_id, self.vec_box_size_threshold); 30,736 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/types/vec_box.rs:clippy_lints::types::vec_box::check (385x) 4,158 ( 0.00%) triggered |= option_option::check(cx, hir_ty, qpath, def_id); 30,565 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/types/option_option.rs:clippy_lints::types::option_option::check (385x) 3,564 ( 0.00%) triggered |= linked_list::check(cx, hir_ty, def_id); 24,856 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/types/linked_list.rs:clippy_lints::types::linked_list::check (385x) 4,752 ( 0.00%) triggered |= rc_mutex::check(cx, hir_ty, qpath, def_id); 28,699 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/types/rc_mutex.rs:clippy_lints::types::rc_mutex::check (385x) 2,970 ( 0.00%) triggered |= owned_cow::check(cx, qpath, def_id); 29,091 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/types/owned_cow.rs:clippy_lints::types::owned_cow::check (385x) . 9,504 ( 0.00%) if triggered { . return; . } . } 6,734 ( 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; 3,756 ( 0.00%) for ty in p.segments.iter().flat_map(|seg| { . seg.args . .as_ref() 1,014 ( 0.00%) .map_or_else(|| [].iter(), |params| params.args.iter()) 1,126 ( 0.00%) .filter_map(|arg| match arg { . GenericArg::Type(ty) => Some(ty), . _ => None, . }) . }) { 2,400 ( 0.00%) self.check_ty(cx, ty.as_unambig_ty(), context); 139,887 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/types/mod.rs:::check_ty'2 (344x) . } . }, 11 ( 0.00%) QPath::TypeRelative(ty, seg) => { . context.is_nested_call = true; 66 ( 0.00%) self.check_ty(cx, ty, context); 109 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/types/mod.rs:::check_ty'2 (1x) 33 ( 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) => { 294 ( 0.00%) let res = cx.qpath_res(qpath, hir_ty.hir_id); 1,127 ( 0.00%) => ???:::qpath_res (49x) . if let Some(def_id) = res.opt_def_id() . && self.is_type_change_allowed(context) . { 147 ( 0.00%) owned_cow::check(cx, qpath, def_id); 3,661 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/types/owned_cow.rs:clippy_lints::types::owned_cow::check (49x) . } . }, 624 ( 0.00%) TyKind::Ref(lt, ref mut_ty) => { . context.is_nested_call = true; 1,872 ( 0.00%) if !borrowed_box::check(cx, hir_ty, lt, mut_ty) { 10,048 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/types/borrowed_box.rs:clippy_lints::types::borrowed_box::check (287x) . self.check_ty(cx, mut_ty.ty, context); . } . }, 34 ( 0.00%) TyKind::Slice(ty) | TyKind::Array(ty, _) | TyKind::Ptr(MutTy { ty, .. }) => { . context.is_nested_call = true; . self.check_ty(cx, ty, context); . }, 82 ( 0.00%) TyKind::Tup(tys) => { . context.is_nested_call = true; . for ty in tys { 596 ( 0.00%) self.check_ty(cx, ty, context); 71,787 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/types/mod.rs:::check_ty'2 (85x) . } . }, . _ => {}, . } 18,416 ( 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 ---------------------------------------- 16,086 ( 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) { 19,312 ( 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 { 60,032 ( 0.00%) fn check_attribute(&mut self, cx: &EarlyContext<'_>, attribute: &ast::Attribute) { . Self::warn_if_tabs_in_doc(cx, attribute); 60,032 ( 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 ---------------------------------------- 4,304 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/minmax.rs -------------------------------------------------------------------------------- Ir -- line 31 ---------------------------------------- . pub MIN_MAX, . correctness, . "`min(_, max(_, _))` (or vice versa) with bounds clamping the result to a constant" . } . . declare_lint_pass!(MinMaxPass => [MIN_MAX]); . . impl<'tcx> LateLintPass<'tcx> for MinMaxPass { 217,552 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 81,582 ( 0.00%) if let Some((outer_max, outer_c, oe)) = min_max(cx, expr) 934,909 ( 0.02%) => site/frontend/rust-clippy/clippy_lints/src/minmax.rs:clippy_lints::minmax::min_max (27,194x) . && let Some((inner_max, inner_c, ie)) = min_max(cx, oe) . && outer_max != inner_max . && let Some(ord) = Constant::partial_cmp(cx.tcx, cx.typeck_results().expr_ty(ie), &outer_c, &inner_c) . && matches!( . (outer_max, ord), . (MinMax::Max, Equal | Greater) | (MinMax::Min, Equal | Less) . ) . { . span_lint( . cx, . MIN_MAX, . expr.span, . "this `min`/`max` combination leads to constant result", . ); . } 163,164 ( 0.00%) } . } . . #[derive(PartialEq, Eq, Debug, Clone, Copy)] . enum MinMax { . Min, . Max, . } . 190,358 ( 0.00%) fn min_max<'a>(cx: &LateContext<'_>, expr: &'a Expr<'a>) -> Option<(MinMax, Constant, &'a Expr<'a>)> { 129,394 ( 0.00%) match expr.kind { 3,288 ( 0.00%) ExprKind::Call(path, args) => { 9,864 ( 0.00%) if let ExprKind::Path(ref qpath) = path.kind { . cx.typeck_results() 13,152 ( 0.00%) .qpath_res(qpath, path.hir_id) 76,332 ( 0.00%) => ???:::qpath_res (3,288x) . .opt_def_id() 19,626 ( 0.00%) .and_then(|def_id| match cx.tcx.get_diagnostic_name(def_id) { 190,836 ( 0.00%) => ???:::get_diagnostic_name (3,271x) 3 ( 0.00%) Some(sym::cmp_min) => fetch_const(cx, expr.span.ctxt(), None, args, MinMax::Min), . Some(sym::cmp_max) => fetch_const(cx, expr.span.ctxt(), None, args, MinMax::Max), . _ => None, . }) . } else { . None . } . }, 8,627 ( 0.00%) ExprKind::MethodCall(path, receiver, args @ [_], _) => { 1,089 ( 0.00%) let m = match path.ident.name { 4,356 ( 0.00%) sym::max => MinMax::Max, . sym::min => MinMax::Min, . _ => return None, . }; . if cx.typeck_results().expr_ty(receiver).is_floating_point() . || cx.ty_based_def(expr).opt_parent(cx).is_diag_item(cx, sym::Ord) . { . fetch_const(cx, expr.span.ctxt(), Some(receiver), args, m) . } else { . None . } . }, . _ => None, . } 217,552 ( 0.01%) } . 8 ( 0.00%) fn fetch_const<'a>( . cx: &LateContext<'_>, . ctxt: SyntaxContext, . receiver: Option<&'a Expr<'a>>, . args: &'a [Expr<'a>], . m: MinMax, . ) -> Option<(MinMax, Constant, &'a Expr<'a>)> { . let mut args = receiver.into_iter().chain(args); . let first_arg = args.next()?; . let second_arg = args.next()?; . if args.next().is_some() { . return None; . } 4 ( 0.00%) let ecx = ConstEvalCtxt::new(cx); 226 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::new (1x) 26 ( 0.00%) match (ecx.eval_local(first_arg, ctxt), ecx.eval_local(second_arg, ctxt)) { 222 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::eval_local (2x) . (Some(c), None) => Some((m, c, second_arg)), . (None, Some(c)) => Some((m, c, first_arg)), . // otherwise ignore 1 ( 0.00%) _ => None, . } 9 ( 0.00%) } 3,300 ( 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) { 45,805 ( 0.00%) if let ExprKind::If(_, _, Some(ref els)) = item.kind 554 ( 0.00%) && let ExprKind::If(_, _, None) = els.kind 21 ( 0.00%) && !item.span.in_external_macro(cx.sess().source_map()) . { . #[expect(clippy::collapsible_span_lint_calls, reason = "rust-clippy#7797")] 42 ( 0.00%) span_lint_and_then( 5,117 ( 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#0}> (7x) . cx, . ELSE_IF_WITHOUT_ELSE, 7 ( 0.00%) els.span, . "`if` expression with an `else if`, but without a final `else`", . |diag| { . diag.help("add an `else` block here"); . }, . ); . } . } . } -- line 66 ---------------------------------------- -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs -------------------------------------------------------------------------------- Ir -- line 272 ---------------------------------------- . /// if let Some(ptr) = NonNull::::new(std::ptr::null_mut()) { . /// unreachable!(); . /// } . /// ``` . #[stable(feature = "nonnull", since = "1.25.0")] . #[rustc_const_stable(feature = "const_nonnull_new", since = "1.85.0")] . #[inline] . pub const fn new(ptr: *mut T) -> Option { 9 ( 0.00%) if !ptr.is_null() { . // SAFETY: The pointer is already checked and is not null . Some(unsafe { Self::new_unchecked(ptr) }) . } else { . None . } . } . . /// Converts a reference to a `NonNull` pointer. -- line 288 ---------------------------------------- -- line 378 ---------------------------------------- . /// . /// For more details, see the equivalent method on a raw pointer, [`pointer::map_addr`]. . /// . /// This is a [Strict Provenance][crate::ptr#strict-provenance] API. . #[must_use] . #[inline] . #[stable(feature = "strict_provenance", since = "1.84.0")] . pub fn map_addr(self, f: impl FnOnce(NonZero) -> NonZero) -> Self { 517 ( 0.00%) self.with_addr(f(self.addr())) . } . . /// Acquires the underlying `*mut` pointer. . /// . /// # Examples . /// . /// ``` . /// use std::ptr::NonNull; -- line 394 ---------------------------------------- -- line 446 ---------------------------------------- . #[stable(feature = "nonnull", since = "1.25.0")] . #[rustc_const_stable(feature = "const_nonnull_as_ref", since = "1.73.0")] . #[must_use] . #[inline(always)] . pub const unsafe fn as_ref<'a>(&self) -> &'a T { . // SAFETY: the caller must guarantee that `self` meets all the . // requirements for a reference. . // `cast_const` avoids a mutable raw pointer deref. 271,263 ( 0.01%) unsafe { &*self.as_ptr().cast_const() } . } . . /// Returns a unique reference to the value. If the value may be uninitialized, [`as_uninit_mut`] . /// must be used instead. . /// . /// For the shared counterpart see [`as_ref`]. . /// . /// [`as_uninit_mut`]: NonNull::as_uninit_mut -- line 462 ---------------------------------------- -- line 564 ---------------------------------------- . pub const unsafe fn offset(self, count: isize) -> Self . where . T: Sized, . { . // SAFETY: the caller must uphold the safety contract for `offset`. . // Additionally safety contract of `offset` guarantees that the resulting pointer is . // pointing to an allocation, there can't be an allocation at null, thus it's safe to . // construct `NonNull`. 95 ( 0.00%) unsafe { transmute(intrinsics::offset(self.as_ptr(), count)) } . } . . /// Calculates the offset from a pointer in bytes. . /// . /// `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 580 ---------------------------------------- -- line 619 ---------------------------------------- . pub const unsafe fn add(self, count: usize) -> Self . where . T: Sized, . { . // SAFETY: the caller must uphold the safety contract for `offset`. . // Additionally safety contract of `offset` guarantees that the resulting pointer is . // pointing to an allocation, there can't be an allocation at null, thus it's safe to . // construct `NonNull`. 477,898 ( 0.01%) unsafe { transmute(intrinsics::offset(self.as_ptr(), count)) } . } . . /// Calculates the offset from a pointer in bytes (convenience for `.byte_offset(count as isize)`). . /// . /// `count` is in units of bytes. . /// . /// This is purely a convenience for casting to a `u8` pointer and . /// using [`add`][NonNull::add] on it. See that method for documentation -- line 635 ---------------------------------------- -- line 1655 ---------------------------------------- . #[stable(feature = "nonnull", since = "1.25.0")] . impl Eq for NonNull {} . . #[stable(feature = "nonnull", since = "1.25.0")] . impl PartialEq for NonNull { . #[inline] . #[allow(ambiguous_wide_pointer_comparisons)] . fn eq(&self, other: &Self) -> bool { 2,810,333 ( 0.07%) self.as_ptr() == other.as_ptr() . } . } . . #[stable(feature = "nonnull", since = "1.25.0")] . impl Ord for NonNull { . #[inline] . #[allow(ambiguous_wide_pointer_comparisons)] . fn cmp(&self, other: &Self) -> Ordering { -- line 1671 ---------------------------------------- 81,301 ( 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 { 28,400 ( 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); 22,720 ( 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>) { 8,520 ( 0.00%) if is_in_const_context(cx) { 788,718 ( 0.02%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_in_const_context (2,840x) . return; . } . . for [s1, s2, s3] in block.stmts.array_windows::<3>() { 2,460 ( 0.00%) if let StmtKind::Let(tmp) = s1.kind . // let t = foo(); 810 ( 0.00%) && let Some(tmp_init) = tmp.init 1,259 ( 0.00%) && let PatKind::Binding(.., ident, None) = tmp.pat.kind . . // foo() = bar(); 540 ( 0.00%) && let StmtKind::Semi(first) = s2.kind 116 ( 0.00%) && let ExprKind::Assign(lhs1, rhs1, _) = first.kind . . // bar() = t; 22 ( 0.00%) && let StmtKind::Semi(second) = s3.kind 11 ( 0.00%) && let ExprKind::Assign(lhs2, rhs2, _) = second.kind 6 ( 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,427 ( 0.00%) if let Some((lhs0, rhs0)) = parse(first) 1,712 ( 0.00%) && let Some((lhs1, rhs1)) = parse(second) 238 ( 0.00%) && let ctxt = first.span.ctxt() 476 ( 0.00%) && ctxt == second.span.ctxt() 952 ( 0.00%) && !ctxt.in_external_macro(cx.sess().source_map()) 24,362 ( 0.00%) => ???:::in_external_macro (238x) 1,266 ( 0.00%) && is_same(cx, ctxt, lhs0, rhs1) 8,964 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/swap.rs:clippy_lints::swap::is_same (211x) 12 ( 0.00%) && is_same(cx, ctxt, lhs1, rhs0) 926 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/swap.rs:clippy_lints::swap::is_same (2x) . && !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) . { . let span = first.span.to(rhs1.span); -- line 225 ---------------------------------------- -- 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 { 426 ( 0.00%) match lhs { 44 ( 0.00%) ExprOrIdent::Expr(expr) => eq_expr_value(cx, ctxt, expr, rhs), 8,488 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:clippy_utils::hir_utils::eq_expr_value (22x) . ExprOrIdent::Ident(ident) => { 427 ( 0.00%) if let ExprKind::Path(QPath::Resolved(None, path)) = rhs.kind 27 ( 0.00%) && let [segment] = &path.segments . && segment.ident == ident . { . true . } else { . false . } . }, . } 191 ( 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,372 ( 0.00%) if let StmtKind::Semi(expr) = stmt.kind { 1,151 ( 0.00%) if let ExprKind::Assign(lhs, rhs, _) = expr.kind { . return Some((ExprOrIdent::Expr(lhs), rhs)); . } . } else if let StmtKind::Let(expr) = stmt.kind 2,226 ( 0.00%) && let Some(rhs) = expr.init 4,146 ( 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>() { 495 ( 0.00%) let ctxt = s1.span.ctxt(); 132 ( 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>)> { 990 ( 0.00%) if let StmtKind::Semi(expr) = stmt.kind 270 ( 0.00%) && let ExprKind::AssignOp( . Spanned { . node: AssignOpKind::BitXorAssign, . .. . }, . lhs, . rhs, . ) = expr.kind . && expr.span.ctxt() == ctxt -- line 316 ---------------------------------------- 21,497 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/len_without_is_empty.rs -------------------------------------------------------------------------------- Ir -- line 39 ---------------------------------------- . pub LEN_WITHOUT_IS_EMPTY, . style, . "traits or impls with a public `len` method but no corresponding `is_empty` method" . } . . declare_lint_pass!(LenWithoutIsEmpty => [LEN_WITHOUT_IS_EMPTY]); . . impl<'tcx> LateLintPass<'tcx> for LenWithoutIsEmpty { 22,344 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'_>) { 6,384 ( 0.00%) if let ItemKind::Trait { 76 ( 0.00%) ident, 38 ( 0.00%) items: trait_items, . .. . } = item.kind 38 ( 0.00%) && !item.span.from_expansion() . { 57 ( 0.00%) check_trait_items(cx, item, ident, trait_items); . } 25,536 ( 0.00%) } . 10,528 ( 0.00%) fn check_impl_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx ImplItem<'_>) { 1,504 ( 0.00%) if item.ident.name == sym::len 20 ( 0.00%) && let ImplItemKind::Fn(sig, _) = &item.kind 40 ( 0.00%) && sig.decl.implicit_self().has_implicit_self() 80 ( 0.00%) => ???:::implicit_self (10x) 20 ( 0.00%) && sig.decl.inputs.len() == 1 60 ( 0.00%) && cx.effective_visibilities.is_exported(item.owner_id.def_id) 570 ( 0.00%) => ???:::is_exported (10x) 16 ( 0.00%) && matches!(sig.decl.output, FnRetTy::Return(_)) 56 ( 0.00%) && let Some(imp) = get_parent_as_impl(cx.tcx, item.hir_id()) 1,408 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_parent_as_impl (8x) 8 ( 0.00%) && imp.of_trait.is_none() 8 ( 0.00%) && let TyKind::Path(ty_path) = &imp.self_ty.kind 8 ( 0.00%) && let Some(ty_id) = cx.qpath_res(ty_path, imp.self_ty.hir_id).opt_def_id() 46 ( 0.00%) => ???:::qpath_res (2x) . && let Some(local_id) = ty_id.as_local() . && let ty_hir_id = cx.tcx.local_def_id_to_hir_id(local_id) 8 ( 0.00%) && let Some(output) = LenOutput::new( 90 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/len_without_is_empty.rs:::new (2x) . cx, . cx.tcx . .fn_sig(item.owner_id) . .instantiate_identity() . .skip_norm_wip() . .skip_binder(), . ) . { 14 ( 0.00%) let (name, kind) = match cx.tcx.hir_node(ty_hir_id) { 111 ( 0.00%) => ???:::hir_node (2x) . Node::ForeignItem(x) => (x.ident.name, "extern type"), 10 ( 0.00%) Node::Item(x) => match x.kind { 5 ( 0.00%) ItemKind::Struct(ident, ..) => (ident.name, "struct"), 5 ( 0.00%) ItemKind::Enum(ident, ..) => (ident.name, "enum"), . ItemKind::Union(ident, ..) => (ident.name, "union"), . _ => (x.kind.ident().unwrap().name, "type"), . }, . _ => return, . }; 30 ( 0.00%) check_for_is_empty( 853 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/len_without_is_empty.rs:clippy_lints::len_without_is_empty::check_for_is_empty (2x) . cx, 2 ( 0.00%) sig.span, 4 ( 0.00%) sig.decl.implicit_self(), 16 ( 0.00%) => ???:::implicit_self (2x) . output, . ty_id, . name, . kind, . item.hir_id(), . ty_hir_id, . ); . } 12,032 ( 0.00%) } . } . . fn check_trait_items(cx: &LateContext<'_>, visited_trait: &Item<'_>, ident: Ident, trait_items: &[TraitItemId]) { . fn is_named_self(cx: &LateContext<'_>, item: TraitItemId, name: Symbol) -> bool { . cx.tcx.item_name(item.owner_id) == name . && matches!( . cx.tcx.fn_arg_idents(item.owner_id), . [Some(Ident { -- line 111 ---------------------------------------- -- line 119 ---------------------------------------- . fn fill_trait_set(traitt: DefId, set: &mut DefIdSet, cx: &LateContext<'_>) { . if set.insert(traitt) { . for supertrait in supertrait_def_ids(cx.tcx, traitt) { . fill_trait_set(supertrait, set, cx); . } . } . } . 95 ( 0.00%) if cx.effective_visibilities.is_exported(visited_trait.owner_id.def_id) 1,053 ( 0.00%) => ???:::is_exported (19x) . && trait_items.iter().any(|&i| is_named_self(cx, i, sym::len)) . { . let mut current_and_super_traits = DefIdSet::default(); . fill_trait_set(visited_trait.owner_id.to_def_id(), &mut current_and_super_traits, cx); . let is_empty_method_found = current_and_super_traits . .items() . .flat_map(|&i| UnordItems::new(cx.tcx.associated_items(i).filter_by_name_unhygienic(sym::is_empty))) . .any(|i| i.is_method() && cx.tcx.fn_sig(i.def_id).skip_binder().inputs().skip_binder().len() == 1); -- line 135 ---------------------------------------- -- line 143 ---------------------------------------- . "trait `{}` has a `len` method but no (possibly inherited) `is_empty` method", . ident.name . ), . ); . } . } . } . 4 ( 0.00%) fn extract_future_output<'tcx>(cx: &LateContext<'tcx>, ty: Ty<'tcx>) -> Option<&'tcx PathSegment<'tcx>> { 8 ( 0.00%) if let ty::Alias( . _, . ty::AliasTy { . kind: ty::Opaque { def_id }, . .. . }, . ) = *ty.kind() . && let Some(Node::OpaqueTy(opaque)) = cx.tcx.hir_get_if_local(def_id) . && let OpaqueTyOrigin::AsyncFn { .. } = opaque.origin -- line 160 ---------------------------------------- -- line 165 ---------------------------------------- . && let Some(ty) = constraint.ty() . && let TyKind::Path(QPath::Resolved(_, path)) = ty.kind . && let [segment] = path.segments . { . return Some(segment); . } . . None 4 ( 0.00%) } . . fn is_first_generic_integral<'tcx>(segment: &'tcx PathSegment<'tcx>) -> bool { . if let Some(generic_args) = segment.args . && let [GenericArg::Type(ty), ..] = &generic_args.args . && let TyKind::Path(QPath::Resolved(_, path)) = ty.kind . && let [segment, ..] = &path.segments . && matches!(segment.res, Res::PrimTy(PrimTy::Uint(_) | PrimTy::Int(_))) . { -- line 181 ---------------------------------------- -- line 188 ---------------------------------------- . #[derive(Debug, Clone, Copy)] . enum LenOutput { . Integral, . Option(DefId), . Result(DefId), . } . . impl LenOutput { 18 ( 0.00%) fn new<'tcx>(cx: &LateContext<'tcx>, sig: FnSig<'tcx>) -> Option { 10 ( 0.00%) if let Some(segment) = extract_future_output(cx, sig.output()) { 8 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/len_without_is_empty.rs:clippy_lints::len_without_is_empty::extract_future_output (2x) . let res = segment.res; . . if matches!(res, Res::PrimTy(PrimTy::Uint(_) | PrimTy::Int(_))) { . return Some(Self::Integral); . } . . if let Res::Def(_, def_id) = res . && let Some(res) = match cx.tcx.get_diagnostic_name(def_id) { -- line 205 ---------------------------------------- -- line 210 ---------------------------------------- . && is_first_generic_integral(segment) . { . return Some(res); . } . . return None; . } . 8 ( 0.00%) match *sig.output().kind() { 2 ( 0.00%) ty::Int(_) | ty::Uint(_) => Some(Self::Integral), . ty::Adt(adt, subs) => match cx.tcx.get_diagnostic_name(adt.did()) { . Some(sym::Option) => subs.type_at(0).is_integral().then(|| Self::Option(adt.did())), . Some(sym::Result) => subs.type_at(0).is_integral().then(|| Self::Result(adt.did())), . _ => None, . }, . _ => None, . } 14 ( 0.00%) } . . fn matches_is_empty_output<'tcx>(self, cx: &LateContext<'tcx>, is_empty_output: Ty<'tcx>) -> bool { 10 ( 0.00%) if let Some(segment) = extract_future_output(cx, is_empty_output) { 8 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/len_without_is_empty.rs:clippy_lints::len_without_is_empty::extract_future_output (2x) . return match (self, segment.res) { . (_, Res::PrimTy(PrimTy::Bool)) => true, . (Self::Option(_), Res::Def(_, def_id)) if cx.tcx.is_diagnostic_item(sym::Option, def_id) => true, . (Self::Result(_), Res::Def(_, def_id)) if cx.tcx.is_diagnostic_item(sym::Result, def_id) => true, . _ => false, . }; . } . 6 ( 0.00%) match (self, is_empty_output.kind()) { . (_, &ty::Bool) => true, . (Self::Option(id), &ty::Adt(adt, subs)) if id == adt.did() => subs.type_at(0).is_bool(), . (Self::Result(id), &ty::Adt(adt, subs)) if id == adt.did() => subs.type_at(0).is_bool(), . _ => false, . } . } . } . -- line 247 ---------------------------------------- -- line 265 ---------------------------------------- . . /// Checks if the given signature matches the expectations for `is_empty` . fn check_is_empty_sig<'tcx>( . cx: &LateContext<'tcx>, . is_empty_sig: FnSig<'tcx>, . len_self_kind: ImplicitSelfKind, . len_output: LenOutput, . ) -> bool { 4 ( 0.00%) if let [is_empty_self_arg, is_empty_output] = &**is_empty_sig.inputs_and_output 2 ( 0.00%) && len_output.matches_is_empty_output(cx, *is_empty_output) . { 14 ( 0.00%) match (is_empty_self_arg.kind(), len_self_kind) { . // if `len` takes `&self`, `is_empty` should do so as well . (ty::Ref(_, _, Mutability::Not), ImplicitSelfKind::RefImm) . // if `len` takes `&mut self`, `is_empty` may take that _or_ `&self` (#16190) . | (ty::Ref(_, _, Mutability::Mut | Mutability::Not), ImplicitSelfKind::RefMut) => true, . // if len takes `self`, `is_empty` should do so as well . // XXX: we might want to relax this to allow `&self` and `&mut self` . (_, ImplicitSelfKind::Imm | ImplicitSelfKind::Mut) if !is_empty_self_arg.is_ref() => true, . _ => false, -- line 284 ---------------------------------------- -- line 285 ---------------------------------------- . } . } else { . false . } . } . . /// Checks if the given type has an `is_empty` method with the appropriate signature. . #[expect(clippy::too_many_arguments)] 24 ( 0.00%) fn check_for_is_empty( . cx: &LateContext<'_>, . len_span: Span, . len_self_kind: ImplicitSelfKind, . len_output: LenOutput, . impl_ty: DefId, . item_name: Symbol, . item_kind: &str, . len_method_hir_id: HirId, . ty_decl_hir_id: HirId, . ) { . // Implementor may be a type alias, in which case we need to get the `DefId` of the aliased type to . // find the correct inherent impls. 2 ( 0.00%) let impl_ty = if let Some(adt) = cx.tcx.type_of(impl_ty).skip_binder().ty_adt_def() { . adt.did() . } else { . return; . }; . . let is_empty = cx . .tcx . .inherent_impls(impl_ty) . .iter() 8 ( 0.00%) .flat_map(|&id| cx.tcx.associated_items(id).filter_by_name_unhygienic(sym::is_empty)) 200 ( 0.00%) => ???:::filter_by_name_unhygienic (2x) . .find(|item| item.is_fn()); . . let (msg, is_empty_span, is_empty_expected_sig) = match is_empty { . None => ( . format!("{item_kind} `{item_name}` has a public `len` method, but no `is_empty` method"), . None, . None, . ), 16 ( 0.00%) Some(is_empty) if !cx.effective_visibilities.is_exported(is_empty.def_id.expect_local()) => ( 114 ( 0.00%) => ???:::is_exported (2x) . format!("{item_kind} `{item_name}` has a public `len` method, but a private `is_empty` method"), . Some(cx.tcx.def_span(is_empty.def_id)), . None, . ), . Some(is_empty) 4 ( 0.00%) if !(is_empty.is_method() 6 ( 0.00%) && check_is_empty_sig( . cx, . cx.tcx 4 ( 0.00%) .fn_sig(is_empty.def_id) . .instantiate_identity() . .skip_norm_wip() . .skip_binder(), . len_self_kind, . len_output, . )) => . { . ( -- line 343 ---------------------------------------- -- line 356 ---------------------------------------- . if let Some(span) = is_empty_span { . db.span_note(span, "`is_empty` defined here"); . } . if let Some(expected_sig) = is_empty_expected_sig { . db.note(expected_sig); . } . }); . } 16 ( 0.00%) } 82 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/impl_hash_with_borrow_str_and_bytes.rs -------------------------------------------------------------------------------- Ir -- line 71 ---------------------------------------- . . declare_lint_pass!(ImplHashWithBorrowStrBytes => [ . IMPL_HASH_BORROW_WITH_STR_AND_BYTES, . ]); . . impl LateLintPass<'_> for ImplHashWithBorrowStrBytes { . /// We are emitting this lint at the Hash impl of a type that implements all . /// three of `Hash`, `Borrow` and `Borrow<[u8]>`. 22,344 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'_>, item: &Item<'_>) { 7,789 ( 0.00%) if let ItemKind::Impl(imp) = item.kind 2,810 ( 0.00%) && let Some(of_trait) = imp.of_trait 4,050 ( 0.00%) && let ty = cx.tcx.type_of(item.owner_id).instantiate_identity().skip_norm_wip() 6,750 ( 0.00%) && let Some(hash_id) = cx.tcx.get_diagnostic_item(sym::Hash) 97,200 ( 0.00%) => ???:::get_diagnostic_item (1,350x) 12,150 ( 0.00%) && Res::Def(DefKind::Trait, hash_id) == of_trait.trait_ref.path.res 44,556 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_hir/src/def.rs:::eq (1,350x) 15 ( 0.00%) && let Some(borrow_id) = cx.tcx.get_diagnostic_item(sym::Borrow) 216 ( 0.00%) => ???:::get_diagnostic_item (3x) . // since we are in the `Hash` impl, we don't need to check for that. . // we need only to check for `Borrow` and `Borrow<[u8]>` 33 ( 0.00%) && implements_trait(cx, ty, borrow_id, &[cx.tcx.types.str_.into()]) 27,259 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::implements_trait (3x) . && implements_trait(cx, ty, borrow_id, &[Ty::new_slice(cx.tcx, cx.tcx.types.u8).into()]) . { . span_lint_and_then( . cx, . IMPL_HASH_BORROW_WITH_STR_AND_BYTES, . of_trait.trait_ref.path.span, . "the semantics of `Borrow` around `Hash` can't be satisfied when both `Borrow` and `Borrow<[u8]>` are implemented", . |diag| { -- line 96 ---------------------------------------- -- line 99 ---------------------------------------- . "however, the hash implementations of a string (`str`) and the bytes of a string `[u8]` do not behave the same ..." . ); . diag.note("... as (`hash(\"abc\") != hash(\"abc\".as_bytes())`"); . diag.help("consider either removing one of the `Borrow` implementations (`Borrow` or `Borrow<[u8]>`) ..."); . diag.help("... or not implementing `Hash` for this type"); . }, . ); . } 25,536 ( 0.00%) } . } 1,356 ( 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 { 135,970 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx hir::Expr<'_>) { 54,388 ( 0.00%) if let Assign(left_expr, collect_expr, _) = &expr.kind 515 ( 0.00%) && let hir::ExprKind::MethodCall(seg, target_expr, [], _) = &collect_expr.kind 22 ( 0.00%) && seg.args.is_none() 55 ( 0.00%) && let Some(collect_def_id) = cx.typeck_results().type_dependent_def_id(collect_expr.hir_id) 561 ( 0.00%) => ???:::type_dependent_def_id (11x) 66 ( 0.00%) && cx.tcx.is_diagnostic_item(sym::iterator_collect_fn, collect_def_id) 809 ( 0.00%) => ???:::is_diagnostic_item (11x) . { . 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); . } 163,164 ( 0.00%) } . } . . fn check_into_iter( . cx: &LateContext<'_>, . left_expr: &hir::Expr<'_>, . target_expr: &hir::Expr<'_>, . parent_expr_span: Span, . msrv: Msrv, -- line 79 ---------------------------------------- 22 ( 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 { 108,776 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 60,837 ( 0.00%) if let ExprKind::MethodCall(name, recv, [_], _) = expr.kind 1,089 ( 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, . ); . } . } 108,776 ( 0.00%) } . } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/almost_complete_range.rs -------------------------------------------------------------------------------- Ir -- line 36 ---------------------------------------- . } . impl AlmostCompleteRange { . pub fn new(conf: &'static Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . impl EarlyLintPass for AlmostCompleteRange { . fn check_expr(&mut self, cx: &EarlyContext<'_>, e: &Expr) { 44,844 ( 0.00%) if let ExprKind::Range(Some(start), Some(end), RangeLimits::HalfOpen) = &e.kind 28 ( 0.00%) && is_incomplete_range(start, end) 56 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/almost_complete_range.rs:clippy_lints::almost_complete_range::is_incomplete_range (4x) . && !e.span.in_external_macro(cx.sess().source_map()) . { . span_lint_and_then( . cx, . ALMOST_COMPLETE_RANGE, . e.span, . "almost complete ascii range", . |diag| { -- line 53 ---------------------------------------- -- line 61 ---------------------------------------- . "use an inclusive range", . "..=".to_owned(), . Applicability::MaybeIncorrect, . ); . } . }, . ); . } 22,268 ( 0.00%) } . 28,518 ( 0.00%) fn check_pat(&mut self, cx: &EarlyContext<'_>, p: &Pat) { 9,614 ( 0.00%) if let PatKind::Range(Some(start), Some(end), kind) = &p.kind 36 ( 0.00%) && matches!(kind.node, RangeEnd::Excluded) . && is_incomplete_range(start, end) . && !p.span.in_external_macro(cx.sess().source_map()) . { . span_lint_and_then( . cx, . ALMOST_COMPLETE_RANGE, . p.span, . "almost complete ascii range", -- line 81 ---------------------------------------- -- line 88 ---------------------------------------- . } else { . "...".to_owned() . }, . Applicability::MaybeIncorrect, . ); . }, . ); . } 33,271 ( 0.00%) } . . extract_msrv_attr!(); . } . 8 ( 0.00%) fn is_incomplete_range(start: &Expr, end: &Expr) -> bool { 8 ( 0.00%) match (&start.peel_parens().kind, &end.peel_parens().kind) { . (&ExprKind::Lit(start_lit), &ExprKind::Lit(end_lit)) => { . matches!( . (LitKind::from_token_lit(start_lit), LitKind::from_token_lit(end_lit),), . ( . Ok(LitKind::Byte(b'a') | LitKind::Char('a')), . Ok(LitKind::Byte(b'z') | LitKind::Char('z')) . ) | ( . Ok(LitKind::Byte(b'A') | LitKind::Char('A')), -- line 110 ---------------------------------------- -- line 112 ---------------------------------------- . ) | ( . Ok(LitKind::Byte(b'0') | LitKind::Char('0')), . Ok(LitKind::Byte(b'9') | LitKind::Char('9')), . ) . ) . }, . _ => false, . } 12 ( 0.00%) } 704 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/attrs/duplicated_attributes.rs -------------------------------------------------------------------------------- Ir -- line 11 ---------------------------------------- . fn emit_if_duplicated( . cx: &EarlyContext<'_>, . attr: &MetaItem, . attr_paths: &mut FxHashMap, . complete_path: String, . ) { . match attr_paths.entry(complete_path) { . Entry::Vacant(v) => { 96 ( 0.00%) v.insert(attr.span); 94 ( 0.00%) }, . Entry::Occupied(o) => { . span_lint_and_then(cx, DUPLICATED_ATTRIBUTES, attr.span, "duplicated attribute", |diag| { . diag.span_note(*o.get(), "first defined here"); . diag.span_help(attr.span, "remove this attribute"); . }); . }, . } . } . 14,839 ( 0.00%) fn check_duplicated_attr( . cx: &EarlyContext<'_>, . attr: &MetaItem, . attr_paths: &mut FxHashMap, . parent: &mut Vec, . ) { 2,698 ( 0.00%) if attr.span.from_expansion() { . return; . } 1,735 ( 0.00%) let attr_path = if let Some(ident) = attr.ident() { 2,529 ( 0.00%) => ???:::ident (282x) 578 ( 0.00%) ident.name . } else { 174 ( 0.00%) Symbol::intern(&path_to_string(&attr.path)) 3,657 ( 0.00%) => ???:rustc_ast_pretty::pprust::path_to_string (3x) . }; 2,167 ( 0.00%) if let Some(ident) = attr.ident() { 2,529 ( 0.00%) => ???:::ident (282x) . let name = ident.name; . if name == sym::doc || name == sym::rustc_on_unimplemented || name == sym::reason { . // FIXME: Would be nice to handle `cfg_attr` as well. Only problem is to check that cfg . // conditions are the same. . // `#[rustc_on_unimplemented]` contains duplicated subattributes, that's expected. . return; . } . } 4 ( 0.00%) if let Some(value) = attr.value_str() { . emit_if_duplicated( . cx, . attr, . attr_paths, 30 ( 0.00%) format!("{}:{attr_path}={value}", parent.iter().join(":")), 48 ( 0.00%) => /home/moon/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itertools-0.15.0/src/lib.rs: as itertools::Itertools>::join (2x) . ); 424 ( 0.00%) } else if let Some(sub_attrs) = attr.meta_item_list() { 188 ( 0.00%) => ???:::meta_item_list (41x) 12 ( 0.00%) parent.push(attr_path); 36 ( 0.00%) for sub_attr in sub_attrs { . if let Some(meta) = sub_attr.meta_item() { 390 ( 0.00%) check_duplicated_attr(cx, meta, attr_paths, parent); 177,616 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/attrs/duplicated_attributes.rs:clippy_lints::attrs::duplicated_attributes::check_duplicated_attr'2 (65x) . } . } . parent.pop(); . } else { 1,128 ( 0.00%) emit_if_duplicated(cx, attr, attr_paths, format!("{}:{attr_path}", parent.iter().join(":"))); 696 ( 0.00%) => /home/moon/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itertools-0.15.0/src/lib.rs: as itertools::Itertools>::join (29x) . } 10,792 ( 0.00%) } . . pub fn check(cx: &EarlyContext<'_>, attrs: &[Attribute]) { . let mut attr_paths = FxHashMap::default(); . . for attr in attrs { 50,400 ( 0.00%) if let Some(meta) = attr.meta() { 498,924 ( 0.01%) => ???:::meta (7,512x) 6,420 ( 0.00%) check_duplicated_attr(cx, &meta, &mut attr_paths, &mut Vec::new()); 266,331 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/attrs/duplicated_attributes.rs:clippy_lints::attrs::duplicated_attributes::check_duplicated_attr (1,284x) . } . } . } 173 ( 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/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`. 2,432 ( 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 { 328 ( 0.00%) if let [segment] = self.segments.as_ref() . && segment == name . { . true . } else { . false . } . } . } -- line 114 ---------------------------------------- -- line 203 ---------------------------------------- . s.push_str(&ident.to_string()); . } . s . } . . /// A segment of a path: an identifier, an optional lifetime, and a set of types. . /// . /// E.g., `std`, `String` or `Box`. 14 ( 0.00%) #[derive(Clone, Encodable, Decodable, Debug, Walkable)] . pub struct PathSegment { . /// The identifier portion of this path segment. . pub ident: Ident, . . pub id: NodeId, . . /// Type/lifetime parameters attached to this path. They come in . /// two flavors: `Path` and `Path(A,B) -> C`. -- line 219 ---------------------------------------- -- 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 { 82 ( 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)`. 2,208 ( 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. 492 ( 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. 588 ( 0.00%) #[derive(Clone, Encodable, Decodable, Debug, Walkable)] 4,271 ( 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 (90x) . 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 { 417 ( 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`. 77,774 ( 0.00%) #[derive(Clone, Encodable, Decodable, Debug, Walkable)] 257,769 ( 0.01%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_ast/src/ast.rs:::clone (699x) . pub struct Pat { 3 ( 0.00%) pub id: NodeId, 6 ( 0.00%) pub kind: PatKind, 1,115 ( 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:::clone'2 (1x) . pub span: Span, . } . . impl Pat { . /// Attempt reparsing the pattern as a type. . /// This is intended for use by diagnostics. . pub fn to_ty(&self) -> Option> { . let kind = match &self.kind { -- line 635 ---------------------------------------- -- line 712 ---------------------------------------- . while let PatKind::Ref(inner, _, _) = ¤t.kind { . current = inner; . } . current . } . . /// Is this a `..` pattern? . pub fn is_rest(&self) -> bool { 1,014 ( 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 771 ---------------------------------------- . } . } . . /// A single field in a struct pattern. . /// . /// Patterns like the fields of `Foo { x, ref y, ref mut z }` . /// are treated the same as `x: x, y: ref y, z: ref mut z`, . /// except when `is_shorthand` is true. 102 ( 0.00%) #[derive(Clone, Encodable, Decodable, Debug, Walkable)] . pub struct PatField { . /// The identifier for the field. . pub ident: Ident, . /// The pattern the field is destructured to. . pub pat: Box, . pub is_shorthand: bool, . pub attrs: AttrVec, . pub id: NodeId, . pub span: Span, . pub is_placeholder: bool, . } . 274 ( 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 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`. 68,752 ( 0.00%) #[derive(Clone, Encodable, Decodable, Debug, Walkable)] 28 ( 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'2 (1x) . 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`), . /// or a unit struct/variant pattern, or a const pattern (in the last two cases the third . /// field must be `None`). Disambiguation cannot be done with parser alone, so it happens . /// during name resolution. 2 ( 0.00%) Ident(BindingMode, Ident, Option>), . . /// A struct or struct variant pattern (e.g., `Variant {x, y, ..}`). 1 ( 0.00%) Struct(Option>, Path, ThinVec, PatFieldsRest), . . /// A tuple struct/variant pattern (`Variant(x, y, .., z)`). 547 ( 0.00%) TupleStruct(Option>, Path, ThinVec), . . /// An or-pattern `A | B | C`. . /// Invariant: `pats.len() >= 2`. . Or(ThinVec), . . /// A possibly qualified path pattern. . /// Unqualified path patterns `A::B::C` can legally refer to variants, structs, constants . /// or associated constants. Qualified path patterns `::B::C`/`::B::C` can -- line 897 ---------------------------------------- -- line 945 ---------------------------------------- . /// A macro pattern; pre-expansion. . MacCall(Box), . . /// Placeholder for a pattern that wasn't syntactically well formed in some way. . Err(ErrorGuaranteed), . } . . /// Whether the `..` is present in a struct fields pattern. 4 ( 0.00%) #[derive(Clone, Copy, Encodable, Decodable, Debug, PartialEq, Walkable)] . pub enum PatFieldsRest { . /// `module::StructName { field, ..}` . Rest(Span), . /// `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`. 80 ( 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, . } . 6,690 ( 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::*; 188 ( 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::*; 2,244 ( 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 { 34 ( 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, . } . } . } . 7 ( 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. 461 ( 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,196 ( 0.00%) match self { . Self::Decl => None, 623 ( 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,200 ( 0.00%) #[derive(Clone, Encodable, Decodable, Debug)] . pub struct Expr { 48 ( 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; 24 ( 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, . } . 1,188 ( 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. -- line 1728 ---------------------------------------- -- line 1737 ---------------------------------------- . pub struct StructExpr { . pub qself: Option>, . pub path: Path, . pub fields: ThinVec, . pub rest: StructRest, . } . . // Adding a new variant? Please update `test_expr` in `tests/ui/macros/stringify.rs`. 458 ( 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. 55 ( 0.00%) Call(Box, ThinVec>), 2,563 ( 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 (11x) . /// 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. 2 ( 0.00%) Field(Box, Ident), 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) . /// An indexing operation (e.g., `foo[2]`). . /// The span represents the span of the `[2]`, including brackets. 21 ( 0.00%) Index(Box, Box, Span), 948 ( 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`). 30 ( 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

(&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; 482 ( 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 ---------------------------------------- 2,427,684 ( 0.06%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/upper_case_acronyms.rs -------------------------------------------------------------------------------- Ir -- line 65 ---------------------------------------- . } . } else { . count = 0; . } . } . count == 2 . } . 1,248 ( 0.00%) fn check_ident(cx: &LateContext<'_>, ident: &Ident, hir_id: HirId, be_aggressive: bool) { 288 ( 0.00%) let s = ident.as_str(); 3,072 ( 0.00%) => ???:::as_str (96x) . . // By default, only warn for upper case identifiers with at least 3 characters. 192 ( 0.00%) let replacement = if s.len() > 2 && s.bytes().all(|c| c.is_ascii_uppercase()) { . let mut r = String::with_capacity(s.len()); . let mut s = s.chars(); . r.push(s.next().unwrap()); . r.extend(s.map(|c| c.to_ascii_lowercase())); . r 192 ( 0.00%) } else if be_aggressive . // Only lint if the ident starts with an upper case character. . && let unprefixed = s.trim_start_matches('_') . && unprefixed.starts_with(|c: char| c.is_ascii_uppercase()) . && contains_acronym(unprefixed) . { . let mut r = String::with_capacity(s.len()); . let mut s = s.chars(); . let mut prev_upper = false; -- line 91 ---------------------------------------- -- line 115 ---------------------------------------- . diag.span_suggestion( . ident.span, . "consider making the acronym lowercase, except the initial letter", . replacement, . Applicability::MaybeIncorrect, . ); . }, . ); 768 ( 0.00%) } . . impl LateLintPass<'_> for UpperCaseAcronyms { 31,920 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'_>, it: &Item<'_>) { . // do not lint public items or in macros 9,576 ( 0.00%) if it.span.in_external_macro(cx.sess().source_map()) 22,330 ( 0.00%) || (self.avoid_breaking_exported_api && cx.effective_visibilities.is_exported(it.owner_id.def_id)) 173,430 ( 0.00%) => ???:::is_exported (3,190x) . { . return; . } 5,795 ( 0.00%) match it.kind { 168 ( 0.00%) ItemKind::TyAlias(ident, ..) | ItemKind::Struct(ident, ..) | ItemKind::Trait { ident, .. } => { 210 ( 0.00%) check_ident(cx, &ident, it.hir_id(), self.upper_case_acronyms_aggressive); 3,157 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/upper_case_acronyms.rs:clippy_lints::upper_case_acronyms::check_ident (42x) . }, 28 ( 0.00%) ItemKind::Enum(ident, _, ref enumdef) => { 42 ( 0.00%) check_ident(cx, &ident, it.hir_id(), self.upper_case_acronyms_aggressive); 525 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/upper_case_acronyms.rs:clippy_lints::upper_case_acronyms::check_ident (7x) . // check enum variants separately because again we only want to lint on private enums and . // the fn check_variant does not know about the vis of the enum of its variants 7 ( 0.00%) enumdef.variants.iter().for_each(|variant| { 282 ( 0.00%) check_ident(cx, &variant.ident, variant.hir_id, self.upper_case_acronyms_aggressive); 3,511 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/upper_case_acronyms.rs:clippy_lints::upper_case_acronyms::check_ident (47x) . }); . }, . _ => {}, . } 25,536 ( 0.00%) } . } 49 ( 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 { 1,134 ( 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> { 16 ( 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> { 16 ( 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 { 133,608 ( 0.00%) fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { 44,536 ( 0.00%) if let ExprKind::Binary(binop, lhs, rhs) = &expr.kind 764 ( 0.00%) && let Ok(le_or_ge) = LeOrGe::try_from(binop.node) 16 ( 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); . } 155,876 ( 0.00%) } . } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/unneeded_struct_pattern.rs -------------------------------------------------------------------------------- Ir -- line 36 ---------------------------------------- . pub UNNEEDED_STRUCT_PATTERN, . style, . "using struct pattern to match against unit variant" . } . . declare_lint_pass!(UnneededStructPattern => [UNNEEDED_STRUCT_PATTERN]); . . impl LateLintPass<'_> for UnneededStructPattern { 46,571 ( 0.00%) fn check_pat(&mut self, cx: &LateContext<'_>, pat: &Pat<'_>) { 13,306 ( 0.00%) if !pat.span.from_expansion() 11,691 ( 0.00%) && let PatKind::Struct(path, [], _) = &pat.kind . && let QPath::Resolved(_, path) = path . && let Res::Def(DefKind::Variant, did) = path.res . { . let enum_did = cx.tcx.parent(did); . let variant = cx.tcx.adt_def(enum_did).variant_with_id(did); . . let has_only_fields_brackets = variant.ctor.is_some() && variant.fields.is_empty(); . let non_exhaustive_activated = variant.field_list_has_applicable_non_exhaustive(); -- line 54 ---------------------------------------- -- line 67 ---------------------------------------- . brackets_span, . "struct pattern is not needed for a unit variant", . "remove the struct pattern", . String::new(), . Applicability::MachineApplicable, . ); . } . } 53,224 ( 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 { 271,940 ( 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. 136,627 ( 0.00%) if let Some(macro_call) = matching_root_macro_call(cx, expr.span, sym::format_macro) 5,586,234 ( 0.14%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::matching_root_macro_call (27,194x) 679 ( 0.00%) && first_node_in_macro(cx, expr).is_some_and(|p_expn| p_expn != macro_call.expn) 10,512 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::first_node_in_macro:: (219x) 88 ( 0.00%) && let Some(format_args) = self.format_args.get(cx, expr, macro_call.expn) 32,527 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:::get (11x) . { 11 ( 0.00%) let mut applicability = Applicability::MachineApplicable; . let call_site = macro_call.span; . . match (format_args.arguments.all_args(), &format_args.template[..]) { 26 ( 0.00%) ([], []) => span_useless_format_empty(cx, call_site, "String::new()".to_owned(), applicability), . ([], [_]) => { . // Simulate macro expansion, converting {{ and }} to { and }. . let Some(snippet) = format_args.span.get_text(cx) else { . return; . }; . let s_expand = snippet.replace("{{", "{").replace("}}", "}"); . let sugg = format!("{s_expand}.to_string()"); . span_useless_format(cx, call_site, sugg, applicability); . }, 18 ( 0.00%) ([arg], [piece]) => { . if let Some(value) = find_format_arg_expr(expr, arg) . && let FormatArgsPiece::Placeholder(placeholder) = piece . && placeholder.format_trait == FormatTrait::Display . && placeholder.format_options == FormatOptions::default() . && match cx.typeck_results().expr_ty(value).peel_refs().kind() { . ty::Adt(adt, _) => Some(adt.did()) == cx.tcx.lang_items().string(), . ty::Str => true, . _ => false, -- line 87 ---------------------------------------- -- line 101 ---------------------------------------- . format!("{}.to_string()", sugg.maybe_paren()) . }; . span_useless_format(cx, call_site, sugg, applicability); . } . }, . _ => {}, . } . } 217,552 ( 0.01%) } . } . . 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 ---------------------------------------- 27,194 ( 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 { 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { . // match call to unwrap 61,295 ( 0.00%) if let ExprKind::MethodCall(unwrap_fun, write_call, [], _) = expr.kind 1,547 ( 0.00%) && unwrap_fun.ident.name == sym::unwrap . // match call to write_fmt 183 ( 0.00%) && let ExprKind::MethodCall(write_fun, write_recv, [write_arg], _) = *look_in_block(cx, &write_call.kind) 2 ( 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, . ); . } 217,552 ( 0.01%) } . } . . /// 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> { 99 ( 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 ---------------------------------------- 33 ( 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_hir_id/src/lib.rs -------------------------------------------------------------------------------- Ir -- line 76 ---------------------------------------- . /// `hir::Item`, `hir::TraitItem`, or `hir::ImplItem` (i.e., the closest "item-like"), . /// and the `local_id` which is unique within the given owner. . /// . /// This two-level structure makes for more stable values: One can move an item . /// around within the source code, or add or remove stuff before it, without . /// the `local_id` part of the `HirId` changing, which is a very useful property in . /// incremental compilation where we have to persist things through changes to . /// the code base. 358,830 ( 0.01%) #[derive(Copy, Clone, PartialEq, Eq, Hash, Encodable, Decodable, StableHash)] . #[rustc_pass_by_value] . pub struct HirId { 7,670 ( 0.00%) pub owner: OwnerId, . pub local_id: ItemLocalId, . } . . // To ensure correctness of incremental compilation, . // `HirId` must not implement `Ord` or `PartialOrd`. . // See https://github.com/rust-lang/rust/issues/90317. . impl !Ord for HirId {} . impl !PartialOrd for HirId {} -- line 95 ---------------------------------------- -- line 138 ---------------------------------------- . rustc_data_structures::define_stable_id_collections!(HirIdMap, HirIdSet, HirIdMapEntry, HirId); . rustc_data_structures::define_id_collections!( . ItemLocalMap, . ItemLocalSet, . ItemLocalMapEntry, . ItemLocalId . ); . 3,892 ( 0.00%) rustc_index::newtype_index! { . /// An `ItemLocalId` uniquely identifies something within a given "item-like"; . /// that is, within a `hir::Item`, `hir::TraitItem`, or `hir::ImplItem`. There is no . /// guarantee that the numerical value of a given `ItemLocalId` corresponds to . /// the node's position within the owning item in any way, but there is a . /// guarantee that the `ItemLocalId`s within an owner occupy a dense range of . /// integers starting at zero, so a mapping that maps all or most nodes within . /// an "item-like" to something else can be implemented by a `Vec` instead of a . /// tree or hash map. -- line 154 ---------------------------------------- 2,252 ( 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 { 217,552 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 54,388 ( 0.00%) if !expr.span.from_expansion() . && let Some(if_expr) = If::hir(expr) . && let Some(r#else) = if_expr.r#else 471 ( 0.00%) && let ExprKind::Binary(op, rhs, lhs) = if_expr.cond.kind 286 ( 0.00%) && let (BinOpKind::Gt | BinOpKind::Ge, mut a, mut b) | (BinOpKind::Lt | BinOpKind::Le, mut b, mut a) = . (op.node, rhs, lhs) 2 ( 0.00%) && let Some((ty, b_n_refs)) = self.are_ty_eligible(cx, a, b) 20 ( 0.00%) && is_sub_expr(cx, if_expr.then, a, b, ty) 129 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/manual_abs_diff.rs:clippy_lints::manual_abs_diff::is_sub_expr (2x) . && is_sub_expr(cx, r#else, b, a, ty) . { . span_lint_and_then( . cx, . MANUAL_ABS_DIFF, . expr.span, . "manual absolute difference pattern without using `abs_diff`", . |diag| { -- line 73 ---------------------------------------- -- 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); . }, . ); . } 217,552 ( 0.01%) } . } . . 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)> { 18 ( 0.00%) let is_int = |ty: Ty<'_>| matches!(ty.kind(), ty::Uint(_) | ty::Int(_)) && self.msrv.meets(cx, msrvs::ABS_DIFF); 54 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/msrvs.rs:::meets (2x) . let is_duration = . |ty: Ty<'_>| ty.is_diag_item(cx, sym::Duration) && self.msrv.meets(cx, msrvs::DURATION_ABS_DIFF); . 8 ( 0.00%) let a_ty = cx.typeck_results().expr_ty(a).peel_refs(); 80 ( 0.00%) => ???:::expr_ty (2x) 12 ( 0.00%) let (b_ty, b_n_refs, _) = peel_and_count_ty_refs(cx.typeck_results().expr_ty(b)); 80 ( 0.00%) => ???:::expr_ty (2x) 18 ( 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 (2x) . 6 ( 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. 54 ( 0.00%) fn is_sub_expr( . cx: &LateContext<'_>, . expr: &Expr<'_>, . expected_a: &Expr<'_>, . expected_b: &Expr<'_>, . expected_ty: Ty<'_>, . ) -> bool { . let expr = peel_blocks(expr); . 4 ( 0.00%) if let ty::Int(ty) = expected_ty.kind() { . let unsigned = Ty::new_uint(cx.tcx, ty.to_unsigned()); . . return if let ExprKind::Cast(expr, cast_ty) = expr.kind . && cx.typeck_results().node_type(cast_ty.hir_id) == unsigned . { . is_sub_expr(cx, expr, expected_a, expected_b, unsigned) . } else { . false . }; . } . 2 ( 0.00%) let ctxt = expr.span.ctxt(); 4 ( 0.00%) if let ExprKind::Binary(op, a, b) = expr.kind . && let BinOpKind::Sub = op.node . && eq_expr_value(cx, ctxt, a, expected_a) . && eq_expr_value(cx, ctxt, b, expected_b) . { . true . } else { . false . } 18 ( 0.00%) } . . fn is_unsuffixed_numeral_lit(expr: &Expr<'_>) -> bool { . matches!(expr.kind, ExprKind::Lit(lit) if lit.node.is_numeric() && lit.node.is_unsuffixed()) . } 67 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/size_of_in_element_count.rs -------------------------------------------------------------------------------- Ir -- line 27 ---------------------------------------- . #[clippy::version = "1.50.0"] . pub SIZE_OF_IN_ELEMENT_COUNT, . correctness, . "using `size_of::` or `size_of_val::` where a count of elements of `T` is expected" . } . . declare_lint_pass!(SizeOfInElementCount => [SIZE_OF_IN_ELEMENT_COUNT]); . 180 ( 0.00%) fn get_size_of_ty<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>, inverted: bool) -> Option> { 101 ( 0.00%) match expr.kind { . ExprKind::Call(count_func, _) => { . if !inverted . && let ExprKind::Path(ref count_func_qpath) = count_func.kind . && let Some(def_id) = cx.qpath_res(count_func_qpath, count_func.hir_id).opt_def_id() . && matches!( . cx.tcx.get_diagnostic_name(def_id), . Some(sym::mem_size_of | sym::mem_size_of_val) . ) . { . cx.typeck_results().node_args(count_func.hir_id).types().next() . } else { . None . } . }, 3 ( 0.00%) ExprKind::Binary(op, left, right) if BinOpKind::Mul == op.node => { . get_size_of_ty(cx, left, inverted).or_else(|| get_size_of_ty(cx, right, inverted)) . }, . ExprKind::Binary(op, left, right) if BinOpKind::Div == op.node => { . get_size_of_ty(cx, left, inverted).or_else(|| get_size_of_ty(cx, right, !inverted)) . }, . ExprKind::Cast(expr, _) => get_size_of_ty(cx, expr, inverted), . _ => None, . } 120 ( 0.00%) } . . fn get_pointee_ty_and_count_expr<'tcx>( . cx: &LateContext<'tcx>, . expr: &'tcx Expr<'_>, . ) -> Option<(Ty<'tcx>, &'tcx Expr<'tcx>)> { . const METHODS: [Symbol; 10] = [ . sym::copy_to, . sym::copy_from, -- line 68 ---------------------------------------- -- line 71 ---------------------------------------- . sym::add, . sym::wrapping_add, . sym::sub, . sym::wrapping_sub, . sym::offset, . sym::wrapping_offset, . ]; . 143,529 ( 0.00%) if let ExprKind::Call(func, [.., count]) = expr.kind . // Find calls to ptr::{copy, copy_nonoverlapping} . // and ptr::swap_nonoverlapping, 9,165 ( 0.00%) && let ExprKind::Path(ref func_qpath) = func.kind 15,275 ( 0.00%) && let Some(def_id) = cx.qpath_res(func_qpath, func.hir_id).opt_def_id() 86,734 ( 0.00%) => ???:::qpath_res (3,055x) 39,507 ( 0.00%) && matches!(cx.tcx.get_diagnostic_name(def_id), Some( 178,543 ( 0.00%) => ???:::get_diagnostic_name (3,039x) . 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)); . } 12,572 ( 0.00%) if let ExprKind::MethodCall(method_path, ptr_self, [.., count], _) = expr.kind . // Find calls to copy_{from,to}{,_nonoverlapping} 1,133 ( 0.00%) && let method_ident = method_path.ident.name . && METHODS.contains(&method_ident) . . // Get the pointee type 30 ( 0.00%) && let ty::RawPtr(pointee_ty, _) = 15 ( 0.00%) cx.typeck_results().expr_ty(ptr_self).kind() 600 ( 0.00%) => ???:::expr_ty (15x) . { 15 ( 0.00%) return Some((*pointee_ty, count)); . } . None . } . . impl<'tcx> LateLintPass<'tcx> for SizeOfInElementCount { 163,164 ( 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 30 ( 0.00%) && pointee_ty != cx.tcx.types.u8 . // Find calls to functions with an element count parameter and get . // the pointee type and count parameter expression . . // Find a size_of call in the count parameter expression and . // check that it's the same type 60 ( 0.00%) && let Some(ty_used_for_size_of) = get_size_of_ty(cx, count_expr, false) 421 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/size_of_in_element_count.rs:clippy_lints::size_of_in_element_count::get_size_of_ty (15x) . && 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); . } 163,164 ( 0.00%) } . } 6,155 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/misc_early/mod.rs -------------------------------------------------------------------------------- Ir -- line 310 ---------------------------------------- . SEPARATED_LITERAL_SUFFIX, . UNNEEDED_FIELD_PATTERN, . UNNEEDED_WILDCARD_PATTERN, . UNSEPARATED_LITERAL_SUFFIX, . ZERO_PREFIXED_LITERAL, . ]); . . impl EarlyLintPass for MiscEarlyLints { 24,430 ( 0.00%) fn check_generics(&mut self, cx: &EarlyContext<'_>, generics: &Generics) { . for param in &generics.params { . builtin_type_shadow::check(cx, param); . } 27,920 ( 0.00%) } . 42,777 ( 0.00%) fn check_pat(&mut self, cx: &EarlyContext<'_>, pat: &Pat) { 14,259 ( 0.00%) unneeded_field_pattern::check(cx, pat); 85,713 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/misc_early/unneeded_field_pattern.rs:clippy_lints::misc_early::unneeded_field_pattern::check (4,753x) 14,259 ( 0.00%) redundant_pattern::check(cx, pat); 104,574 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/misc_early/redundant_pattern.rs:clippy_lints::misc_early::redundant_pattern::check (4,753x) 14,259 ( 0.00%) redundant_at_rest_pattern::check(cx, pat); 14,259 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/misc_early/redundant_at_rest_pattern.rs:clippy_lints::misc_early::redundant_at_rest_pattern::check (4,753x) . unneeded_wildcard_pattern::check(cx, pat); 38,024 ( 0.00%) } . 155,876 ( 0.00%) fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { . // `check_lit` only lints integer literals and suffixed float literals. 49,112 ( 0.00%) if let ExprKind::Lit(lit) = expr.kind 6,088 ( 0.00%) && match lit.kind { . token::LitKind::Integer => true, . token::LitKind::Float => lit.suffix.is_some(), . _ => false, . } 1,164 ( 0.00%) && !expr.span.in_external_macro(cx.sess().source_map()) . { . MiscEarlyLints::check_lit(cx, lit, expr.span); . } 178,144 ( 0.00%) } . } . . impl MiscEarlyLints { . fn check_lit(cx: &EarlyContext<'_>, lit: token::Lit, span: Span) { . // We test if first character in snippet is a number, because the snippet could be an expansion . // from a built-in macro like `line!()` or a proc-macro like `#[wasm_bindgen]`. . // Note that this check also covers special case that `line!()` is eagerly expanded by compiler. . // See for a regression. . // FIXME: Find a better way to detect those cases. 776 ( 0.00%) let lit_snip = match snippet_opt(cx, span) { 388 ( 0.00%) Some(snip) if snip.starts_with(|c: char| c.is_ascii_digit()) => snip, . _ => return, . }; . 248 ( 0.00%) let lit_kind = LitKind::from_token_lit(lit); 35,192 ( 0.00%) => ???:::from_token_lit (248x) 1,488 ( 0.00%) if let Ok(LitKind::Int(value, lit_int_type)) = lit_kind { 992 ( 0.00%) let suffix = match lit_int_type { . LitIntType::Signed(ty) => ty.name_str(), . LitIntType::Unsigned(ty) => ty.name_str(), . LitIntType::Unsuffixed => "", . }; 2,480 ( 0.00%) literal_suffix::check(cx, span, &lit_snip, suffix, "integer"); 8,850 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/misc_early/literal_suffix.rs:clippy_lints::misc_early::literal_suffix::check (248x) 27 ( 0.00%) if lit_snip.starts_with("0x") { 32 ( 0.00%) mixed_case_hex_literals::check(cx, span, suffix, &lit_snip); 338 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/misc_early/mixed_case_hex_literals.rs:clippy_lints::misc_early::mixed_case_hex_literals::check (4x) 999 ( 0.00%) } else if lit_snip.starts_with("0b") || lit_snip.starts_with("0o") { . // nothing to do 165 ( 0.00%) } else if value != 0 && lit_snip.starts_with('0') { . zero_prefixed_literal::check(cx, span, &lit_snip); . } . } else if let Ok(LitKind::Float(_, LitFloatType::Suffixed(float_ty))) = lit_kind { . let suffix = float_ty.name_str(); . literal_suffix::check(cx, span, &lit_snip, suffix, "float"); . } . } . } -- line 378 ---------------------------------------- 6,076 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/doc/missing_headers.rs -------------------------------------------------------------------------------- Ir -- line 6 ---------------------------------------- . use clippy_utils::visitors::for_each_expr; . use clippy_utils::{fulfill_or_allowed, is_doc_hidden, is_inside_always_const_context, method_chain_args, return_ty}; . use rustc_hir::{BodyId, FnSig, OwnerId, Safety}; . use rustc_lint::LateContext; . use rustc_middle::ty; . use rustc_span::{Span, sym}; . use std::ops::ControlFlow; . 4,706 ( 0.00%) pub fn check( . cx: &LateContext<'_>, . owner_id: OwnerId, . sig: FnSig<'_>, . headers: DocHeaders, . body_id: Option, . check_private_items: bool, . ) { 2,534 ( 0.00%) if !check_private_items && !cx.effective_visibilities.is_exported(owner_id.def_id) { 19,329 ( 0.00%) => ???:::is_exported (362x) . return; // Private functions do not require doc comments . } . . // do not lint if any parent has `#[doc(hidden)]` attribute (#7347) . if !check_private_items 196 ( 0.00%) && cx . .tcx . .hir_parent_iter(owner_id.into()) 2,352 ( 0.00%) .any(|(id, _node)| is_doc_hidden(cx.tcx.hir_attrs(id))) 28,137 ( 0.00%) => ???:::hir_attrs (588x) . { . return; . } . . let span = cx.tcx.def_span(owner_id); 965 ( 0.00%) match (headers.safety, sig.header.safety()) { . (false, Safety::Unsafe) => span_lint( . cx, . MISSING_SAFETY_DOC, . span, . "unsafe function's docs are missing a `# Safety` section", . ), . (true, Safety::Safe) => span_lint( . cx, . UNNECESSARY_SAFETY_DOC, . span, . "safe function's docs have unnecessary `# Safety` section", . ), . _ => (), . } 561 ( 0.00%) if !headers.panics . && let Some(body_id) = body_id 360 ( 0.00%) && let Some(panic_span) = find_panic(cx, body_id) . { . span_lint_and_note( . cx, . MISSING_PANICS_DOC, . span, . "docs for function which may panic missing `# Panics` section", . Some(panic_span), . "first possible panic found here", . ); . } 386 ( 0.00%) if !headers.errors { 889 ( 0.00%) if return_ty(cx, owner_id).is_diag_item(cx, sym::Result) { 60,413 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::return_ty (193x) . span_lint( . cx, . MISSING_ERRORS_DOC, . span, . "docs for function returning `Result` missing `# Errors` section", . ); 149 ( 0.00%) } else if let Some(body_id) = body_id 584 ( 0.00%) && let Some(future) = cx.tcx.lang_items().future_trait() 4,380 ( 0.00%) => ???:::lang_items (146x) 1,022 ( 0.00%) && let typeck = cx.tcx.typeck_body(body_id) 24,664 ( 0.00%) => ???:::typeck_body (146x) 584 ( 0.00%) && let body = cx.tcx.hir_body(body_id) 7,743 ( 0.00%) => ???:::hir_body (146x) 584 ( 0.00%) && let ret_ty = typeck.expr_ty(body.value) 5,840 ( 0.00%) => ???:::expr_ty (146x) 2,190 ( 0.00%) && implements_trait_with_env( 889,656 ( 0.02%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::implements_trait_with_env (146x) . cx.tcx, 584 ( 0.00%) ty::TypingEnv::non_body_analysis(cx.tcx, owner_id.def_id), 5,900 ( 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:: (146x) . ret_ty, . future, . Some(owner_id.def_id.to_def_id()), . &[], . ) . && let ty::Coroutine(_, subs) = ret_ty.kind() . && subs.as_coroutine().return_ty().is_diag_item(cx, sym::Result) . { -- line 88 ---------------------------------------- -- line 89 ---------------------------------------- . span_lint( . cx, . MISSING_ERRORS_DOC, . span, . "docs for function returning `Result` missing `# Errors` section", . ); . } . } 2,896 ( 0.00%) } . . fn find_panic(cx: &LateContext<'_>, body_id: BodyId) -> Option { 180 ( 0.00%) let mut panic_span = None; 1,260 ( 0.00%) let typeck = cx.tcx.typeck_body(body_id); 30,348 ( 0.00%) => ???:::typeck_body (180x) 900 ( 0.00%) for_each_expr(cx.tcx, cx.tcx.hir_body(body_id), |expr| { 9,553 ( 0.00%) => ???:::hir_body (180x) 28,480 ( 0.00%) if is_inside_always_const_context(cx.tcx, expr.hir_id) { 52,121 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_inside_always_const_context (180x) . return ControlFlow::::Continue(()); . } . 200 ( 0.00%) if let Some(macro_call) = root_macro_call_first_node(cx, expr) 240 ( 0.00%) && (is_panic(cx, macro_call.def_id) 2,675 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::is_panic (40x) 111 ( 0.00%) || matches!( 148 ( 0.00%) cx.tcx.get_diagnostic_name(macro_call.def_id), 1,890 ( 0.00%) => ???:::get_diagnostic_name (37x) . Some(sym::assert_macro | sym::assert_eq_macro | sym::assert_ne_macro) . )) 3 ( 0.00%) && !fulfill_or_allowed(cx, MISSING_PANICS_DOC, [expr.hir_id]) . && panic_span.is_none() . { . panic_span = Some(macro_call.span); . } . . // check for `unwrap` and `expect` for both `Option` and `Result` 2,858 ( 0.00%) if let Some(arglists) = 34,126 ( 0.00%) method_chain_args(expr, &[sym::unwrap]).or_else(|| method_chain_args(expr, &[sym::expect])) 49,683 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::method_chain_args (360x) 30 ( 0.00%) && let receiver_ty = typeck.expr_ty(arglists[0].0).peel_refs() 400 ( 0.00%) => ???:::expr_ty (10x) 46 ( 0.00%) && matches!(receiver_ty.opt_diag_name(cx), Some(sym::Option | sym::Result)) 10 ( 0.00%) && !fulfill_or_allowed(cx, MISSING_PANICS_DOC, [expr.hir_id]) . && panic_span.is_none() . { . panic_span = Some(expr.span); . } . . // Visit all nodes to fulfill any `#[expect]`s after the first linted panic . ControlFlow::::Continue(()) . }); -- line 132 ---------------------------------------- 1,456 ( 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 { 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 54,388 ( 0.00%) if let ExprKind::Index(array, index, _) = &expr.kind 154 ( 0.00%) && (!self.suppress_restriction_lint_in_const || !cx.tcx.hir_is_inside_const_context(expr.hir_id)) 385 ( 0.00%) && let expr_ty = cx.typeck_results().expr_ty(array) 3,092 ( 0.00%) => ???:::expr_ty (77x) . && 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) . }) 82 ( 0.00%) && !is_from_proc_macro(cx, expr) . { 205 ( 0.00%) let note = "the suggestion might not be applicable in constant blocks"; 82 ( 0.00%) let ty = cx.typeck_results().expr_ty(array).peel_refs(); 1,640 ( 0.00%) => ???:::expr_ty (41x) 82 ( 0.00%) let allowed_in_tests = self.allow_indexing_slicing_in_tests && is_in_test(cx.tcx, expr.hir_id); 270 ( 0.00%) if let Some(range) = higher::Range::hir(cx, index) { 6,525 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir (41x) . // Ranged indexes, i.e., &x[n..m], &x[n..], &x[..n] and &x[..] 24 ( 0.00%) if let ty::Array(_, s) = ty.kind() { . let size: u128 = if let Some(size) = s.try_to_target_usize(cx.tcx) { . size.into() . } else { . return; . }; . . let const_range = to_const_range(cx, range, size); . -- line 137 ---------------------------------------- -- 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; . } . } . 60 ( 0.00%) let help_msg = match (range.start, range.end) { . (None, Some(_)) => "consider using `.get(..n)`or `.get_mut(..n)` instead", 36 ( 0.00%) (Some(_), None) => "consider using `.get(n..)` or .get_mut(n..)` instead", . (Some(_), Some(_)) => "consider using `.get(n..m)` or `.get_mut(n..m)` instead", . (None, None) => return, // [..] is ok. . }; . 24 ( 0.00%) if allowed_in_tests { . return; . } . 156 ( 0.00%) span_lint_and_then(cx, INDEXING_SLICING, expr.span, "slicing may panic", |diag| { 19,772 ( 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}> (12x) . 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] 58 ( 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) { 222 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::new (1x) 138 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::eval (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) . } . 56 ( 0.00%) if allowed_in_tests { . return; . } . 392 ( 0.00%) span_lint_and_then(cx, INDEXING_SLICING, expr.span, "indexing may panic", |diag| { 45,273 ( 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}> (28x) . 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); . } . }); . } . } 217,552 ( 0.01%) } . } . . /// 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. . fn to_const_range(cx: &LateContext<'_>, range: higher::Range<'_>, array_size: u128) -> (Option, Option) { . let ecx = ConstEvalCtxt::new(cx); . let s = range.start.map(|expr| ecx.eval(expr)); . let start = match s { -- line 239 ---------------------------------------- -- line 261 ---------------------------------------- . /// 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 { 198 ( 0.00%) if let ty::Adt(_, _) = array_ty.kind() 100 ( 0.00%) && let Some(get_output_ty) = get_adt_inherent_method(cx, ty, sym::get).map(|m| { 34,895 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::get_adt_inherent_method (25x) . cx.tcx 8 ( 0.00%) .fn_sig(m.def_id) . .skip_binder() . .output() . .skip_binder() . }) 8 ( 0.00%) && let ty::Adt(def, args) = get_output_ty.kind() 28 ( 0.00%) && cx.tcx.is_diagnostic_item(sym::Option, def.0.did) 372 ( 0.00%) => ???:::is_diagnostic_item (4x) 4 ( 0.00%) && let Some(option_generic_param) = args.first() 12 ( 0.00%) && let generic_ty = option_generic_param.expect_ty().peel_refs() 20 ( 0.00%) => ???:::expect_ty (4x) . // FIXME: ideally this would handle type params and projections properly, for now just assume it's the same type 12 ( 0.00%) && (cx.typeck_results().expr_ty(index_expr).peel_refs() == generic_ty.peel_refs() 160 ( 0.00%) => ???:::expr_ty (4x) . || matches!(generic_ty.peel_refs().kind(), ty::Param(_) | ty::Alias(_, _))) . { . true . } else { . false . } . } 1,408 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/derive/mod.rs -------------------------------------------------------------------------------- Ir -- line 188 ---------------------------------------- . DERIVED_HASH_WITH_MANUAL_EQ, . DERIVE_ORD_XOR_PARTIAL_ORD, . DERIVE_PARTIAL_EQ_WITHOUT_EQ, . EXPL_IMPL_CLONE_ON_COPY, . UNSAFE_DERIVE_DESERIALIZE, . ]); . . impl<'tcx> LateLintPass<'tcx> for Derive { 22,344 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'_>) { 7,789 ( 0.00%) if let ItemKind::Impl(Impl { . of_trait: Some(of_trait), 1,350 ( 0.00%) self_ty, . .. 2,810 ( 0.00%) }) = item.kind 2,700 ( 0.00%) && let Res::Def(_, def_id) = *self_ty.basic_res() . && let Some(local_def_id) = def_id.as_local() . { 1,300 ( 0.00%) let adt_hir_id = cx.tcx.local_def_id_to_hir_id(local_def_id); . let trait_ref = &of_trait.trait_ref; 2,600 ( 0.00%) let ty = cx.tcx.type_of(item.owner_id).instantiate_identity().skip_norm_wip(); 6,500 ( 0.00%) let is_automatically_derived = cx.tcx.is_automatically_derived(item.owner_id.to_def_id()); 145,429 ( 0.00%) => ???:::is_automatically_derived (1,300x) . 10,400 ( 0.00%) derived_hash_with_manual_eq::check(cx, item.span, trait_ref, ty, adt_hir_id, is_automatically_derived); 13,000 ( 0.00%) derive_ord_xor_partial_ord::check(cx, item, trait_ref, ty, adt_hir_id, is_automatically_derived); 211,489 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/derive/derive_ord_xor_partial_ord.rs:clippy_lints::derive::derive_ord_xor_partial_ord::check (1,300x) . 2,600 ( 0.00%) if is_automatically_derived { . unsafe_derive_deserialize::check(cx, item, trait_ref, ty, adt_hir_id); . derive_partial_eq_without_eq::check(cx, item.span, trait_ref, ty, adt_hir_id); . } else { 6,500 ( 0.00%) expl_impl_clone_on_copy::check(cx, item, trait_ref, ty, adt_hir_id); 356,019 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/derive/expl_impl_clone_on_copy.rs:clippy_lints::derive::expl_impl_clone_on_copy::check (1,300x) . } . } 25,536 ( 0.00%) } . } 3,900 ( 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. 712 ( 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). . 319,228 ( 0.01%) let result = crate::intrinsics::read_via_copy(dest); 430,879 ( 0.01%) 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 { 8,183 ( 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 ---------------------------------------- 30,392 ( 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 { 163,164 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { . // check for instances of 0.0/0.0 54,388 ( 0.00%) if let ExprKind::Binary(ref op, left, right) = expr.kind 382 ( 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. 2 ( 0.00%) && let ecx = ConstEvalCtxt::new(cx) 450 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::new (2x) 2 ( 0.00%) && let ctxt = expr.span.ctxt() 10 ( 0.00%) && let Some(lhs_value) = ecx.eval_local(left, ctxt) 324 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::eval_local (2x) . && 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"), . ); . } 190,358 ( 0.00%) } . } 18 ( 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<'_>) { 158 ( 0.00%) if let Some(else_) = expr_block(else_block) 202 ( 0.00%) && !else_.span.from_expansion() 192 ( 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, . ); . }, . ); . } . } . 1,216 ( 0.00%) fn check_collapsible_if_if(&self, cx: &LateContext<'_>, expr: &Expr<'_>, check: &Expr<'_>, then: &Block<'_>) { 28 ( 0.00%) if let Some(inner) = expr_block(then) 348 ( 0.00%) && let ExprKind::If(check_inner, _, None) = &inner.kind 15 ( 0.00%) && 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 179 ---------------------------------------- -- line 209 ---------------------------------------- . . sugg.extend(parens_around(check)); . sugg.extend(parens_around(check_inner)); . . diag.multipart_suggestion("collapse nested if block", sugg, Applicability::MachineApplicable); . }, . ); . } 1,216 ( 0.00%) } . . fn eligible_condition(&self, cx: &LateContext<'_>, cond: &Expr<'_>) -> bool { 779 ( 0.00%) !matches!(cond.kind, ExprKind::Let(..)) || can_use_if_let_chains(cx, self.msrv) 246 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::can_use_if_let_chains (41x) . } . . // 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 { 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'_>, expr: &Expr<'_>) { 54,388 ( 0.00%) if let ExprKind::If(cond, then, else_) = &expr.kind 890 ( 0.00%) && !expr.span.from_expansion() . { 1,161 ( 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) 197 ( 0.00%) && !(single_inner_if_else(then) && single_inner_if_else(else_)) 721 ( 0.00%) && let ExprKind::Block(else_, None) = else_.kind . { 111 ( 0.00%) self.check_collapsible_else_if(cx, then.span, else_); . } else if else_.is_none() 468 ( 0.00%) && self.eligible_condition(cx, cond) 912 ( 0.00%) && let ExprKind::Block(then, None) = then.kind . { 2,128 ( 0.00%) self.check_collapsible_if_if(cx, expr, cond, then); 4,253 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/collapsible_if.rs:::check_collapsible_if_if (152x) . } . } 216,336 ( 0.01%) } . } . . /// Returns true if `expr` is a block that contains only one `if {..} else {}` statement . fn single_inner_if_else(expr: &Expr<'_>) -> bool { 979 ( 0.00%) if let ExprKind::Block(block, None) = expr.kind 252 ( 0.00%) && let Some(inner_expr) = expr_block(block) 300 ( 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>> { 1,242 ( 0.00%) match (block.stmts, block.expr) { 1,506 ( 0.00%) ([], expr) => expr, 444 ( 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 ---------------------------------------- 426 ( 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/string.rs -------------------------------------------------------------------------------- Ir -- line 439 ---------------------------------------- . /// let s = String::new(); . /// ``` . #[inline] . #[rustc_const_stable(feature = "const_string_new", since = "1.39.0")] . #[rustc_diagnostic_item = "string_new"] . #[stable(feature = "rust1", since = "1.0.0")] . #[must_use] . pub const fn new() -> String { 11,344 ( 0.00%) String { vec: Vec::new() } . } . . /// Creates a new empty `String` with at least the specified capacity. . /// . /// `String`s have an internal buffer to hold their data. The capacity is . /// the length of that buffer, and can be queried with the [`capacity`] . /// method. This method creates an empty `String`, but one with an initial . /// buffer that can hold at least `capacity` bytes. This is useful when you -- line 455 ---------------------------------------- -- line 486 ---------------------------------------- . /// // ...but this may make the string reallocate . /// s.push('a'); . /// ``` . #[cfg(not(no_global_oom_handling))] . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . #[must_use] . pub fn with_capacity(capacity: usize) -> String { 120,779 ( 0.00%) String { vec: Vec::with_capacity(capacity) } . } . . /// Creates a new empty `String` with at least the specified capacity. . /// . /// # Errors . /// . /// Returns [`Err`] if the capacity exceeds `isize::MAX` bytes, . /// or if the memory allocator reports failure. -- line 502 ---------------------------------------- -- line 1009 ---------------------------------------- . /// }; . /// . /// assert_eq!("💖", sparkle_heart); . /// ``` . #[inline] . #[must_use] . #[stable(feature = "rust1", since = "1.0.0")] . pub unsafe fn from_utf8_unchecked(bytes: Vec) -> String { 4,731 ( 0.00%) String { vec: bytes } . } . . /// Converts a `String` into a byte vector. . /// . /// This consumes the `String`, so we do not need to copy its contents. . /// . /// # Examples . /// -- line 1025 ---------------------------------------- -- line 1432 ---------------------------------------- . pub fn push(&mut self, ch: char) { . let len = self.len(); . let ch_len = ch.len_utf8(); . self.reserve(ch_len); . . // SAFETY: Just reserved capacity for at least the length needed to encode `ch`. . unsafe { . core::char::encode_utf8_raw_unchecked(ch as u32, self.vec.as_mut_ptr().add(len)); 4,371 ( 0.00%) self.vec.set_len(len + ch_len); . } . } . . /// Returns a byte slice of this `String`'s contents. . /// . /// The inverse of this method is [`from_utf8`]. . /// . /// [`from_utf8`]: String::from_utf8 -- line 1448 ---------------------------------------- -- line 1507 ---------------------------------------- . /// assert_eq!(s.pop(), Some('a')); . /// . /// assert_eq!(s.pop(), None); . /// ``` . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . pub fn pop(&mut self) -> Option { . let ch = self.chars().rev().next()?; 548 ( 0.00%) let newlen = self.len() - ch.len_utf8(); . unsafe { . self.vec.set_len(newlen); . } . Some(ch) . } . . /// Removes a [`char`] from this `String` at byte position `idx` and returns it. . /// -- line 1523 ---------------------------------------- -- line 1889 ---------------------------------------- . /// assert!(!v.is_empty()); . /// ``` . #[inline] . #[must_use] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_stable(feature = "const_vec_string_slice", since = "1.87.0")] . #[rustc_no_implicit_autorefs] . pub const fn is_empty(&self) -> bool { 7 ( 0.00%) self.len() == 0 . } . . /// Splits the string into two at the given byte index. . /// . /// Returns a newly allocated `String`. `self` contains bytes `[0, at)`, and . /// the returned `String` contains bytes `[at, len)`. `at` must be on the . /// boundary of a UTF-8 code point. . /// -- line 1905 ---------------------------------------- -- line 2501 ---------------------------------------- . . #[cfg(not(no_global_oom_handling))] . #[stable(feature = "rust1", since = "1.0.0")] . impl Extend for String { . fn extend>(&mut self, iter: I) { . let iterator = iter.into_iter(); . let (lower_bound, _) = iterator.size_hint(); . self.reserve(lower_bound); 1,548 ( 0.00%) iterator.for_each(move |c| self.push(c)); . } . . #[inline] . fn extend_one(&mut self, c: char) { . self.push(c); . } . . #[inline] -- line 2517 ---------------------------------------- -- line 2740 ---------------------------------------- . fn default() -> String { . String::new() . } . } . . #[stable(feature = "rust1", since = "1.0.0")] . impl fmt::Display for String { . #[inline] 260 ( 0.00%) fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { 520 ( 0.00%) fmt::Display::fmt(&**self, f) 65,401 ( 0.00%) => ???:::fmt (260x) . } . } . . #[stable(feature = "rust1", since = "1.0.0")] . impl fmt::Debug for String { . #[inline] . fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { . fmt::Debug::fmt(&**self, f) -- line 2757 ---------------------------------------- -- line 2806 ---------------------------------------- . #[cfg(not(no_global_oom_handling))] . #[stable(feature = "rust1", since = "1.0.0")] . impl Add<&str> for String { . type Output = String; . . #[inline] . fn add(mut self, other: &str) -> String { . self.push_str(other); 54 ( 0.00%) self . } . } . . /// Implements the `+=` operator for appending to a `String`. . /// . /// This has the same behavior as the [`push_str`][String::push_str] method. . #[cfg(not(no_global_oom_handling))] . #[stable(feature = "stringaddassign", since = "1.12.0")] -- line 2822 ---------------------------------------- -- line 2923 ---------------------------------------- . /// if the `Display` implementation returns an error. . /// This indicates an incorrect `Display` implementation . /// since `fmt::Write for String` never returns an error itself. . #[cfg(not(no_global_oom_handling))] . #[stable(feature = "rust1", since = "1.0.0")] . impl ToString for T { . #[inline] . fn to_string(&self) -> String { 60 ( 0.00%) ::spec_to_string(self) 3,693 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/string.rs:::spec_to_string (15x) . } . } . . #[cfg(not(no_global_oom_handling))] . trait SpecToString { . fn spec_to_string(&self) -> String; . } . . #[cfg(not(no_global_oom_handling))] . impl SpecToString for T { . // A common guideline is to not inline generic functions. However, . // removing `#[inline]` from this method causes non-negligible regressions. . // See , the last attempt . // to try to remove it. . #[inline] 60 ( 0.00%) default fn spec_to_string(&self) -> String { . let mut buf = String::new(); . let mut formatter = . core::fmt::Formatter::new(&mut buf, core::fmt::FormattingOptions::new()); . // Bypass format_args!() to avoid write_str with zero-length strs 6,116 ( 0.00%) fmt::Display::fmt(self, &mut formatter) 13,061 ( 0.00%) => ???:::fmt (59x) . .expect("a Display implementation returned an error unexpectedly"); 6,226 ( 0.00%) buf 45 ( 0.00%) } . } . . #[cfg(not(no_global_oom_handling))] . impl SpecToString for core::ascii::Char { . #[inline] . fn spec_to_string(&self) -> String { . self.as_str().to_owned() . } -- line 2963 ---------------------------------------- -- line 3274 ---------------------------------------- . /// let s = "eggplant".to_string(); . /// let s2 = "eggplant".to_string(); . /// assert_eq!(Cow::from(s), Cow::<'static, str>::Owned(s2)); . /// ``` . /// . /// [`Owned`]: crate::borrow::Cow::Owned "borrow::Cow::Owned" . #[inline] . fn from(s: String) -> Cow<'a, str> { 2,471 ( 0.00%) Cow::Owned(s) . } . } . . #[cfg(not(no_global_oom_handling))] . #[stable(feature = "cow_from_string_ref", since = "1.28.0")] . impl<'a> From<&'a String> for Cow<'a, str> { . /// Converts a [`String`] reference into a [`Borrowed`] variant. . /// No heap allocation is performed, and the string -- line 3290 ---------------------------------------- -- line 3373 ---------------------------------------- . Self::from_utf8(bytes) . } . } . . #[cfg(not(no_global_oom_handling))] . #[stable(feature = "rust1", since = "1.0.0")] . impl fmt::Write for String { . #[inline] 14,833 ( 0.00%) fn write_str(&mut self, s: &str) -> fmt::Result { . self.push_str(s); . Ok(()) 14,833 ( 0.00%) } . . #[inline] . fn write_char(&mut self, c: char) -> fmt::Result { . self.push(c); . Ok(()) . } . } . -- line 3392 ---------------------------------------- 771 ( 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 { 217,552 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &Expr<'tcx>) { 178,874 ( 0.00%) match expr.kind { . // `.get().()` 5,360 ( 0.00%) ExprKind::MethodCall(method, get_call, [], _) 18,564 ( 0.00%) if let Some((recv, nz_ty, nonzero_did, get_span)) = nonzero_get(cx, get_call) 23,647 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/needless_nonzero_get.rs:clippy_lints::needless_nonzero_get::nonzero_get (1,547x) . // 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,528 ( 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) 68 ( 0.00%) if matches!(op.node, AssignOpKind::DivAssign | AssignOpKind::RemAssign) . && let Some((recv, nz_ty, _, get_span)) = nonzero_get(cx, get_call) . && 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()); . }, . . _ => {}, . } 217,552 ( 0.01%) } . } . . /// Returns the receiver, its `NonZero` type and definition, and the `get` identifier span when . /// `expr` is an inherent `NonZero::get()` call. 7,755 ( 0.00%) fn nonzero_get<'tcx>( . cx: &LateContext<'tcx>, . expr: &'tcx Expr<'tcx>, . ) -> Option<(&'tcx Expr<'tcx>, Ty<'tcx>, DefId, Span)> { 3,380 ( 0.00%) let ExprKind::MethodCall(get, recv, [], get_span) = expr.kind else { . return None; . }; 82 ( 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)) 9,306 ( 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 ---------------------------------------- 4,653 ( 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 141 ---------------------------------------- . /// and visiting the expression with a root context while `expn_depth > 0` tells us . /// that it must be a metavariable. . expn_depth: u32, . cx: &'a LateContext<'tcx>, . lint: &'a mut ExprMetavarsInUnsafe, . } . . fn is_public_macro(cx: &LateContext<'_>, def_id: LocalDefId) -> bool { 352 ( 0.00%) (cx.effective_visibilities.is_exported(def_id) || find_attr!(cx.tcx, def_id, MacroExport { .. })) 3,168 ( 0.00%) => ???:>::get_attrs (44x) 1,848 ( 0.00%) => ???:::is_exported (44x) . && !cx.tcx.is_doc_hidden(def_id) . } . . impl<'tcx> Visitor<'tcx> for BodyVisitor<'_, 'tcx> { . fn visit_stmt(&mut self, s: &'tcx Stmt<'tcx>) { 3,864 ( 0.00%) let from_expn = s.span.from_expansion(); . if from_expn { 392 ( 0.00%) self.expn_depth += 1; . } . walk_stmt(self, s); . if from_expn { 392 ( 0.00%) self.expn_depth -= 1; . } . } . 209,184 ( 0.01%) fn visit_expr(&mut self, e: &'tcx Expr<'tcx>) { 26,148 ( 0.00%) let ctxt = e.span.ctxt(); . 52,296 ( 0.00%) if let ExprKind::Block(block, _) = e.kind 5,098 ( 0.00%) && let BlockCheckMode::UnsafeBlock(UnsafeSource::UserProvided) = block.rules . && !ctxt.is_root() 308 ( 0.00%) && let Some(macro_def_id) = ctxt.outer_expn_data().macro_def_id . && let Some(macro_def_id) = macro_def_id.as_local() 176 ( 0.00%) && (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(); 85,742 ( 0.00%) } else if ctxt.is_root() && self.expn_depth > 0 { . let unsafe_block = self.macro_unsafe_blocks.last().copied(); . 912 ( 0.00%) match (self.lint.metavar_expns.entry(e.span), unsafe_block) { 1,270 ( 0.00%) (Entry::Vacant(e), None) => { 254 ( 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) => { 606 ( 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 { 77,076 ( 0.00%) walk_expr(self, e); 2,871,285 ( 0.07%) => /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:: (1,980x) . } 209,184 ( 0.01%) } . } . . impl<'tcx> LateLintPass<'tcx> for ExprMetavarsInUnsafe { 17,820 ( 0.00%) fn check_body(&mut self, cx: &LateContext<'tcx>, body: &rustc_hir::Body<'tcx>) { 15,840 ( 0.00%) if is_lint_allowed(cx, MACRO_METAVARS_IN_UNSAFE, body.value.hir_id) { 2,295,263 ( 0.06%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_lint_allowed (1,980x) . 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 . 11,880 ( 0.00%) let mut vis = BodyVisitor { . macro_unsafe_blocks: Vec::new(), . #[expect(clippy::bool_to_int_with_if)] // obfuscates the meaning 3,960 ( 0.00%) expn_depth: if body.value.span.from_expansion() { 1 } else { 0 }, . cx, . lint: self . }; . vis.visit_body(body); 13,860 ( 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() 254 ( 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 { 10,260 ( 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%) } . } 110,101 ( 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/validations.rs -------------------------------------------------------------------------------- Ir -- line 3 ---------------------------------------- . use super::Utf8Error; . use crate::intrinsics::const_eval_select; . . /// Returns the initial codepoint accumulator for the first byte. . /// The first byte is special, only want bottom 5 bits for width 2, 4 bits . /// for width 3, and 3 bits for width 4. . #[inline] . const fn utf8_first_byte(byte: u8, width: u32) -> u32 { 292 ( 0.00%) (byte & (0x7F >> width)) as u32 . } . . /// Returns the value of `ch` updated with continuation byte `byte`. . #[inline] . const fn utf8_acc_cont_byte(ch: u32, byte: u8) -> u32 { 602 ( 0.00%) (ch << 6) | (byte & CONT_MASK) as u32 . } . . /// Checks whether the byte is a UTF-8 continuation byte (i.e., starts with the . /// bits `10`). . #[inline] . pub(super) const fn utf8_is_cont_byte(byte: u8) -> bool { 6 ( 0.00%) (byte as i8) < -64 . } . . /// Reads the next code point out of a byte iterator (assuming a . /// UTF-8-like encoding). . /// . /// # Safety . /// . /// `bytes` must produce a valid UTF-8-like (UTF-8 or WTF-8) string . #[unstable(feature = "str_internals", issue = "none")] . #[inline] . pub unsafe fn next_code_point<'a, I: Iterator>(bytes: &mut I) -> Option { . // Decode UTF-8 179,922 ( 0.00%) let x = *bytes.next()?; 400,615 ( 0.01%) if x < 128 { . return Some(x as u32); . } . . // Multibyte case follows . // Decode from a byte combination out of: [[[x y] z] w] . // NOTE: Performance is sensitive to the exact formulation here . let init = utf8_first_byte(x, 2); . // SAFETY: `bytes` produces an UTF-8-like string, . // so the iterator must produce a value here. . let y = unsafe { *bytes.next().unwrap_unchecked() }; . let mut ch = utf8_acc_cont_byte(init, y); 292 ( 0.00%) if x >= 0xE0 { . // [[x y z] w] case . // 5th bit in 0xE0 .. 0xEF is always clear, so `init` is still valid . // SAFETY: `bytes` produces an UTF-8-like string, . // so the iterator must produce a value here. . let z = unsafe { *bytes.next().unwrap_unchecked() }; . let y_z = utf8_acc_cont_byte((y & CONT_MASK) as u32, z); . ch = init << 12 | y_z; 292 ( 0.00%) if x >= 0xF0 { . // [x y z w] case . // use only the lower 3 bits of `init` . // SAFETY: `bytes` produces an UTF-8-like string, . // so the iterator must produce a value here. . let w = unsafe { *bytes.next().unwrap_unchecked() }; . ch = (init & 7) << 18 | utf8_acc_cont_byte(y_z, w); . } . } . . Some(ch) 3 ( 0.00%) } . . /// Reads the last code point out of a byte iterator (assuming a . /// UTF-8-like encoding). . /// . /// # Safety . /// . /// `bytes` must produce a valid UTF-8-like (UTF-8 or WTF-8) string . #[inline] . pub(super) unsafe fn next_code_point_reverse<'a, I>(bytes: &mut I) -> Option . where . I: DoubleEndedIterator, . { . // Decode UTF-8 . let w = match *bytes.next_back()? { 97,041 ( 0.00%) next_byte if next_byte < 128 => return Some(next_byte as u32), . back_byte => back_byte, . }; . . // Multibyte case follows . // Decode from a byte combination out of: [x [y [z w]]] . let mut ch; . // SAFETY: `bytes` produces an UTF-8-like string, . // so the iterator must produce a value here. 3 ( 0.00%) let z = unsafe { *bytes.next_back().unwrap_unchecked() }; . ch = utf8_first_byte(z, 2); 3 ( 0.00%) if utf8_is_cont_byte(z) { . // SAFETY: `bytes` produces an UTF-8-like string, . // so the iterator must produce a value here. 3 ( 0.00%) let y = unsafe { *bytes.next_back().unwrap_unchecked() }; . ch = utf8_first_byte(y, 3); 3 ( 0.00%) if utf8_is_cont_byte(y) { . // SAFETY: `bytes` produces an UTF-8-like string, . // so the iterator must produce a value here. . let x = unsafe { *bytes.next_back().unwrap_unchecked() }; . ch = utf8_first_byte(x, 4); . ch = utf8_acc_cont_byte(ch, y); . } . ch = utf8_acc_cont_byte(ch, z); . } -- line 108 ---------------------------------------- -- line 271 ---------------------------------------- . 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // F . ]; . . /// Given a first byte, determines how many bytes are in this UTF-8 character. . #[unstable(feature = "str_internals", issue = "none")] . #[must_use] . #[inline] . pub const fn utf8_char_width(b: u8) -> usize { 16 ( 0.00%) UTF8_CHAR_WIDTH[b as usize] as usize . } . . /// Mask of the value bits of a continuation byte. . const CONT_MASK: u8 = 0b0011_1111; 247,253 ( 0.01%) -------------------------------------------------------------------------------- -- 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 { 200,412 ( 0.00%) fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { 44,536 ( 0.00%) if expr.span.from_expansion() { . return; . } . 51,147 ( 0.00%) if let Some(binops) = extract_related_binops(&expr.kind) { 72 ( 0.00%) check_binops(cx, &binops.iter().collect::>(), &mut self.linted_spans); 8,070 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/suspicious_operation_groupings.rs:clippy_lints::suspicious_operation_groupings::check_binops (24x) . . 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| { . if !op_types.contains(&op) { . op_types.push(op); . } . }); . 110 ( 0.00%) for op_type in op_types { . let ops: Vec<_> = binops.iter().filter(|b| b.op == op_type).collect(); . 114 ( 0.00%) check_binops(cx, &ops, &mut self.linted_spans); 18,229 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/suspicious_operation_groupings.rs:clippy_lints::suspicious_operation_groupings::check_binops (38x) . } . } 178,144 ( 0.00%) } . } . 558 ( 0.00%) fn check_binops(cx: &EarlyContext<'_>, binops: &[&BinaryOp<'_>], linted_spans: &mut FxHashSet) { . let binop_count = binops.len(); 124 ( 0.00%) if binop_count < 2 { . // Single binary operation expressions would likely be false . // positives. . return; . } . . let mut one_ident_difference_count = 0; . let mut no_difference_info = None; . let mut double_difference_info = None; . let mut expected_ident_loc = None; . . let mut paired_identifiers = FxHashSet::default(); . 52 ( 0.00%) for (i, BinaryOp { left, right, op, .. }) in binops.iter().enumerate() { 216 ( 0.00%) match ident_difference_expr(left, right) { . IdentDifference::NoDifference => { . if is_useless_with_eq_exprs(*op) { . // The `eq_op` lint should catch this in this case. . return; . } . . no_difference_info = Some(i); . }, . IdentDifference::Single(ident_loc) => { . one_ident_difference_count += 1; 24 ( 0.00%) if let Some(previous_expected) = expected_ident_loc { 2 ( 0.00%) if previous_expected != ident_loc { . // This expression doesn't match the form we're . // looking for. . return; . } . } else { . expected_ident_loc = Some(ident_loc); . } . . // If there was only a single difference, all other idents . // must have been the same, and thus were paired. 120 ( 0.00%) for id in skip_index(IdentIter::from(*left), ident_loc.index) { 3,328 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ast_utils/ident_iter.rs:>::from (12x) . paired_identifiers.insert(id); . } 12 ( 0.00%) }, . IdentDifference::Double(ident_loc1, ident_loc2) => { . double_difference_info = Some((i, ident_loc1, ident_loc2)); . }, . IdentDifference::Multiple | IdentDifference::NonIdent => { . // It's too hard to know whether this is a bug or not. . return; . }, . } -- line 153 ---------------------------------------- -- line 176 ---------------------------------------- . { . emit_suggestion(cx, binop.span, sugg, applicability, linted_spans); . } . } . }, . _ => {}, . } . } 496 ( 0.00%) } . . fn attempt_to_emit_no_difference_lint( . cx: &EarlyContext<'_>, . binops: &[&BinaryOp<'_>], . i: usize, . expected_loc: IdentLocation, . linted_spans: &mut FxHashSet, . ) { -- line 192 ---------------------------------------- -- line 346 ---------------------------------------- . fn new(op: BinOpKind, span: Span, (left, right): (&'exprs Expr, &'exprs Expr)) -> Self { . Self { op, span, left, right } . } . } . . fn strip_non_ident_wrappers(expr: &Expr) -> &Expr { . let mut output = expr; . loop { 556 ( 0.00%) output = match &output.kind { 12 ( 0.00%) ExprKind::Paren(inner) | ExprKind::Unary(_, inner) => inner, . _ => { . return output; . }, . }; . } . } . . fn extract_related_binops(kind: &ExprKind) -> Option>> { 51,099 ( 0.00%) append_opt_vecs(chained_binops(kind), if_statement_binops(kind)) 456,113 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/suspicious_operation_groupings.rs:clippy_lints::suspicious_operation_groupings::if_statement_binops (17,033x) 374,792 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/suspicious_operation_groupings.rs:clippy_lints::suspicious_operation_groupings::append_opt_vecs:: (17,033x) . } . 122,605 ( 0.00%) fn if_statement_binops(kind: &ExprKind) -> Option>> { 121,795 ( 0.00%) match kind { 916 ( 0.00%) ExprKind::If(condition, _, _) => chained_binops(&condition.kind), 20 ( 0.00%) ExprKind::Paren(e) => if_statement_binops(&e.kind), . ExprKind::Block(block, _) => { 347 ( 0.00%) let mut output = None; 347 ( 0.00%) for stmt in &block.stmts { 2,264 ( 0.00%) match &stmt.kind { . StmtKind::Expr(e) | StmtKind::Semi(e) => { 6,748 ( 0.00%) output = append_opt_vecs(output, if_statement_binops(&e.kind)); 13,206 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/suspicious_operation_groupings.rs:clippy_lints::suspicious_operation_groupings::if_statement_binops'2 (472x) 10,386 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/suspicious_operation_groupings.rs:clippy_lints::suspicious_operation_groupings::append_opt_vecs:: (472x) . }, . _ => {}, . } . } 2,429 ( 0.00%) output . }, . _ => None, . } 139,192 ( 0.00%) } . 122,605 ( 0.00%) fn append_opt_vecs(target_opt: Option>, source_opt: Option>) -> Option> { 87,575 ( 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) . }, 100 ( 0.00%) (Some(v), None) | (None, Some(v)) => Some(v), 34,980 ( 0.00%) (None, None) => None, . } 140,120 ( 0.00%) } . . fn chained_binops(kind: &ExprKind) -> Option>> { 123,088 ( 0.00%) match kind { 3,550 ( 0.00%) ExprKind::Binary(_, left_outer, right_outer) => chained_binops_helper(left_outer, right_outer), 4,381 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/suspicious_operation_groupings.rs:clippy_lints::suspicious_operation_groupings::chained_binops_helper (101x) 250 ( 0.00%) ExprKind::Paren(e) | ExprKind::Unary(_, e) => chained_binops(&e.kind), 16,654 ( 0.00%) _ => None, . } . } . 5,670 ( 0.00%) fn chained_binops_helper<'expr>(left_outer: &'expr Expr, right_outer: &'expr Expr) -> Option>> { 4,490 ( 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), 2 ( 0.00%) ) => chained_binops_helper(left_e, right_e), . (ExprKind::Paren(left_e) | ExprKind::Unary(_, left_e), _) => chained_binops_helper(left_e, right_outer), 87 ( 0.00%) (_, 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), . ExprKind::Binary(Spanned { node: right_op, .. }, right_left, right_right), 288 ( 0.00%) ) => match ( 252 ( 0.00%) chained_binops_helper(left_left, left_right), 3,232 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/suspicious_operation_groupings.rs:clippy_lints::suspicious_operation_groupings::chained_binops_helper'2 (24x) 216 ( 0.00%) chained_binops_helper(right_left, right_right), 1,062 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/suspicious_operation_groupings.rs:clippy_lints::suspicious_operation_groupings::chained_binops_helper'2 (24x) . ) { . (Some(mut left_ops), Some(right_ops)) => { . left_ops.reserve(right_ops.len()); . for op in right_ops { . left_ops.push(op); . } . Some(left_ops) . }, 30 ( 0.00%) (Some(mut left_ops), _) => { 20 ( 0.00%) left_ops.push(BinaryOp::new(*right_op, right_outer.span, (right_left, right_right))); 50 ( 0.00%) Some(left_ops) . }, 8 ( 0.00%) (_, Some(mut right_ops)) => { 6 ( 0.00%) right_ops.insert(0, BinaryOp::new(*left_op, left_outer.span, (left_left, left_right))); 6 ( 0.00%) Some(right_ops) . }, 264 ( 0.00%) (None, None) => Some(vec![ 48 ( 0.00%) BinaryOp::new(*left_op, left_outer.span, (left_left, left_right)), 48 ( 0.00%) BinaryOp::new(*right_op, right_outer.span, (right_left, right_right)), . ]), 36 ( 0.00%) }, 531 ( 0.00%) _ => None, . } 4,536 ( 0.00%) } . 2 ( 0.00%) #[derive(Clone, Copy, PartialEq, Eq, Default, Debug)] . struct IdentLocation { . index: usize, . } . . impl Add for IdentLocation { . type Output = IdentLocation; . . fn add(self, other: Self) -> Self::Output { . Self { 17 ( 0.00%) index: self.index + other.index, . } . } . } . . impl AddAssign for IdentLocation { . fn add_assign(&mut self, other: Self) { . *self = *self + other; . } -- line 466 ---------------------------------------- -- line 474 ---------------------------------------- . Multiple, . NonIdent, . } . . impl Add for IdentDifference { . type Output = IdentDifference; . . fn add(self, other: Self) -> Self::Output { 50 ( 0.00%) match (self, other) { . (Self::NoDifference, output) | (output, Self::NoDifference) => output, . (Self::Multiple, _) . | (_, Self::Multiple) . | (Self::Double(_, _), Self::Single(_)) . | (Self::Single(_) | Self::Double(_, _), Self::Double(_, _)) => Self::Multiple, . (Self::NonIdent, _) | (_, Self::NonIdent) => Self::NonIdent, . (Self::Single(il1), Self::Single(il2)) => Self::Double(il1, il2), . } -- line 490 ---------------------------------------- -- line 537 ---------------------------------------- . // . // If it turns out that problematic cases are more prevalent than we assume, . // then we should be able to change this function to do the correct traversal, . // without needing to change the rest of the code. . . #[allow(clippy::enum_glob_use)] . use ExprKind::*; . 500 ( 0.00%) match ( . &strip_non_ident_wrappers(left).kind, . &strip_non_ident_wrappers(right).kind, . ) { . (Yield(_), Yield(_)) . | (Try(_), Try(_)) . | (Paren(_), Paren(_)) . | (Repeat(_, _), Repeat(_, _)) . | (Struct(_), Struct(_)) -- line 553 ---------------------------------------- -- line 617 ---------------------------------------- . ) -> (IdentDifference, IdentLocation) { . // See the note in `ident_difference_expr_with_base_location` about `IdentIter` . let mut difference = IdentDifference::NoDifference; . . let mut left_iterator = left.into(); . let mut right_iterator = right.into(); . . loop { 485 ( 0.00%) match (left_iterator.next(), right_iterator.next()) { 1,116 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ast_utils/ident_iter.rs:::next (116x) . (Some(left_ident), Some(right_ident)) => { 38 ( 0.00%) if !eq_id(left_ident, right_ident) { . difference += IdentDifference::Single(base); . if difference.is_complete() { . return (difference, base); . } . } . }, . (Some(_), None) | (None, Some(_)) => { . return (IdentDifference::NonIdent, base); -- line 635 ---------------------------------------- -- line 667 ---------------------------------------- . }) . } . . fn skip_index(iter: Iter, index: usize) -> impl Iterator . where . Iter: Iterator, . { . iter.enumerate() 112 ( 0.00%) .filter_map(move |(i, a)| if i == index { None } else { Some(a) }) . } 107,516 ( 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 { 50,587 ( 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 { 44,922 ( 0.00%) move |acc, item| match f(item) { 45 ( 0.00%) Some(x) => fold(acc, x), 25,514 ( 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 { 6,431 ( 0.00%) move |acc, item| match f(item) { 12 ( 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 { 462 ( 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, . { 496 ( 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, . { 3,746 ( 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 ---------------------------------------- 83,692 ( 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; . 116,816 ( 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). 58,408 ( 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 ---------------------------------------- 1,000 ( 0.00%) -------------------------------------------------------------------------------- -- 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 { 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { . // Cheap kind check before the costlier const context query. 27,194 ( 0.00%) if matches!( 54,388 ( 0.00%) expr.kind, . ExprKind::If(..) | ExprKind::Match(..) | ExprKind::MethodCall(..) | ExprKind::Call(..) 14,332 ( 0.00%) ) && !expr.span.from_expansion() 19,236 ( 0.00%) && !is_in_const_context(cx) 1,293,104 ( 0.03%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_in_const_context (4,809x) . { . let suggestion = is_if_elseif_else_pattern(cx, expr) 8,830 ( 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); . } . } 217,552 ( 0.01%) } . 19,880 ( 0.00%) fn check_block(&mut self, cx: &LateContext<'tcx>, block: &'tcx Block<'tcx>) { . // Cheap `if`-statement check before the costlier const context query. 2,840 ( 0.00%) if !block . .stmts . .iter() 3,886 ( 0.00%) .any(|stmt| matches!(stmt.kind, StmtKind::Expr(e) if matches!(e.kind, ExprKind::If(..)))) . { . return; . } . 1,254 ( 0.00%) if is_in_const_context(cx) || !self.msrv.meets(cx, msrvs::CLAMP) { 30,678 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_in_const_context (114x) 3,078 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/msrvs.rs:::meets (114x) . return; . } . for suggestion in is_two_if_pattern(cx, block) { . maybe_emit_suggestion(cx, &suggestion); . } 22,720 ( 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, &[])) 114,604 ( 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( 115,344 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/manual_clamp.rs:clippy_lints::manual_clamp::is_clamp_meta_pattern (4x) . cx, 70 ( 0.00%) expr.span.ctxt(), 36 ( 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> { 14,699 ( 0.00%) if let ExprKind::MethodCall(seg_second, receiver, [arg_second], _) = expr.kind 2,254 ( 0.00%) && let ExprKind::MethodCall(seg_first, input, [arg_first], _) = &receiver.kind . // Match method names before the costlier type queries. 48 ( 0.00%) && let Some((min, max)) = match (seg_first.ident.name, seg_second.ident.name) { 64 ( 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>), . } . 3,996 ( 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> { 904 ( 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 { 444 ( 0.00%) None . } 3,552 ( 0.00%) } . 27,660 ( 0.00%) if let ExprKind::Call(outer_fn, [first, second]) = &expr.kind { 4,218 ( 0.00%) check(cx, outer_fn, first, second, expr.span).or_else(|| check(cx, outer_fn, second, first, expr.span)) 8,896 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/manual_clamp.rs:clippy_lints::manual_clamp::is_call_max_min_pattern::check (444x) . } 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> { 7,549 ( 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>| { 129 ( 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 497 ---------------------------------------- . /// let mut x = input; . /// if x < min { x = min; } . /// if x > max { x = max; } . /// ``` . fn is_two_if_pattern<'tcx>(cx: &LateContext<'tcx>, block: &'tcx Block<'tcx>) -> Vec> { . block_stmt_with_last(block) . .tuple_windows() . .filter_map(|(maybe_set_first, maybe_set_second)| { 2,662 ( 0.00%) if let StmtKind::Expr(first_expr) = *maybe_set_first 931 ( 0.00%) && let StmtKind::Expr(second_expr) = *maybe_set_second . && let Some(If { . cond: first_cond, . then: first_then, . r#else: None, . }) = If::hir(first_expr) . && let Some(If { . cond: second_cond, . then: second_then, . r#else: None, . }) = If::hir(second_expr) 22 ( 0.00%) && let ExprKind::Assign(maybe_input_first_path, maybe_min_max_first, _) = 44 ( 0.00%) peel_blocks_with_stmt(first_then).kind 242 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::peel_blocks_with_stmt (11x) . && let ExprKind::Assign(maybe_input_second_path, maybe_min_max_second, _) = . peel_blocks_with_stmt(second_then).kind . && let ctxt = first_expr.span.ctxt() . && second_expr.span.ctxt() == ctxt . && eq_expr_value(cx, ctxt, maybe_input_first_path, maybe_input_second_path) . && let Some(first_bin) = BinaryOp::new(first_cond) . && let Some(second_bin) = BinaryOp::new(second_cond) . && let Some(input_min_max) = is_clamp_meta_pattern( -- line 526 ---------------------------------------- -- line 540 ---------------------------------------- . max: input_min_max.max, . is_float: input_min_max.is_float, . }, . span: first_expr.span.to(second_expr.span), . make_assignment: Some(maybe_input_first_path), . hir_with_ignore_attr: Some(first_expr.hir_id), . }) . } else { 414 ( 0.00%) None . } . }) . .collect() . } . . /// Targets patterns like . /// . /// ```no_run -- line 556 ---------------------------------------- -- line 568 ---------------------------------------- . then, . r#else: Some(else_if), . }) = If::hir(expr) . && let Some(If { . cond: else_if_cond, . then: else_if_then, . r#else: None, . }) = If::hir(peel_blocks(else_if)) 18 ( 0.00%) && let ExprKind::Assign(maybe_input_first_path, maybe_min_max_first, _) = peel_blocks_with_stmt(then).kind . && let ExprKind::Assign(maybe_input_second_path, maybe_min_max_second, _) = . peel_blocks_with_stmt(else_if_then).kind . { . let ctxt = expr.span.ctxt(); . let params = is_clamp_meta_pattern( . cx, . ctxt, . &BinaryOp::new(peel_blocks(cond))?, -- line 584 ---------------------------------------- -- 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 { 16 ( 0.00%) op: op.node, 16 ( 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(); 4 ( 0.00%) if exprs.iter().any(|e| peel_blocks(e).can_have_side_effects()) { 38 ( 0.00%) => ???:::can_have_side_effects (2x) . 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 ---------------------------------------- -- line 819 ---------------------------------------- . #[derive(Debug)] . enum MaybeBorrowedStmtKind<'a> { . Borrowed(&'a StmtKind<'a>), . Owned(StmtKind<'a>), . } . . impl Clone for MaybeBorrowedStmtKind<'_> { . fn clone(&self) -> Self { 2,004 ( 0.00%) match self { . Self::Borrowed(t) => Self::Borrowed(t), . Self::Owned(StmtKind::Expr(e)) => Self::Owned(StmtKind::Expr(e)), . Self::Owned(_) => unreachable!("Owned should only ever contain a StmtKind::Expr."), . } . } . } . . impl<'a> Deref for MaybeBorrowedStmtKind<'a> { -- line 835 ---------------------------------------- 49,818 ( 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 { 28,728 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'tcx>) { 6,384 ( 0.00%) if item.span.from_expansion() { . return; . } . let sm = cx.sess().source_map(); . let mut span = cx . .tcx 7,784 ( 0.00%) .hir_attrs(item.hir_id()) 90,774 ( 0.00%) => ???:::hir_attrs (1,946x) . .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| { 8,446 ( 0.00%) matches!( . i, . Attribute::Parsed(AttributeKind::DocComment { . style: AttrStyle::Outer, . .. . }) . ) . }) 5,723 ( 0.00%) .fold(item.span.shrink_to_lo(), |span, attr| span.to(attr.span())); 117,087 ( 0.00%) => ???:::to (1,259x) 15,568 ( 0.00%) let (Some(file), _, _, end_line, _) = sm.span_to_location_info(span) else { 3,261,461 ( 0.08%) => ???:::span_to_location_info (1,946x) . return; . }; . let mut bad_comments = vec![]; . for line in (0..end_line.saturating_sub(1)).rev() { 15,546 ( 0.00%) let Some(contents) = file.get_line(line).map(|c| c.trim().to_owned()) else { 736,846 ( 0.02%) => ???:::get_line (5,182x) . return; . }; . // Keep searching until we find the next item 10,942 ( 0.00%) if !contents.is_empty() && !contents.starts_with("//") && !contents.starts_with("#[") { . break; . } . 2,192 ( 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)); . } . } . 1,924 ( 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, . ); . }, . ); . } 25,536 ( 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') . } 10,989 ( 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/raw_vec/mod.rs -------------------------------------------------------------------------------- Ir -- line 151 ---------------------------------------- . } . . // Tiny Vecs are dumb. Skip to: . // - 8 if the element size is 1, because any heap allocator is likely . // to round up a request of less than 8 bytes to at least 8 bytes. . // - 4 if elements are moderate-sized (<= 1 KiB). . // - 1 otherwise, to avoid wasting too much space for very short Vecs. . const fn min_non_zero_cap(size: usize) -> usize { 22,848 ( 0.00%) if size == 1 { . 8 . } else if size <= 1024 { . 4 . } else { . 1 . } . } . -- line 167 ---------------------------------------- -- line 178 ---------------------------------------- . _marker: PhantomData, . } . } . . /// A specialized version of `self.reserve(len, 1)` which requires the . /// caller to ensure `len == self.capacity()`. . #[cfg(not(no_global_oom_handling))] . #[inline(never)] 12,564 ( 0.00%) pub(crate) fn grow_one(&mut self) { . // SAFETY: All calls on self.inner pass T::LAYOUT as the elem_layout . unsafe { self.inner.grow_one(T::LAYOUT) } 12,564 ( 0.00%) } . } . . impl RawVec { . #[cfg(not(no_global_oom_handling))] . pub(crate) const MIN_NON_ZERO_CAP: usize = min_non_zero_cap(size_of::()); . . /// Like `new`, but parameterized over the choice of allocator for . /// the returned `RawVec`. -- line 197 ---------------------------------------- -- line 376 ---------------------------------------- . . /// The same as `reserve_exact`, but returns on errors instead of panicking or aborting. . pub(crate) fn try_reserve_exact( . &mut self, . len: usize, . additional: usize, . ) -> Result<(), TryReserveError> { . // SAFETY: All calls on self.inner pass T::LAYOUT as the elem_layout 166 ( 0.00%) unsafe { self.inner.try_reserve_exact(len, additional, T::LAYOUT) } 852 ( 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_reserve_exact (4x) . } . . /// Shrinks the buffer down to the specified capacity. If the given amount . /// is 0, actually completely deallocates. . /// . /// # Panics . /// . /// Panics if the given amount is *larger* than the current capacity. -- line 392 ---------------------------------------- -- line 417 ---------------------------------------- . } . } . . #[rustc_const_unstable(feature = "const_heap", issue = "79597")] . const unsafe impl<#[may_dangle] T, A: [const] Allocator + [const] Destruct> Drop for RawVec { . /// Frees the memory owned by the `RawVec` *without* trying to drop its contents. . fn drop(&mut self) { . // SAFETY: We are in a Drop impl, self.inner will not be used again. 228,273 ( 0.01%) unsafe { self.inner.deallocate(T::LAYOUT) } . } . } . . #[rustc_const_unstable(feature = "const_heap", issue = "79597")] . #[rustfmt::skip] // FIXME(fee1-dead): temporary measure before rustfmt is bumped . const impl RawVecInner { . #[cfg(not(no_global_oom_handling))] . #[inline] . fn with_capacity_in(capacity: usize, alloc: A, elem_layout: Layout) -> Self { 14 ( 0.00%) match Self::try_allocate_in(capacity, AllocInit::Uninitialized, alloc, elem_layout) { 154 ( 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 (2x) 2 ( 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), . } . } . 18 ( 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. 43,831 ( 0.00%) if layout.size() == 0 { . return Ok(Self::new_in(alloc, elem_layout.alignment())); . } . 4 ( 0.00%) let result = match init { . AllocInit::Uninitialized => alloc.allocate(layout), . #[cfg(not(no_global_oom_handling))] . AllocInit::Zeroed => alloc.allocate_zeroed(layout), . }; 43,176 ( 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::()`. 6 ( 0.00%) Ok(Self { . ptr: Unique::from(ptr.cast()), . cap: unsafe { Cap::new_unchecked(capacity) }, . alloc, . }) 14 ( 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 3,141 ( 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); . 6,528 ( 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`. 9,671 ( 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 28,642 ( 0.00%) let ptr = unsafe { self.finish_grow(cap, elem_layout)? }; 123,986 ( 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 (1,544x) . . // 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] 75,988 ( 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()) 56,992 ( 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 { 236,689 ( 0.01%) self.ptr.cast().as_non_null_ptr() . } . . #[inline] . const fn capacity(&self, elem_size: usize) -> usize { 7,088 ( 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)> { 245,972 ( 0.01%) 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] 13,059 ( 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); . } 13,060 ( 0.00%) } . 9,646 ( 0.00%) if self.needs_to_grow(len, additional, elem_layout) { . unsafe { 23,461 ( 0.00%) do_reserve_and_handle(self, len, additional, elem_layout); 139 ( 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:: (1x) . } . } . } . . /// # 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 54 ( 0.00%) unsafe fn try_reserve_exact( . &mut self, . len: usize, . additional: usize, . elem_layout: Layout, . ) -> Result<(), TryReserveError> { 18 ( 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(()) 18 ( 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 { 10,478 ( 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::()`. 6,426 ( 0.00%) self.ptr = Unique::from(ptr.cast()); 6,424 ( 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> { 18 ( 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 18,665 ( 0.00%) let ptr = unsafe { self.finish_grow(cap, elem_layout)? }; 7,972 ( 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 (46x) . . // 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 2,375 ( 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. 4,750 ( 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 ---------------------------------------- 728,397 ( 0.02%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/unit_types/unit_arg.rs -------------------------------------------------------------------------------- Ir -- line 7 ---------------------------------------- . use clippy_utils::{is_empty_block, is_expr_default, is_from_proc_macro}; . use rustc_errors::Applicability; . use rustc_hir::{Block, Expr, ExprKind, MatchSource, Node, StmtKind}; . use rustc_lint::LateContext; . use rustc_span::SyntaxContext; . . use super::{UNIT_ARG, utils}; . 244,746 ( 0.01%) pub(super) fn check<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 54,388 ( 0.00%) if expr.span.from_expansion() { . return; . } . . // apparently stuff in the desugaring of `?` can trigger this . // so check for that here . // only the calls to `Try::from_error` is marked as desugared, . // so we need to check both the current Expr and its parent. 39,628 ( 0.00%) if is_questionmark_desugar_marked_call(expr) { . return; . } 153,063 ( 0.00%) if let Node::Expr(parent_expr) = cx.tcx.parent_hir_node(expr.hir_id) 1,571,370 ( 0.04%) => ???:::parent_hir_node (17,618x) 11,793 ( 0.00%) && is_questionmark_desugar_marked_call(parent_expr) . { . return; . } . 66,302 ( 0.00%) let (receiver, args) = match expr.kind { . ExprKind::Call(_, args) => (None, args), 8,620 ( 0.00%) ExprKind::MethodCall(_, receiver, args, _) => (Some(receiver), args), . _ => return, . }; . . let args_to_recover = receiver . .into_iter() . .chain(args) . .filter(|arg| { 9,779 ( 0.00%) if cx.typeck_results().expr_ty(arg).is_unit() && !utils::is_unit_literal(arg) { 194,728 ( 0.00%) => ???:::expr_ty (4,858x) . !matches!( . &arg.kind, . ExprKind::Match(.., MatchSource::TryDesugar(_)) | ExprKind::Path(..) . ) . } else { . false . } . }) . .collect::>(); 3,548 ( 0.00%) if !args_to_recover.is_empty() && !is_from_proc_macro(cx, expr) { . lint_unit_args(cx, expr, args_to_recover.as_slice()); . } 217,552 ( 0.01%) } . . fn is_questionmark_desugar_marked_call(expr: &Expr<'_>) -> bool { . use rustc_span::hygiene::DesugaringKind; 41,856 ( 0.00%) if let ExprKind::Call(callee, _) = expr.kind { 16,185 ( 0.00%) callee.span.is_desugaring(DesugaringKind::QuestionMark) 525,123 ( 0.01%) => ???:::is_desugaring (5,395x) . } else { . false . } . } . . fn lint_unit_args<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>, args_to_recover: &[&'tcx Expr<'tcx>]) { . let mut applicability = Applicability::MachineApplicable; . let (singular, plural) = if args_to_recover.len() > 1 { -- line 69 ---------------------------------------- 11,275 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/operators/numeric_arithmetic.rs -------------------------------------------------------------------------------- Ir -- line 9 ---------------------------------------- . pub struct Context { . expr_id: Option, . /// This field is used to check whether expressions are constants, such as in enum discriminants . /// and consts . const_span: Option, . } . impl Context { . fn skip_expr(&self, e: &hir::Expr<'_>) -> bool { 571 ( 0.00%) self.expr_id.is_some() || self.const_span.is_some_and(|span| span.contains(e.span)) 1,232 ( 0.00%) => ???:::contains (28x) . } . 2,793 ( 0.00%) pub fn check_binary<'tcx>( . &mut self, . cx: &LateContext<'tcx>, . expr: &'tcx hir::Expr<'_>, . op: hir::BinOpKind, . l: &'tcx hir::Expr<'_>, . r: &'tcx hir::Expr<'_>, . ) { 455 ( 0.00%) if self.skip_expr(expr) { . return; . } 798 ( 0.00%) match op { . hir::BinOpKind::And . | hir::BinOpKind::Or . | hir::BinOpKind::BitAnd . | hir::BinOpKind::BitOr . | hir::BinOpKind::BitXor . | hir::BinOpKind::Eq . | hir::BinOpKind::Lt . | hir::BinOpKind::Le . | hir::BinOpKind::Ne . | hir::BinOpKind::Ge . | hir::BinOpKind::Gt => return, . _ => (), . } . 711 ( 0.00%) let (l_ty, r_ty) = (cx.typeck_results().expr_ty(l), cx.typeck_results().expr_ty(r)); 6,348 ( 0.00%) => ???:::expr_ty (158x) . if l_ty.peel_refs().is_floating_point() && r_ty.peel_refs().is_floating_point() { . span_lint(cx, FLOAT_ARITHMETIC, expr.span, "floating-point arithmetic detected"); . self.expr_id = Some(expr.hir_id); . } 3,192 ( 0.00%) } . 24 ( 0.00%) pub fn check_negate<'tcx>(&mut self, cx: &LateContext<'tcx>, expr: &'tcx hir::Expr<'_>, arg: &'tcx hir::Expr<'_>) { 4 ( 0.00%) if self.skip_expr(expr) { . return; . } 12 ( 0.00%) let ty = cx.typeck_results().expr_ty(arg); 160 ( 0.00%) => ???:::expr_ty (4x) 20 ( 0.00%) if ConstEvalCtxt::new(cx).eval_local(expr, expr.span.ctxt()).is_none() && ty.is_floating_point() { 900 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::new (4x) 746 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::eval_local (4x) . span_lint(cx, FLOAT_ARITHMETIC, expr.span, "floating-point arithmetic detected"); . self.expr_id = Some(expr.hir_id); . } 28 ( 0.00%) } . . pub fn expr_post(&mut self, id: hir::HirId) { . if Some(id) == self.expr_id { . self.expr_id = None; . } . } . . pub fn enter_body(&mut self, cx: &LateContext<'_>, body: &hir::Body<'_>) { 9,900 ( 0.00%) let body_owner = cx.tcx.hir_body_owner(body.id()); 324,485 ( 0.01%) => ???:::hir_body_owner (1,980x) 3,960 ( 0.00%) let body_owner_def_id = cx.tcx.hir_body_owner_def_id(body.id()); 211,798 ( 0.01%) => ???:::hir_body_owner_def_id (1,980x) . 11,880 ( 0.00%) match cx.tcx.hir_body_owner_kind(body_owner_def_id) { 129,239 ( 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:: (1,980x) . hir::BodyOwnerKind::Static(_) | hir::BodyOwnerKind::Const { .. } => { 1,030 ( 0.00%) let body_span = cx.tcx.hir_span_with_body(body_owner); 13,531 ( 0.00%) => ???:::hir_span_with_body (206x) . 511 ( 0.00%) if let Some(span) = self.const_span 396 ( 0.00%) && span.contains(body_span) 4,356 ( 0.00%) => ???:::contains (99x) . { . return; . } 412 ( 0.00%) self.const_span = Some(body_span); . }, . hir::BodyOwnerKind::Fn | hir::BodyOwnerKind::Closure | hir::BodyOwnerKind::GlobalAsm => (), . } . } . . pub fn body_post(&mut self, cx: &LateContext<'_>, body: &hir::Body<'_>) { 5,940 ( 0.00%) let body_owner = cx.tcx.hir_body_owner(body.id()); 324,485 ( 0.01%) => ???:::hir_body_owner (1,980x) 5,940 ( 0.00%) let body_span = cx.tcx.hir_span_with_body(body_owner); 125,990 ( 0.00%) => ???:::hir_span_with_body (1,980x) . 4,273 ( 0.00%) if let Some(span) = self.const_span 1,252 ( 0.00%) && span.contains(body_span) 13,772 ( 0.00%) => ???:::contains (313x) . { . return; . } 1,774 ( 0.00%) self.const_span = None; . } . } 2,146 ( 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 { 7,766 ( 0.00%) fn check_local(&mut self, cx: &LateContext<'tcx>, local: &'tcx LetStmt<'tcx>) { . let_unit_value::check(cx, &self.format_args, local); 5,648 ( 0.00%) } . . fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 81,582 ( 0.00%) unit_cmp::check(cx, expr); 7,735,856 ( 0.19%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/unit_types/unit_cmp.rs:clippy_lints::unit_types::unit_cmp::check (27,194x) 81,582 ( 0.00%) unit_arg::check(cx, expr); 3,625,024 ( 0.09%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/unit_types/unit_arg.rs:clippy_lints::unit_types::unit_arg::check (27,194x) . } . } -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs -------------------------------------------------------------------------------- Ir -- line 420 ---------------------------------------- . /// "I am initialized", . /// ); . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . pub fn with(&'static self, f: F) -> R . where . F: FnOnce(&T) -> R, . { 174,264 ( 0.00%) match self.try_with(f) { . Ok(r) => r, . Err(err) => panic_access_error(err), . } . } . . /// Acquires a reference to the value in this TLS key. . /// . /// This will lazily initialize the value if this thread has not referenced -- line 436 ---------------------------------------- -- line 455 ---------------------------------------- . /// ); . /// ``` . #[stable(feature = "thread_local_try_with", since = "1.26.0")] . #[inline] . pub fn try_with(&'static self, f: F) -> Result . where . F: FnOnce(&T) -> R, . { 276,576 ( 0.01%) let thread_local = unsafe { (self.inner)(None).as_ref().ok_or(AccessError)? }; 11,040 ( 0.00%) => ???:>>,)>>::call_once (3,680x) 138,011 ( 0.00%) Ok(f(thread_local)) . } . . /// Acquires a reference to the value in this TLS key, initializing it with . /// `init` if it wasn't already initialized on this thread. . /// . /// If `init` was used to initialize the thread local variable, `None` is . /// passed as the first argument to `f`. If it was already initialized, . /// `Some(init)` is passed to `f`. -- line 472 ---------------------------------------- 2,192 ( 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]; . 4 ( 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); 219 ( 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 { 69 ( 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); 80 ( 0.00%) self.span.ctxt().hash(state); . } . } . . impl fmt::Debug for Ident { . fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { . fmt::Display::fmt(self, f)?; . fmt::Debug::fmt(&self.span.ctxt(), f) . } -- line 2525 ---------------------------------------- -- 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`. 4,216 ( 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 { 413 ( 0.00%) with_session_globals(|session_globals| session_globals.symbol_interner.intern_str(str)) 606 ( 0.00%) => ???:::intern_str (3x) . } . . /// 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 { 109,992 ( 0.00%) std::mem::transmute::<&str, &str>(session_globals.symbol_interner.get_str(*self)) 103,040 ( 0.00%) => ???:::get_str (3,680x) . }) . } . . pub fn as_u32(self) -> u32 { . self.0.as_u32() . } . . pub fn is_empty(self) -> bool { -- line 2700 ---------------------------------------- 4,497 ( 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(); 7,205 ( 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 123 ---------------------------------------- . // The codegen backend can still inline it later if needed. . #[rustc_no_mir_inline] . default unsafe fn equal_same_length(lhs: *const Self, rhs: *const B, len: usize) -> bool { . // Implemented as explicit indexing rather . // than zipped iterators for performance reasons. . // See PR https://github.com/rust-lang/rust/pull/116846 . // FIXME(const_hack): make this a `for idx in 0..len` loop. . let mut idx = 0; 2 ( 0.00%) while idx < len { . // SAFETY: idx < len, so both are in-bounds and readable 6 ( 0.00%) if unsafe { *lhs.add(idx) != *rhs.add(idx) } { . return false; . } . idx += 1; . } . . true . } . } -- line 141 ---------------------------------------- -- 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); 253,062 ( 0.01%) compare_bytes(lhs as _, rhs as _, size) == 0 22 ( 0.00%) => ???:0x0000000000173660 (1x) . } . } . } . . #[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 { 8 ( 0.00%) x.iter().any(|y| *y == *self) . } . } . . 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 -- line 398 ---------------------------------------- -- 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 46 ( 0.00%) return chunks.remainder().iter().any(|x| *x == *self); . } . } . )* . }; . } . . impl_slice_contains!(u16, u32, u64, i16, i32, i64, f32, f64, usize, isize, char); 32,722 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/methods/unwrap_expect_used.rs -------------------------------------------------------------------------------- Ir -- line 22 ---------------------------------------- . (Variant::Unwrap, true) => "unwrap_err", . (Variant::Unwrap, false) => "unwrap", . (Variant::Expect, true) => "expect_err", . (Variant::Expect, false) => "expect", . } . } . . fn lint(self) -> &'static Lint { 374 ( 0.00%) match self { . Variant::Unwrap => UNWRAP_USED, . Variant::Expect => EXPECT_USED, . } . } . } . . /// Lint usage of `unwrap` or `unwrap_err` for `Result` and `unwrap()` for `Option` (and their . /// `expect` counterparts). . #[allow(clippy::too_many_arguments)] 408 ( 0.00%) pub(super) fn check( . cx: &LateContext<'_>, . expr: &Expr<'_>, . recv: &Expr<'_>, . is_err: bool, . allow_unwrap_in_consts: bool, . allow_unwrap_in_tests: bool, . unwrap_allowed_ids: &rustc_data_structures::fx::FxHashSet, . unwrap_allowed_aliases: &[rustc_hir::def_id::DefId], . variant: Variant, . ) { 102 ( 0.00%) let ty = cx.typeck_results().expr_ty(recv).peel_refs(); 1,360 ( 0.00%) => ???:::expr_ty (34x) . 327 ( 0.00%) let (kind, none_value, none_prefix) = match ty.opt_diag_name(cx) { 52 ( 0.00%) Some(sym::Option) if !is_err => ("an `Option`", "None", ""), . Some(sym::Result) 16 ( 0.00%) if let ty::Adt(_, substs) = ty.kind() 40 ( 0.00%) && let Some(t_or_e_ty) = substs[usize::from(!is_err)].as_type() => . { 24 ( 0.00%) if is_never_like(t_or_e_ty) { . return; . } . 16 ( 0.00%) ("a `Result`", if is_err { "Ok" } else { "Err" }, "an ") . }, . _ => return, . }; . 69 ( 0.00%) let method_suffix = if is_err { "_err" } else { "" }; . 274 ( 0.00%) if let ty::Adt(adt, _) = ty.kind() . && unwrap_allowed_ids.contains(&adt.did()) . { . return; . } . . for &def_id in unwrap_allowed_aliases { . let alias_ty = cx.tcx.type_of(def_id).instantiate_identity().skip_norm_wip(); . if let (ty::Adt(adt, substs), ty::Adt(alias_adt, alias_substs)) = (ty.kind(), alias_ty.kind()) -- line 78 ---------------------------------------- -- line 98 ---------------------------------------- . } . } . if all_match { . return; . } . } . } . 68 ( 0.00%) if allow_unwrap_in_tests && is_in_test(cx.tcx, expr.hir_id) { . return; . } . 272 ( 0.00%) if allow_unwrap_in_consts && is_inside_always_const_context(cx.tcx, expr.hir_id) { 26,739 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_inside_always_const_context (34x) . return; . } . 238 ( 0.00%) span_lint_and_then( 55,456 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/diagnostics.rs:clippy_utils::diagnostics::span_lint_and_then:: (34x) . cx, . variant.lint(), 34 ( 0.00%) expr.span, 204 ( 0.00%) format!("used `{}()` on {kind} value", variant.method_name(is_err)), 306 ( 0.00%) |diag| { . diag.note(format!("if this value is {none_prefix}`{none_value}`, it will panic")); . . if variant == Variant::Unwrap && is_lint_allowed(cx, EXPECT_USED, expr.hir_id) { . diag.help(format!( . "consider using `expect{method_suffix}()` to provide a better panic message" . )); . } . }, . ); 272 ( 0.00%) } . . #[expect(clippy::too_many_arguments, clippy::fn_params_excessive_bools)] 10,248 ( 0.00%) pub(super) fn check_call( . cx: &LateContext<'_>, . expr: &Expr<'_>, . func: &Expr<'_>, . args: &[Expr<'_>], . allow_unwrap_in_consts: bool, . allow_unwrap_in_tests: bool, . allow_expect_in_consts: bool, . allow_expect_in_tests: bool, . unwrap_allowed_ids: &rustc_data_structures::fx::FxHashSet, . unwrap_allowed_aliases: &[rustc_hir::def_id::DefId], . ) { . let Some(recv) = args.first() else { . return; . }; 11,398 ( 0.00%) let Some((DefKind::AssocFn, def_id)) = cx.typeck_results().type_dependent_def(func.hir_id) else { 52,830 ( 0.00%) => ???:::type_dependent_def (1,343x) . return; . }; . 218 ( 0.00%) match cx.tcx.item_name(def_id) { . sym::unwrap => { . check( . cx, . expr, . recv, . false, . allow_unwrap_in_consts, . allow_unwrap_in_tests, -- line 159 ---------------------------------------- -- line 198 ---------------------------------------- . allow_expect_in_tests, . unwrap_allowed_ids, . unwrap_allowed_aliases, . Variant::Expect, . ); . }, . _ => (), . } 11,712 ( 0.00%) } 1,679 ( 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; . 19,145 ( 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 { 9,438 ( 0.00%) match value { . AttrKind::Normal(attr) => { 96 ( 0.00%) let path_symbols = attr . .item . .path . .segments . .iter() . .map(|seg| seg.ident.name) . .collect::>(); . Self::Normal(path_symbols) . }, 1,142 ( 0.00%) AttrKind::Synthetic(synthetic) => match &**synthetic { . SyntheticAttr::CfgTrace(_) => Self::CfgTrace, . SyntheticAttr::CfgAttrTrace(_) => Self::CfgAttrTrace, . }, . AttrKind::DocComment(..) => Self::Doc, . } . } . } . 25,700 ( 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(); 7,710 ( 0.00%) let item_src = source_map.lookup_source_file(item_span.lo()); 357,230 ( 0.01%) => ???:::lookup_source_file (2,570x) . . for attr in attrs { 17,122 ( 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,852 ( 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,852 ( 0.00%) if inner_attr_kind.contains(&kind) { . lint_mixed_attrs(cx, attrs); . return; . } 7,704 ( 0.00%) outer_attr_kind.insert(kind); . }, . } . } 20,560 ( 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 { 9,208 ( 0.00%) let attr_src = source_map.lookup_source_file(attr_span.lo()); 319,978 ( 0.01%) => ???:::lookup_source_file (2,302x) . Arc::ptr_eq(item_src, &attr_src) . } 18,360 ( 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 { 25,536 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx hir::Item<'_>) { 4,883 ( 0.00%) if has_attr(cx, item.hir_id()) { . println!("{item:#?}"); . } 25,536 ( 0.00%) } . 217,552 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx hir::Expr<'_>) { 82,480 ( 0.00%) if has_attr(cx, expr.hir_id) { . println!("{expr:#?}"); . } 217,552 ( 0.01%) } . 18,495 ( 0.00%) fn check_stmt(&mut self, cx: &LateContext<'tcx>, stmt: &'tcx hir::Stmt<'_>) { 9,725 ( 0.00%) match stmt.kind { 5,298 ( 0.00%) hir::StmtKind::Expr(e) | hir::StmtKind::Semi(e) if has_attr(cx, e.hir_id) => return, . _ => {}, . } 4,847 ( 0.00%) if has_attr(cx, stmt.hir_id) { . println!("{stmt:#?}"); . } 16,440 ( 0.00%) } . 176 ( 0.00%) fn check_trait_item(&mut self, cx: &LateContext<'_>, item: &TraitItem<'_>) { 35 ( 0.00%) if has_attr(cx, item.hir_id()) { . println!("{item:#?}"); . } 176 ( 0.00%) } . 12,032 ( 0.00%) fn check_impl_item(&mut self, cx: &LateContext<'_>, item: &hir::ImplItem<'_>) { 1,640 ( 0.00%) if has_attr(cx, item.hir_id()) { . println!("{item:#?}"); . } 12,032 ( 0.00%) } . } . . fn has_attr(cx: &LateContext<'_>, hir_id: hir::HirId) -> bool { 76,624 ( 0.00%) let attrs = cx.tcx.hir_attrs(hir_id); 1,620,333 ( 0.04%) => ???:::hir_attrs (27,194x) 2,747 ( 0.00%) get_builtin_attr(attrs, sym::dump).count() > 0 . } 5,488 ( 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 { 113,215 ( 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 { 765 ( 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 { 78,692 ( 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] 4,206 ( 0.00%) fn next(&mut self) -> Option { 54 ( 0.00%) self.iter.find(&mut self.predicate) 4,178 ( 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 { 448 ( 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, . { 32 ( 0.00%) self.iter.try_fold(init, filter_try_fold(&mut self.predicate, fold)) 6,016 ( 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>> (16x) . } . . #[inline] . fn fold(self, init: Acc, fold: Fold) -> Acc . where . Fold: FnMut(Acc, Self::Item) -> Acc, . { 7,382 ( 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 ---------------------------------------- 55,849 ( 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/ty_kind.rs -------------------------------------------------------------------------------- Ir -- line 133 ---------------------------------------- . } . } . . /// Defines the kinds of types used by the type system. . /// . /// Types written by the user start out as `hir::TyKind` and get . /// converted to this representation using `::lower_ty`. . #[cfg_attr(feature = "nightly", rustc_diagnostic_item = "IrTyKind")] 27,219 ( 0.00%) #[derive_where(Clone, Copy, Hash, PartialEq; I: Interner)] . #[derive(GenericTypeVisitable)] . #[cfg_attr( . feature = "nightly", . derive(Encodable_NoContext, Decodable_NoContext, StableHash_NoContext) . )] . pub enum TyKind { . /// The primitive boolean type. Written as `bool`. . Bool, -- line 149 ---------------------------------------- -- line 1090 ---------------------------------------- . . /// Returns the safety mode. . pub fn safety(self) -> I::Safety { . if self.is_safe() { I::Safety::safe() } else { I::Safety::unsafe_mode() } . } . . /// Do the function arguments end with a C-style variadic argument? . pub fn c_variadic(self) -> bool { 936 ( 0.00%) self.flags & Self::C_VARIADIC_FLAG != 0 . } . . /// Get the index of the splatted argument, if any. . pub fn splatted(self) -> Option { . if self.splatted == Self::NO_SPLATTED_ARG_INDEX { None } else { Some(self.splatted) } . } . } . . #[derive_where(Clone, Copy, PartialEq, Hash; I: Interner)] . #[cfg_attr( . feature = "nightly", . derive(Encodable_NoContext, Decodable_NoContext, StableHash_NoContext) . )] 2,108 ( 0.00%) #[derive(TypeVisitable_Generic, GenericTypeVisitable, TypeFoldable_Generic, Lift_Generic)] 1,243,418 ( 0.03%) => /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::> (1,052x) . pub struct FnSig { . pub inputs_and_output: I::Tys, 2,106 ( 0.00%) #[type_visitable(ignore)] . #[type_foldable(identity)] . pub fn_sig_kind: FnSigKind, . } . . impl Eq for FnSig {} . . impl FnSig { . pub fn inputs(self) -> I::FnInputTys { 3,446 ( 0.00%) self.inputs_and_output.inputs() 3,409 ( 0.00%) => ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::Ty> as rustc_type_ir::inherent::Tys>::inputs (487x) . } . . pub fn output(self) -> I::Ty { 3,715 ( 0.00%) self.inputs_and_output.output() 2,435 ( 0.00%) => ???:<&rustc_middle::ty::list::RawList<(), rustc_middle::ty::Ty> as rustc_type_ir::inherent::Tys>::output (487x) . } . . pub fn is_fn_trait_compatible(self) -> bool { . !self.c_variadic() && self.safety().is_safe() && self.abi() == ExternAbi::Rust . } . . /// Set the safety flag. . #[must_use = "this method does not modify the receiver"] -- line 1136 ---------------------------------------- -- line 1293 ---------------------------------------- . type Target = ty::Binder; . . fn deref(&self) -> &Self::Target { . &self.0 . } . } . . // This is just a `FnSig` without the `FnHeader` fields. 2 ( 0.00%) #[derive_where(Clone, Copy, Debug, PartialEq, Hash; I: Interner)] . #[cfg_attr( . feature = "nightly", . derive(Encodable_NoContext, Decodable_NoContext, StableHash_NoContext) . )] 4 ( 0.00%) #[derive(TypeVisitable_Generic, GenericTypeVisitable, TypeFoldable_Generic, Lift_Generic)] 1,978 ( 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::>'2 (2x) . pub struct FnSigTys { . pub inputs_and_output: I::Tys, . } . . impl Eq for FnSigTys {} . . impl FnSigTys { . pub fn inputs(self) -> I::FnInputTys { -- line 1314 ---------------------------------------- 6,376 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/async_yields_async.rs -------------------------------------------------------------------------------- Ir -- line 43 ---------------------------------------- . pub ASYNC_YIELDS_ASYNC, . correctness, . "async blocks that return a type that can be awaited" . } . . declare_lint_pass!(AsyncYieldsAsync => [ASYNC_YIELDS_ASYNC]); . . impl<'tcx> LateLintPass<'tcx> for AsyncYieldsAsync { 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 54,558 ( 0.00%) let ExprKind::Closure(Closure { . kind: ClosureKind::Coroutine(CoroutineKind::Desugared(CoroutineDesugaring::Async, kind)), . body: body_id, . .. 85 ( 0.00%) }) = expr.kind . else { . return; . }; . . let body_expr = match kind { . CoroutineSource::Fn => { . // For functions, with explicitly defined types, don't warn. . // XXXkhuey maybe we should? -- line 64 ---------------------------------------- -- line 118 ---------------------------------------- . return_expr_span, . "consider awaiting this value", . format!("{return_expr_snip}.await"), . applicability, . ); . }, . ); . } 217,552 ( 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/def.rs -------------------------------------------------------------------------------- Ir -- line 91 ---------------------------------------- . DeriveHelper, . /// Single-segment custom attribute registered by a derive macro . /// but used before that derive macro was expanded (deprecated). . DeriveHelperCompat, . } . . /// What kind of definition something is; e.g., `mod` vs `struct`. . /// `enum DefPathData` may need to be updated if a new variant is added here. 25,739 ( 0.00%) #[derive(Clone, Copy, PartialEq, Eq, Encodable, Decodable, Hash, Debug, StableHash)] . pub enum DefKind { . // Type namespace . Mod, . /// Refers to the struct itself, [`DefKind::Ctor`] refers to its constructor if it exists. . Struct, . Union, . Enum, . /// Refers to the variant itself, [`DefKind::Ctor`] refers to its constructor if it exists. -- line 107 ---------------------------------------- -- line 122 ---------------------------------------- . Fn, . Const { . is_type_const: bool, . }, . /// Constant generic parameter: `struct Foo { ... }` . ConstParam, . Static { . /// Whether it's a `unsafe static`, `safe static` (inside extern only) or just a `static`. 4 ( 0.00%) safety: hir::Safety, . /// Whether it's a `static mut` or just a `static`. . mutability: ast::Mutability, . /// Whether it's an anonymous static generated for nested allocations. 2 ( 0.00%) nested: bool, . }, . /// Refers to the struct or enum variant's constructor. . /// . /// ``` . /// struct S; . /// let x = S; // S in the value namespace is a Ctor . /// ``` . /// -- line 142 ---------------------------------------- -- line 264 ---------------------------------------- . | DefKind::Use . | DefKind::ExternCrate => "an", . DefKind::Macro(kinds) => kinds.article(), . _ => "a", . } . } . . pub fn ns(&self) -> Option { 54 ( 0.00%) match self { . DefKind::Mod . | DefKind::Struct . | DefKind::Union . | DefKind::Enum . | DefKind::Variant . | DefKind::Trait . | DefKind::TyAlias . | DefKind::ForeignTy -- line 280 ---------------------------------------- -- line 360 ---------------------------------------- . . #[inline] . pub fn is_adt(self) -> bool { . matches!(self, DefKind::Struct | DefKind::Union | DefKind::Enum) . } . . #[inline] . pub fn is_fn_like(self) -> bool { 8 ( 0.00%) matches!( 8 ( 0.00%) self, . DefKind::Fn | DefKind::AssocFn | DefKind::Closure | DefKind::SyntheticCoroutineBody . ) . } . . /// Whether the corresponding item has generic parameters, i.e. the `generics_of` query works. . pub fn has_generics(self) -> bool { . match self { . DefKind::AnonConst -- line 377 ---------------------------------------- -- line 467 ---------------------------------------- . /// - `String` will resolve to [`Res::Def`], and the `Res` will include the [`DefId`] . /// for `String` as defined in the standard library; . /// - `String::from` will also resolve to [`Res::Def`], with the [`DefId`] . /// pointing to `String::from`; . /// - `s` will resolve to [`Res::Local`]; . /// - the call to `str_to_string` will resolve to [`Res::Def`], with the [`DefId`] . /// pointing to the definition of `str_to_string` in the current crate. . // 12,150 ( 0.00%) #[derive(Clone, Copy, PartialEq, Eq, Encodable, Decodable, Hash, Debug, StableHash)] . pub enum Res { . /// Definition having a unique ID (`DefId`), corresponds to something defined in user code. . /// . /// **Not bound to a specific namespace.** . Def(DefKind, DefId), . . // Type namespace . /// A primitive type such as `i32` or `str`. -- line 483 ---------------------------------------- -- line 634 ---------------------------------------- . #[inline] . pub fn expect_full_res(&self) -> Res { . self.full_res().expect("unexpected unresolved segments") . } . } . . /// Different kinds of symbols can coexist even if they share the same textual name. . /// Therefore, they each have a separate universe (known as a "namespace"). 12 ( 0.00%) #[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Debug, Encodable, Decodable)] . #[derive(StableHash)] . pub enum Namespace { . /// The type namespace includes `struct`s, `enum`s, `union`s, `trait`s, and `mod`s . /// (and, by extension, crates). . /// . /// Note that the type namespace includes other items; this is not an . /// exhaustive list. . TypeNS, -- line 650 ---------------------------------------- -- line 784 ---------------------------------------- . where . Id: Debug, . { . self.opt_def_id().unwrap_or_else(|| panic!("attempted .def_id() on invalid res: {self:?}")) . } . . /// Return `Some(..)` with the `DefId` of this `Res` if it has a ID, else `None`. . pub fn opt_def_id(&self) -> Option { 136,817 ( 0.00%) match *self { 86,233 ( 0.00%) Res::Def(_, id) => Some(id), . . Res::Local(..) . | Res::PrimTy(..) . | Res::SelfTyParam { .. } . | Res::SelfTyAlias { .. } . | Res::SelfCtor(..) . | Res::ToolMod . | Res::OpenMod(..) -- line 801 ---------------------------------------- -- line 893 ---------------------------------------- . Res::Def(DefKind::Macro(kinds), _) => Some(kinds), . Res::NonMacroAttr(..) => Some(MacroKinds::ATTR), . _ => None, . } . } . . /// Returns `None` if this is `Res::Err` . pub fn ns(&self) -> Option { 30 ( 0.00%) match self { . Res::Def(kind, ..) => kind.ns(), . Res::PrimTy(..) . | Res::SelfTyParam { .. } . | Res::SelfTyAlias { .. } . | Res::ToolMod . | Res::OpenMod(..) => Some(Namespace::TypeNS), . Res::SelfCtor(..) | Res::Local(..) => Some(Namespace::ValueNS), . Res::NonMacroAttr(..) => Some(Namespace::MacroNS), -- line 909 ---------------------------------------- 36,188 ( 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)` 54,551 ( 0.00%) if let ExprKind::Assign(left, right, _) = expr.kind . && let Some(local_id) = left.res_local_id() 675 ( 0.00%) && let Some(size_expr) = Self::as_vec_initializer(cx, right) 11,995 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/slow_vector_initialization.rs:::as_vec_initializer (135x) . { . 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()` 4,824 ( 0.00%) if let StmtKind::Let(local) = stmt.kind 4,942 ( 0.00%) && let PatKind::Binding(BindingMode::MUT, local_id, _, None) = local.pat.kind 402 ( 0.00%) && let Some(init) = local.init 670 ( 0.00%) && let Some(size_expr) = Self::as_vec_initializer(cx, init) 11,700 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/slow_vector_initialization.rs:::as_vec_initializer (134x) . { 24 ( 0.00%) let vi = VecAllocation { . local_id, . allocation_expr: init, . size_expr, . }; . 40 ( 0.00%) Self::search_initialization(cx, vi, stmt.hir_id); 17,200 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/slow_vector_initialization.rs:::search_initialization (8x) . } . } . } . . 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 1,345 ( 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 694 ( 0.00%) if expr.span.from_expansion() && matching_root_macro_call(cx, expr.span, sym::vec_macro).is_none() { 8,294 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::matching_root_macro_call (26x) . return None; . } . 2,833 ( 0.00%) if let ExprKind::Call(func, [len_expr]) = expr.kind 18 ( 0.00%) && func.ty_rel_def(cx).is_diag_item(cx, sym::vec_with_capacity) . { . Some(InitializedSize::Initialized(len_expr)) 258 ( 0.00%) } else if let ExprKind::Call(func, []) = expr.kind 72 ( 0.00%) && func.ty_rel_def(cx).is_diag_item(cx, sym::vec_new) . { . Some(InitializedSize::Uninitialized) . } else { . None . } 1,345 ( 0.00%) } . . /// Search initialization for the given vector 72 ( 0.00%) fn search_initialization<'tcx>(cx: &LateContext<'tcx>, vec_alloc: VecAllocation<'tcx>, parent_node: HirId) { 24 ( 0.00%) let enclosing_body = get_enclosing_block(cx, parent_node); 1,832 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_enclosing_block (8x) . 8 ( 0.00%) if enclosing_body.is_none() { . return; . } . 56 ( 0.00%) let mut v = VectorInitializationVisitor { . cx, . vec_alloc, . slow_expression: None, . initialization_found: false, . }; . . v.visit_block(enclosing_body.unwrap()); . 16 ( 0.00%) if let Some(ref allocation_expr) = v.slow_expression { . Self::lint_initialization(cx, allocation_expr, &v.vec_alloc); . } 64 ( 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<'_>) { 9 ( 0.00%) if self.initialization_found 1 ( 0.00%) && let ExprKind::MethodCall(path, self_arg, [extend_arg], _) = expr.kind 1 ( 0.00%) && self_arg.res_local_id() == Some(self.vec_alloc.local_id) 1 ( 0.00%) && path.ident.name == sym::extend 4 ( 0.00%) && self.is_repeat_take(extend_arg) 20 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/slow_vector_initialization.rs:::is_repeat_take (1x) . { . 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>) { 30 ( 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 275 ---------------------------------------- . . if is_matching_resize { . self.slow_expression = Some(InitializationType::Resize(expr)); . } . } . } . . /// Returns `true` if give expression is `repeat(0).take(...)` 6 ( 0.00%) fn is_repeat_take(&mut self, expr: &'tcx Expr<'tcx>) -> bool { 5 ( 0.00%) if let ExprKind::MethodCall(take_path, recv, [len_arg], _) = expr.kind 1 ( 0.00%) && take_path.ident.name == sym::take . // Check that take is applied to `repeat(0)` . && self.is_repeat_zero(recv) . { . if let InitializedSize::Initialized(size_expr) = self.vec_alloc.size_expr { . // Check that len expression is equals to `with_capacity` expression . return SpanlessEq::new(self.cx).eq_expr(SyntaxContext::root(), len_arg, size_expr) . || matches!(len_arg.kind, ExprKind::MethodCall(path, ..) if path.ident.name == sym::capacity); . } . . self.vec_alloc.size_expr = InitializedSize::Initialized(len_arg); . return true; . } . . false 6 ( 0.00%) } . . /// Returns `true` if given expression is `repeat(0)` . fn is_repeat_zero(&self, expr: &Expr<'_>) -> bool { . if let ExprKind::Call(fn_expr, [repeat_arg]) = expr.kind . && fn_expr.basic_res().is_diag_item(self.cx, sym::iter_repeat) . && is_integer_literal(repeat_arg, 0) . { . true . } else { . false . } . } . } . . impl<'tcx> Visitor<'tcx> for VectorInitializationVisitor<'_, 'tcx> { 368 ( 0.00%) fn visit_stmt(&mut self, stmt: &'tcx Stmt<'_>) { 92 ( 0.00%) if self.initialization_found { 16 ( 0.00%) match stmt.kind { 7 ( 0.00%) StmtKind::Expr(expr) | StmtKind::Semi(expr) => { . self.search_slow_extend_filling(expr); . self.search_slow_resize_filling(expr); . }, . _ => (), . } . 8 ( 0.00%) self.initialization_found = false; . } else { . walk_stmt(self, stmt); . } 208 ( 0.00%) } . . fn visit_block(&mut self, block: &'tcx Block<'_>) { 42 ( 0.00%) 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 635 ( 0.00%) if self.vec_alloc.allocation_expr.hir_id == expr.hir_id { 8 ( 0.00%) self.initialization_found = true; . } . 568 ( 0.00%) walk_expr(self, expr); 10,685 ( 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 (46x) . } . } 803 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/reserve_after_initialization.rs -------------------------------------------------------------------------------- Ir -- line 29 ---------------------------------------- . #[clippy::version = "1.74.0"] . pub RESERVE_AFTER_INITIALIZATION, . complexity, . "`reserve` called immediately after `Vec` creation" . } . . impl_lint_pass!(ReserveAfterInitialization => [RESERVE_AFTER_INITIALIZATION]); . 1 ( 0.00%) #[derive(Default)] . pub struct ReserveAfterInitialization { . searcher: Option, . } . . struct VecReserveSearcher { . local_id: HirId, . err_span: Span, . init_part: String, . space_hint: String, . } . impl VecReserveSearcher { . fn display_err(&self, cx: &LateContext<'_>) { 7 ( 0.00%) if self.space_hint.is_empty() { . return; . } . . let s = format!("{}Vec::with_capacity({});", self.init_part, self.space_hint); . . span_lint_and_sugg( . cx, . RESERVE_AFTER_INITIALIZATION, -- line 58 ---------------------------------------- -- line 62 ---------------------------------------- . s, . Applicability::HasPlaceholders, . ); . } . } . . impl<'tcx> LateLintPass<'tcx> for ReserveAfterInitialization { . fn check_block(&mut self, _: &LateContext<'tcx>, _: &'tcx Block<'tcx>) { 2,840 ( 0.00%) self.searcher = None; . } . 4,236 ( 0.00%) fn check_local(&mut self, cx: &LateContext<'tcx>, local: &'tcx LetStmt<'tcx>) { 2,118 ( 0.00%) if let Some(init_expr) = local.init 4,887 ( 0.00%) && let PatKind::Binding(BindingMode::MUT, id, _, None) = local.pat.kind 402 ( 0.00%) && !local.span.in_external_macro(cx.sess().source_map()) 804 ( 0.00%) && let Some(init) = get_vec_init_kind(cx, init_expr) 10,264 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/higher.rs:clippy_utils::higher::get_vec_init_kind (134x) . && !matches!( . init, . VecInitKind::WithExprCapacity(_) | VecInitKind::WithConstCapacity(_) . ) . { 63 ( 0.00%) self.searcher = Some(VecReserveSearcher { . local_id: id, . err_span: local.span, . init_part: snippet( . cx, . local . .span . .shrink_to_lo() 35 ( 0.00%) .to(init_expr.span.source_callsite().shrink_to_lo()), 651 ( 0.00%) => ???:::to (7x) 182 ( 0.00%) => ???:::source_callsite (7x) . "..", . ) . .into_owned(), . space_hint: String::new(), . }); . } 4,942 ( 0.00%) } . 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 81,554 ( 0.00%) if self.searcher.is_none() 163 ( 0.00%) && let ExprKind::Assign(left, right, _) = expr.kind 1,001 ( 0.00%) && let ExprKind::Path(QPath::Resolved(None, path)) = left.kind 405 ( 0.00%) && let Res::Local(id) = path.res 405 ( 0.00%) && !expr.span.in_external_macro(cx.sess().source_map()) 810 ( 0.00%) && let Some(init) = get_vec_init_kind(cx, right) 4,214 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/higher.rs:clippy_utils::higher::get_vec_init_kind (135x) . && !matches!( . init, . VecInitKind::WithExprCapacity(_) | VecInitKind::WithConstCapacity(_) . ) . { . self.searcher = Some(VecReserveSearcher { . local_id: id, . err_span: expr.span, -- line 114 ---------------------------------------- -- line 116 ---------------------------------------- . cx, . left.span.shrink_to_lo().to(right.span.source_callsite().shrink_to_lo()), . "..", . ) . .into_owned(), // see `assign_expression` test . space_hint: String::new(), . }); . } 217,552 ( 0.01%) } . 14,385 ( 0.00%) fn check_stmt(&mut self, cx: &LateContext<'tcx>, stmt: &'tcx Stmt<'_>) { 4,173 ( 0.00%) if let Some(searcher) = self.searcher.take() { 20 ( 0.00%) if let StmtKind::Expr(expr) | StmtKind::Semi(expr) = stmt.kind 12 ( 0.00%) && let ExprKind::MethodCall(name, self_arg, [space_hint], _) = expr.kind . && self_arg.res_local_id() == Some(searcher.local_id) . && name.ident.name == sym::reserve . && !is_from_proc_macro(cx, expr) . { . self.searcher = Some(VecReserveSearcher { . err_span: searcher.err_span.to(stmt.span), . space_hint: snippet(cx, space_hint.span, "..").into_owned(), . ..searcher . }); . } else { . searcher.display_err(cx); . } . } 16,440 ( 0.00%) } . 11,360 ( 0.00%) fn check_block_post(&mut self, cx: &LateContext<'tcx>, _: &'tcx Block<'tcx>) { 5,680 ( 0.00%) if let Some(searcher) = self.searcher.take() { . searcher.display_err(cx); . } 11,360 ( 0.00%) } . } 1,925 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/partial_pub_fields.rs -------------------------------------------------------------------------------- Ir -- line 36 ---------------------------------------- . pub PARTIAL_PUB_FIELDS, . restriction, . "partial fields of a struct are public" . } . . declare_lint_pass!(PartialPubFields => [PARTIAL_PUB_FIELDS]); . . impl EarlyLintPass for PartialPubFields { 17,990 ( 0.00%) fn check_item(&mut self, cx: &EarlyContext<'_>, item: &Item) { 5,394 ( 0.00%) let ItemKind::Struct(_, _, ref st) = item.kind else { . return; . }; . 508 ( 0.00%) let mut fields = st.fields().iter(); 1,520 ( 0.00%) => ???:::fields (254x) . let Some(first_field) = fields.next() else { . // Empty struct. . return; . }; . let all_pub = first_field.vis.kind.is_pub(); . let all_priv = !all_pub; . . let msg = "mixed usage of pub and non-pub fields"; . . for field in fields { 41 ( 0.00%) if all_priv && field.vis.kind.is_pub() { . #[expect(clippy::collapsible_span_lint_calls, reason = "rust-clippy#7797")] . span_lint_and_then(cx, PARTIAL_PUB_FIELDS, field.vis.span, msg, |diag| { . diag.help("consider using private field here"); . }); . return; 231 ( 0.00%) } else if all_pub && !field.vis.kind.is_pub() { . #[expect(clippy::collapsible_span_lint_calls, reason = "rust-clippy#7797")] . span_lint_and_then(cx, PARTIAL_PUB_FIELDS, field.vis.span, msg, |diag| { . diag.help("consider using public field here"); . }); . return; . } . } 20,560 ( 0.00%) } . } 594 ( 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 { 217,552 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'_>, e: &Expr<'_>) { 61,431 ( 0.00%) if let ExprKind::Call(fn_expr, [arg1, arg2]) = e.kind 1,460 ( 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, . ); . } . }, . ); . } 217,552 ( 0.01%) } . } . . /// 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/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 { 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx hir::Expr<'_>) { 54,388 ( 0.00%) if let hir::ExprKind::Lit(lit) = expr.kind 2,590 ( 0.00%) && let LitKind::Float(sym, lit_float_ty) = lit.node . && let ty::Float(fty) = *cx.typeck_results().expr_ty(expr).kind() . { . 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. -- line 89 ---------------------------------------- -- line 168 ---------------------------------------- . "consider changing the type or truncating it to", . numeric_literal::format(&float_str, type_suffix, true), . Applicability::MachineApplicable, . ); . }, . ); . } . } 217,552 ( 0.01%) } . } . . #[must_use] . fn max_digits(fty: FloatTy) -> u32 { . match fty { . FloatTy::F16 => f16::DIGITS, . FloatTy::F32 => f32::DIGITS, . FloatTy::F64 => f64::DIGITS, -- line 184 ---------------------------------------- 1,295 ( 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_hir_typeck/src/expr_use_visitor.rs -------------------------------------------------------------------------------- Ir -- line 116 ---------------------------------------- . } . . fn borrow( . &mut self, . place_with_id: &PlaceWithHirId<'tcx>, . diag_expr_id: HirId, . bk: ty::BorrowKind, . ) { 8 ( 0.00%) (**self).borrow(place_with_id, diag_expr_id, bk) . } . . fn copy(&mut self, place_with_id: &PlaceWithHirId<'tcx>, diag_expr_id: HirId) { . (**self).copy(place_with_id, diag_expr_id) . } . . fn mutate(&mut self, assignee_place: &PlaceWithHirId<'tcx>, diag_expr_id: HirId) { 10 ( 0.00%) (**self).mutate(assignee_place, diag_expr_id) . } . . fn bind(&mut self, binding_place: &PlaceWithHirId<'tcx>, diag_expr_id: HirId) { 34 ( 0.00%) (**self).bind(binding_place, diag_expr_id) . } . . fn fake_read( . &mut self, . place_with_id: &PlaceWithHirId<'tcx>, . cause: FakeReadCause, . diag_expr_id: HirId, . ) { -- line 144 ---------------------------------------- -- line 266 ---------------------------------------- . self.0.type_is_use_cloned_modulo_regions(ty) . } . . fn body_owner_def_id(&self) -> LocalDefId { . self.1 . } . . fn tcx(&self) -> TyCtxt<'tcx> { 319 ( 0.00%) self.0.tcx . } . } . . /// A visitor that reports how each expression is being used. . /// . /// See [module-level docs][self] and [`Delegate`] for details. . pub struct ExprUseVisitor<'tcx, Cx: TypeInformationCtxt<'tcx>, D: Delegate<'tcx>> { . cx: Cx, -- line 282 ---------------------------------------- -- line 283 ---------------------------------------- . /// We use a `RefCell` here so that delegates can mutate themselves, but we can . /// still have calls to our own helper functions. . delegate: RefCell, . upvars: Option<&'tcx FxIndexMap>, . } . . impl<'a, 'tcx, D: Delegate<'tcx>> ExprUseVisitor<'tcx, (&'a LateContext<'tcx>, LocalDefId), D> { . pub fn for_clippy(cx: &'a LateContext<'tcx>, body_def_id: LocalDefId, delegate: D) -> Self { 96 ( 0.00%) Self::new((cx, body_def_id), delegate) 192 ( 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:>::new (4x) . } . } . . impl<'tcx, Cx: TypeInformationCtxt<'tcx>, D: Delegate<'tcx>> ExprUseVisitor<'tcx, Cx, D> { . /// Creates the ExprUseVisitor, configuring it with the various options provided: . /// . /// - `delegate` -- who receives the callbacks . /// - `param_env` --- parameter environment for trait lookups (esp. pertaining to `Copy`) . /// - `typeck_results` --- typeck results for the code being analyzed 275 ( 0.00%) pub(crate) fn new(cx: Cx, delegate: D) -> Self { 125 ( 0.00%) ExprUseVisitor { . delegate: RefCell::new(delegate), . upvars: cx.tcx().upvars_mentioned(cx.body_owner_def_id()), . cx, . } 225 ( 0.00%) } . 9 ( 0.00%) pub fn consume_body(&self, body: &hir::Body<'_>) -> Result<(), Cx::Error> { 1 ( 0.00%) for param in body.params { 9 ( 0.00%) let param_ty = self.pat_ty_adjusted(param.pat)?; 477 ( 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:>::pat_ty_adjusted (3x) . debug!("consume_body: param_ty = {:?}", param_ty); . 6 ( 0.00%) let param_place = self.cat_rvalue(param.hir_id, param_ty); . . self.fake_read_scrutinee(¶m_place, false)?; 3 ( 0.00%) self.walk_pat(¶m_place, param.pat, false)?; . } . 3 ( 0.00%) self.consume_expr(body.value)?; 987,563 ( 0.02%) => /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:>::consume_expr (1x) . . Ok(()) 8 ( 0.00%) } . . #[instrument(skip(self), level = "debug")] 5,395 ( 0.00%) fn consume_or_copy(&self, place_with_id: &PlaceWithHirId<'tcx>, diag_expr_id: HirId) { 9,227 ( 0.00%) if self.cx.type_is_copy_modulo_regions(place_with_id.place.ty()) { 9,433 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::type_is_copy_modulo_regions (28x) 336 ( 0.00%) => ???:::ty (28x) . self.delegate.borrow_mut().copy(place_with_id, diag_expr_id); . } else { . self.delegate.borrow_mut().consume(place_with_id, diag_expr_id); . } 4,316 ( 0.00%) } . . #[instrument(skip(self), level = "debug")] . pub fn consume_clone_or_copy(&self, place_with_id: &PlaceWithHirId<'tcx>, diag_expr_id: HirId) { . // `x.use` will do one of the following . // * if it implements `Copy`, it will be a copy . // * if it implements `UseCloned`, it will be a call to `clone` . // * otherwise, it is a move . // -- line 340 ---------------------------------------- -- line 345 ---------------------------------------- . self.delegate.borrow_mut().use_cloned(place_with_id, diag_expr_id); . } else { . self.delegate.borrow_mut().consume(place_with_id, diag_expr_id); . } . } . . fn consume_exprs(&self, exprs: &[hir::Expr<'_>]) -> Result<(), Cx::Error> { . for expr in exprs { 375 ( 0.00%) self.consume_expr(expr)?; 155,453 ( 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:>::consume_expr'2 (66x) 9,175 ( 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:>::consume_expr (4x) . } . . Ok(()) . } . . // FIXME: It's suspicious that this is public; clippy should probably use `walk_expr`. . #[instrument(skip(self), level = "debug")] 6,612 ( 0.00%) pub fn consume_expr(&self, expr: &hir::Expr<'_>) -> Result<(), Cx::Error> { 10,944 ( 0.00%) let place_with_id = self.cat_expr(expr)?; 1,824 ( 0.00%) self.consume_or_copy(&place_with_id, place_with_id.hir_id); 378 ( 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:>::consume_or_copy (1x) 3,762 ( 0.00%) self.walk_expr(expr)?; 279,678 ( 0.01%) => /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'2 (63x) . Ok(()) 5,358 ( 0.00%) } . . #[instrument(skip(self), level = "debug")] . pub fn consume_or_clone_expr(&self, expr: &hir::Expr<'_>) -> Result<(), Cx::Error> { . let place_with_id = self.cat_expr(expr)?; . self.consume_clone_or_copy(&place_with_id, place_with_id.hir_id); . self.walk_expr(expr)?; . Ok(()) . } . 121 ( 0.00%) fn mutate_expr(&self, expr: &hir::Expr<'_>) -> Result<(), Cx::Error> { 41 ( 0.00%) let place_with_id = self.cat_expr(expr)?; . self.delegate.borrow_mut().mutate(&place_with_id, place_with_id.hir_id); 54 ( 0.00%) self.walk_expr(expr)?; 2,540 ( 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'2 (5x) . Ok(()) 74 ( 0.00%) } . . #[instrument(skip(self), level = "debug")] 115 ( 0.00%) fn borrow_expr(&self, expr: &hir::Expr<'_>, bk: ty::BorrowKind) -> Result<(), Cx::Error> { 22 ( 0.00%) let place_with_id = self.cat_expr(expr)?; . self.delegate.borrow_mut().borrow(&place_with_id, place_with_id.hir_id, bk); 45 ( 0.00%) self.walk_expr(expr) 4,998 ( 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'2 (4x) 65 ( 0.00%) } . . #[instrument(skip(self), level = "debug")] 13,266 ( 0.00%) pub fn walk_expr(&self, expr: &hir::Expr<'_>) -> Result<(), Cx::Error> { . self.walk_adjustment(expr)?; . 7,412 ( 0.00%) match expr.kind { . hir::ExprKind::Path(_) => {} . . hir::ExprKind::Type(subexpr, _) => { . self.walk_expr(subexpr)?; . } . . hir::ExprKind::UnsafeBinderCast(_, subexpr, _) => { . self.walk_expr(subexpr)?; . } . . hir::ExprKind::Unary(hir::UnOp::Deref, base) => { . // *base 191 ( 0.00%) self.walk_expr(base)?; . } . . hir::ExprKind::Field(base, _) => { . // base.f . self.walk_expr(base)?; . } . 8 ( 0.00%) hir::ExprKind::Index(lhs, rhs, _) => { . // lhs[rhs] 8 ( 0.00%) self.walk_expr(lhs)?; 3,244 ( 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'2 (2x) . self.consume_expr(rhs)?; . } . 573 ( 0.00%) hir::ExprKind::Call(callee, args) => { . // callee(args) 244 ( 0.00%) self.consume_expr(callee)?; 32,716 ( 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:>::consume_expr'2 (44x) 2,927 ( 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:>::consume_expr (4x) . self.consume_exprs(args)?; . } . . hir::ExprKind::Use(expr, _) => { . self.consume_or_clone_expr(expr)?; . } . 519 ( 0.00%) hir::ExprKind::MethodCall(.., receiver, args, _) => { . // callee.m(args) 230 ( 0.00%) self.consume_expr(receiver)?; 20,776 ( 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:>::consume_expr (16x) . self.consume_exprs(args)?; . } . 44 ( 0.00%) hir::ExprKind::Struct(_, fields, ref opt_with) => { . self.walk_struct_expr(fields, opt_with)?; . } . 1 ( 0.00%) hir::ExprKind::Tup(exprs) => { . self.consume_exprs(exprs)?; . } . 90 ( 0.00%) hir::ExprKind::If(cond_expr, then_expr, ref opt_else_expr) => { 90 ( 0.00%) self.consume_expr(cond_expr)?; 3,043 ( 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:>::consume_expr (1x) 135 ( 0.00%) self.consume_expr(then_expr)?; 8,717 ( 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:>::consume_expr (1x) 135 ( 0.00%) if let Some(else_expr) = *opt_else_expr { . self.consume_expr(else_expr)?; . } . } . 5 ( 0.00%) hir::ExprKind::Let(hir::LetExpr { pat, init, .. }) => { 26 ( 0.00%) self.walk_local(init, pat, None, || self.borrow_expr(init, BorrowKind::Immutable))?; 27,696 ( 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:>::borrow_expr (4x) . } . 129 ( 0.00%) hir::ExprKind::Match(discr, arms, _) => { 344 ( 0.00%) let discr_place = self.cat_expr(discr)?; . self.fake_read_scrutinee(&discr_place, true)?; 129 ( 0.00%) self.walk_expr(discr)?; 28,802 ( 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'2 (9x) . . for arm in arms { . self.walk_arm(&discr_place, arm)?; . } . } . . hir::ExprKind::Array(exprs) => { . self.consume_exprs(exprs)?; . } . 14 ( 0.00%) hir::ExprKind::AddrOf(_, m, base) => { . // &base . // make sure that the thing we are pointing out stays valid . // for the lifetime `scope_r` of the resulting ptr: . let bk = ty::BorrowKind::from_mutbl(m); 22 ( 0.00%) self.borrow_expr(base, bk)?; 6,901 ( 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:>::borrow_expr (4x) . } . . hir::ExprKind::InlineAsm(asm) => { . for (op, _op_sp) in asm.operands { . match op { . hir::InlineAsmOperand::In { expr, .. } => { . self.consume_expr(expr)?; . } -- line 484 ---------------------------------------- -- line 504 ---------------------------------------- . } . . hir::ExprKind::Continue(..) . | hir::ExprKind::Lit(..) . | hir::ExprKind::ConstBlock(..) . | hir::ExprKind::OffsetOf(..) . | hir::ExprKind::Err(_) => {} . 6 ( 0.00%) hir::ExprKind::Loop(blk, ..) => { . self.walk_block(blk)?; . } . . hir::ExprKind::Unary(_, lhs) => { . self.consume_expr(lhs)?; . } . 96 ( 0.00%) hir::ExprKind::Binary(_, lhs, rhs) => { 96 ( 0.00%) self.consume_expr(lhs)?; 16,618 ( 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:>::consume_expr (3x) . self.consume_expr(rhs)?; . } . 94 ( 0.00%) hir::ExprKind::Block(blk, _) => { . self.walk_block(blk)?; . } . . hir::ExprKind::Break(_, ref opt_expr) | hir::ExprKind::Ret(ref opt_expr) => { 201 ( 0.00%) if let Some(expr) = *opt_expr { 36 ( 0.00%) self.consume_expr(expr)?; . } . } . . hir::ExprKind::Become(call) => { . self.consume_expr(call)?; . } . 34 ( 0.00%) hir::ExprKind::Assign(lhs, rhs, _) => { 34 ( 0.00%) self.mutate_expr(lhs)?; 4,742 ( 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:>::mutate_expr (5x) . self.consume_expr(rhs)?; . } . . hir::ExprKind::Cast(base, _) => { . self.consume_expr(base)?; . } . . hir::ExprKind::DropTemps(expr) => { . self.consume_expr(expr)?; . } . 2 ( 0.00%) hir::ExprKind::AssignOp(_, lhs, rhs) => { 7 ( 0.00%) if self.cx.typeck_results().is_method_call(expr) { 5 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (1x) 38 ( 0.00%) => ???:::is_method_call (1x) . self.consume_expr(lhs)?; . } else { 3 ( 0.00%) self.mutate_expr(lhs)?; 1,301 ( 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:>::mutate_expr (1x) . } 87 ( 0.00%) self.consume_expr(rhs)?; . } . . hir::ExprKind::Repeat(base, _) => { . self.consume_expr(base)?; . } . 2 ( 0.00%) hir::ExprKind::Closure(closure) => { 2 ( 0.00%) self.walk_captures(closure)?; . } . . hir::ExprKind::Yield(value, _) => { . self.consume_expr(value)?; . } . } . . Ok(()) 11,792 ( 0.00%) } . . fn walk_stmt(&self, stmt: &hir::Stmt<'_>) -> Result<(), Cx::Error> { 772 ( 0.00%) match stmt.kind { . hir::StmtKind::Let(hir::LetStmt { pat, init: Some(expr), els, .. }) => { 152 ( 0.00%) self.walk_local(expr, pat, *els, || Ok(()))?; 57,237 ( 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_local::<>::walk_stmt::{closure#0}> (4x) 38 ( 0.00%) } . . hir::StmtKind::Let(_) => {} . . hir::StmtKind::Item(_) => { . // We don't visit nested items in this visitor, . // only the fn body we were given. . } . 93 ( 0.00%) hir::StmtKind::Expr(expr) | hir::StmtKind::Semi(expr) => { 122 ( 0.00%) self.consume_expr(expr)?; 61,562 ( 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:>::consume_expr (8x) . } . } . . Ok(()) . } . . #[instrument(skip(self), level = "debug")] . fn fake_read_scrutinee( -- line 599 ---------------------------------------- -- line 612 ---------------------------------------- . FakeReadCause::ForLet(closure_def_id) . }; . . self.delegate.borrow_mut().fake_read(discr_place, cause, discr_place.hir_id); . . Ok(()) . } . 418 ( 0.00%) fn walk_local( . &self, . expr: &hir::Expr<'_>, . pat: &hir::Pat<'_>, . els: Option<&hir::Block<'_>>, . mut f: F, . ) -> Result<(), Cx::Error> . where . F: FnMut() -> Result<(), Cx::Error>, . { 53 ( 0.00%) self.walk_expr(expr)?; 222,196 ( 0.01%) => /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'2 (28x) 344 ( 0.00%) let expr_place = self.cat_expr(expr)?; . f()?; . self.fake_read_scrutinee(&expr_place, els.is_some())?; . self.walk_pat(&expr_place, pat, false)?; 38 ( 0.00%) if let Some(els) = els { . self.walk_block(els)?; . } . Ok(()) 304 ( 0.00%) } . . /// Indicates that the value of `blk` will be consumed, meaning either copied or moved . /// depending on its type. . #[instrument(skip(self), level = "debug")] . fn walk_block(&self, blk: &hir::Block<'_>) -> Result<(), Cx::Error> { 100 ( 0.00%) for stmt in blk.stmts { . self.walk_stmt(stmt)?; . } . 300 ( 0.00%) if let Some(tail_expr) = blk.expr { . self.consume_expr(tail_expr)?; . } . . Ok(()) . } . . fn walk_struct_expr<'hir>( . &self, . fields: &[hir::ExprField<'_>], . opt_with: &hir::StructTailExpr<'hir>, . ) -> Result<(), Cx::Error> { . // Consume the expressions supplying values for each field. . for field in fields { 208 ( 0.00%) self.consume_expr(field.expr)?; 12,441 ( 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:>::consume_expr'2 (8x) . . // The struct path probably didn't resolve 332 ( 0.00%) if self.cx.typeck_results().opt_field_index(field.hir_id).is_none() { 40 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (8x) 312 ( 0.00%) => ???:::opt_field_index (8x) . self.cx . .tcx() . .dcx() . .span_delayed_bug(field.span, "couldn't resolve index for field"); . } . } . 44 ( 0.00%) let with_expr = match *opt_with { 8 ( 0.00%) hir::StructTailExpr::Base(w) => &*w, . hir::StructTailExpr::DefaultFields(_) . | hir::StructTailExpr::None . | hir::StructTailExpr::NoneWithError(_) => { . return Ok(()); . } . }; . 20 ( 0.00%) let with_place = self.cat_expr(with_expr)?; 400 ( 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:>::cat_expr (2x) . . // Select just those fields of the `with` . // expression that will actually be used 8 ( 0.00%) match self.cx.structurally_resolve_type(with_expr.span, with_place.place.ty()).kind() { 24 ( 0.00%) => ???:::ty (2x) 4 ( 0.00%) ty::Adt(adt, args) if adt.is_struct() => { . // Consume those fields of the with expression that are needed. 2 ( 0.00%) for (f_index, with_field) in adt.non_enum_variant().fields.iter_enumerated() { 16 ( 0.00%) => ???:::non_enum_variant (2x) . let is_mentioned = fields.iter().any(|f| { 40 ( 0.00%) self.cx.typeck_results().opt_field_index(f.hir_id) == Some(f_index) 40 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (8x) 312 ( 0.00%) => ???:::opt_field_index (8x) . }); . if !is_mentioned { 66 ( 0.00%) let field_place = self.cat_projection( 1,104 ( 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:>::cat_projection (6x) 12 ( 0.00%) with_expr.hir_id, . with_place.clone(), 30 ( 0.00%) with_field.ty(self.cx.tcx(), args).skip_norm_wip(), 354 ( 0.00%) => ???:::ty (6x) . ProjectionKind::Field(f_index, FIRST_VARIANT), . ); 18 ( 0.00%) self.consume_or_copy(&field_place, field_place.hir_id); 2,430 ( 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:>::consume_or_copy (6x) . } . } . } . _ => { . // the base expression should always evaluate to a . // struct; however, when EUV is run during typeck, it . // may not. This will generate an error earlier in typeck, . // so we can just ignore it. -- line 709 ---------------------------------------- -- line 710 ---------------------------------------- . if self.cx.tainted_by_errors().is_ok() { . span_bug!(with_expr.span, "with expression doesn't evaluate to a struct"); . } . } . } . . // walk the with expression so that complex expressions . // are properly handled. 2 ( 0.00%) self.walk_expr(with_expr)?; 10,413 ( 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'2 (2x) . . Ok(()) . } . . /// Invoke the appropriate delegate calls for anything that gets . /// consumed or borrowed as part of the automatic adjustment . /// process. . fn walk_adjustment(&self, expr: &hir::Expr<'_>) -> Result<(), Cx::Error> { 2,948 ( 0.00%) let typeck_results = self.cx.typeck_results(); 200 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (40x) 7,370 ( 0.00%) let adjustments = typeck_results.expr_adjustments(expr); 1,508 ( 0.00%) => ???:::expr_adjustments (40x) 5,896 ( 0.00%) let mut place_with_id = self.cat_expr_unadjusted(expr)?; 4,162 ( 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:>::cat_expr_unadjusted (40x) . for (adjustment_index, adjustment) in adjustments.iter().enumerate() { . let is_last_adjustment = adjustment_index + 1 == adjustments.len(); . debug!("walk_adjustment expr={:?} adj={:?}", expr, adjustment); 4,282 ( 0.00%) match adjustment.kind { . adjustment::Adjust::NeverToAny | adjustment::Adjust::Pointer(_) => { . // Creating a closure/fn-pointer or unsizing consumes . // the input and stores it into the resulting rvalue. 57 ( 0.00%) self.consume_or_copy(&place_with_id, place_with_id.hir_id); 15,960 ( 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:>::consume_or_copy (57x) . } . . adjustment::Adjust::Deref(DerefAdjustKind::Builtin | DerefAdjustKind::Pin) => {} . . // Autoderefs for overloaded Deref calls in fact reference . // their receiver. That is, if we have `(*x)` where `x` . // is of type `Rc`, then this in fact is equivalent to . // `x.deref()`. Since `deref()` is declared with `&self`, . // this is an autoref of `x`. . adjustment::Adjust::Deref(DerefAdjustKind::Overloaded(deref)) => { . let bk = ty::BorrowKind::from_mutbl(deref.mutbl); . self.delegate.borrow_mut().borrow(&place_with_id, place_with_id.hir_id, bk); . } . . adjustment::Adjust::Borrow(ref autoref) => { 70 ( 0.00%) self.walk_autoref(expr, &place_with_id, autoref); . } . . adjustment::Adjust::GenericReborrow(mutability) if is_last_adjustment => { . let bk = ty::BorrowKind::from_mutbl(mutability); . self.delegate.borrow_mut().borrow(&place_with_id, place_with_id.hir_id, bk); . } . . adjustment::Adjust::GenericReborrow(_) => { . span_bug!(expr.span, "generic reborrow adjustment must be terminal"); . } . } 740 ( 0.00%) place_with_id = self.cat_expr_adjusted(expr, place_with_id, adjustment)?; . } . . Ok(()) . } . . /// Walks the autoref `autoref` applied to the autoderef'd . /// `expr`. `base_place` is `expr` represented as a place, . /// after all relevant autoderefs have occurred. -- line 773 ---------------------------------------- -- line 777 ---------------------------------------- . base_place: &PlaceWithHirId<'tcx>, . autoref: &adjustment::AutoBorrow, . ) { . debug!( . "walk_autoref(expr.hir_id={} base_place={:?} autoref={:?})", . expr.hir_id, base_place, autoref . ); . 140 ( 0.00%) match *autoref { . adjustment::AutoBorrow::Ref(m) => { . self.delegate.borrow_mut().borrow( . base_place, . base_place.hir_id, . ty::BorrowKind::from_mutbl(m.into()), . ); . } . -- line 793 ---------------------------------------- -- line 803 ---------------------------------------- . } . } . . fn walk_arm( . &self, . discr_place: &PlaceWithHirId<'tcx>, . arm: &hir::Arm<'_>, . ) -> Result<(), Cx::Error> { 87 ( 0.00%) self.walk_pat(discr_place, arm.pat, arm.guard.is_some())?; . 174 ( 0.00%) if let Some(ref e) = arm.guard { . self.consume_expr(e)?; . } . 261 ( 0.00%) self.consume_expr(arm.body)?; 20,722 ( 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:>::consume_expr'2 (10x) 23,253 ( 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:>::consume_expr (8x) . Ok(()) . } . . /// The core driver for walking a pattern . /// . /// This should mirror how pattern-matching gets lowered to MIR, as . /// otherwise said lowering will ICE when trying to resolve the upvars. . /// -- line 825 ---------------------------------------- -- line 832 ---------------------------------------- . /// in the semantics of the language, and should be avoided if possible. . #[instrument(skip(self), level = "debug")] . fn walk_pat( . &self, . discr_place: &PlaceWithHirId<'tcx>, . pat: &hir::Pat<'_>, . has_guard: bool, . ) -> Result<(), Cx::Error> { 285 ( 0.00%) let tcx = self.cx.tcx(); 3,413 ( 0.00%) self.cat_pattern(discr_place.clone(), pat, &mut |place, pat| { 1,582 ( 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:>::cat_pattern::<>::walk_pat::{closure#0}> (3x) . debug!("walk_pat: pat.kind={:?}", pat.kind); 293 ( 0.00%) let read_discriminant = || { . self.delegate.borrow_mut().borrow(place, discr_place.hir_id, BorrowKind::Immutable); . }; . 1,721 ( 0.00%) match pat.kind { 386 ( 0.00%) PatKind::Binding(_, canonical_id, ..) => { . debug!("walk_pat: binding place={:?} pat={:?}", place, pat); 270 ( 0.00%) let bm = self . .cx 430 ( 0.00%) .typeck_results() 140 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (28x) 1,518 ( 0.00%) .extract_binding_mode(tcx.sess, pat.hir_id, pat.span); 1,284 ( 0.00%) => ???:::extract_binding_mode (28x) . debug!("walk_pat: pat.hir_id={:?} bm={:?}", pat.hir_id, bm); . . // pat_ty: the type of the binding being produced. . let pat_ty = self.node_ty(pat.hir_id)?; . debug!("walk_pat: pat_ty={:?}", pat_ty); . . let def = Res::Local(canonical_id); . if let Ok(ref binding_place) = self.cat_res(pat.hir_id, pat.span, pat_ty, def) { . self.delegate.borrow_mut().bind(binding_place, binding_place.hir_id); . } . . // Subtle: MIR desugaring introduces immutable borrows for each pattern . // binding when lowering pattern guards to ensure that the guard does not . // modify the scrutinee. 102 ( 0.00%) if has_guard { . read_discriminant(); . } . . // It is also a borrow or copy/move of the value being matched. . // In a cases of pattern like `let pat = upvar`, don't use the span . // of the pattern, as this just looks confusing, instead use the span . // of the discriminant. 546 ( 0.00%) match bm.0 { . hir::ByRef::Yes(_, m) => { . let bk = ty::BorrowKind::from_mutbl(m); . self.delegate.borrow_mut().borrow(place, discr_place.hir_id, bk); . } 110 ( 0.00%) hir::ByRef::No => { . debug!("walk_pat binding consuming pat"); 208 ( 0.00%) self.consume_or_copy(place, discr_place.hir_id); 47,031 ( 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:>::consume_or_copy (104x) . } . } . } . PatKind::Deref(subpattern) => { . // A deref pattern is a bit special: the binding mode of its inner bindings . // determines whether to borrow *at the level of the deref pattern* rather than . // borrowing the bound place (since that inner place is inside the temporary that . // stores the result of calling `deref()`/`deref_mut()` so can't be captured). -- line 891 ---------------------------------------- -- line 899 ---------------------------------------- . self.delegate.borrow_mut().borrow(place, discr_place.hir_id, bk); . } . } . PatKind::Never => { . // A `!` pattern always counts as an immutable read of the discriminant, . // even in an irrefutable pattern. . read_discriminant(); . } 2 ( 0.00%) PatKind::Expr(PatExpr { kind: PatExprKind::Path(qpath), hir_id, span }) => { . // A `Path` pattern is just a name like `Foo`. This is either a . // named constant or else it refers to an ADT variant . 16 ( 0.00%) let res = self.cx.typeck_results().qpath_res(qpath, *hir_id); 10 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (2x) 30 ( 0.00%) => ???:::qpath_res (2x) 26 ( 0.00%) match res { . Res::Def(DefKind::Const { .. }, _) . | Res::Def(DefKind::AssocConst { .. }, _) => { . // Named constants have to be equated with the value . // being matched, so that's a read of the value being matched. . // . // FIXME: Does the MIR code skip this read when matching on a ZST? . // If so, we can also skip it here. . read_discriminant(); . } . _ => { . // Otherwise, this is a struct/enum variant, and so it's . // only a read if we need to read the discriminant. 2 ( 0.00%) if self.is_multivariant_adt(place.place.ty(), *span) { . read_discriminant(); . } . } . } . } . PatKind::Expr(_) | PatKind::Range(..) => { . // When matching against a literal or range, we need to . // borrow the place to compare it against the pattern. -- line 933 ---------------------------------------- -- line 936 ---------------------------------------- . // possible values, such as 0..=u8::MAX. This is because . // we don't want to depend on consteval here. . // . // FIXME: What if the type being matched only has one . // possible value? . read_discriminant(); . } . PatKind::Struct(..) | PatKind::TupleStruct(..) => { 94 ( 0.00%) if self.is_multivariant_adt(place.place.ty(), pat.span) { . read_discriminant(); . } . } . PatKind::Slice(lhs, wild, rhs) => { . // We don't need to test the length if the pattern is `[..]` . if matches!((lhs, wild, rhs), (&[], Some(_), &[])) . // Arrays have a statically known size, so . // there is no need to read their length -- line 952 ---------------------------------------- -- line 968 ---------------------------------------- . // If the PatKind is Or, Box, Ref, Guard, or Tuple, the relevant accesses . // are made later as these patterns contains subpatterns. . // If the PatKind is Missing, Wild or Err, any relevant accesses are made when processing . // the other patterns that are part of the match . } . } . . Ok(()) 1,576 ( 0.00%) }) . } . . /// Handle the case where the current body contains a closure. . /// . /// When the current body being handled is a closure, then we must make sure that . /// - The parent closure only captures Places from the nested closure that are not local to it. . /// . /// In the following example the closures `c` only captures `p.x` even though `incr` -- line 984 ---------------------------------------- -- line 1000 ---------------------------------------- . fn upvar_is_local_variable( . upvars: Option<&FxIndexMap>, . upvar_id: HirId, . body_owner_is_closure: bool, . ) -> bool { . upvars.map(|upvars| !upvars.contains_key(&upvar_id)).unwrap_or(body_owner_is_closure) . } . 2 ( 0.00%) let tcx = self.cx.tcx(); . let closure_def_id = closure_expr.def_id; . // For purposes of this function, coroutine and closures are equivalent. . let body_owner_is_closure = matches!( 8 ( 0.00%) tcx.hir_body_owner_kind(self.cx.body_owner_def_id()), 118 ( 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:: (2x) . hir::BodyOwnerKind::Closure . ); . . // If we have a nested closure, we want to include the fake reads present in the nested . // closure. 4 ( 0.00%) if let Some(fake_reads) = self.cx.typeck_results().closure_fake_reads.get(&closure_def_id) { 10 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (2x) . for (fake_read, cause, hir_id) in fake_reads.iter() { . match fake_read.base { . PlaceBase::Upvar(upvar_id) => { . if upvar_is_local_variable( . self.upvars, . upvar_id.var_path.hir_id, . body_owner_is_closure, . ) { -- line 1026 ---------------------------------------- -- line 1054 ---------------------------------------- . &PlaceWithHirId { place: fake_read.clone(), hir_id: *hir_id }, . *cause, . *hir_id, . ); . } . } . . if let Some(min_captures) = 4 ( 0.00%) self.cx.typeck_results().closure_min_captures.get(&closure_def_id) 10 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (2x) . { . for (var_hir_id, min_list) in min_captures.iter() { . if self . .upvars . .map_or(body_owner_is_closure, |upvars| !upvars.contains_key(var_hir_id)) . { . // The nested closure might be capturing the current (enclosing) closure's local variables. . // We check if the root variable is ever mentioned within the enclosing closure, if not -- line 1070 ---------------------------------------- -- line 1126 ---------------------------------------- . /// two operations: a dereference to reach the array data and then an index to . /// jump forward to the relevant item. . impl<'tcx, Cx: TypeInformationCtxt<'tcx>, D: Delegate<'tcx>> ExprUseVisitor<'tcx, Cx, D> { . fn expect_and_resolve_type( . &self, . id: HirId, . ty: Option>, . ) -> Result, Cx::Error> { 5,888 ( 0.00%) match ty { . Some(ty) => { . let ty = self.cx.resolve_vars_if_possible(ty); . self.cx.error_reported_in_ty(ty)?; . Ok(ty) . } . None => { . // FIXME: We shouldn't be relying on the infcx being tainted. . self.cx.tainted_by_errors()?; . bug!("no type for node {} in ExprUseVisitor", self.cx.tcx().hir_id_to_string(id)); . } . } . } . . fn node_ty(&self, hir_id: HirId) -> Result, Cx::Error> { 1,661 ( 0.00%) self.expect_and_resolve_type(hir_id, self.cx.typeck_results().node_type_opt(hir_id)) 1,036 ( 0.00%) => ???:::node_type_opt (28x) 140 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (28x) . } . 18,802 ( 0.00%) fn expr_ty(&self, expr: &hir::Expr<'_>) -> Result, Cx::Error> { 21,488 ( 0.00%) self.expect_and_resolve_type(expr.hir_id, self.cx.typeck_results().expr_ty_opt(expr)) 99,174 ( 0.00%) => ???:::expr_ty_opt (2,542x) 12,710 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (2,542x) 16,116 ( 0.00%) } . . fn expr_ty_adjusted(&self, expr: &hir::Expr<'_>) -> Result, Cx::Error> { . self.expect_and_resolve_type( 36 ( 0.00%) expr.hir_id, 54 ( 0.00%) self.cx.typeck_results().expr_ty_adjusted_opt(expr), 180 ( 0.00%) => ???:::expr_ty_adjusted_opt (4x) 20 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (4x) . ) . } . . /// Returns the type of value that this pattern matches against. . /// Some non-obvious cases: . /// . /// - a `ref x` binding matches against a value of type `T` and gives . /// `x` the type `&T`; we return `T`. . /// - a pattern with implicit derefs (thanks to default binding . /// modes #42640) may look like `Some(x)` but in fact have . /// implicit deref patterns attached (e.g., it is really . /// `&Some(x)`). In that case, we return the "outermost" type . /// (e.g., `&Option`). 999 ( 0.00%) fn pat_ty_adjusted(&self, pat: &hir::Pat<'_>) -> Result, Cx::Error> { . // Check for implicit `&` types wrapping the pattern; note . // that these are never attached to binding patterns, so . // actually this is somewhat "disjoint" from the code below . // that aims to account for `ref x`. 555 ( 0.00%) if let Some(vec) = self.cx.typeck_results().pat_adjustments().get(pat.hir_id) { 110 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (22x) . if let Some(first_adjust) = vec.first() { . debug!("pat_ty(pat={:?}) found adjustment `{:?}`", pat, first_adjust); . return Ok(first_adjust.source); . } 222 ( 0.00%) } else if let PatKind::Ref(subpat, _, _) = pat.kind . && self.cx.typeck_results().skipped_ref_pats().contains(pat.hir_id) . { . return self.pat_ty_adjusted(subpat); . } . 333 ( 0.00%) self.pat_ty_unadjusted(pat) 2,696 ( 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:>::pat_ty_unadjusted (22x) 888 ( 0.00%) } . . /// Like [`Self::pat_ty_adjusted`], but ignores implicit `&` patterns. 999 ( 0.00%) fn pat_ty_unadjusted(&self, pat: &hir::Pat<'_>) -> Result, Cx::Error> { 222 ( 0.00%) let base_ty = self.node_ty(pat.hir_id)?; . trace!(?base_ty); . . // This code detects whether we are looking at a `ref x`, . // and if so, figures out what the type *being borrowed* is. 222 ( 0.00%) match pat.kind { . PatKind::Binding(..) => { 206 ( 0.00%) let bm = *self . .cx 309 ( 0.00%) .typeck_results() 25 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (5x) . .pat_binding_modes() . .get(pat.hir_id) . .expect("missing binding mode"); . 309 ( 0.00%) if let hir::ByRef::Yes(pinnedness, _) = bm.0 { . let base_ty = if pinnedness.is_pinned() { . base_ty.pinned_ty().ok_or_else(|| { . debug!("By-pin-ref binding of non-`Pin` type: {base_ty:?}"); . self.cx.report_bug(pat.span, "by-pin-ref binding of non-`Pin` type") . })? . } else { . base_ty . }; -- line 1216 ---------------------------------------- -- line 1228 ---------------------------------------- . } . } . } else { . Ok(base_ty) . } . } . _ => Ok(base_ty), . } 888 ( 0.00%) } . 84 ( 0.00%) fn cat_expr(&self, expr: &hir::Expr<'_>) -> Result, Cx::Error> { 7,647 ( 0.00%) self.cat_expr_(expr, self.cx.typeck_results().expr_adjustments(expr)) 1,144 ( 0.00%) => ???:::expr_adjustments (28x) 140 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (28x) . } . . /// This recursion helper avoids going through *too many* . /// adjustments, since *only* non-overloaded deref recurses. . fn cat_expr_( . &self, . expr: &hir::Expr<'_>, . adjustments: &[adjustment::Adjustment<'tcx>], . ) -> Result, Cx::Error> { . match adjustments.split_last() { 3,627 ( 0.00%) None => self.cat_expr_unadjusted(expr), 3,414 ( 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:>::cat_expr_unadjusted (28x) . Some((adjustment, previous)) => { 2,769 ( 0.00%) self.cat_expr_adjusted_with(expr, || self.cat_expr_(expr, previous), adjustment) 908 ( 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:>::cat_expr_adjusted_with::<>::cat_expr_::{closure#0}> (2x) . } . } . } . . fn cat_expr_adjusted( . &self, . expr: &hir::Expr<'_>, . previous: PlaceWithHirId<'tcx>, . adjustment: &adjustment::Adjustment<'tcx>, . ) -> Result, Cx::Error> { 558 ( 0.00%) self.cat_expr_adjusted_with(expr, || Ok(previous), adjustment) . } . . fn cat_expr_adjusted_with( . &self, . expr: &hir::Expr<'_>, . previous: F, . adjustment: &adjustment::Adjustment<'tcx>, . ) -> Result, Cx::Error> . where . F: FnOnce() -> Result, Cx::Error>, . { 279 ( 0.00%) let target = self.cx.resolve_vars_if_possible(adjustment.target); 1,577 ( 0.00%) match adjustment.kind { . adjustment::Adjust::Deref(deref_kind) => { . // Equivalent to *expr or something similar. 254 ( 0.00%) let base = if let DerefAdjustKind::Overloaded(deref) = deref_kind { . let ref_ty = Ty::new_ref( 2 ( 0.00%) self.cx.tcx(), 1 ( 0.00%) self.cx.tcx().lifetimes.re_erased, . target, . deref.mutbl, . ); . self.cat_rvalue(expr.hir_id, ref_ty) . } else { 1,237 ( 0.00%) previous()? . }; 528 ( 0.00%) self.cat_deref(expr.hir_id, base) 4,471 ( 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:>::cat_deref (17x) . } . . adjustment::Adjust::NeverToAny . | adjustment::Adjust::Pointer(_) . | adjustment::Adjust::Borrow(_) . | adjustment::Adjust::GenericReborrow(..) => { . // Result is an rvalue. 4,182 ( 0.00%) Ok(self.cat_rvalue(expr.hir_id, target)) . } . } 279 ( 0.00%) } . 34,801 ( 0.00%) fn cat_expr_unadjusted(&self, expr: &hir::Expr<'_>) -> Result, Cx::Error> { 10,708 ( 0.00%) let expr_ty = self.expr_ty(expr)?; 9,330 ( 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:>::expr_ty (138x) 10,790 ( 0.00%) match expr.kind { 10 ( 0.00%) hir::ExprKind::Unary(hir::UnOp::Deref, e_base) => { 80 ( 0.00%) if self.cx.typeck_results().is_method_call(expr) { 50 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (10x) 406 ( 0.00%) => ???:::is_method_call (10x) . self.cat_overloaded_place(expr, e_base) . } else { 40 ( 0.00%) let base = self.cat_expr(e_base)?; 5,572 ( 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:>::cat_expr (10x) 60 ( 0.00%) self.cat_deref(expr.hir_id, base) 2,246 ( 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:>::cat_deref (10x) . } . } . 76 ( 0.00%) hir::ExprKind::Field(base, _) => { 228 ( 0.00%) let base = self.cat_expr(base)?; . debug!(?base); . . let field_idx = self . .cx 152 ( 0.00%) .typeck_results() 10 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (2x) . .field_indices() 152 ( 0.00%) .get(expr.hir_id) . .cloned() . .expect("Field index not found"); . 380 ( 0.00%) Ok(self.cat_projection( . expr.hir_id, 608 ( 0.00%) base, . expr_ty, . ProjectionKind::Field(field_idx, FIRST_VARIANT), . )) . } . 9 ( 0.00%) hir::ExprKind::Index(base, _, _) => { 63 ( 0.00%) if self.cx.typeck_results().is_method_call(expr) { 20 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (4x) 180 ( 0.00%) => ???:::is_method_call (4x) . // If this is an index implemented by a method call, then it . // will include an implicit deref of the result. . // The call to index() returns a `&T` value, which . // is an rvalue. That is what we will be . // dereferencing. 36 ( 0.00%) self.cat_overloaded_place(expr, base) . } else { . let base = self.cat_expr(base)?; . Ok(self.cat_projection(expr.hir_id, base, expr_ty, ProjectionKind::Index)) . } . } . 1,176 ( 0.00%) hir::ExprKind::Path(ref qpath) => { 11,760 ( 0.00%) let res = self.cx.typeck_results().qpath_res(qpath, expr.hir_id); 974 ( 0.00%) => ???:::qpath_res (58x) 290 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (58x) 1,176 ( 0.00%) self.cat_res(expr.hir_id, expr.span, expr_ty, res) 1,176 ( 0.00%) } . . // type ascription doesn't affect the place-ness of the subexpression. . hir::ExprKind::Type(e, _) => self.cat_expr(e), . . hir::ExprKind::UnsafeBinderCast(UnsafeBinderCastKind::Unwrap, e, _) => { . let base = self.cat_expr(e)?; . Ok(self.cat_projection( . expr.hir_id, -- line 1360 ---------------------------------------- -- line 1389 ---------------------------------------- . | hir::ExprKind::ConstBlock(..) . | hir::ExprKind::Break(..) . | hir::ExprKind::Continue(..) . | hir::ExprKind::Struct(..) . | hir::ExprKind::Repeat(..) . | hir::ExprKind::InlineAsm(..) . | hir::ExprKind::OffsetOf(..) . | hir::ExprKind::UnsafeBinderCast(UnsafeBinderCastKind::Wrap, ..) 9,842 ( 0.00%) | hir::ExprKind::Err(_) => Ok(self.cat_rvalue(expr.hir_id, expr_ty)), . } 21,344 ( 0.00%) } . . fn cat_res( . &self, . hir_id: HirId, . span: Span, . expr_ty: Ty<'tcx>, . res: Res, . ) -> Result, Cx::Error> { 9,855 ( 0.00%) match res { . Res::Def( . DefKind::Ctor(..) . | DefKind::Const { .. } . | DefKind::ConstParam . | DefKind::AssocConst { .. } . | DefKind::Fn . | DefKind::AssocFn, . _, . ) 2,705 ( 0.00%) | Res::SelfCtor(..) => Ok(self.cat_rvalue(hir_id, expr_ty)), . . Res::Def(DefKind::Static { .. }, _) => { . Ok(PlaceWithHirId::new(hir_id, expr_ty, PlaceBase::StaticItem, Vec::new())) . } . 2,954 ( 0.00%) Res::Local(var_id) => { 807 ( 0.00%) if self.upvars.is_some_and(|upvars| upvars.contains_key(&var_id)) { . self.cat_upvar(hir_id, var_id) . } else { . Ok(PlaceWithHirId::new(hir_id, expr_ty, PlaceBase::Local(var_id), Vec::new())) . } . } . . def => span_bug!(span, "unexpected definition in ExprUseVisitor: {:?}", def), . } -- line 1433 ---------------------------------------- -- line 1449 ---------------------------------------- . . Ok(PlaceWithHirId::new(hir_id, var_ty, PlaceBase::Upvar(upvar_id), Vec::new())) . } . . fn cat_rvalue(&self, hir_id: HirId, expr_ty: Ty<'tcx>) -> PlaceWithHirId<'tcx> { . PlaceWithHirId::new(hir_id, expr_ty, PlaceBase::Rvalue, Vec::new()) . } . 2,470 ( 0.00%) fn cat_projection( . &self, . node: HirId, . base_place: PlaceWithHirId<'tcx>, . ty: Ty<'tcx>, . kind: ProjectionKind, . ) -> PlaceWithHirId<'tcx> { 380 ( 0.00%) let place_ty = base_place.place.ty(); 96 ( 0.00%) => ???:::ty (8x) 760 ( 0.00%) let mut projections = base_place.place.projections; . 1,330 ( 0.00%) let node_ty = self.cx.typeck_results().node_type(node); 328 ( 0.00%) => ???:::node_type (8x) 40 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (8x) 570 ( 0.00%) if !self.cx.tcx().next_trait_solver_globally() { . // Opaque types can't have field projections, but we can instead convert . // the current place in-place (heh) to the hidden type, and then apply all . // follow up projections on that. . if node_ty != place_ty . && self . .cx . .structurally_resolve_type(self.cx.tcx().hir_span(base_place.hir_id), place_ty) . .is_opaque() . { . projections.push(Projection { kind: ProjectionKind::OpaqueCast, ty: node_ty }); . } . } . projections.push(Projection { kind, ty }); 1,710 ( 0.00%) PlaceWithHirId::new(node, base_place.place.base_ty, base_place.place.base, projections) 1,520 ( 0.00%) } . 99 ( 0.00%) fn cat_overloaded_place( . &self, . expr: &hir::Expr<'_>, . base: &hir::Expr<'_>, . ) -> Result, Cx::Error> { . // Reconstruct the output assuming it's a reference with the . // same region and mutability as the receiver. This holds for . // `Deref(Mut)::Deref(_mut)` and `Index(Mut)::index(_mut)`. 36 ( 0.00%) let place_ty = self.expr_ty(expr)?; 268 ( 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:>::expr_ty (4x) . let base_ty = self.expr_ty_adjusted(base)?; . 36 ( 0.00%) let ty::Ref(region, _, mutbl) = . *self.cx.structurally_resolve_type(base.span, base_ty).kind() . else { . span_bug!(expr.span, "cat_overloaded_place: base is not a reference"); . }; 9 ( 0.00%) let ref_ty = Ty::new_ref(self.cx.tcx(), region, place_ty, mutbl); . 18 ( 0.00%) let base = self.cat_rvalue(expr.hir_id, ref_ty); 27 ( 0.00%) self.cat_deref(expr.hir_id, base) 1,052 ( 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:>::cat_deref (4x) 72 ( 0.00%) } . 1,752 ( 0.00%) fn cat_deref( . &self, . node: HirId, . base_place: PlaceWithHirId<'tcx>, . ) -> Result, Cx::Error> { 292 ( 0.00%) let base_curr_ty = base_place.place.ty(); 96 ( 0.00%) => ???:::ty (8x) 292 ( 0.00%) let Some(deref_ty) = self . .cx 584 ( 0.00%) .structurally_resolve_type(self.cx.tcx().hir_span(base_place.hir_id), base_curr_ty) 992 ( 0.00%) => ???:::hir_span (8x) 438 ( 0.00%) .builtin_deref(true) 56 ( 0.00%) => ???:::builtin_deref (8x) . else { . debug!("explicit deref of non-derefable type: {:?}", base_curr_ty); . return Err(self . .cx . .report_bug(self.cx.tcx().hir_span(node), "explicit deref of non-derefable type")); . }; 584 ( 0.00%) let mut projections = base_place.place.projections; . projections.push(Projection { kind: ProjectionKind::Deref, ty: deref_ty }); . 1,752 ( 0.00%) Ok(PlaceWithHirId::new(node, base_place.place.base_ty, base_place.place.base, projections)) 1,168 ( 0.00%) } . . /// Returns the variant index for an ADT used within a Struct or TupleStruct pattern . /// Here `pat_hir_id` is the HirId of the pattern itself. 1,140 ( 0.00%) fn variant_index_for_adt( . &self, . qpath: &hir::QPath<'_>, . pat_hir_id: HirId, . span: Span, . ) -> Result { 855 ( 0.00%) let res = self.cx.typeck_results().qpath_res(qpath, pat_hir_id); 1,410 ( 0.00%) => ???:::qpath_res (94x) 470 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (94x) 570 ( 0.00%) let ty = self.cx.typeck_results().node_type(pat_hir_id); 3,854 ( 0.00%) => ???:::node_type (94x) 470 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (94x) 190 ( 0.00%) let ty::Adt(adt_def, _) = self.cx.structurally_resolve_type(span, ty).kind() else { . return Err(self . .cx . .report_bug(span, "struct or tuple struct pattern not applied to an ADT")); . }; . 1,360 ( 0.00%) match res { 156 ( 0.00%) Res::Def(DefKind::Variant, variant_id) => Ok(adt_def.variant_index_with_id(variant_id)), 30 ( 0.00%) Res::Def(DefKind::Ctor(CtorOf::Variant, ..), variant_ctor_id) => { 30 ( 0.00%) Ok(adt_def.variant_index_with_ctor_id(variant_ctor_id)) 1,068 ( 0.00%) => ???:::variant_index_with_ctor_id (14x) 15 ( 0.00%) } . Res::Def(DefKind::Ctor(CtorOf::Struct, ..), _) . | Res::Def(DefKind::Struct | DefKind::Union | DefKind::TyAlias | DefKind::AssocTy, _) . | Res::SelfCtor(..) . | Res::SelfTyParam { .. } . | Res::SelfTyAlias { .. } => { . // Structs and Unions have only have one variant. . Ok(FIRST_VARIANT) . } . _ => bug!("expected ADT path, found={:?}", res), . } 760 ( 0.00%) } . . /// Returns the total number of fields in an ADT variant used within a pattern. . /// Here `pat_hir_id` is the HirId of the pattern itself. . fn total_fields_in_adt_variant( . &self, . pat_hir_id: HirId, . variant_index: VariantIdx, . span: Span, . ) -> Result { 75 ( 0.00%) let ty = self.cx.typeck_results().node_type(pat_hir_id); 41 ( 0.00%) => ???:::node_type (1x) 5 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (1x) 30 ( 0.00%) match self.cx.structurally_resolve_type(span, ty).kind() { 15 ( 0.00%) ty::Adt(adt_def, _) => Ok(adt_def.variant(variant_index).fields.len()), . _ => { . self.cx . .tcx() . .dcx() . .span_bug(span, "struct or tuple struct pattern not applied to an ADT"); . } . } . } . . /// Returns the total number of fields in a tuple used within a Tuple pattern. . /// Here `pat_hir_id` is the HirId of the pattern itself. . fn total_fields_in_tuple(&self, pat_hir_id: HirId, span: Span) -> Result { 25 ( 0.00%) let ty = self.cx.typeck_results().node_type(pat_hir_id); 41 ( 0.00%) => ???:::node_type (1x) 5 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (1x) 10 ( 0.00%) match self.cx.structurally_resolve_type(span, ty).kind() { 5 ( 0.00%) ty::Tuple(args) => Ok(args.len()), . _ => Err(self.cx.report_bug(span, "tuple pattern not applied to a tuple")), . } . } . . /// Here, `place` is the `PlaceWithHirId` being matched and pat is the pattern it . /// is being matched against. . /// . /// In general, the way that this works is that we walk down the pattern, . /// constructing a `PlaceWithHirId` that represents the path that will be taken . /// to reach the value being matched. 2,695 ( 0.00%) fn cat_pattern( . &self, . mut place_with_id: PlaceWithHirId<'tcx>, . pat: &hir::Pat<'_>, . op: &mut F, . ) -> Result<(), Cx::Error> . where . F: FnMut(&PlaceWithHirId<'tcx>, &hir::Pat<'_>) -> Result<(), Cx::Error>, . { -- line 1606 ---------------------------------------- -- line 1631 ---------------------------------------- . // Some(x, ) => { ... }, . // _ => { ... }, . // } . // ``` . // . // Then we see that to get the same result, we must start with . // `deref { deref { place_foo }}` instead of `place_foo` since the pattern is now `Some(x,)` . // and not `&&Some(x,)`, even though its assigned type is that of `&&Some(x,)`. 490 ( 0.00%) let typeck_results = self.cx.typeck_results(); 15 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (3x) . let adjustments: &[adjustment::PatAdjustment<'tcx>] = 735 ( 0.00%) typeck_results.pat_adjustments().get(pat.hir_id).map_or(&[], |v| &**v); . let mut adjusts = adjustments.iter().peekable(); . while let Some(adjust) = adjusts.next() { . debug!("applying adjustment to place_with_id={:?}", place_with_id); . place_with_id = match adjust.kind { . adjustment::PatAdjust::BuiltinDeref => self.cat_deref(pat.hir_id, place_with_id)?, . adjustment::PatAdjust::OverloadedDeref => { . // This adjustment corresponds to an overloaded deref; unless it's on a box, it . // borrows the scrutinee to call `Deref::deref` or `DerefMut::deref_mut`. Invoke -- line 1649 ---------------------------------------- -- line 1669 ---------------------------------------- . })?; . let kind = ProjectionKind::Field(FieldIdx::ZERO, FIRST_VARIANT); . place_with_id = self.cat_projection(pat.hir_id, place_with_id, target_ty, kind); . self.cat_deref(pat.hir_id, place_with_id)? . } . }; . } . drop(typeck_results); // explicitly release borrow of typeck results, just in case. 2,940 ( 0.00%) let place_with_id = place_with_id; // lose mutability . debug!("applied adjustment derefs to get place_with_id={:?}", place_with_id); . . // Invoke the callback, but only now, after the `place_with_id` has adjusted. . // . // To see that this makes sense, consider `match &Some(3) { Some(x) => { ... }}`. In that . // case, the initial `place_with_id` will be that for `&Some(3)` and the pattern is `Some(x)`. We . // don't want to call `op` with these incompatible values. As written, what happens instead . // is that `op` is called with the adjusted place (that for `*&Some(3)`) and the pattern . // `Some(x)` (which matches). Recursing once more, `*&Some(3)` and the pattern `Some(x)` . // result in the place `Downcast(*&Some(3)).0` associated to `x` and invoke `op` with . // that (where the `ref` on `x` is implied). 490 ( 0.00%) op(&place_with_id, pat)?; 946 ( 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_pat::{closure#0} (3x) . 2,374 ( 0.00%) match pat.kind { 15 ( 0.00%) PatKind::Tuple(subpats, dots_pos) => { . // (p1, ..., pN) . let total_fields = self.total_fields_in_tuple(pat.hir_id, pat.span)?; . . for (i, subpat) in subpats.iter().enumerate_and_adjust(total_fields, dots_pos) { 22 ( 0.00%) let subpat_ty = self.pat_ty_adjusted(subpat)?; 318 ( 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:>::pat_ty_adjusted (2x) . let projection_kind = . ProjectionKind::Field(FieldIdx::from_usize(i), FIRST_VARIANT); 132 ( 0.00%) let sub_place = self.cat_projection( 368 ( 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:>::cat_projection (2x) . pat.hir_id, . place_with_id.clone(), . subpat_ty, . projection_kind, . ); 55 ( 0.00%) self.cat_pattern(sub_place, subpat, op)?; 1,866 ( 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:>::cat_pattern::<>::walk_pat::{closure#0}>'2 (2x) . } . } . 60 ( 0.00%) PatKind::TupleStruct(ref qpath, subpats, dots_pos) => { . // S(p1, ..., pN) 15 ( 0.00%) let variant_index = self.variant_index_for_adt(qpath, pat.hir_id, pat.span)?; 176 ( 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:>::variant_index_for_adt (1x) . let total_fields = . self.total_fields_in_adt_variant(pat.hir_id, variant_index, pat.span)?; . . for (i, subpat) in subpats.iter().enumerate_and_adjust(total_fields, dots_pos) { 30 ( 0.00%) let subpat_ty = self.pat_ty_adjusted(subpat)?; 109 ( 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:>::pat_ty_adjusted (1x) . let projection_kind = . ProjectionKind::Field(FieldIdx::from_usize(i), variant_index); 180 ( 0.00%) let sub_place = self.cat_projection( 184 ( 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:>::cat_projection (1x) . pat.hir_id, . place_with_id.clone(), . subpat_ty, . projection_kind, . ); 75 ( 0.00%) self.cat_pattern(sub_place, subpat, op)?; 5,227 ( 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:>::cat_pattern::<>::walk_pat::{closure#0}>'2 (1x) . } . } . 160 ( 0.00%) PatKind::Struct(ref qpath, field_pats, _) => { . // S { f1: p1, ..., fN: pN } . 400 ( 0.00%) let variant_index = self.variant_index_for_adt(qpath, pat.hir_id, pat.span)?; 2,646 ( 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:>::variant_index_for_adt (18x) . . for fp in field_pats { 328 ( 0.00%) let field_ty = self.pat_ty_adjusted(fp.pat)?; 2,862 ( 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:>::pat_ty_adjusted (18x) . let field_index = self . .cx 82 ( 0.00%) .typeck_results() 90 ( 0.00%) => ???:<(&rustc_lint::context::LateContext, rustc_span::def_id::LocalDefId) as rustc_hir_typeck::expr_use_visitor::TypeInformationCtxt>::typeck_results (18x) . .field_indices() 164 ( 0.00%) .get(fp.hir_id) . .cloned() . .expect("no index for a field"); . 1,066 ( 0.00%) let field_place = self.cat_projection( 3,312 ( 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:>::cat_projection (18x) . pat.hir_id, . place_with_id.clone(), . field_ty, . ProjectionKind::Field(field_index, variant_index), . ); 410 ( 0.00%) self.cat_pattern(field_place, fp.pat, op)?; 12,920 ( 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:>::cat_pattern::<>::walk_pat::{closure#0}>'2 (18x) . } . } . 1 ( 0.00%) PatKind::Or(pats) => { . for pat in pats { 12 ( 0.00%) self.cat_pattern(place_with_id.clone(), pat, op)?; 2,781 ( 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:>::cat_pattern::<>::walk_pat::{closure#0}>'2 (3x) . } . } . . PatKind::Binding(.., Some(subpat)) | PatKind::Guard(subpat, _) => { 13 ( 0.00%) self.cat_pattern(place_with_id, subpat, op)?; 3,015 ( 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:>::cat_pattern::<>::walk_pat::{closure#0}>'2 (1x) . } . . PatKind::Ref(subpat, _, _) . if self.cx.typeck_results().skipped_ref_pats().contains(pat.hir_id) => . { . self.cat_pattern(place_with_id, subpat, op)?; . } . -- line 1770 ---------------------------------------- -- line 1823 ---------------------------------------- . | PatKind::Missing . | PatKind::Wild . | PatKind::Err(_) => { . // always ok . } . } . . Ok(()) 1,960 ( 0.00%) } . . /// Represents the place matched on by a deref pattern's interior. . fn pat_deref_place( . &self, . hir_id: HirId, . base_place: PlaceWithHirId<'tcx>, . inner: &hir::Pat<'_>, . target_ty: Ty<'tcx>, -- line 1839 ---------------------------------------- -- line 1852 ---------------------------------------- . } . } . } . . /// Checks whether a type has multiple variants, and therefore, whether a . /// read of the discriminant might be necessary. . #[instrument(skip(self, span), level = "debug")] . fn is_multivariant_adt(&self, ty: Ty<'tcx>, span: Span) -> bool { 194 ( 0.00%) if let ty::Adt(def, _) = self.cx.structurally_resolve_type(span, ty).kind() { . // We treat non-exhaustive enums the same independent of the crate they are . // defined in, to avoid differences in the operational semantics between crates. 194 ( 0.00%) def.variants().len() > 1 || def.is_variant_list_non_exhaustive() . } else { . false . } . } . } . . struct ExprPlaceDelegate; . -- line 1871 ---------------------------------------- 27,241 ( 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 { 25,653 ( 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); 12 ( 0.00%) t . } . 19,360 ( 0.00%) fn fold_ty(&mut self, t: Ty<'tcx>) -> Ty<'tcx> { 9,680 ( 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,680 ( 0.00%) if !t.has_vars_bound_at_or_above(self.current_index) { . t 4,536 ( 0.00%) } else if let Some(&t) = self.cache.get(&(self.current_index, t)) { . t . } else { 6,804 ( 0.00%) let res = t.super_fold_with(self); 1,365,117 ( 0.03%) => /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,862x) . assert!(self.cache.insert((self.current_index, t), res)); . res . } . } . } 19,360 ( 0.00%) } . . fn fold_region(&mut self, r: ty::Region<'tcx>) -> ty::Region<'tcx> { 12,780 ( 0.00%) match r.kind() { . ty::ReBound(ty::BoundVarIndexKind::Bound(debruijn), br) 2,111 ( 0.00%) if debruijn == self.current_index => . { 7,996 ( 0.00%) let region = self.delegate.replace_region(br); 627,445 ( 0.02%) => ???:::replace_region (1,523x) 12,666 ( 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 = 24,988 ( 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); 5,636 ( 0.00%) (value, region_map) . } . 8 ( 0.00%) 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(); 3,638 ( 0.00%) if !value.has_escaping_bound_vars() { 14,299 ( 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); 6 ( 0.00%) value.fold_with(&mut replacer) 3,473 ( 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::> (3x) 73 ( 0.00%) } 7 ( 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, . delegate: impl BoundVarReplacerDelegate<'tcx>, -- line 252 ---------------------------------------- -- line 275 ---------------------------------------- . pub fn liberate_late_bound_regions( . self, . all_outlive_scope: DefId, . value: ty::Binder<'tcx, T>, . ) -> T . where . T: TypeFoldable>, . { 2 ( 0.00%) self.instantiate_bound_regions_uncached(value, |br| { 930 ( 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_uncached::, ::liberate_late_bound_regions>::{closure#0}> (1x) 2 ( 0.00%) let kind = ty::LateParamRegionKind::from_bound(br.var, br.kind); 4 ( 0.00%) ty::Region::new_late_param(self, all_outlive_scope, kind) 2 ( 0.00%) }) . } . . pub fn shift_bound_var_indices(self, bound_vars: usize, value: T) -> T . where . T: TypeFoldable>, . { . let shift_bv = |bv: ty::BoundVar| bv + bound_vars; . self.replace_escaping_bound_vars_uncached( -- line 294 ---------------------------------------- -- 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. 54,395 ( 0.00%) pub fn instantiate_bound_regions_with_erased(self, value: Binder<'tcx, T>) -> T . where . T: TypeFoldable>, . { 22,777 ( 0.00%) self.instantiate_bound_regions(value, |_| self.lifetimes.re_erased).0 42,496 ( 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 ---------------------------------------- 11,080 ( 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 { 155,876 ( 0.00%) fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { 141,476 ( 0.00%) match &expr.kind { . // ((..)) . // ^^^^^^ expr . // ^^^^ inner . ExprKind::Paren(inner) 528 ( 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 2,680 ( 0.00%) ExprKind::Call(_, args) | ExprKind::MethodCall(MethodCall { args, .. }) 9,880 ( 0.00%) if let [arg] = &**args 7,347 ( 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, . ); . }, . _ => {}, . } 178,144 ( 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 ---------------------------------------- 2,449 ( 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. 506 ( 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`. 500,201 ( 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. 93,780 ( 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 ---------------------------------------- 117,497 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/misc_early/redundant_pattern.rs -------------------------------------------------------------------------------- Ir . use clippy_utils::diagnostics::span_lint_and_sugg; . use rustc_ast::ast::{Pat, PatKind}; . use rustc_errors::Applicability; . use rustc_lint::{EarlyContext, LintContext as _}; . . use super::REDUNDANT_PATTERN; . 33,271 ( 0.00%) pub(super) fn check(cx: &EarlyContext<'_>, pat: &Pat) { 33,277 ( 0.00%) if let PatKind::Ident(ann, ident, Some(ref right)) = pat.kind 2 ( 0.00%) && let PatKind::Wild = right.kind . && !pat.span.in_external_macro(cx.sess().source_map()) . { . span_lint_and_sugg( . cx, . REDUNDANT_PATTERN, . pat.span, . format!( . "the `{} @ _` pattern can be written as just `{}`", . ident.name, ident.name, . ), . "try", . format!("{}{}", ann.prefix_str(), ident.name), . Applicability::MachineApplicable, . ); . } 38,024 ( 0.00%) } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/needless_ifs.rs -------------------------------------------------------------------------------- Ir -- line 32 ---------------------------------------- . pub NEEDLESS_IFS, . complexity, . "checks for empty if branches" . } . . declare_lint_pass!(NeedlessIfs => [NEEDLESS_IFS]); . . impl LateLintPass<'_> for NeedlessIfs { 14,385 ( 0.00%) fn check_stmt<'tcx>(&mut self, cx: &LateContext<'tcx>, stmt: &Stmt<'tcx>) { 4,385 ( 0.00%) if let StmtKind::Expr(expr) = stmt.kind . && let Some(If { . cond, . then, . r#else: None, . }) = If::hir(expr) 348 ( 0.00%) && let ExprKind::Block(block, ..) = then.kind 116 ( 0.00%) && block.stmts.is_empty() 12 ( 0.00%) && block.expr.is_none() . && !expr.span.in_external_macro(cx.sess().source_map()) . && then.span.check_text(cx, |src| { . // Ignore . // - empty macro expansions . // - empty reptitions in macro expansions . // - comments . // - #[cfg]'d out code . src.bytes() -- line 57 ---------------------------------------- -- line 76 ---------------------------------------- . format!("{cond_snippet};") . } . } else { . String::new() . }, . Applicability::MachineApplicable, . ); . } 16,440 ( 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/passes.rs -------------------------------------------------------------------------------- Ir -- line 169 ---------------------------------------- . fn check_where_predicate_post(a: &rustc_ast::WherePredicate); . ]); . ) . } . . macro_rules! declare_early_lint_pass { . ([], [$(fn $name:ident($($param:ident: $arg:ty),*);)*]) => ( . pub trait EarlyLintPass: LintPass { 71,174 ( 0.00%) $(#[inline(always)] fn $name(&mut self, _: &EarlyContext<'_>, $(_: $arg),*) {})* . } . ) . } . . // Declare the `EarlyLintPass` trait, which contains empty default definitions . // for all the `check_*` methods. . early_lint_methods!(declare_early_lint_pass, []); . -- line 185 ---------------------------------------- -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/implicit_saturating_sub.rs -------------------------------------------------------------------------------- Ir -- line 90 ---------------------------------------- . . impl ImplicitSaturatingSub { . pub fn new(conf: &'static Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl<'tcx> LateLintPass<'tcx> for ImplicitSaturatingSub { 217,552 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 54,388 ( 0.00%) if expr.span.from_expansion() { . return; . } . if let Some(higher::If { cond, then, r#else: None }) = higher::If::hir(expr) . . // Check if the conditional expression is a binary operation 304 ( 0.00%) && let ExprKind::Binary(ref cond_op, cond_left, cond_right) = cond.kind . { 100 ( 0.00%) check_with_condition(cx, expr, cond_op.node, cond_left, cond_right, then, self.msrv); . } else if let Some(higher::If { . cond, . then: if_block, . r#else: Some(else_block), . }) = higher::If::hir(expr) 330 ( 0.00%) && let ExprKind::Binary(ref cond_op, cond_left, cond_right) = cond.kind . { 47 ( 0.00%) check_manual_check( . cx, expr, cond_op, cond_left, cond_right, if_block, else_block, self.msrv, . ); . } 216,736 ( 0.01%) } . } . . #[expect(clippy::too_many_arguments)] . fn check_manual_check<'tcx>( . cx: &LateContext<'tcx>, . expr: &Expr<'tcx>, . condition: &BinOp, . left_hand: &Expr<'tcx>, . right_hand: &Expr<'tcx>, . if_block: &Expr<'tcx>, . else_block: &Expr<'tcx>, . msrv: Msrv, . ) { 94 ( 0.00%) let ty = cx.typeck_results().expr_ty(left_hand); 1,880 ( 0.00%) => ???:::expr_ty (47x) . if ty.is_numeric() && !ty.is_signed() { 69 ( 0.00%) match condition.node { 5 ( 0.00%) BinOpKind::Gt | BinOpKind::Ge => check_gt( . cx, . condition.span, 1 ( 0.00%) expr.span, . left_hand, . right_hand, . if_block, . else_block, . msrv, 1 ( 0.00%) matches!( 4 ( 0.00%) clippy_utils::get_parent_expr(cx, expr), 99 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_parent_expr (1x) . Some(Expr { . kind: ExprKind::If(..), . .. . }) . ), . ), 6 ( 0.00%) BinOpKind::Lt | BinOpKind::Le => check_gt( . cx, . condition.span, 1 ( 0.00%) expr.span, . right_hand, . left_hand, . if_block, . else_block, . msrv, 1 ( 0.00%) matches!( 4 ( 0.00%) clippy_utils::get_parent_expr(cx, expr), 99 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_parent_expr (1x) . Some(Expr { . kind: ExprKind::If(..), . .. . }) . ), . ), . _ => {}, . } . } . } . . #[expect(clippy::too_many_arguments)] 26 ( 0.00%) fn check_gt( . cx: &LateContext<'_>, . condition_span: Span, . expr_span: Span, . big_expr: &Expr<'_>, . little_expr: &Expr<'_>, . if_block: &Expr<'_>, . else_block: &Expr<'_>, . msrv: Msrv, . is_composited: bool, . ) { 12 ( 0.00%) if !big_expr.can_have_side_effects() && !little_expr.can_have_side_effects() { 55 ( 0.00%) => ???:::can_have_side_effects (3x) . check_subtraction( . cx, . condition_span, . expr_span, . big_expr, . little_expr, . if_block, . else_block, . msrv, . is_composited, . ); . } 16 ( 0.00%) } . . #[expect(clippy::too_many_arguments)] . fn check_subtraction( . cx: &LateContext<'_>, . condition_span: Span, . expr_span: Span, . big_expr: &Expr<'_>, . little_expr: &Expr<'_>, -- line 208 ---------------------------------------- -- line 307 ---------------------------------------- . expr: &Expr<'tcx>, . cond_op: BinOpKind, . cond_left: &Expr<'tcx>, . cond_right: &Expr<'tcx>, . then: &Expr<'tcx>, . msrv: Msrv, . ) { . // Ensure that the binary operator is >, !=, or < 50 ( 0.00%) if (BinOpKind::Ne == cond_op || BinOpKind::Gt == cond_op || BinOpKind::Lt == cond_op) . . // Check if assign operation is done . && let Some(target) = subtracts_one(cx, then) . . // Extracting out the variable name . && let ExprKind::Path(QPath::Resolved(_, ares_path)) = target.kind . { . let ctxt = expr.span.ctxt(); -- line 323 ---------------------------------------- -- line 389 ---------------------------------------- . } . }, . _ => (), . } . } . } . . fn subtracts_one<'a>(cx: &LateContext<'_>, expr: &'a Expr<'a>) -> Option<&'a Expr<'a>> { 42 ( 0.00%) match peel_blocks_with_stmt(expr).kind { . ExprKind::AssignOp(ref op1, target, value) => { . // Check if literal being subtracted is one . (AssignOpKind::SubAssign == op1.node && is_integer_literal(value, 1)).then_some(target) . }, 1 ( 0.00%) ExprKind::Assign(target, value, _) => { 2 ( 0.00%) if let ExprKind::Binary(ref op1, left1, right1) = value.kind . && BinOpKind::Sub == op1.node . && SpanlessEq::new(cx).eq_expr(expr.span.ctxt(), left1, target) . && is_integer_literal(right1, 1) . { . Some(target) . } else { . None . } -- line 411 ---------------------------------------- 231 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/methods/ip_constant.rs -------------------------------------------------------------------------------- Ir -- line 3 ---------------------------------------- . use clippy_utils::sym; . use rustc_data_structures::smallvec::SmallVec; . use rustc_errors::Applicability; . use rustc_hir::{Expr, ExprKind, QPath, TyKind}; . use rustc_lint::LateContext; . . use super::IP_CONSTANT; . 10,248 ( 0.00%) pub(super) fn check(cx: &LateContext<'_>, expr: &Expr<'_>, func: &Expr<'_>, args: &[Expr<'_>]) { 6,182 ( 0.00%) if let ExprKind::Path(QPath::TypeRelative(ty, p)) = func.kind 1,499 ( 0.00%) && let TyKind::Path(QPath::Resolved(_, func_path)) = ty.kind 325 ( 0.00%) && p.ident.name == sym::new . && let Some(func_def_id) = func_path.res.opt_def_id() 195 ( 0.00%) && matches!( 780 ( 0.00%) cx.tcx.get_diagnostic_name(func_def_id), 11,577 ( 0.00%) => ???:::get_diagnostic_name (195x) . Some(sym::Ipv4Addr | sym::Ipv6Addr) . ) . && let ecx = ConstEvalCtxt::new(cx) . && let ctxt = expr.span.ctxt() . && let Some(args) = args . .iter() . .map(|arg| { . if let Some(Constant::Int(constant @ (0 | 1 | 127 | 255))) = ecx.eval_local(arg, ctxt) { -- line 25 ---------------------------------------- -- line 43 ---------------------------------------- . // Remove everything before the type name . sugg.push((before_span, String::new())); . } . . span_lint_and_then(cx, IP_CONSTANT, expr.span, "hand-coded well-known IP address", |diag| { . diag.multipart_suggestion("use", sugg, Applicability::MachineApplicable); . }); . } 11,712 ( 0.00%) } 1,105 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/entry.rs -------------------------------------------------------------------------------- Ir -- line 58 ---------------------------------------- . perf, . "use of `contains_key` followed by `insert` on a `HashMap` or `BTreeMap`" . } . . declare_lint_pass!(HashMapPass => [MAP_ENTRY]); . . impl<'tcx> LateLintPass<'tcx> for HashMapPass { . #[expect(clippy::too_many_lines)] 217,552 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 54,388 ( 0.00%) if expr.span.from_expansion() { . return; . } . . let Some(higher::If { . cond: cond_expr, . then: then_expr, . r#else: else_expr, . }) = higher::If::hir(expr) -- line 75 ---------------------------------------- -- line 123 ---------------------------------------- . ), . }; . Some(format!( . "if let {}::{entry_kind} = {map_str}.entry({key_str}) {then_str} else {else_str}", . map_ty.entry_path(), . )) . } else { . // if .. { insert } else { insert } 105 ( 0.00%) let ((then_str, then_entry), (else_str, else_entry)) = if contains_expr.negated { . ( . then_search.snippet_vacant(cx, then_expr.span, &mut app), . else_search.snippet_occupied(cx, else_expr.span, &mut app), . ) . } else { . ( . then_search.snippet_occupied(cx, then_expr.span, &mut app), . else_search.snippet_vacant(cx, else_expr.span, &mut app), -- line 139 ---------------------------------------- -- line 205 ---------------------------------------- . lint_msg, . None, . format!( . "consider using the `Entry` API: https://doc.rust-lang.org/std/collections/struct.{}.html#entry-api", . map_ty.name() . ), . ); . } 217,552 ( 0.01%) } . } . . #[derive(Clone, Copy)] . enum MapType { . Hash, . BTree, . } . impl MapType { -- line 221 ---------------------------------------- -- line 255 ---------------------------------------- . } . . /// Inspect the given expression and return details about the `contains_key` check. . /// . /// If the given expression is not a `contains_key` check against a `BTreeMap` or a `HashMap`, . /// return `None`. . fn try_parse_contains<'tcx>(cx: &LateContext<'_>, expr: &'tcx Expr<'_>) -> Option<(MapType, ContainsExpr<'tcx>)> { . let mut negated = false; 1,126 ( 0.00%) let expr = peel_hir_expr_while(expr, |e| match e.kind { 35 ( 0.00%) ExprKind::Unary(UnOp::Not, e) => { . negated = !negated; . Some(e) . }, . _ => None, . }); . 1,112 ( 0.00%) if let ExprKind::MethodCall(_, map, [arg], _) = expr.kind 238 ( 0.00%) && let Expr { . kind: ExprKind::AddrOf(_, _, key), . span: key_span, . .. . } = arg . && key_span.eq_ctxt(expr.span) . { . let id = cx.typeck_results().type_dependent_def_id(expr.hir_id)?; . let expr = ContainsExpr { -- line 280 ---------------------------------------- 387 ( 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<'_>) { 56,146 ( 0.00%) if let ExprKind::Ret(Some(e)) = expr.kind { 1,740 ( 0.00%) check(cx, e); 43,618 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/needless_question_mark.rs:clippy_lints::needless_question_mark::check (580x) . } . } . . fn check_body(&mut self, cx: &LateContext<'_>, body: &'_ Body<'_>) { 8,672 ( 0.00%) if let ExprKind::Block( . Block { . expr: . Some(Expr { . kind: ExprKind::DropTemps(async_body), . .. . }), . .. . }, . _, 7,152 ( 0.00%) ) = body.value.kind . { 21 ( 0.00%) 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<'_>) { 8,069 ( 0.00%) if let ExprKind::Call(path, [arg]) = expr.kind 4,206 ( 0.00%) && let Res::Def(DefKind::Ctor(..), ctor_id) = path.res(cx) . && let Some(variant_id) = cx.tcx.opt_parent(ctor_id) 1,220 ( 0.00%) && let variant = if cx.tcx.lang_items().option_some_variant() == Some(variant_id) { 11,250 ( 0.00%) => ???:::lang_items (375x) . "Some" 936 ( 0.00%) } else if cx.tcx.lang_items().result_ok_variant() == Some(variant_id) { 10,830 ( 0.00%) => ???:::lang_items (361x) . "Ok" . } else { . return; . } 456 ( 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, . ); . }, . ); . } 2,553 ( 0.00%) } 8,729 ( 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 { 566 ( 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 { 50,954 ( 0.00%) 'A'..='Z' => true, 30,200 ( 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 { 318 ( 0.00%) '0'..='9' => true, 213 ( 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,016,359 ( 0.02%) match self { . ' ' | '\x09'..='\x0d' => true, 62,316 ( 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 { 303 ( 0.00%) ToLowercase(CaseMappingIter::new(conversions::to_lower(self))) 2,121 ( 0.00%) => ???:core::unicode::unicode_data::conversions::to_lower (101x) . } . . /// 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 { 2,019 ( 0.00%) ToUppercase(CaseMappingIter::new(conversions::to_upper(self))) 14,806 ( 0.00%) => ???:core::unicode::unicode_data::conversions::to_upper (673x) . } . . /// 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 { 12,470 ( 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 { 8,822 ( 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 { 8,361 ( 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 ---------------------------------------- 5,282 ( 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 { 271,940 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'_>, expr: &Expr<'_>) { 54,388 ( 0.00%) let (target, _) = peel_hir_expr_refs(expr); 141,346 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::peel_hir_expr_refs (27,194x) 61,332 ( 0.00%) if let ExprKind::MethodCall(path, receiver, &[], _) = target.kind 1,554 ( 0.00%) && path.ident.name == sym::to_string 87 ( 0.00%) && let ExprKind::Path(QPath::Resolved(None, path)) = receiver.kind 22 ( 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, . ); . } 217,552 ( 0.01%) } . } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/manual_float_methods.rs -------------------------------------------------------------------------------- Ir -- line 93 ---------------------------------------- . . impl ManualFloatMethods { . pub fn new(conf: &'static Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . fn is_not_const(tcx: TyCtxt<'_>, def_id: DefId) -> bool { 33 ( 0.00%) match tcx.def_kind(def_id) { . DefKind::Mod . | DefKind::Struct . | DefKind::Union . | DefKind::Enum . | DefKind::Variant . | DefKind::Trait . | DefKind::TyAlias . | DefKind::ForeignTy -- line 109 ---------------------------------------- -- 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 { 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 54,881 ( 0.00%) if let ExprKind::Binary(kind, lhs, rhs) = expr.kind 782 ( 0.00%) && let ExprKind::Binary(lhs_kind, lhs_lhs, lhs_rhs) = lhs.kind 258 ( 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`. 54 ( 0.00%) && let mut exprs = [lhs_lhs, lhs_rhs, rhs_lhs, rhs_rhs] 38 ( 0.00%) && exprs.iter_mut().partition_in_place(|i| i.res_local_id().is_some()) == 2 12 ( 0.00%) && !expr.span.in_external_macro(cx.sess().source_map()) . && ( 18 ( 0.00%) is_not_const(cx.tcx, cx.tcx.hir_enclosing_body_owner(expr.hir_id).into()) 1,562 ( 0.00%) => ???:::hir_enclosing_body_owner (3x) . || self.msrv.meets(cx, msrvs::CONST_FLOAT_CLASSIFY) . ) 12 ( 0.00%) && let [first, second, const_1, const_2] = exprs 21 ( 0.00%) && let ecx = ConstEvalCtxt::new(cx) 677 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::new (3x) . && let ctxt = expr.span.ctxt() 20 ( 0.00%) && let Some(const_1) = ecx.eval_local(const_1, ctxt) 697 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::eval_local (3x) 8 ( 0.00%) && let Some(const_2) = ecx.eval_local(const_2, ctxt) 409 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::eval_local (1x) 1 ( 0.00%) && first.res_local_id().is_some_and(|f| second.res_local_id().is_some_and(|s| f == s)) . // The actual infinity check, we also allow `NEG_INFINITY` before` INFINITY` just in . // case somebody does that for some reason . && (const_1.is_pos_infinity() && const_2.is_neg_infinity() . || const_1.is_neg_infinity() && const_2.is_pos_infinity()) . && let Some(local_snippet) = first.span.get_text(cx) . { . let variant = match (kind.node, lhs_kind.node, rhs_kind.node) { . (BinOpKind::Or, BinOpKind::Eq, BinOpKind::Eq) => Variant::ManualIsInfinite, -- line 162 ---------------------------------------- -- line 196 ---------------------------------------- . expr.span, . "or, for conciseness", . format!("!{local_snippet}.is_infinite()"), . Applicability::MaybeIncorrect, . ); . }, . } . }); 2 ( 0.00%) } 138 ( 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:: (2x) 217,552 ( 0.01%) } . } 86 ( 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 { 217,552 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 54,388 ( 0.00%) if expr.span.from_expansion() { . return; . } . 17,618 ( 0.00%) let ctxt = expr.span.ctxt(); 37,091 ( 0.00%) if let ExprKind::AddrOf(BorrowKind::Ref, mutability, addressee) = expr.kind 742 ( 0.00%) && addressee.span.ctxt() == ctxt 820 ( 0.00%) && let ExprKind::Index(indexed, range, _) = addressee.kind 38 ( 0.00%) && cx . .typeck_results() 78 ( 0.00%) .expr_ty_adjusted(range) 2,787 ( 0.00%) => ???:::expr_ty_adjusted (39x) . .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); . }); . } . } 217,552 ( 0.01%) } . } 72,034 ( 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 { 244,746 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, e: &'tcx Expr<'_>) { . use self::Expression::{Bool, RetBool}; 54,388 ( 0.00%) if !e.span.from_expansion() . && let Some(higher::If { . cond, . then, . r#else: Some(else_expr), . }) = higher::If::hir(e) 330 ( 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); . }, . ); . }; 648 ( 0.00%) if let Some(a) = fetch_bool_block(then) 6,418 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_lints::needless_bool::fetch_bool_block (162x) 4 ( 0.00%) && let Some(b) = fetch_bool_block(else_expr) 15 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_lints::needless_bool::fetch_bool_block (1x) . { . match (a, b) { . (RetBool(true), RetBool(true)) | (Bool(true), Bool(true)) => { . span_lint( . cx, . NEEDLESS_BOOL, . e.span, . "this if-then-else expression will always return true", -- line 176 ---------------------------------------- -- 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), . _ => (), . } . } 810 ( 0.00%) if let Some((lhs_a, a)) = fetch_assign(then) 3,459 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_lints::needless_bool::fetch_assign (162x) . && 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, . ); . } . } 217,552 ( 0.01%) } . 19,880 ( 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. 8,520 ( 0.00%) if let Some(tail) = block.expr 4,278 ( 0.00%) && !tail.span.from_expansion() 3,693 ( 0.00%) && let [.., last_stmt] = block.stmts 1,380 ( 0.00%) && let StmtKind::Semi(if_expr) | StmtKind::Expr(if_expr) = last_stmt.kind 354 ( 0.00%) && !if_expr.span.from_expansion() . && let Some(higher::If { . cond, . then, . r#else: None, . }) = higher::If::hir(if_expr) 106 ( 0.00%) && let ExprKind::Ret(Some(ret)) = peel_blocks_with_stmt(then).kind 422 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::peel_blocks_with_stmt (25x) 6 ( 0.00%) && let Some((then_func, then_val)) = fetch_bool_and_wrapper(ret) 40 ( 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, . ); . } 22,720 ( 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)); . } 8 ( 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 { 512 ( 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)?)), . } 163 ( 0.00%) } . . fn fetch_bool_expr(expr: &Expr<'_>) -> Option { 1 ( 0.00%) if let ExprKind::Lit(lit_ptr) = peel_blocks(expr).kind 24 ( 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)> { 652 ( 0.00%) if let ExprKind::Assign(lhs, rhs, _) = peel_blocks_with_stmt(expr).kind { . fetch_bool_expr(rhs).map(|b| (lhs, b)) . } else { . None . } 162 ( 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 ---------------------------------------- 2,319 ( 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 { 28,728 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'_>) { 6,766 ( 0.00%) if let ItemKind::Fn { . ref sig, 248 ( 0.00%) generics, 744 ( 0.00%) body: id, . .. 6,384 ( 0.00%) } = item.kind . { 1,488 ( 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 2,810 ( 0.00%) && !item.span.from_expansion() 1,008 ( 0.00%) && !is_from_proc_macro(cx, item) . { . report_extra_impl_lifetimes(cx, impl_); . } 25,536 ( 0.00%) } . 2,313 ( 0.00%) fn check_poly_trait_ref(&mut self, cx: &LateContext<'tcx>, poly_trait_ref: &'tcx PolyTraitRef<'tcx>) { 514 ( 0.00%) if !poly_trait_ref.span.from_expansion() { 302 ( 0.00%) report_extra_trait_object_lifetimes(cx, poly_trait_ref.bound_generic_params, &poly_trait_ref.trait_ref); . } 2,056 ( 0.00%) } . 10,528 ( 0.00%) fn check_impl_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx ImplItem<'_>) { 10,330 ( 0.00%) if let ImplItemKind::Fn(ref sig, id) = item.kind { 4,314 ( 0.00%) let report_extra_lifetimes = trait_ref_of_method(cx, item.owner_id).is_none(); 282,080 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::trait_ref_of_method (1,438x) 1,438 ( 0.00%) check_fn_inner( . cx, . sig, . Some(id), . None, 2,876 ( 0.00%) item.generics, 1,438 ( 0.00%) item.span, . report_extra_lifetimes, 1,438 ( 0.00%) self.msrv, . || is_from_proc_macro(cx, item), . ); . } 12,032 ( 0.00%) } . 154 ( 0.00%) fn check_trait_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx TraitItem<'_>) { 88 ( 0.00%) if let TraitItemKind::Fn(ref sig, ref body) = item.kind { 198 ( 0.00%) let (body, trait_sig) = match *body { . TraitFn::Required(sig) => (None, Some(sig)), . TraitFn::Provided(id) => (Some(id), None), . }; 36 ( 0.00%) check_fn_inner( . cx, . sig, . body, . trait_sig, 36 ( 0.00%) item.generics, 18 ( 0.00%) item.span, . true, 18 ( 0.00%) self.msrv, . || is_from_proc_macro(cx, item), . ); . } 176 ( 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, . ) { 17,040 ( 0.00%) if span.in_external_macro(cx.sess().source_map()) || has_where_lifetimes(cx, generics) { 71,743 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:clippy_lints::lifetimes::has_where_lifetimes (1,438x) . return; . } . 3,406 ( 0.00%) let types = generics . .params . .iter() 1,658 ( 0.00%) .filter(|param| matches!(param.kind, GenericParamKind::Type { .. })); . . for typ in types { 162 ( 0.00%) if !typ.span.eq_ctxt(span) { . return; . } . . for pred in generics.bounds_for_param(typ.def_id) { 156 ( 0.00%) if pred.origin == PredicateOrigin::WhereClause { . // has_where_lifetimes checked that this predicate contains no lifetime. . continue; . } . 145 ( 0.00%) for bound in pred.bounds { . let mut visitor = RefVisitor::new(cx); 441 ( 0.00%) walk_param_bound(&mut visitor, bound); 10,220 ( 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:: (30x) . if visitor.lts.iter().any(|lt| matches!(lt.kind, LifetimeKind::Param(_))) { . return; . } 294 ( 0.00%) if let GenericBound::Trait(ref trait_ref) = *bound { 441 ( 0.00%) let params = &trait_ref . .trait_ref . .path . .segments . .last() . .expect("a path must have at least one segment") . .args; 441 ( 0.00%) if let Some(params) = *params { 340 ( 0.00%) let lifetimes = params.args.iter().filter_map(|arg| match arg { . GenericArg::Lifetime(lt) => Some(lt), . _ => None, . }); 115 ( 0.00%) for bound in lifetimes { . if bound.kind != LifetimeKind::Static && !bound.is_elided() { . return; . } . } . } . } 234 ( 0.00%) } 1,256 ( 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:: (117x) . } . } . 22,103 ( 0.00%) let elidable = could_use_elision(cx, sig.decl, body, trait_sig, generics.params, msrv); 2,746,983 ( 0.07%) => site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:clippy_lints::lifetimes::could_use_elision (1,437x) . 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) 2,629 ( 0.00%) if (has_elidable_lts || report_extra_lifetimes) && is_from_proc_macro() { . return; . } . 468 ( 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); . } . 213 ( 0.00%) if report_extra_lifetimes { 2,340 ( 0.00%) self::report_extra_lifetimes(cx, sig.decl, generics); 101,764 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:clippy_lints::lifetimes::report_extra_lifetimes (213x) . } . } . 25,545 ( 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,703 ( 0.00%) for arg in func.inputs { . input_visitor.visit_ty_unambig(arg); . } . // extract lifetimes in output type 4,832 ( 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); . } . 6,812 ( 0.00%) if input_visitor.abort() || output_visitor.abort() { 2 ( 0.00%) return None; . } . 6,804 ( 0.00%) let input_lts = input_visitor.lts; 8,505 ( 0.00%) let output_lts = output_visitor.lts; . 10,216 ( 0.00%) if let Some(&[trait_sig]) = trait_sig 60 ( 0.00%) && non_elidable_self_type(cx, func, trait_sig, msrv) 215 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:clippy_lints::lifetimes::non_elidable_self_type (10x) . { . return None; . } . 3,402 ( 0.00%) if let Some(body_id) = body { 10,122 ( 0.00%) let body = cx.tcx.hir_body(body_id); 94,599 ( 0.00%) => ???:::hir_body (1,687x) . 2,902 ( 0.00%) let first_ident = body.params.first().and_then(|param| param.pat.simple_ident()); 10,122 ( 0.00%) if non_elidable_self_type(cx, func, first_ident, msrv) { 34,576 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:clippy_lints::lifetimes::non_elidable_self_type (1,687x) . return None; . } . . let mut checker = BodyLifetimeChecker::new(cx); 5,061 ( 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) 10 ( 0.00%) && !allowed_lts.contains(&id) . { . return None; . } . } . . // check for higher-ranked trait bounds 3,360 ( 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(); 30 ( 0.00%) for lt in input_visitor.nested_elision_site_lts { . if allowed_lts.contains(<.ident.name) { 12 ( 0.00%) return None; . } . } . for lt in output_visitor.nested_elision_site_lts { . if allowed_lts.contains(<.ident.name) { . return None; . } . } . } -- line 375 ---------------------------------------- -- 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)| { 12 ( 0.00%) if occurrences == 1 10 ( 0.00%) && (input_lts.len() == 1 || !output_lts.iter().any(|lt| named_lifetime(lt) == Some(def_id))) . { . Some(def_id) . } else { . None . } . }) . .collect::>(); . 1,677 ( 0.00%) if elidable_lts.is_empty() { 1,677 ( 0.00%) return None; . } . . let usages = itertools::chain(input_lts, output_lts).collect(); . . Some((elidable_lts, usages)) 23,838 ( 0.00%) } . . fn allowed_lts_from(named_generics: &[GenericParam<'_>]) -> FxIndexSet { . named_generics . .iter() . .filter_map(|par| { 4,974 ( 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 6,788 ( 0.00%) fn non_elidable_self_type<'tcx>(cx: &LateContext<'tcx>, func: &FnDecl<'tcx>, ident: Option, msrv: Msrv) -> bool { 3,394 ( 0.00%) if let Some(ident) = ident 1,461 ( 0.00%) && ident.name == kw::SelfLower 2,301 ( 0.00%) && !func.implicit_self().has_implicit_self() 6,136 ( 0.00%) => ???:::implicit_self (767x) . && 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 . } 8,485 ( 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) . { 2 ( 0.00%) pair.1 += 1; . } else { . occurrences.push((curr_def_id, 1)); . } . } . } 4,672 ( 0.00%) occurrences . } . . fn named_lifetime(lt: &Lifetime) -> Option { 13,079 ( 0.00%) match lt.kind { 3,152 ( 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 { 32,014 ( 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); . } . 2,970 ( 0.00%) fn visit_poly_trait_ref(&mut self, poly_tref: &'tcx PolyTraitRef<'tcx>) { 330 ( 0.00%) let trait_ref = &poly_tref.trait_ref; 990 ( 0.00%) if let Some(id) = trait_ref.trait_def_id() 4,290 ( 0.00%) => ???:::trait_def_id (330x) 660 ( 0.00%) && lang_items::FN_TRAITS . .iter() 1,960 ( 0.00%) .any(|&item| self.cx.tcx.lang_items().get(item) == Some(id)) 29,400 ( 0.00%) => ???:::lang_items (980x) . { . let mut sub_visitor = RefVisitor::new(self.cx); . sub_visitor.visit_trait_ref(trait_ref); 15 ( 0.00%) self.nested_elision_site_lts.append(&mut sub_visitor.all_lts()); . } else { . walk_poly_trait_ref(self, poly_tref); . } 2,640 ( 0.00%) } . 46,888 ( 0.00%) fn visit_ty(&mut self, ty: &'tcx Ty<'_, AmbigArg>) { 29,287 ( 0.00%) match ty.kind { 18 ( 0.00%) TyKind::FnPtr(&FnPtrTy { decl, .. }) => { 9 ( 0.00%) let mut sub_visitor = RefVisitor::new(self.cx); . sub_visitor.visit_fn_decl(decl); 8 ( 0.00%) self.nested_elision_site_lts.append(&mut sub_visitor.all_lts()); . }, 6 ( 0.00%) TyKind::TraitObject(bounds, lt) => { . if !lt.is_elided() { 2 ( 0.00%) self.unelided_trait_object_lifetime = true; . } . for bound in bounds { 4 ( 0.00%) self.visit_poly_trait_ref(bound); 864 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:::visit_poly_trait_ref (2x) . } . }, 52,650 ( 0.00%) _ => walk_ty(self, ty), 495,572 ( 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:: (3,760x) . } 88 ( 0.00%) } . } . . /// Are any lifetimes mentioned in the `where` clause? If so, we don't try to . /// reason about elision. 13,632 ( 0.00%) fn has_where_lifetimes<'tcx>(cx: &LateContext<'tcx>, generics: &'tcx Generics<'_>) -> bool { . for predicate in generics.predicates { 860 ( 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 172 ( 0.00%) walk_unambig_ty(&mut visitor, pred.bounded_ty); 172 ( 0.00%) if !visitor.all_lts().is_empty() { . return true; . } . // if the bounds define new lifetimes, they are fine to occur 344 ( 0.00%) let allowed_lts = allowed_lts_from(pred.bound_generic_params); . // now walk the bounds 172 ( 0.00%) for bound in pred.bounds { . walk_param_bound(&mut visitor, bound); . } . // and check that all lifetimes are allowed 20 ( 0.00%) for lt in visitor.all_lts() { . if let Some(id) = named_lifetime(<) . && !allowed_lts.contains(&id) . { . return true; . } . } . }, . } . } . false 13,632 ( 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() 2,330 ( 0.00%) .filter_map(|par| match par.kind { . GenericParamKind::Lifetime { . kind: LifetimeParamKind::Explicit, 85 ( 0.00%) } => Some((par.def_id, Vec::new())), . _ => None, . }) . .collect(); . 4,492 ( 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)); . 783 ( 0.00%) self.bounded_ty_depth += 1; . try_visit!(self.visit_ty_unambig(bounded_ty)); 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) { 5,911 ( 0.00%) if let LifetimeKind::Param(def_id) = lifetime.kind 6,332 ( 0.00%) && let Some(usages) = self.map.get_mut(&def_id) 4,072 ( 0.00%) => /rust/deps/indexmap-2.14.0/src/map.rs:, rustc_hash::FxBuildHasher>>::get_mut:: (242x) . { . usages.push(Usage { . lifetime: *lifetime, 321 ( 0.00%) in_where_predicate: self.where_predicate_depth != 0, 316 ( 0.00%) in_bounded_ty: self.bounded_ty_depth != 0, 349 ( 0.00%) in_generics_arg: self.generic_args_depth != 0, 158 ( 0.00%) lifetime_elision_impossible: self.lifetime_elision_impossible, . }); . } . } . 1,566 ( 0.00%) fn visit_where_predicate(&mut self, predicate: &'tcx WherePredicate<'tcx>) { 261 ( 0.00%) self.where_predicate_depth += 1; 261 ( 0.00%) if let &WherePredicateKind::BoundPredicate(WhereBoundPredicate { 261 ( 0.00%) bounded_ty, 522 ( 0.00%) bounds, 522 ( 0.00%) bound_generic_params, . origin: _, 522 ( 0.00%) }) = predicate.kind . { . self.visit_where_bound_predicate(predicate.hir_id, bounded_ty, bounds, bound_generic_params); . } else { . walk_where_predicate(self, predicate); . } 261 ( 0.00%) self.where_predicate_depth -= 1; 1,566 ( 0.00%) } . 612 ( 0.00%) fn visit_generic_args(&mut self, generic_args: &'tcx GenericArgs<'tcx>) -> Self::Result { 1,233 ( 0.00%) self.generic_args_depth += 1; . walk_generic_args(self, generic_args); 1,938 ( 0.00%) self.generic_args_depth -= 1; 612 ( 0.00%) } . . fn visit_fn_decl(&mut self, fd: &'tcx FnDecl<'tcx>) -> Self::Result { 842 ( 0.00%) self.lifetime_elision_impossible = !is_candidate_for_elision(fd); . walk_fn_decl(self, fd); 730 ( 0.00%) self.lifetime_elision_impossible = false; . } . . fn maybe_tcx(&mut self) -> Self::MaybeTyCtxt { 1,434 ( 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 { 92 ( 0.00%) ControlFlow::Break(lifetime.is_elided() || lifetime.is_anonymous()) . } . } . 3,586 ( 0.00%) if fd.lifetime_elision_allowed() 431 ( 0.00%) && let Return(ret_ty) = fd.output 431 ( 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. 56 ( 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); . 605 ( 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", . ); . } . } . } . 4,680 ( 0.00%) fn report_extra_lifetimes<'tcx>(cx: &LateContext<'tcx>, func: &'tcx FnDecl<'_>, generics: &'tcx Generics<'_>) { 936 ( 0.00%) let mut checker = LifetimeChecker::::new(cx, generics.params); . 1,404 ( 0.00%) walk_generics(&mut checker, generics); 62,365 ( 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::> (468x) . walk_fn_decl(&mut checker, func); . 1,883 ( 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", . ); . } . } 3,744 ( 0.00%) } . . fn report_extra_impl_lifetimes<'tcx>(cx: &LateContext<'tcx>, impl_: &'tcx Impl<'_>) { 1,512 ( 0.00%) let mut checker = LifetimeChecker::::new(cx, impl_.generics.params); . 2,016 ( 0.00%) walk_generics(&mut checker, impl_.generics); 25,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_generics::> (504x) 1,512 ( 0.00%) if let Some(of_trait) = impl_.of_trait { . walk_trait_ref(&mut checker, &of_trait.trait_ref); . } 504 ( 0.00%) walk_unambig_ty(&mut checker, impl_.self_ty); 1,191 ( 0.00%) for &item in impl_.items { . walk_impl_item_ref(&mut checker, item); . } . 72 ( 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", . ); . } . } . 204 ( 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>, . ) { 2,520 ( 0.00%) let (elidable_lts, usages): (Vec<_>, Vec<_>) = map . .iter() . .filter_map(|(def_id, usages)| { 324 ( 0.00%) if let [ . Usage { . lifetime, . in_where_predicate: false, . lifetime_elision_impossible: false, . .. . }, . ] = usages.as_slice() . { . Some((def_id, lifetime)) . } else { . None . } . }) 1,008 ( 0.00%) .unzip(); 26,933 ( 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> (504x) . 504 ( 0.00%) if elidable_lts.is_empty() { . return; . } . 252 ( 0.00%) report_elidable_lifetimes(cx, impl_.generics, &elidable_lts, &usages, true); 171,615 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/lifetimes.rs:clippy_lints::lifetimes::report_elidable_lifetimes (42x) . } . . #[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. 630 ( 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`. 180 ( 0.00%) .filter_map(|&def_id| cx.tcx.hir_node_by_def_id(def_id).ident()) 588 ( 0.00%) => ???:::ident (42x) . .format(", "); . . let elidable_usages: Vec = usages . .iter() . .filter(|usage| named_lifetime(usage).is_some_and(|id| elidable_lts.contains(&id))) 543 ( 0.00%) .map(|usage| match cx.tcx.parent_hir_node(usage.hir_id) { 3,960 ( 0.00%) => ???:::parent_hir_node (45x) . Node::Ty(Ty { . kind: TyKind::Ref(..), .. . }) => ElidableUsage::Ref(usage.ident.span), . _ => ElidableUsage::Other(usage.ident.span), . }) . .collect(); . . let lint = if elidable_usages . .iter() 42 ( 0.00%) .any(|usage| matches!(usage, ElidableUsage::Other(_))) . { . ELIDABLE_LIFETIME_NAMES . } else { . NEEDLESS_LIFETIMES . }; . 294 ( 0.00%) span_lint_and_then( 48,579 ( 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}> (42x) . cx, . lint, . elidable_lts . .iter() 45 ( 0.00%) .map(|<| cx.tcx.def_span(lt)) . .chain(usages.iter().filter_map(|usage| { 90 ( 0.00%) if let LifetimeKind::Param(def_id) = usage.kind . && elidable_lts.contains(&def_id) . { 45 ( 0.00%) return Some(usage.ident.span); . } . . None . })) . .collect_vec(), 126 ( 0.00%) format!("the following explicit lifetimes could be elided: {lts}"), 336 ( 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); . } . }, . ); 336 ( 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,687 ( 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<()> { 88 ( 0.00%) if !lifetime.is_anonymous() && lifetime.ident.name != kw::StaticLifetime { . return ControlFlow::Break(()); . } . ControlFlow::Continue(()) . } . } 40,115 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/types/type_complexity.rs -------------------------------------------------------------------------------- Ir -- line 4 ---------------------------------------- . use rustc_hir::{self as hir, AmbigArg, GenericParamKind, TyKind}; . use rustc_lint::LateContext; . use rustc_span::Span; . . use super::TYPE_COMPLEXITY; . . pub(super) fn check(cx: &LateContext<'_>, ty: &hir::Ty<'_>, type_complexity_threshold: u64) -> bool { . let score = { 2,792 ( 0.00%) let mut visitor = TypeComplexityVisitor { score: 0, nest: 1 }; . visitor.visit_ty_unambig(ty); 1,328 ( 0.00%) visitor.score . }; . 2,792 ( 0.00%) if score > type_complexity_threshold { . span_lint( . cx, . TYPE_COMPLEXITY, . ty.span, . "very complex type used. Consider factoring parts into `type` definitions", . ); . true . } else { -- line 25 ---------------------------------------- -- line 36 ---------------------------------------- . } . . impl<'tcx> Visitor<'tcx> for TypeComplexityVisitor { . fn visit_infer(&mut self, inf_id: hir::HirId, _inf_span: Span, _kind: InferKind<'tcx>) -> Self::Result { . self.score += 1; . self.visit_id(inf_id); . } . 9,088 ( 0.00%) fn visit_ty(&mut self, ty: &'tcx hir::Ty<'_, AmbigArg>) { 20,475 ( 0.00%) let (add_score, sub_nest) = match ty.kind { . // &x and *x have only small overhead; don't mess with nesting level . TyKind::Ptr(..) | TyKind::Ref(..) => (1, 0), . . // the "normal" components of a type: named types, arrays/tuples 5,832 ( 0.00%) TyKind::Path(..) | TyKind::Slice(..) | TyKind::Tup(..) | TyKind::Array(..) => (10 * self.nest, 1), . . // function types bring a lot of overhead 100 ( 0.00%) TyKind::FnPtr(fn_ptr) if fn_ptr.abi == ExternAbi::Rust => (50 * self.nest, 1), 423 ( 0.00%) => ???:::eq (9x) . 3 ( 0.00%) TyKind::TraitObject(param_bounds, _) => { . let has_lifetime_parameters = param_bounds.iter().any(|bound| { . bound . .bound_generic_params . .iter() . .any(|param| matches!(param.kind, GenericParamKind::Lifetime { .. })) . }); . if has_lifetime_parameters { . // complex trait bounds like A<'a, 'b> . (50 * self.nest, 1) . } else { . // simple trait bounds like A + B 12 ( 0.00%) (20 * self.nest, 0) . } . }, . . _ => (0, 0), . }; 2,275 ( 0.00%) self.score += add_score; 2,275 ( 0.00%) self.nest += sub_nest; 4,550 ( 0.00%) walk_ty(self, ty); 172,046 ( 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:: (1,328x) 2,278 ( 0.00%) self.nest -= sub_nest; 9,088 ( 0.00%) } . } 6,810 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/manual_noop_waker.rs -------------------------------------------------------------------------------- Ir -- line 45 ---------------------------------------- . . impl ManualNoopWaker { . pub fn new(conf: &'static Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl<'tcx> LateLintPass<'tcx> for ManualNoopWaker { 22,344 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'tcx>) { 7,789 ( 0.00%) if let ItemKind::Impl(imp) = item.kind 2,810 ( 0.00%) && let Some(trait_ref) = imp.of_trait 5,400 ( 0.00%) && let Some(trait_id) = trait_ref.trait_ref.trait_def_id() 17,550 ( 0.00%) => ???:::trait_def_id (1,350x) 9,450 ( 0.00%) && cx.tcx.is_diagnostic_item(sym::Wake, trait_id) 78,244 ( 0.00%) => ???:::is_diagnostic_item (1,350x) . && self.msrv.meets(cx, msrvs::WAKER_NOOP) . { . for impl_item_ref in imp.items { . let impl_item = cx . .tcx . .hir_node_by_def_id(impl_item_ref.owner_id.def_id) . .expect_impl_item(); . -- line 65 ---------------------------------------- -- line 75 ---------------------------------------- . cx, . MANUAL_NOOP_WAKER, . trait_ref.trait_ref.path.span, . "manual implementation of a no-op waker", . None, . "use `std::task::Waker::noop()` instead", . ); . } 25,536 ( 0.00%) } . } 8,100 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/redundant_closure_call.rs -------------------------------------------------------------------------------- Ir -- line 88 ---------------------------------------- . &'tcx hir::Expr<'tcx>, . &'tcx hir::FnDecl<'tcx>, . ty::Asyncness, . &'tcx [Param<'tcx>], . CaptureBy, . )> { . let mut data = None; . 4,344 ( 0.00%) while let ExprKind::Closure(closure) = expr.kind . && let body = cx.tcx.hir_body(closure.body) . && !contains_early_return(body.value) . && steps > 0 . { . let mut unwrapped_body_value = body.value; . let mut asyncness = ty::Asyncness::No; . let mut capture_clause = closure.capture_clause; . -- line 104 ---------------------------------------- -- line 147 ---------------------------------------- . /// ^^ this is the call expression we were given . /// ^^ this is what we want to return (and the depth is 3) . /// ``` . fn get_parent_call_exprs<'tcx>( . cx: &LateContext<'tcx>, . mut expr: &'tcx hir::Expr<'tcx>, . ) -> (&'tcx hir::Expr<'tcx>, usize) { . let mut depth = 1; 10,860 ( 0.00%) while let Some(parent) = get_parent_expr(cx, expr) 220,838 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_parent_expr (2,172x) 2,172 ( 0.00%) && let ExprKind::Call(recv, _) = parent.kind . && expr.span == recv.span . { . expr = parent; . depth += 1; . } . (expr, depth) . } . . impl<'tcx> LateLintPass<'tcx> for RedundantClosureCall { 217,552 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx hir::Expr<'tcx>) { 154,698 ( 0.00%) if expr.span.in_external_macro(cx.sess().source_map()) { . return; . } . 2,178 ( 0.00%) if let ExprKind::Call(recv, _) = expr.kind . // don't lint if the receiver is a call, too. . // we do this in order to prevent linting multiple times; consider: . // `(|| || 1)()()` . // ^^ we only want to lint for this call (but we walk up the calls to consider both calls). . // without this check, we'd end up linting twice. 4,356 ( 0.00%) && !matches!(recv.kind, ExprKind::Call(..)) . // Check if `recv` comes from a macro expansion. If it does, make sure that it's an expansion that is . // the same as the one the call is in. . // For instance, let's assume `x!()` returns a closure: . // B ---v . // x!()() . // ^- A . // The call happens in the expansion `A`, while the closure originates from the expansion `B`. . // We don't want to suggest replacing `x!()()` with `x!()`. 4,356 ( 0.00%) && recv.span.ctxt().outer_expn() == expr.span.ctxt().outer_expn() . && let (full_expr, call_depth) = get_parent_call_exprs(cx, expr) . && let Some((mut body, fn_decl, coroutine_kind, params, capture_clause)) = . find_innermost_closure(cx, recv, call_depth) . // outside macros we lint properly. Inside macros, we lint only ||() style closures. . && (!matches!(expr.span.ctxt().outer_expn_data().kind, ExpnKind::Macro(_, _)) || params.is_empty()) . { . span_lint_and_then( . cx, -- line 194 ---------------------------------------- -- line 229 ---------------------------------------- . .maybe_paren(); . } . . diag.span_suggestion(full_expr.span, "try doing something like", hint, applicability); . } . }, . ); . } 217,552 ( 0.01%) } . 19,880 ( 0.00%) fn check_block(&mut self, cx: &LateContext<'tcx>, block: &'tcx hir::Block<'_>) { . fn count_closure_usage<'tcx>( . cx: &LateContext<'tcx>, . block: &'tcx hir::Block<'_>, . path: &'tcx hir::Path<'tcx>, . ) -> usize { . struct ClosureUsageCount<'a, 'tcx> { . cx: &'a LateContext<'tcx>, . path: &'tcx hir::Path<'tcx>, -- line 247 ---------------------------------------- -- line 265 ---------------------------------------- . self.cx.tcx . } . } . let mut closure_usage_count = ClosureUsageCount { cx, path, count: 0 }; . closure_usage_count.visit_block(block); . closure_usage_count.count . } . 3,310 ( 0.00%) for w in block.stmts.windows(2) { 2,443 ( 0.00%) if let hir::StmtKind::Let(local) = w[0].kind 1,539 ( 0.00%) && let Some(t) = local.init 992 ( 0.00%) && let ExprKind::Closure { .. } = t.kind . && let hir::PatKind::Binding(_, _, ident, _) = local.pat.kind . && let hir::StmtKind::Semi(second) = w[1].kind . && let ExprKind::Assign(_, call, _) = second.kind . && let ExprKind::Call(closure, _) = call.kind . && let ExprKind::Path(hir::QPath::Resolved(_, path)) = closure.kind . && ident == path.segments[0].ident . && count_closure_usage(cx, block, path) == 1 . { -- line 284 ---------------------------------------- -- line 286 ---------------------------------------- . cx, . REDUNDANT_CLOSURE_CALL, . second.hir_id, . second.span, . "closure called just once immediately after it was declared", . ); . } . } 22,720 ( 0.00%) } . } 15,408 ( 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>)> { 104 ( 0.00%) if let ExprKind::Binary(op, l, r) = expr.kind { 27 ( 0.00%) 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 { 190,358 ( 0.00%) fn check_expr<'tcx>(&mut self, cx: &LateContext<'tcx>, expr: &Expr<'tcx>) { 55,568 ( 0.00%) if let ExprKind::Binary(op, l, r) = expr.kind 1,146 ( 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, . ); . }, . ); . } 217,552 ( 0.01%) } . } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/manual_async_fn.rs -------------------------------------------------------------------------------- Ir -- line 34 ---------------------------------------- . pub MANUAL_ASYNC_FN, . style, . "manual implementations of `async` functions can be simplified using the dedicated syntax" . } . . declare_lint_pass!(ManualAsyncFn => [MANUAL_ASYNC_FN]); . . impl<'tcx> LateLintPass<'tcx> for ManualAsyncFn { 14,192 ( 0.00%) fn check_fn( . &mut self, . cx: &LateContext<'tcx>, . kind: FnKind<'tcx>, . decl: &'tcx FnDecl<'_>, . body: &'tcx Body<'_>, . span: Span, . fn_def_id: LocalDefId, . ) { . if let Some(header) = kind.header() 5,067 ( 0.00%) && !header.asyncness.is_async() . // Check that this function returns `impl Future` 1,413 ( 0.00%) && let FnRetTy::Return(ret_ty) = decl.output 2,827 ( 0.00%) && let TyKind::OpaqueDef(opaque) = ret_ty.kind 3 ( 0.00%) && let Some(trait_ref) = future_trait_ref(cx, opaque) . && let Some(output) = future_output_ty(trait_ref) . && captures_all_lifetimes(cx, fn_def_id, opaque.def_id) . // Check that the body of the function consists of one async block . && let ExprKind::Block(block, _) = body.value.kind . && block.stmts.is_empty() . && let Some(closure_body) = desugared_async_block(cx, block) . && let Some(vis_span_opt) = match cx.tcx.hir_node_by_def_id(fn_def_id) { . Node::Item(item) => Some(Some(item.vis_span)), -- line 64 ---------------------------------------- -- line 96 ---------------------------------------- . (block.span, body_snip), . ], . Applicability::MachineApplicable, . ); . } . }, . ); . } 14,192 ( 0.00%) } . } . . fn future_trait_ref<'tcx>(cx: &LateContext<'tcx>, opaque: &'tcx OpaqueTy<'tcx>) -> Option<&'tcx TraitRef<'tcx>> { 1 ( 0.00%) if let Some(trait_ref) = opaque.bounds.iter().find_map(|bound| { 1 ( 0.00%) if let GenericBound::Trait(poly) = bound { . Some(&poly.trait_ref) . } else { . None . } 5 ( 0.00%) }) && trait_ref.trait_def_id() == cx.tcx.lang_items().future_trait() 30 ( 0.00%) => ???:::lang_items (1x) 13 ( 0.00%) => ???:::trait_def_id (1x) . { . return Some(trait_ref); . } . . None . } . . fn future_output_ty<'tcx>(trait_ref: &'tcx TraitRef<'tcx>) -> Option<&'tcx Ty<'tcx>> { -- line 122 ---------------------------------------- 4 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/attrs/deprecated_cfg_attr.rs -------------------------------------------------------------------------------- Ir . use super::{Attribute, DEPRECATED_CFG_ATTR, DEPRECATED_CLIPPY_CFG_ATTR, unnecessary_clippy_cfg}; . use clippy_utils::diagnostics::span_lint_and_sugg; . use clippy_utils::msrvs::{self, MsrvStack}; . use clippy_utils::sym; . use rustc_ast::AttrStyle; . use rustc_errors::Applicability; . use rustc_lint::EarlyContext; . 45,256 ( 0.00%) pub(super) fn check(cx: &EarlyContext<'_>, attr: &Attribute, msrv: &MsrvStack) { . // check cfg_attr . if attr.has_name(sym::cfg_attr) 3,078 ( 0.00%) && let Some(items) = attr.meta_item_list() 891,251 ( 0.02%) => ???:::meta_item_list (513x) 1,026 ( 0.00%) && items.len() == 2 . && let Some(feature_item) = items[0].meta_item() . { . // check for `rustfmt` 2,565 ( 0.00%) if feature_item.has_name(sym::rustfmt) 4,104 ( 0.00%) => ???:::has_name (513x) . && msrv.meets(msrvs::TOOL_ATTRIBUTES) . // check for `rustfmt_skip` and `rustfmt::skip` . && let Some(skip_item) = &items[1].meta_item() . && (skip_item.has_name(sym::rustfmt_skip) . || skip_item . .path . .segments . .last() -- line 25 ---------------------------------------- -- line 36 ---------------------------------------- . DEPRECATED_CFG_ATTR, . attr.span, . "`cfg_attr` is deprecated for rustfmt and got replaced by tool attributes", . "use", . "#[rustfmt::skip]".to_string(), . Applicability::MachineApplicable, . ); . } else { 1,539 ( 0.00%) check_deprecated_cfg_recursively(cx, feature_item); 21,830 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/attrs/deprecated_cfg_attr.rs:clippy_lints::attrs::deprecated_cfg_attr::check_deprecated_cfg_recursively (513x) 1,539 ( 0.00%) if let Some(behind_cfg_attr) = items[1].meta_item() { 2,052 ( 0.00%) unnecessary_clippy_cfg::check(cx, feature_item, behind_cfg_attr, attr); 16,416 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/attrs/unnecessary_clippy_cfg.rs:clippy_lints::attrs::unnecessary_clippy_cfg::check (513x) . } . } . } 33,942 ( 0.00%) } . 45,256 ( 0.00%) pub(super) fn check_clippy(cx: &EarlyContext<'_>, attr: &Attribute) { . if attr.has_name(sym::cfg) 4,758 ( 0.00%) && let Some(list) = attr.meta_item_list() 615,987 ( 0.02%) => ???:::meta_item_list (793x) . { 3,172 ( 0.00%) for item in list.iter().filter_map(|item| item.meta_item()) { 2,379 ( 0.00%) check_deprecated_cfg_recursively(cx, item); 59,123 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/attrs/deprecated_cfg_attr.rs:clippy_lints::attrs::deprecated_cfg_attr::check_deprecated_cfg_recursively (793x) . } . } 39,599 ( 0.00%) } . 11,802 ( 0.00%) fn check_deprecated_cfg_recursively(cx: &EarlyContext<'_>, attr: &rustc_ast::MetaItem) { 13,418 ( 0.00%) if let Some(ident) = attr.ident() { 11,754 ( 0.00%) => ???:::ident (1,306x) . if matches!(ident.name, sym::any | sym::all | sym::not) { 828 ( 0.00%) let Some(list) = attr.meta_item_list() else { return }; 1,134 ( 0.00%) => ???:::meta_item_list (189x) 1,001 ( 0.00%) for item in list.iter().filter_map(|item| item.meta_item()) { 1,140 ( 0.00%) check_deprecated_cfg_recursively(cx, item); 18,504 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/attrs/deprecated_cfg_attr.rs:clippy_lints::attrs::deprecated_cfg_attr::check_deprecated_cfg_recursively'2 (346x) . } . } else { . check_cargo_clippy_attr(cx, attr); . } . } 8,430 ( 0.00%) } . . fn check_cargo_clippy_attr(cx: &EarlyContext<'_>, item: &rustc_ast::MetaItem) { 7,395 ( 0.00%) if item.has_name(sym::feature) && item.value_str() == Some(sym::cargo_clippy) { 8,936 ( 0.00%) => ???:::has_name (1,117x) . span_lint_and_sugg( . cx, . DEPRECATED_CLIPPY_CFG_ATTR, . item.span, . "`feature = \"cargo-clippy\"` was replaced by `clippy`", . "replace with", . "clippy".to_string(), . Applicability::MachineApplicable, -- line 84 ---------------------------------------- 2,686 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/functions/impl_trait_in_params.rs -------------------------------------------------------------------------------- Ir -- line 6 ---------------------------------------- . use rustc_hir::intravisit::FnKind; . use rustc_hir::{Body, GenericParam, Generics, HirId, ImplItem, ImplItemKind, TraitItem, TraitItemKind}; . use rustc_lint::LateContext; . . use super::IMPL_TRAIT_IN_PARAMS; . . fn report(cx: &LateContext<'_>, param: &GenericParam<'_>, generics: &Generics<'_>) { . // No generics with nested generics, and no generics like FnMut(x) 49 ( 0.00%) span_lint_and_then( 963 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/diagnostics.rs:clippy_utils::diagnostics::span_lint_and_then:: (1x) . cx, . IMPL_TRAIT_IN_PARAMS, 5 ( 0.00%) param.span, . "`impl Trait` used as a function parameter", . |diag| { . if let Some(gen_span) = generics.span_for_param_suggestion() { . // If there's already a generic param with the same bound, do not lint **this** suggestion. . diag.span_suggestion_verbose( . gen_span, . "add a type parameter", . format!(", {{ /* Generic name */ }}: {}", ¶m.name.ident().as_str()[5..]), -- line 25 ---------------------------------------- -- line 33 ---------------------------------------- . Applicability::HasPlaceholders, . ); . } . }, . ); . } . . pub(super) fn check_fn<'tcx>(cx: &LateContext<'_>, kind: &'tcx FnKind<'_>, body: &'tcx Body<'_>, hir_id: HirId) { 3,548 ( 0.00%) if let FnKind::ItemFn(_, generics, _) = kind 744 ( 0.00%) && cx.tcx.visibility(cx.tcx.hir_body_owner_def_id(body.id())).is_public() 26,758 ( 0.00%) => ???:::hir_body_owner_def_id (248x) 378 ( 0.00%) && !is_in_test(cx.tcx, hir_id) 328,122 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_in_test (126x) . { 126 ( 0.00%) for param in generics.params { 218 ( 0.00%) if param.is_impl_trait() { 1 ( 0.00%) report(cx, param, generics); . } . } . } . } . . pub(super) fn check_impl_item(cx: &LateContext<'_>, impl_item: &ImplItem<'_>) { 5,884 ( 0.00%) if let ImplItemKind::Fn(_, body_id) = impl_item.kind 11,504 ( 0.00%) && let hir::Node::Item(item) = cx.tcx.parent_hir_node(impl_item.hir_id()) 221,330 ( 0.01%) => ???:::parent_hir_node (1,438x) 2,876 ( 0.00%) && let hir::ItemKind::Impl(impl_) = item.kind 2,876 ( 0.00%) && let hir::Impl { of_trait: None, .. } = impl_ 884 ( 0.00%) && let body = cx.tcx.hir_body(body_id) 11,685 ( 0.00%) => ???:::hir_body (221x) 663 ( 0.00%) && cx.tcx.visibility(cx.tcx.hir_body_owner_def_id(body.id())).is_public() 22,682 ( 0.00%) => ???:::hir_body_owner_def_id (221x) 1,110 ( 0.00%) && !is_in_test(cx.tcx, impl_item.hir_id()) 432,998 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_in_test (185x) . { 370 ( 0.00%) for param in impl_item.generics.params { 68 ( 0.00%) if param.is_impl_trait() { 4 ( 0.00%) report(cx, param, impl_item.generics); . } . } . } . } . . pub(super) fn check_trait_item(cx: &LateContext<'_>, trait_item: &TraitItem<'_>, avoid_breaking_exported_api: bool) { 44 ( 0.00%) if !avoid_breaking_exported_api . && let TraitItemKind::Fn(_, _) = trait_item.kind . && let hir::Node::Item(item) = cx.tcx.parent_hir_node(trait_item.hir_id()) . // ^^ (Will always be a trait) . && !item.vis_span.is_empty() // Is public . && !is_in_test(cx.tcx, trait_item.hir_id()) . { . for param in trait_item.generics.params { . if param.is_impl_trait() { -- line 79 ---------------------------------------- 2,526 ( 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; . 14,312 ( 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 { 17,658 ( 0.00%) if let PatKind::Ident(_, ident, None) = arg.pat.kind { . let arg_name = ident.to_string(); . 6 ( 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 { 9,735 ( 0.00%) registered_names.insert(arg_name, arg.pat.span); . } . } . } 14,312 ( 0.00%) } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/loops/while_let_on_iterator.rs -------------------------------------------------------------------------------- Ir -- line 11 ---------------------------------------- . use rustc_hir::intravisit::{Visitor, walk_expr}; . use rustc_hir::{Closure, Expr, ExprKind, HirId, LetStmt, Mutability, UnOp}; . use rustc_lint::LateContext; . use rustc_middle::hir::nested_filter::OnlyBodies; . use rustc_middle::ty::adjustment::{Adjust, DerefAdjustKind}; . use rustc_span::Symbol; . use rustc_span::symbol::sym; . 123,326 ( 0.00%) pub(super) fn check<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 30 ( 0.00%) if let Some(higher::WhileLet { if_then, let_pat, let_expr, label, .. }) = higher::WhileLet::hir(expr) . // check for `Some(..)` pattern 18 ( 0.00%) && let Some(some_pat) = as_some_pattern(cx, let_pat) 1,078 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::as_some_pattern (6x) . // check for call to `Iterator::next` 13 ( 0.00%) && let ExprKind::MethodCall(method_name, iter_expr, [], _) = let_expr.kind 1 ( 0.00%) && method_name.ident.name == sym::next . && cx.ty_based_def(let_expr).opt_parent(cx).is_diag_item(cx, sym::Iterator) . && let Some(iter_expr_struct) = try_parse_iter_expr(cx, iter_expr) . // get the loop containing the match expression . && !uses_iter(cx, &iter_expr_struct, if_then) . { . let mut applicability = Applicability::MachineApplicable; . . let loop_label = label.map_or(String::new(), |l| format!("{}: ", l.ident.name)); -- line 33 ---------------------------------------- -- line 61 ---------------------------------------- . WHILE_LET_ON_ITERATOR, . expr.span.with_hi(let_expr.span.hi()), . "this loop could be written as a `for` loop", . "try", . format!("{loop_label}for {loop_var} in {iterator_by_ref}"), . applicability, . ); . } 140,944 ( 0.00%) } . . #[derive(Debug)] . struct IterExpr { . /// The fields used, in order of child to parent. . fields: Vec, . /// The path being used. . path: Res, . /// Whether or not the iterator can be moved. -- line 77 ---------------------------------------- -------------------------------------------------------------------------------- -- 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<'_>) { 81,582 ( 0.00%) if let Some(VecArgs::Repeat(repeat_expr, len_expr)) = VecArgs::hir(cx, expr) 921,187 ( 0.02%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir (27,194x) . && 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) { 54,388 ( 0.00%) if !expr.span.from_expansion() 83,878 ( 0.00%) && fn_def_id(cx, expr).is_some_and(|did| cx.tcx.is_diagnostic_item(sym::iter_repeat, did)) 1,002,125 ( 0.02%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::fn_def_id (17,618x) 231,838 ( 0.01%) => ???:::is_diagnostic_item (3,878x) . && 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 { 299,134 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'_>, expr: &Expr<'_>) { . check_vec_macro(cx, expr); 27,194 ( 0.00%) check_repeat_fn(cx, expr, self.msrv); 217,552 ( 0.01%) } . } -------------------------------------------------------------------------------- -- 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 { 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'_>, expr: &Expr<'_>) { 55,723 ( 0.00%) if let ExprKind::If(cond, then, r#else) = expr.kind 890 ( 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. 2 ( 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(); 14 ( 0.00%) if !eq.eq_expr(SyntaxContext::root(), divisor, divisor) { 2,192 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_expr (2x) . return; . } . . let mut division_spans = Vec::new(); 2 ( 0.00%) let mut first_use = None; . 22 ( 0.00%) let found_early_use = for_each_expr_without_closures(block, |e| { 7,453 ( 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}> (2x) 126 ( 0.00%) if let ExprKind::Binary(binop, lhs, rhs) = e.kind . && 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 80 ---------------------------------------- -- 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) 147 ( 0.00%) } else if eq.eq_expr(SyntaxContext::root(), e, divisor) { 888 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_expr (4x) 2 ( 0.00%) if first_use.is_none() { 2 ( 0.00%) first_use = Some(UseKind::Other); . return ControlFlow::Break(()); . } . ControlFlow::<(), _>::Continue(Descend::Yes) . } else { . ControlFlow::<(), _>::Continue(Descend::Yes) . } . }); . 4 ( 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`"); . }); 2 ( 0.00%) } 217,552 ( 0.01%) } . } . . #[derive(Copy, Clone, Eq, PartialEq)] . enum UseKind { . Division, . Other, . } . . fn divisor_from_condition<'tcx>(cond: &'tcx Expr<'tcx>) -> Option<(&'tcx Expr<'tcx>, NonZeroBranch)> { 871 ( 0.00%) let ExprKind::Binary(binop, lhs, rhs) = cond.kind else { . return None; . }; . 402 ( 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)), 3 ( 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>> { 4 ( 0.00%) match branch { 2 ( 0.00%) NonZeroBranch::Then => match then.kind { . ExprKind::Block(block, _) => Some(block), . _ => None, . }, 3 ( 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 { 10 ( 0.00%) matches!(cx.typeck_results().expr_ty(expr).peel_refs().kind(), ty::Uint(_)) 80 ( 0.00%) => ???:::expr_ty (2x) . } 122 ( 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(), . } . } . 99 ( 0.00%) fn check_if_or_match( . &mut self, . cx: &LateContext<'tcx>, . local_stmt: &'tcx LetStmt<'tcx>, . block: &'tcx Block<'tcx>, . binding_id: HirId, . usage: Usage<'tcx>, . exprs: impl IntoIterator>, . ) { . let mut assigns: Vec> = Vec::new(); . for expr in exprs { 21 ( 0.00%) let ty = cx.typeck_results().expr_ty(expr); 120 ( 0.00%) => ???:::expr_ty (3x) 21 ( 0.00%) if ty.is_never() { . continue; . } 3 ( 0.00%) if !ty.is_unit() { . return; . } . 25 ( 0.00%) let Some(assign_group) = LocalAssignGroup::new(cx, expr) else { 4,478 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/needless_late_init.rs:::new (3x) . return; . }; . . if let Some(last_group) = assigns.last() . && !assign_group.is_parallel(last_group) . { . return; . } -- line 109 ---------------------------------------- -- line 110 ---------------------------------------- . . assigns.push(assign_group); . } . . let Some(first_group) = assigns.first() else { . return; . }; . // If there are multiple assignments grouped together, lazyly check them after processing the block. 2 ( 0.00%) if first_group.0.len() > 1 { 2 ( 0.00%) if self.check_grouped_late_init { . let late_inits = if let Some((hir_id, late_inits)) = self.grouped_late_inits.last_mut() . && *hir_id == block.hir_id . { . late_inits . } else { 11 ( 0.00%) &mut self.grouped_late_inits.push_mut((block.hir_id, HirIdMap::default())).1 . }; . . let mut decls = HirIdMap::default(); . decls.insert(binding_id, local_stmt); 21 ( 0.00%) late_inits.insert(usage.expr.hir_id, GroupedLateInit { usage, assigns, decls }); . } . . return; . } . . if first_group.0[0].lhs_id == binding_id { . span_lint_and_then( . cx, -- line 138 ---------------------------------------- -- line 178 ---------------------------------------- . "move the declaration `{binding_name}` here and remove the assignments from the {descriptor}", . ), . suggestions, . applicability, . ); . }, . ); . } 48 ( 0.00%) } . } . . fn contains_let(cond: &Expr<'_>) -> bool { . for_each_expr_without_closures(cond, |e| { 21 ( 0.00%) if matches!(e.kind, ExprKind::Let(_)) { . ControlFlow::Break(()) . } else { . ControlFlow::Continue(()) . } . }) . .is_some() . } . . fn stmt_needs_ordered_drop(cx: &LateContext<'_>, stmt: &Stmt<'_>) -> bool { 30 ( 0.00%) let StmtKind::Let(local) = stmt.kind else { . return false; . }; 18 ( 0.00%) !local.pat.walk_short(|pat| { 66 ( 0.00%) if let PatKind::Binding(.., None) = pat.kind { 70 ( 0.00%) !needs_ordered_drop(cx, cx.typeck_results().pat_ty(pat)) 156,942 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::needs_ordered_drop (8x) 320 ( 0.00%) => ???:::pat_ty (8x) . } else { . true . } . }) . } . . #[derive(Debug)] . struct LocalAssign<'tcx> { . lhs_id: HirId, . rhs: &'tcx Expr<'tcx>, . span: Span, . } . . impl<'tcx> LocalAssign<'tcx> { . fn new(expr: &'tcx Expr<'tcx>, span: Span) -> Option { 18 ( 0.00%) if expr.span.from_expansion() { . return None; . } . 30 ( 0.00%) if let ExprKind::Assign(lhs, rhs, _) = expr.kind 14 ( 0.00%) && !lhs.span.from_expansion() . { 9 ( 0.00%) return Some(Self { . lhs_id: lhs.res_local_id()?, . rhs, . span, . }); . } . . None 3 ( 0.00%) } . } . . #[derive(Debug)] . struct Usage<'tcx> { . span: Span, . expr: &'tcx Expr<'tcx>, . needs_semi: bool, . } . 216 ( 0.00%) fn first_usage<'tcx>( . cx: &LateContext<'tcx>, . binding_id: HirId, . local_stmt_id: HirId, . block: &'tcx Block<'tcx>, . ) -> Option> { 162 ( 0.00%) let significant_drop = needs_ordered_drop(cx, cx.typeck_results().node_type(binding_id)); 319,128 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::needs_ordered_drop (27x) 1,107 ( 0.00%) => ???:::node_type (27x) . 27 ( 0.00%) block . .stmts . .iter() . .skip_while(|stmt| stmt.hir_id != local_stmt_id) . .skip(1) 9 ( 0.00%) .take_while(|stmt| !significant_drop || !stmt_needs_ordered_drop(cx, stmt)) 57 ( 0.00%) .find(|&stmt| is_local_used(cx, stmt, binding_id)) 68 ( 0.00%) .and_then(|stmt| match stmt.kind { . StmtKind::Expr(expr) => Some(Usage { . span: stmt.span, . expr, . needs_semi: true, . }), . StmtKind::Semi(expr) => Some(Usage { . span: stmt.span, . expr, . needs_semi: false, . }), . _ => None, . }) . .or_else(|| { 38 ( 0.00%) block . .expr 76 ( 0.00%) .filter(|expr| is_local_used(cx, *expr, binding_id)) . .map(|expr| Usage { 28 ( 0.00%) span: expr.span, . expr, . needs_semi: true, . }) . }) 216 ( 0.00%) } . . fn local_snippet_without_semicolon<'a>( . cx: &LateContext<'_>, . local: &LetStmt<'_>, . applicability: &mut Applicability, . ) -> Cow<'a, str> { . let span = local.span.with_hi(match local.ty { . // let : ; -- line 293 ---------------------------------------- -- line 300 ---------------------------------------- . . snippet_with_applicability(cx, span, "..", applicability) . } . . #[derive(Debug)] . struct LocalAssignGroup<'tcx>(Vec>); . . impl<'tcx> LocalAssignGroup<'tcx> { 24 ( 0.00%) fn new(cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) -> Option { 21 ( 0.00%) match expr.kind { . ExprKind::Block(Block { expr: Some(expr), .. }, _) 1 ( 0.00%) if let Some(assign) = LocalAssign::new(expr, expr.span) => . { . Some(LocalAssignGroup(vec![assign])) . }, . ExprKind::Block(Block { expr: None, stmts, .. }, _) => { . let mut assign_group = Vec::new(); . // Avoid cases when the assignee is used or reassigned in the subsequent assignments . let mut used_locals = HirIdSet::default(); 4 ( 0.00%) for stmt in stmts.iter().rev() { 12 ( 0.00%) if let StmtKind::Semi(expr) | StmtKind::Expr(expr) = stmt.kind 4 ( 0.00%) && let Some(assign) = LocalAssign::new(expr, stmt.span) 3 ( 0.00%) && !used_locals.contains(&assign.lhs_id) . { . used_locals.insert(assign.lhs_id); . for_each_expr(cx.tcx, assign.rhs, |e| { . if let Some(id) = e.res_local_id() { . used_locals.insert(id); . } . ControlFlow::<()>::Continue(()) . }); . assign_group.push(assign); . continue; . } . . break; . } 2 ( 0.00%) if assign_group.is_empty() { . None . } else { 8 ( 0.00%) Some(LocalAssignGroup(assign_group)) . } 6 ( 0.00%) }, 76 ( 0.00%) => ???:__rustc::__rdl_dealloc (2x) . ExprKind::Assign(..) if let Some(assign) = LocalAssign::new(expr, expr.span) => { . Some(LocalAssignGroup(vec![assign])) . }, 1 ( 0.00%) _ => None, . } 24 ( 0.00%) } . . /// Checks if the assignments in `self` and `other` are parallel, i.e. they have the same number . /// of assignments and the same assignees in the same order. . fn is_parallel(&self, other: &Self) -> bool { 2 ( 0.00%) self.0.len() == other.0.len() && self.0.iter().zip(other.0.iter()).all(|(a, b)| a.lhs_id == b.lhs_id) . } . } . . #[derive(Debug)] . struct GroupedLateInit<'tcx> { . usage: Usage<'tcx>, . assigns: Vec>, . decls: HirIdMap<&'tcx LetStmt<'tcx>>, . } . . impl<'tcx> LateLintPass<'tcx> for NeedlessLateInit<'tcx> { 5,648 ( 0.00%) fn check_local(&mut self, cx: &LateContext<'tcx>, local: &'tcx LetStmt<'tcx>) { 1,412 ( 0.00%) let mut parents = cx.tcx.hir_parent_iter(local.hir_id); 922 ( 0.00%) if let LetStmt { . init: None, . pat: . Pat { . kind: PatKind::Binding(BindingMode::NONE, binding_id, _, None), . .. . }, . source: LocalSource::Normal, . .. 787 ( 0.00%) } = local 54 ( 0.00%) && let Some((_, Node::Stmt(local_stmt))) = parents.next() 54 ( 0.00%) && let Some((_, Node::Block(block))) = parents.next() 434 ( 0.00%) && let Some(usage) = first_usage(cx, *binding_id, local_stmt.hir_id, block) 505,072 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/needless_late_init.rs:clippy_lints::needless_late_init::first_usage (27x) . { 44 ( 0.00%) if self.check_grouped_late_init . && let Some((hir_id, late_inits)) = self.grouped_late_inits.last_mut() 1 ( 0.00%) && *hir_id == block.hir_id 4 ( 0.00%) && let Some(late_init) = late_inits.get_mut(&usage.expr.hir_id) 27 ( 0.00%) => /rust/deps/indexmap-2.14.0/src/map.rs:>::get_mut:: (1x) . { 3 ( 0.00%) late_init.decls.insert(*binding_id, local); . return; . } . 162 ( 0.00%) match usage.expr.kind { . ExprKind::Assign(..) 27 ( 0.00%) if let Some(assign) = LocalAssign::new(usage.expr, usage.expr.span) 108 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/needless_late_init.rs:::new (3x) . && assign.lhs_id == *binding_id => . { . let mut applicability = Applicability::MachineApplicable; . let let_snippet = local_snippet_without_semicolon(cx, local, &mut applicability); . let binding_name = cx.tcx.hir_name(*binding_id); . let mut msg_span = MultiSpan::from_spans(vec![local_stmt.span, assign.span]); . msg_span.push_span_label(local_stmt.span, "created here"); . msg_span.push_span_label(assign.span, "initialised here"); -- line 400 ---------------------------------------- -- line 418 ---------------------------------------- . (local_stmt.span, String::new()), . (assign.span, format!("{let_snippet} = {rhs_snippet}")), . ], . applicability, . ); . }, . ); . }, 15 ( 0.00%) ExprKind::If(cond, then_expr, Some(mut else_expr)) if !contains_let(cond) => { . // Flatten multiple if branches 3 ( 0.00%) let mut exprs = vec![then_expr]; 9 ( 0.00%) while let ExprKind::If(cond, then, Some(else_)) = else_expr.kind { . if contains_let(cond) { . return; . } . exprs.push(then); . else_expr = else_; . } . exprs.push(else_expr); 54 ( 0.00%) self.check_if_or_match(cx, local, block, *binding_id, usage, exprs); 6,175 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/needless_late_init.rs:::check_if_or_match::> (3x) . }, 6 ( 0.00%) ExprKind::Match(_, arms, MatchSource::Normal) => { 39 ( 0.00%) self.check_if_or_match(cx, local, block, *binding_id, usage, arms.iter().map(|arm| arm.body)); 282 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/needless_late_init.rs:::check_if_or_match::, ::check_local::{closure#1}>> (3x) 6 ( 0.00%) }, . _ => {}, . } . } 5,648 ( 0.00%) } . 22,720 ( 0.00%) fn check_block_post(&mut self, cx: &LateContext<'tcx>, block: &'tcx Block<'tcx>) { 5,680 ( 0.00%) if self.check_grouped_late_init 2 ( 0.00%) && let Some((_, late_inits)) = self.grouped_late_inits.pop_if(|(hir_id, _)| *hir_id == block.hir_id) . { 7 ( 0.00%) 'outer: for (_, late_init) in late_inits { 2 ( 0.00%) if late_init.decls.len() < late_init.assigns[0].0.len() { . continue; . } . . let mut suggestions = vec![]; 3 ( 0.00%) for assign in &late_init.assigns[0].0 { 5 ( 0.00%) if let Some(local) = late_init.decls.get(&assign.lhs_id) 61 ( 0.00%) => /rust/deps/indexmap-2.14.0/src/map.rs:>::get:: (1x) . // If the local has a type annotation, skip it since removing the annotation might cause type . // inference issues while annotating the tuple makes the suggestion harder to read. 2 ( 0.00%) && local.ty.is_none() . { . suggestions.push((local.span, String::new())); . } else { . continue 'outer; . } . } . . span_lint_and_then( -- line 469 ---------------------------------------- -- line 511 ---------------------------------------- . }; . diag.multipart_suggestion( . format!("move the declarations here and remove the assignments from the {descriptor}"), . suggestions, . applicability, . ); . }, . ); 2 ( 0.00%) } 261 ( 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) . } 22,720 ( 0.00%) } . } 427 ( 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> { 217,552 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 54,388 ( 0.00%) if matches!(expr.kind, ExprKind::AddrOf(..)) 1,344 ( 0.00%) && !expr.span.from_expansion() 4,081 ( 0.00%) && let use_site = get_expr_use_site(cx.tcx, cx.typeck_results(), SyntaxContext::root(), expr) 124,095 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_expr_use_site (371x) 1,478 ( 0.00%) && use_site.same_ctxt . && !use_site.is_ty_unified 2,872 ( 0.00%) && let use_node = use_site.use_node(cx) 13,350 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:::use_node (359x) 2,434 ( 0.00%) && let Some(DefinedTy::Mir { def_site_def_id: _, ty }) = use_node.defined_ty(cx) 58,982 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:::defined_ty (359x) 570 ( 0.00%) && let ty::Param(param_ty) = *ty.skip_binder().kind() 60 ( 0.00%) && let Some((hir_id, fn_id, i)) = match use_node { . ExprUseNode::MethodArg(_, _, 0) => None, 3 ( 0.00%) ExprUseNode::MethodArg(hir_id, None, i) => cx . .typeck_results() 15 ( 0.00%) .type_dependent_def_id(hir_id) 153 ( 0.00%) => ???:::type_dependent_def_id (3x) . .map(|id| (hir_id, id, i)), . ExprUseNode::FnArg( . &Expr { . kind: ExprKind::Path(ref p), 4 ( 0.00%) hir_id, . .. . }, 2 ( 0.00%) i, 28 ( 0.00%) ) if !path_has_args(p) => match cx.typeck_results().qpath_res(p, hir_id) { 30 ( 0.00%) => ???:::qpath_res (2x) 8 ( 0.00%) Res::Def(DefKind::Fn | DefKind::Ctor(..) | DefKind::AssocFn, id) => Some((hir_id, id, i)), . _ => None, 2 ( 0.00%) }, . _ => None, . } 65 ( 0.00%) && let count = needless_borrow_count( 26,493 ( 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 (5x) . cx, . &mut self.possible_borrowers, . fn_id, 20 ( 0.00%) cx.typeck_results().node_args(hir_id), 195 ( 0.00%) => ???:::node_args (5x) . i, . param_ty, . expr, . self.msrv, . ) 10 ( 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); . }, . ); . } 217,552 ( 0.01%) } . 13,860 ( 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(); . } 15,840 ( 0.00%) } . } . . fn path_has_args(p: &QPath<'_>) -> bool { 4 ( 0.00%) match *p { 18 ( 0.00%) QPath::Resolved(_, Path { segments: [.., s], .. }) | QPath::TypeRelative(_, s) => s.args.is_some(), . QPath::Resolved(..) => false, . } . } . . /// Checks for the number of borrow expressions which can be removed from the given expression . /// where the expression is used as an argument to a function expecting a generic type. . /// . /// 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)] 65 ( 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 { 20 ( 0.00%) let destruct_trait_def_id = cx.tcx.lang_items().destruct_trait(); 150 ( 0.00%) => ???:::lang_items (5x) 10 ( 0.00%) let sized_trait_def_id = cx.tcx.lang_items().sized_trait(); 150 ( 0.00%) => ???:::lang_items (5x) 10 ( 0.00%) let meta_sized_trait_def_id = cx.tcx.lang_items().meta_sized_trait(); 150 ( 0.00%) => ???:::lang_items (5x) 10 ( 0.00%) let drop_trait_def_id = cx.tcx.lang_items().drop_trait(); 150 ( 0.00%) => ???:::lang_items (5x) . . 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| { 84 ( 0.00%) if let ClauseKind::Projection(projection_predicate) = clause.kind().skip_binder() { 294 ( 0.00%) => ???:::kind (21x) . 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| { 44 ( 0.00%) if let ClauseKind::Trait(trait_predicate) = clause.kind().skip_binder() 154 ( 0.00%) => ???:::kind (11x) 30 ( 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| { 6 ( 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 8 ( 0.00%) || cx.tcx.is_diagnostic_item(sym::Any, trait_def_id) 180 ( 0.00%) => ???:::is_diagnostic_item (2x) . }) . { . 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. 2 ( 0.00%) let mut args_with_referent_ty = callee_args.to_vec(); . . let mut check_reference_and_referent = |reference: &Expr<'tcx>, referent: &Expr<'tcx>| { 8 ( 0.00%) if let ExprKind::Field(base, _) = &referent.kind 4 ( 0.00%) && let base_ty = cx.typeck_results().expr_ty(base) 80 ( 0.00%) => ???:::expr_ty (2x) 20 ( 0.00%) && drop_trait_def_id.is_some_and(|id| implements_trait(cx, base_ty, id, &[])) 16,154 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::implements_trait (2x) . { . return false; . } . 2 ( 0.00%) let referent_ty = cx.typeck_results().expr_ty(referent); 80 ( 0.00%) => ???:::expr_ty (2x) . 10 ( 0.00%) if !(is_copy(cx, referent_ty) 680 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::is_copy (2x) 2 ( 0.00%) || referent_ty.is_ref() && referent_used_exactly_once(cx, possible_borrowers, reference) 6 ( 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; 8 ( 0.00%) while let ExprKind::AddrOf(_, _, referent) = expr.kind { . if !check_reference_and_referent(expr, referent) { . break; . } . expr = referent; . count += 1; . } . count 45 ( 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() { 6 ( 0.00%) let self_ty = cx . .tcx 4 ( 0.00%) .fn_sig(assoc_item.def_id) . .instantiate_identity() . .skip_norm_wip() . .skip_binder() . .inputs()[0]; 4 ( 0.00%) matches!(self_ty.kind(), ty::Ref(_, _, Mutability::Mut)) . } else { . false . } . }) . } . . fn is_mixed_projection_predicate<'tcx>( . cx: &LateContext<'tcx>, -- line 329 ---------------------------------------- 1,188 ( 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 { 92,072 ( 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 { 63,644 ( 0.00%) self.provider.get_lint_level_spec(lint, self.sess) 229 ( 0.00%) => ???:::get_lint_level_spec (1x) . } . . /// 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); 392 ( 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 ---------------------------------------- 16,206 ( 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/result.rs -------------------------------------------------------------------------------- Ir -- line 587 ---------------------------------------- . /// let x: Result = Err("Some error message"); . /// assert_eq!(x.is_ok(), false); . /// ``` . #[must_use = "if you intended to assert that this is ok, consider `.unwrap()` instead"] . #[rustc_const_stable(feature = "const_result_basics", since = "1.48.0")] . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . pub const fn is_ok(&self) -> bool { 27 ( 0.00%) matches!(*self, Ok(_)) . } . . /// Returns `true` if the result is [`Ok`] and the value inside of it matches a predicate. . /// . /// # Examples . /// . /// ``` . /// let x: Result = Ok(2); -- line 603 ---------------------------------------- -- line 618 ---------------------------------------- . #[stable(feature = "is_some_and", since = "1.70.0")] . #[rustc_const_unstable(feature = "const_result_trait_fn", issue = "144211")] . pub const fn is_ok_and(self, f: F) -> bool . where . F: [const] FnOnce(T) -> bool + [const] Destruct, . T: [const] Destruct, . E: [const] Destruct, . { 1,782 ( 0.00%) match self { . Err(_) => false, . Ok(x) => f(x), . } . } . . /// Returns `true` if the result is [`Err`]. . /// . /// # Examples -- line 634 ---------------------------------------- -- line 706 ---------------------------------------- . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_result_trait_fn", issue = "144211")] . #[rustc_diagnostic_item = "result_ok_method"] . pub const fn ok(self) -> Option . where . T: [const] Destruct, . E: [const] Destruct, . { 3,883 ( 0.00%) match self { 4,531 ( 0.00%) Ok(x) => Some(x), . Err(_) => None, . } . } . . /// Converts from `Result` to [`Option`]. . /// . /// Converts `self` into an [`Option`], consuming `self`, . /// and discarding the success value, if any. -- line 723 ---------------------------------------- -- line 828 ---------------------------------------- . /// ``` . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_result_trait_fn", issue = "144211")] . pub const fn map(self, op: F) -> Result . where . F: [const] FnOnce(T) -> U + [const] Destruct, . { 242 ( 0.00%) match self { 120 ( 0.00%) Ok(t) => Ok(op(t)), . Err(e) => Err(e), . } . } . . /// Returns the provided default (if [`Err`]), or . /// applies a function to the contained value (if [`Ok`]). . /// . /// Arguments passed to `map_or` are eagerly evaluated; if you are passing -- line 845 ---------------------------------------- -- line 957 ---------------------------------------- . /// ``` . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_result_trait_fn", issue = "144211")] . pub const fn map_err(self, op: O) -> Result . where . O: [const] FnOnce(E) -> F + [const] Destruct, . { 20,080 ( 0.00%) match self { 18,998 ( 0.00%) Ok(t) => Ok(t), . Err(e) => Err(op(e)), . } . } . . /// Calls a function with a reference to the contained value if [`Ok`]. . /// . /// Returns the original result. . /// -- line 974 ---------------------------------------- -- line 1174 ---------------------------------------- . /// [`std::error`](../../std/error/index.html) module docs. . #[inline] . #[track_caller] . #[stable(feature = "result_expect", since = "1.4.0")] . pub fn expect(self, msg: &str) -> T . where . E: fmt::Debug, . { 4,122 ( 0.00%) match self { . Ok(t) => t, . Err(e) => unwrap_failed(msg, &e), . } . } . . /// Returns the contained [`Ok`] value, consuming the `self` value. . /// . /// Because this function may panic, its use is generally discouraged. -- line 1190 ---------------------------------------- -- line 1222 ---------------------------------------- . /// ``` . #[inline(always)] . #[track_caller] . #[stable(feature = "rust1", since = "1.0.0")] . pub fn unwrap(self) -> T . where . E: fmt::Debug, . { 547 ( 0.00%) match self { 20 ( 0.00%) Ok(t) => t, . Err(e) => unwrap_failed("called `Result::unwrap()` on an `Err` value", &e), . } . } . . /// Returns the contained [`Ok`] value or a default . /// . /// Consumes the `self` argument then, if [`Ok`], returns the contained . /// value, otherwise if [`Err`], returns the default value for that -- line 1239 ---------------------------------------- -- line 1586 ---------------------------------------- . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_result_trait_fn", issue = "144211")] . pub const fn unwrap_or(self, default: T) -> T . where . T: [const] Destruct, . E: [const] Destruct, . { 142 ( 0.00%) match self { . Ok(t) => t, . Err(_) => default, . } . } . . /// Returns the contained [`Ok`] value or computes it from a closure. . /// . /// -- line 1602 ---------------------------------------- -- line 1612 ---------------------------------------- . #[track_caller] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_result_trait_fn", issue = "144211")] . pub const fn unwrap_or_else(self, op: F) -> T . where . F: [const] FnOnce(E) -> T + [const] Destruct, . { . match self { 22,026 ( 0.00%) Ok(t) => t, . Err(e) => op(e), . } . } . . /// Returns the contained [`Ok`] value, consuming the `self` value, . /// without checking that the value is not an [`Err`]. . /// . /// # Safety -- line 1628 ---------------------------------------- -- line 1643 ---------------------------------------- . /// unsafe { x.unwrap_unchecked() }; // Undefined behavior! . /// ``` . #[inline] . #[track_caller] . #[stable(feature = "option_result_unwrap_unchecked", since = "1.58.0")] . #[rustc_const_unstable(feature = "const_result_unwrap_unchecked", issue = "148714")] . pub const unsafe fn unwrap_unchecked(self) -> T { . match self { 4 ( 0.00%) Ok(t) => t, . Err(e) => { . // FIXME(const-hack): to avoid E: const Destruct bound . super::mem::forget(e); . // SAFETY: the safety contract must be upheld by the caller. . unsafe { hint::unreachable_unchecked() } . } . } . } -- line 1659 ---------------------------------------- -- line 1714 ---------------------------------------- . #[rustc_allow_const_fn_unstable(const_precise_live_drops)] . pub const fn copied(self) -> Result . where . T: Copy, . { . // FIXME(const-hack): this implementation, which sidesteps using `Result::map` since it's not const . // ready yet, should be reverted when possible to avoid code repetition . match self { 5,396 ( 0.00%) Ok(&v) => Ok(v), . Err(e) => Err(e), . } . } . . /// Maps a `Result<&T, E>` to a `Result` by cloning the contents of the . /// `Ok` part. . /// . /// # Examples -- line 1730 ---------------------------------------- -- line 2169 ---------------------------------------- . . #[inline] . fn from_output(output: Self::Output) -> Self { . Ok(output) . } . . #[inline] . fn branch(self) -> ControlFlow { 19,283 ( 0.00%) match self { 9,620 ( 0.00%) Ok(v) => ControlFlow::Continue(v), . Err(e) => ControlFlow::Break(Err(e)), . } . } . } . . #[unstable(feature = "try_trait_v2", issue = "84277", old_name = "try_trait")] . #[rustc_const_unstable(feature = "const_try", issue = "74935")] . const impl> ops::FromResidual> -- line 2186 ---------------------------------------- 33,197 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/to_string_trait_impl.rs -------------------------------------------------------------------------------- Ir -- line 42 ---------------------------------------- . style, . "check for direct implementations of `ToString`" . } . . declare_lint_pass!(ToStringTraitImpl => [TO_STRING_TRAIT_IMPL]); . . impl<'tcx> LateLintPass<'tcx> for ToStringTraitImpl { . fn check_item(&mut self, cx: &LateContext<'tcx>, it: &'tcx Item<'tcx>) { 7,789 ( 0.00%) if let ItemKind::Impl(Impl { . of_trait: Some(of_trait), . .. 2,810 ( 0.00%) }) = it.kind 4,050 ( 0.00%) && let Some(trait_did) = of_trait.trait_ref.trait_def_id() 17,550 ( 0.00%) => ???:::trait_def_id (1,350x) 8,100 ( 0.00%) && cx.tcx.is_diagnostic_item(sym::ToString, trait_did) 78,244 ( 0.00%) => ???:::is_diagnostic_item (1,350x) . { . span_lint_and_help( . cx, . TO_STRING_TRAIT_IMPL, . it.span, . "direct implementation of `ToString`", . None, . "prefer implementing `Display` instead", -- line 63 ---------------------------------------- 1,350 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/functions/ref_option.rs -------------------------------------------------------------------------------- Ir -- line 6 ---------------------------------------- . use rustc_errors::Applicability; . use rustc_hir::intravisit::FnKind; . use rustc_hir::{self as hir, FnDecl, HirId}; . use rustc_lint::{LateContext, LintContext as _}; . use rustc_middle::ty::{self, Mutability, Ty}; . use rustc_span::Span; . use rustc_span::def_id::LocalDefId; . 2,982 ( 0.00%) fn check_ty<'a>(cx: &LateContext<'a>, param: &hir::Ty<'a>, param_ty: Ty<'a>, fixes: &mut Vec<(Span, String)>) { 1,176 ( 0.00%) if let ty::Ref(_, opt_ty, Mutability::Not) = param_ty.kind() 524 ( 0.00%) && let Some(gen_ty) = option_arg_ty(cx, *opt_ty) 1,622 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::option_arg_ty (131x) 6 ( 0.00%) && !gen_ty.is_ref() . // Need to gen the original spans, so first parsing mid, and hir parsing afterward 2 ( 0.00%) && let hir::TyKind::Ref(lifetime, hir::MutTy { ty, .. }) = param.kind 10 ( 0.00%) && let hir::TyKind::Path(hir::QPath::Resolved(_, path)) = ty.kind 4 ( 0.00%) && let (Some(first), Some(last)) = (path.segments.first(), path.segments.last()) 6 ( 0.00%) && let Some(hir::GenericArgs { 4 ( 0.00%) args: [hir::GenericArg::Type(opt_ty)], . .. 6 ( 0.00%) }) = last.args 8 ( 0.00%) && !param.span.in_external_macro(cx.sess().source_map()) 234 ( 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 (2x) 10 ( 0.00%) && !is_from_proc_macro(cx, param) 988 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::is_from_proc_macro:: (2x) . { 2 ( 0.00%) let lifetime = snippet(cx, lifetime.ident.span, ".."); 12 ( 0.00%) fixes.push(( . param.span, 26 ( 0.00%) format!( . "{}<&{lifetime}{}{}>", 6 ( 0.00%) snippet(cx, first.ident.span.to(last.ident.span), ".."), 186 ( 0.00%) => ???:::to (2x) 10 ( 0.00%) if lifetime.is_empty() { "" } else { " " }, 4 ( 0.00%) snippet(cx, opt_ty.span, "..") . ), . )); . } 3,408 ( 0.00%) } . 1,660 ( 0.00%) fn check_fn_sig<'a>(cx: &LateContext<'a>, decl: &FnDecl<'a>, span: Span, sig: ty::FnSig<'a>) { . let mut fixes = Vec::new(); . // Check function arguments' types 332 ( 0.00%) for (param, param_ty) in decl.inputs.iter().zip(sig.inputs()) { 1,430 ( 0.00%) check_ty(cx, param, *param_ty, &mut fixes); 14,850 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/functions/ref_option.rs:clippy_lints::functions::ref_option::check_ty (286x) . } . // Check return type 332 ( 0.00%) if let hir::FnRetTy::Return(ty) = &decl.output { 840 ( 0.00%) check_ty(cx, ty, sig.output(), &mut fixes); 2,398 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/functions/ref_option.rs:clippy_lints::functions::ref_option::check_ty (140x) . } 166 ( 0.00%) if !fixes.is_empty() { 20 ( 0.00%) span_lint_and_then( 2,416 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/diagnostics.rs:clippy_utils::diagnostics::span_lint_and_then:: (2x) . cx, . REF_OPTION, . span, . "it is more idiomatic to use `Option<&T>` instead of `&Option`", 8 ( 0.00%) |diag| { . diag.multipart_suggestion("change this to", fixes, Applicability::Unspecified); . }, . ); . } 1,328 ( 0.00%) } . . #[expect(clippy::too_many_arguments)] 24,836 ( 0.00%) pub(crate) fn check_fn<'a>( . cx: &LateContext<'a>, . kind: FnKind<'a>, . decl: &FnDecl<'a>, . span: Span, . hir_id: HirId, . def_id: LocalDefId, . body: &hir::Body<'a>, . avoid_breaking_exported_api: bool, . ) { 12,418 ( 0.00%) if avoid_breaking_exported_api && cx.effective_visibilities.is_exported(def_id) { 98,568 ( 0.00%) => ???:::is_exported (1,774x) . return; . } 600 ( 0.00%) if span.in_external_macro(cx.sess().source_map()) { . return; . } . 600 ( 0.00%) if let FnKind::Closure = kind { . // Compute the span of the closure parameters + return type if set 170 ( 0.00%) let inputs_output_span = if let hir::FnRetTy::Return(out_ty) = &decl.output { . if decl.inputs.is_empty() { . out_ty.span . } else { . span.with_hi(out_ty.span.hi()) . } 144 ( 0.00%) } else if let (Some(first), Some(last)) = (decl.inputs.first(), decl.inputs.last()) { 288 ( 0.00%) first.span.to(last.span) 6,696 ( 0.00%) => ???:::to (72x) . } else { . // No parameters - no point in checking . return; . }; . . // Figure out the signature of the closure 288 ( 0.00%) let ty::Closure(_, args) = cx.typeck_results().expr_ty(body.value).kind() else { 2,880 ( 0.00%) => ???:::expr_ty (72x) . return; . }; . let sig = args.as_closure().sig().skip_binder(); . . if is_from_proc_macro(cx, &(&kind, body, hir_id, span)) { . return; . } . . check_fn_sig(cx, decl, inputs_output_span, sig); 1,290 ( 0.00%) } else if !is_trait_impl_item(cx, hir_id) { 35,197 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_trait_impl_item (215x) . let sig = cx . .tcx . .fn_sig(def_id) . .instantiate_identity() . .skip_norm_wip() . .skip_binder(); . 1,467 ( 0.00%) if is_from_proc_macro(cx, &(&kind, body, hir_id, span)) { . return; . } . 815 ( 0.00%) check_fn_sig(cx, decl, span, sig); . } 14,192 ( 0.00%) } . 220 ( 0.00%) pub(super) fn check_trait_item<'a>( . cx: &LateContext<'a>, . trait_item: &hir::TraitItem<'a>, . avoid_breaking_exported_api: bool, . ) { 66 ( 0.00%) if !trait_item.span.in_external_macro(cx.sess().source_map()) 44 ( 0.00%) && let hir::TraitItemKind::Fn(ref sig, _) = trait_item.kind 126 ( 0.00%) && !(avoid_breaking_exported_api && cx.effective_visibilities.is_exported(trait_item.owner_id.def_id)) 1,011 ( 0.00%) => ???:::is_exported (18x) 6 ( 0.00%) && !is_from_proc_macro(cx, trait_item) . { 6 ( 0.00%) let def_id = trait_item.owner_id.def_id; . let ty_sig = cx . .tcx . .fn_sig(def_id) . .instantiate_identity() . .skip_norm_wip() . .skip_binder(); 12 ( 0.00%) check_fn_sig(cx, sig.decl, sig.span, ty_sig); 352 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/functions/ref_option.rs:clippy_lints::functions::ref_option::check_fn_sig (3x) . } 176 ( 0.00%) } 2,083 ( 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/function.rs -------------------------------------------------------------------------------- Ir -- line 158 ---------------------------------------- . label = "expected an `{This:resolved}` closure, found `{Self}`" . )] . #[fundamental] // so that regex can rely that `&str: !FnMut` . #[must_use = "closures are lazy and do nothing unless called"] . #[rustc_const_unstable(feature = "const_trait_impl", issue = "143874")] . pub const trait FnMut: FnOnce { . /// Performs the call operation. . #[unstable(feature = "fn_traits", issue = "29625")] 272 ( 0.00%) extern "rust-call" fn call_mut(&mut self, args: Args) -> Self::Output; 63 ( 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:::from_full_name (1x) . } . . /// The version of the call operator that takes a by-value receiver. . /// . /// Instances of `FnOnce` can be called, but might not be callable multiple . /// times. Because of this, if the only thing known about a type is that it . /// implements `FnOnce`, it can only be called once. . /// -- line 174 ---------------------------------------- -- line 242 ---------------------------------------- . pub const trait FnOnce { . /// The returned type after the call operator is used. . #[lang = "fn_once_output"] . #[stable(feature = "fn_once_output", since = "1.12.0")] . type Output; . . /// Performs the call operation. . #[unstable(feature = "fn_traits", issue = "29625")] 910 ( 0.00%) extern "rust-call" fn call_once(self, args: Args) -> Self::Output; 69 ( 0.00%) => ???:::to_path_buf (1x) . } . . mod impls { . use crate::marker::Tuple; . . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_trait_impl", issue = "143874")] . const impl Fn for &F -- line 258 ---------------------------------------- -- line 266 ---------------------------------------- . . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_trait_impl", issue = "143874")] . const impl FnMut for &F . where . F: [const] Fn, . { . extern "rust-call" fn call_mut(&mut self, args: A) -> F::Output { 68 ( 0.00%) (**self).call(args) 43,858 ( 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::{closure#0} (17x) . } . } . . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_trait_impl", issue = "143874")] . const impl FnOnce for &F . where . F: [const] Fn, -- line 282 ---------------------------------------- -- line 289 ---------------------------------------- . } . . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_trait_impl", issue = "143874")] . const impl FnMut for &mut F . where . F: [const] FnMut, . { 41,168 ( 0.00%) extern "rust-call" fn call_mut(&mut self, args: A) -> F::Output { 5,891 ( 0.00%) (*self).call_mut(args) 48,364 ( 0.00%) } . } . . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_unstable(feature = "const_trait_impl", issue = "143874")] . const impl FnOnce for &mut F . where . F: [const] FnMut, . { . type Output = F::Output; . extern "rust-call" fn call_once(self, args: A) -> F::Output { 5,871 ( 0.00%) (*self).call_mut(args) 22,671 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::tokenize_with_text::{closure#0} (693x) . } . } . } 131 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/cfg_not_test.rs -------------------------------------------------------------------------------- Ir -- line 29 ---------------------------------------- . restriction, . "enforce against excluding code from test builds" . } . . declare_lint_pass!(CfgNotTest => [CFG_NOT_TEST]); . . impl EarlyLintPass for CfgNotTest { . fn check_attribute(&mut self, cx: &EarlyContext<'_>, attr: &rustc_ast::Attribute) { 15,008 ( 0.00%) if let AttrKind::Synthetic(synthetic) = &attr.kind 6,761 ( 0.00%) && let SyntheticAttr::CfgTrace(cfg) = &**synthetic 4,052 ( 0.00%) && contains_not_test(cfg, false) 27,889 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/cfg_not_test.rs:clippy_lints::cfg_not_test::contains_not_test (1,013x) . { . span_lint_and_then( . cx, . CFG_NOT_TEST, . attr.span, . "code is excluded from test builds", . |diag| { . diag.help("consider not excluding any code from test builds"); . diag.note_once("this could increase code coverage despite not actually being tested"); . }, . ); . } . } . } . 5,456 ( 0.00%) fn contains_not_test(cfg: &CfgEntry, not: bool) -> bool { 8,080 ( 0.00%) match cfg { 1,578 ( 0.00%) CfgEntry::All(subs, _) | CfgEntry::Any(subs, _) => subs.iter().any(|item| contains_not_test(item, not)), 6,393 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/cfg_not_test.rs:clippy_lints::cfg_not_test::contains_not_test'2 (329x) 164 ( 0.00%) CfgEntry::Not(sub, _) => contains_not_test(sub, !not), 3,567 ( 0.00%) CfgEntry::NameValue { name: sym::test, .. } => not, . _ => false, . } 5,456 ( 0.00%) } 82 ( 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 { 3,038 ( 0.00%) visitor.$f(self) 5,684 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/visitors.rs:::{closure#0}> as rustc_hir::intravisit::Visitor>::visit_expr (13x) . } . } . }; . } . 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. 456 ( 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; . 55,516 ( 0.00%) fn visit_expr(&mut self, e: &'tcx Expr<'tcx>) -> Self::Result { 53,713 ( 0.00%) match (self.f)(e) { 206,348 ( 0.01%) ControlFlow::Continue(c) if c.descend() => walk_expr(self, e), 938,686 ( 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::::check::{closure#0}>> (849x) . ControlFlow::Break(b) => ControlFlow::Break(b), . ControlFlow::Continue(_) => ControlFlow::Continue(()), 2 ( 0.00%) } 20,832 ( 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(()) . } . } 11,520 ( 0.00%) let mut v = V { f }; . node.visit(&mut v).break_value() 456 ( 0.00%) } . . /// Calls the given function once for each expression contained. This will enter bodies, but not . /// nested items. 6 ( 0.00%) pub fn for_each_expr<'tcx, B, C: Continue>( . tcx: TyCtxt<'tcx>, . node: impl Visitable<'tcx>, . f: impl FnMut(&'tcx Expr<'tcx>) -> ControlFlow, . ) -> Option { . struct V<'tcx, F> { . tcx: TyCtxt<'tcx>, . f: F, . } -- line 155 ---------------------------------------- -- 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 . } . 25,755 ( 0.00%) fn visit_expr(&mut self, e: &'tcx Expr<'tcx>) -> Self::Result { 330 ( 0.00%) match (self.f)(e) { 50 ( 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 (2x) 10,405 ( 0.00%) ControlFlow::Continue(c) if c.descend() => walk_expr(self, e), 3,008 ( 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}>> (5x) . ControlFlow::Break(b) => ControlFlow::Break(b), . ControlFlow::Continue(_) => ControlFlow::Continue(()), . } 22,865 ( 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(()) . } . } 1,475 ( 0.00%) let mut v = V { tcx, f }; . node.visit(&mut v).break_value() 9 ( 0.00%) } . . /// 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(()) . } else { . ControlFlow::Continue(()) -- line 201 ---------------------------------------- -- line 319 ---------------------------------------- . 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. 147 ( 0.00%) fn is_const_evaluatable_helper<'tcx>(tcx: TyCtxt<'tcx>, typeck: &'tcx TypeckResults<'tcx>, e: &'tcx Expr<'_>) -> bool { 352 ( 0.00%) match e.kind { . ExprKind::Call( . &Expr { 3 ( 0.00%) kind: ExprKind::Path(ref p), . hir_id, . .. . }, . _, 9 ( 0.00%) ) if typeck 12 ( 0.00%) .qpath_res(p, hir_id) 45 ( 0.00%) => ???:::qpath_res (3x) . .opt_def_id() 15 ( 0.00%) .is_some_and(|id| is_stable_const_fn_at(tcx, CRATE_HIR_ID, id, Msrv::default())) => 360 ( 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 (3x) . { . true . }, . ExprKind::MethodCall(..) . if typeck 150 ( 0.00%) .type_dependent_def_id(e.hir_id) 1,530 ( 0.00%) => ???:::type_dependent_def_id (30x) 270 ( 0.00%) .is_some_and(|id| is_stable_const_fn_at(tcx, CRATE_HIR_ID, id, Msrv::default())) => 13,234 ( 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 (30x) . { . true . }, . ExprKind::Binary(_, lhs, rhs) 40 ( 0.00%) if typeck.expr_ty(lhs).peel_refs().is_primitive_ty() 332 ( 0.00%) => ???:::expr_ty (8x) 14 ( 0.00%) && typeck.expr_ty(rhs).peel_refs().is_primitive_ty() => 280 ( 0.00%) => ???:::expr_ty (7x) . { . true . }, . ExprKind::Unary(UnOp::Deref, e) if typeck.expr_ty(e).is_raw_ptr() => true, . ExprKind::Unary(_, e) if typeck.expr_ty(e).peel_refs().is_primitive_ty() => true, . ExprKind::Index(base, _, _) . if matches!(typeck.expr_ty(base).peel_refs().kind(), ty::Slice(_) | ty::Array(..)) => . { . true . }, 7 ( 0.00%) ExprKind::Path(ref p) 28 ( 0.00%) if matches!( 49 ( 0.00%) typeck.qpath_res(p, e.hir_id), 105 ( 0.00%) => ???:::qpath_res (7x) . Res::Def( . DefKind::Const { .. } . | DefKind::AssocConst { .. } . | DefKind::AnonConst . | DefKind::ConstParam . | DefKind::Ctor(..) . | DefKind::Fn . | DefKind::AssocFn, -- line 373 ---------------------------------------- -- line 392 ---------------------------------------- . | ExprKind::Repeat(..) . | ExprKind::Struct(..) . | ExprKind::Tup(_) . | ExprKind::Type(..) . | ExprKind::UnsafeBinderCast(..) => true, . . _ => false, . } 95 ( 0.00%) } . . /// Checks if the given expression can be evaluated as a constant at the specified node 114 ( 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| { 361 ( 0.00%) if !is_const_evaluatable_helper(tcx, typeck, e) { 861 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/visitors.rs:clippy_utils::visitors::is_const_evaluatable_helper (10x) . ControlFlow::Break(()) . } else if matches!(e.kind, ExprKind::ConstBlock(_)) { . ControlFlow::Continue(Descend::No) . } else { . ControlFlow::Continue(Descend::Yes) . } . }) . .is_none() 114 ( 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 ---------------------------------------- -- line 668 ---------------------------------------- . // for other types. . #[expect(clippy::too_many_lines)] . pub fn for_each_unconsumed_temporary<'tcx, B>( . cx: &LateContext<'tcx>, . e: &'tcx Expr<'tcx>, . mut f: impl FnMut(Ty<'tcx>) -> ControlFlow, . ) -> ControlFlow { . // Todo: Handle partially consumed values. 252 ( 0.00%) fn helper<'tcx, B>( . typeck: &'tcx TypeckResults<'tcx>, . consume: bool, . e: &'tcx Expr<'tcx>, . f: &mut impl FnMut(Ty<'tcx>) -> ControlFlow, . ) -> ControlFlow { 42 ( 0.00%) if !consume . || matches!( 60 ( 0.00%) typeck.expr_adjustments(e), 49 ( 0.00%) => ???:::expr_adjustments (1x) 64 ( 0.00%) [adjust, ..] if matches!(adjust.kind, Adjust::Borrow(_) | Adjust::Deref(_)) . ) . { 40 ( 0.00%) match e.kind { . ExprKind::Path(QPath::Resolved(None, p)) 9 ( 0.00%) if matches!(p.res, Res::Def(DefKind::Ctor(_, CtorKind::Const), _)) => . { . f(typeck.expr_ty(e))?; . }, . ExprKind::Path(_) . | ExprKind::Unary(UnOp::Deref, _) . | ExprKind::Index(..) . | ExprKind::Field(..) . | ExprKind::AddrOf(..) => (), . _ => f(typeck.expr_ty(e))?, . } . } 93 ( 0.00%) match e.kind { . ExprKind::AddrOf(_, _, e) . | ExprKind::Field(e, _) . | ExprKind::Unary(UnOp::Deref, e) . | ExprKind::Match(e, ..) . | ExprKind::Let(&LetExpr { init: e, .. }) => { 1 ( 0.00%) helper(typeck, false, e, f)?; . }, . ExprKind::Block(&Block { expr: Some(e), .. }, _) | ExprKind::Cast(e, _) | ExprKind::Unary(_, e) => { . helper(typeck, true, e, f)?; . }, 15 ( 0.00%) ExprKind::Call(callee, args) => { 25 ( 0.00%) helper(typeck, true, callee, f)?; 70 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/visitors.rs:clippy_utils::visitors::for_each_unconsumed_temporary::helper::<(), clippy_utils::leaks_droppable_temporary_with_limited_lifetime::{closure#0}>'2 (1x) . for arg in args { 30 ( 0.00%) helper(typeck, true, arg, f)?; 1,579 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/visitors.rs:clippy_utils::visitors::for_each_unconsumed_temporary::helper::<(), clippy_utils::leaks_droppable_temporary_with_limited_lifetime::{closure#0}>'2 (1x) . } . }, 3 ( 0.00%) ExprKind::MethodCall(_, receiver, args, _) => { 5 ( 0.00%) helper(typeck, true, receiver, f)?; 99 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/visitors.rs:clippy_utils::visitors::for_each_unconsumed_temporary::helper::<(), clippy_utils::leaks_droppable_temporary_with_limited_lifetime::{closure#0}>'2 (1x) . for arg in args { . helper(typeck, true, arg, f)?; . } . }, . ExprKind::Tup(args) | ExprKind::Array(args) => { . for arg in args { . helper(typeck, true, arg, f)?; . } -- line 728 ---------------------------------------- -- line 735 ---------------------------------------- . | ExprKind::AssignOp(_, borrowed, consumed) => { . helper(typeck, false, borrowed, f)?; . helper(typeck, true, consumed, f)?; . }, . ExprKind::Binary(_, lhs, rhs) => { . helper(typeck, true, lhs, f)?; . helper(typeck, true, rhs, f)?; . }, 3 ( 0.00%) ExprKind::Struct(_, fields, default) => { . for field in fields { 10 ( 0.00%) helper(typeck, true, field.expr, f)?; 320 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/visitors.rs:clippy_utils::visitors::for_each_unconsumed_temporary::helper::<(), clippy_utils::leaks_droppable_temporary_with_limited_lifetime::{closure#0}>'2 (2x) . } 4 ( 0.00%) if let StructTailExpr::Base(default) = default { . helper(typeck, false, default, f)?; . } . }, 3 ( 0.00%) ExprKind::If(cond, then, else_expr) => { 4 ( 0.00%) helper(typeck, true, cond, f)?; 182 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/visitors.rs:clippy_utils::visitors::for_each_unconsumed_temporary::helper::<(), clippy_utils::leaks_droppable_temporary_with_limited_lifetime::{closure#0}>'2 (1x) 5 ( 0.00%) helper(typeck, true, then, f)?; 627 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/visitors.rs:clippy_utils::visitors::for_each_unconsumed_temporary::helper::<(), clippy_utils::leaks_droppable_temporary_with_limited_lifetime::{closure#0}>'2 (1x) 2 ( 0.00%) if let Some(else_expr) = else_expr { 5 ( 0.00%) helper(typeck, true, else_expr, f)?; 662 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/visitors.rs:clippy_utils::visitors::for_each_unconsumed_temporary::helper::<(), clippy_utils::leaks_droppable_temporary_with_limited_lifetime::{closure#0}>'2 (1x) . } . }, . ExprKind::Type(e, _) | ExprKind::UnsafeBinderCast(_, e, _) => { . helper(typeck, consume, e, f)?; . }, . . // Either drops temporaries, jumps out of the current expression, or has no sub expression. . ExprKind::DropTemps(_) -- line 763 ---------------------------------------- -- line 773 ---------------------------------------- . | ExprKind::Closure { .. } . | ExprKind::Path(_) . | ExprKind::Continue(_) . | ExprKind::InlineAsm(_) . | ExprKind::OffsetOf(..) . | ExprKind::Err(_) => (), . } . ControlFlow::Continue(()) 144 ( 0.00%) } 2 ( 0.00%) helper(cx.typeck_results(), true, e, &mut f) 1,759 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/visitors.rs:clippy_utils::visitors::for_each_unconsumed_temporary::helper::<(), clippy_utils::leaks_droppable_temporary_with_limited_lifetime::{closure#0}> (1x) . } . . pub fn any_temporaries_need_ordered_drop<'tcx>(cx: &LateContext<'tcx>, e: &'tcx Expr<'tcx>) -> bool { . for_each_unconsumed_temporary(cx, e, |ty| { . if needs_ordered_drop(cx, ty) { . ControlFlow::Break(()) . } else { . ControlFlow::Continue(()) -- line 790 ---------------------------------------- 27,756 ( 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; . 244,746 ( 0.01%) pub(super) fn check(cx: &LateContext<'_>, expr: &Expr<'_>) { 54,388 ( 0.00%) if expr.span.from_expansion() { 2,562 ( 0.00%) if let Some(macro_call) = root_macro_call_first_node(cx, expr) 2,562 ( 0.00%) && let Some(diag_name) = cx.tcx.get_diagnostic_name(macro_call.def_id) 19,185 ( 0.00%) => ???:::get_diagnostic_name (366x) . { . let result = match diag_name { 558 ( 0.00%) sym::assert_eq_macro | sym::debug_assert_eq_macro => "succeed", . sym::assert_ne_macro | sym::debug_assert_ne_macro => "fail", . _ => return, . }; 216 ( 0.00%) let Some((lhs, rhs, _)) = find_assert_eq_args(cx, expr, macro_call.expn) else { 60,537 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::find_assert_eq_args (24x) . return; . }; . if is_unit_expr(lhs) || is_unit_expr(rhs) { . return; . } 24 ( 0.00%) if !cx.typeck_results().expr_ty(lhs).is_unit() { 960 ( 0.00%) => ???:::expr_ty (24x) . 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; . } . 35,236 ( 0.00%) if let ExprKind::Binary(ref cmp, left, _) = expr.kind { 358 ( 0.00%) let op = cmp.node; 108 ( 0.00%) if op.is_comparison() && cx.typeck_results().expr_ty(left).is_unit() { 4,332 ( 0.00%) => ???:::expr_ty (108x) . 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() . ), . ); . } . } 217,552 ( 0.01%) } 792 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/needless_borrowed_ref.rs -------------------------------------------------------------------------------- Ir -- line 31 ---------------------------------------- . pub NEEDLESS_BORROWED_REFERENCE, . complexity, . "destructuring a reference and borrowing the inner value" . } . . declare_lint_pass!(NeedlessBorrowedRef => [NEEDLESS_BORROWED_REFERENCE]); . . impl<'tcx> LateLintPass<'tcx> for NeedlessBorrowedRef { 46,571 ( 0.00%) fn check_pat(&mut self, cx: &LateContext<'tcx>, ref_pat: &'tcx Pat<'_>) { 13,306 ( 0.00%) if let PatKind::Ref(pat, Pinnedness::Not, Mutability::Not) = ref_pat.kind . && !ref_pat.span.from_expansion() . && cx . .tcx . .hir_parent_iter(ref_pat.hir_id) . .map_while(|(_, parent)| if let Node::Pat(pat) = parent { Some(pat) } else { None }) . // Do not lint patterns that are part of an OR `|` pattern, the binding mode must match in all arms . .all(|pat| !matches!(pat.kind, PatKind::Or(_))) . { -- line 48 ---------------------------------------- -- line 100 ---------------------------------------- . ref_pat, . pat, . fields.iter().map(|field| field.pat), . ); . }, . _ => {}, . } . } 53,224 ( 0.00%) } . } . . fn check_subpatterns<'tcx>( . cx: &LateContext<'tcx>, . message: &'static str, . ref_pat: &Pat<'_>, . pat: &Pat<'_>, . subpatterns: impl IntoIterator>, -- line 116 ---------------------------------------- -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/large_const_arrays.rs -------------------------------------------------------------------------------- Ir -- line 67 ---------------------------------------- . }, . ty::Tuple(fields) => fields.iter().any(|f| self.check_impl(cx, f)), . _ => false, . } . } . } . . impl<'tcx> LateLintPass<'tcx> for LargeConstArrays { 22,344 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'_>) { 6,384 ( 0.00%) if let ItemKind::Const(ident, generics, _, _) = &item.kind . // Since static items may not have generics, skip generic const items. . // FIXME(generic_const_items): I don't think checking `generics.hwcp` suffices as it . // doesn't account for empty where-clauses that only consist of keyword `where` IINM. . && generics.params.is_empty() && !generics.has_where_clause_predicates . && !item.span.from_expansion() . && let ty = cx.tcx.type_of(item.owner_id).instantiate_identity().skip_norm_wip() . && self.check_impl(cx, ty) . { -- line 84 ---------------------------------------- -- line 99 ---------------------------------------- . sugg_span, . "make this a static item", . "static", . Applicability::MachineApplicable, . ); . }, . ); . } 25,536 ( 0.00%) } . } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/manual_rem_euclid.rs -------------------------------------------------------------------------------- Ir -- line 43 ---------------------------------------- . . impl ManualRemEuclid { . pub fn new(conf: &'static Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl<'tcx> LateLintPass<'tcx> for ManualRemEuclid { 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { . // (x % c + c) % c 54,388 ( 0.00%) if let ExprKind::Binary(rem_op, rem_lhs, rem_rhs) = expr.kind 382 ( 0.00%) && rem_op.node == BinOpKind::Rem 4 ( 0.00%) && let ExprKind::Binary(add_op, add_lhs, add_rhs) = rem_lhs.kind . && add_op.node == BinOpKind::Add . && let ctxt = expr.span.ctxt() . && rem_lhs.span.ctxt() == ctxt . && rem_rhs.span.ctxt() == ctxt . && add_lhs.span.ctxt() == ctxt . && add_rhs.span.ctxt() == ctxt . && !expr.span.in_external_macro(cx.sess().source_map()) . && let Some(const1) = check_for_unsigned_int_constant(cx, ctxt, rem_rhs) -- line 63 ---------------------------------------- -- line 93 ---------------------------------------- . MANUAL_REM_EUCLID, . expr.span, . "manual `rem_euclid` implementation", . "consider using", . format!("{rem_of}.rem_euclid({const1})"), . app, . ); . } 217,552 ( 0.01%) } . } . . // Checks if either the left or right expressions can be an unsigned int constant and returns that . // constant along with the other expression unchanged if so . fn check_for_either_unsigned_int_constant<'a>( . cx: &'a LateContext<'_>, . ctxt: SyntaxContext, . left: &'a Expr<'_>, -- line 109 ---------------------------------------- 2 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/casts/cast_slice_from_raw_parts.rs -------------------------------------------------------------------------------- Ir -- line 13 ---------------------------------------- . use super::CAST_SLICE_FROM_RAW_PARTS; . . enum RawPartsKind { . Immutable, . Mutable, . } . . fn raw_parts_kind(cx: &LateContext<'_>, did: DefId) -> Option { 1,376 ( 0.00%) match cx.tcx.get_diagnostic_name(did)? { 32,604 ( 0.00%) => ???:::get_diagnostic_name (688x) . sym::slice_from_raw_parts => Some(RawPartsKind::Immutable), . sym::slice_from_raw_parts_mut => Some(RawPartsKind::Mutable), . _ => None, . } . } . 456 ( 0.00%) pub(super) fn check(cx: &LateContext<'_>, expr: &Expr<'_>, cast_expr: &Expr<'_>, cast_to: Ty<'_>, msrv: Msrv) { 114 ( 0.00%) if let ty::RawPtr(ptrty, _) = cast_to.kind() 132 ( 0.00%) && let ty::Slice(_) = ptrty.kind() . && let ExprKind::Call(fun, [ptr_arg, len_arg]) = cast_expr.peel_blocks().kind . && let ExprKind::Path(ref qpath) = fun.kind . && let Some(fun_def_id) = cx.qpath_res(qpath, fun.hir_id).opt_def_id() . && let Some(rpk) = raw_parts_kind(cx, fun_def_id) . && let ctxt = expr.span.ctxt() . && cast_expr.span.ctxt() == ctxt . && msrv.meets(cx, msrvs::PTR_SLICE_RAW_PARTS) . && !expr.span.in_external_macro(cx.tcx.sess.source_map()) -- line 38 ---------------------------------------- -- line 51 ---------------------------------------- . CAST_SLICE_FROM_RAW_PARTS, . span, . format!("casting the result of `{func}` to {cast_to}"), . "replace with", . format!("{krate}::ptr::slice_{func}({ptr}, {len})"), . applicability, . ); . } 456 ( 0.00%) } . . /// Checks for implicit cast from slice reference to raw slice pointer. 217,552 ( 0.01%) pub(super) fn check_implicit_cast(cx: &LateContext<'_>, expr: &Expr<'_>) { 8,680 ( 0.00%) if let ExprKind::Call(fun, [ptr_arg, len_arg]) = expr.peel_blocks().kind 2,064 ( 0.00%) && let ExprKind::Path(ref qpath) = fun.kind 2,752 ( 0.00%) && let Some(fun_def_id) = cx.qpath_res(qpath, fun.hir_id).opt_def_id() 26,494 ( 0.00%) => ???:::qpath_res (688x) 2,064 ( 0.00%) && let Some(rpk) = raw_parts_kind(cx, fun_def_id) . && !matches!(get_parent_expr(cx, expr).map(|e| e.kind), Some(ExprKind::Cast(..))) . && let [deref, borrow] = cx.typeck_results().expr_adjustments(expr) . && matches!(deref.kind, Adjust::Deref(..)) . && let Adjustment { . kind: Adjust::Borrow(AutoBorrow::RawPtr(..)), . target, . } = borrow . && let ty::RawPtr(pointee_ty, _) = target.kind() -- line 74 ---------------------------------------- -- line 89 ---------------------------------------- . CAST_SLICE_FROM_RAW_PARTS, . expr.span, . format!("implicitly casting the result of `{func}` to `{target}`"), . "replace_with", . format!("{krate}::ptr::slice_{func}({ptr}, {len})"), . applicability, . ); . } 217,552 ( 0.01%) } 30,634 ( 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, . { 516,800 ( 0.01%) SESSION_GLOBALS.with(f) 542,430 ( 0.01%) => /rust/deps/scoped-tls-1.0.1/src/lib.rs:>::with::<::as_str::{closure#0}, &str> (12,054x) . } . . /// 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)) . } . 85 ( 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> { 43 ( 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 { 42 ( 0.00%) if self.was_not_remapped() { 84 ( 0.00%) Some(self.maybe_remapped.name) . } else if let Some(local) = self.local { . Some(local.name) . } else { . None . } 168 ( 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 { 1,667 ( 0.00%) Span::new(self.lo, hi, self.ctxt, self.parent) 3,267 ( 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 (121x) . } . /// 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 { 7,307 ( 0.00%) self.data().lo 336 ( 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 (16x) . } . #[inline] . pub fn with_lo(self, lo: BytePos) -> Span { . self.data().with_lo(lo) . } . #[inline] . pub fn hi(self) -> BytePos { 7,323 ( 0.00%) self.data().hi 4,074 ( 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 (194x) . } . #[inline] . pub fn with_hi(self, hi: BytePos) -> Span { 310 ( 0.00%) self.data().with_hi(hi) 2,541 ( 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 (121x) . } . #[inline] . pub fn with_ctxt(self, ctxt: SyntaxContext) -> Span { 832 ( 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] 2,436 ( 0.00%) pub fn in_external_macro(self, sm: &SourceMap) -> bool { 232,673 ( 0.01%) self.ctxt().in_external_macro(sm) 707 ( 0.00%) => ???:::in_external_macro (7x) . } . . /// 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 809 ---------------------------------------- . #[inline] . pub fn with_root_ctxt(lo: BytePos, hi: BytePos) -> Span { . Span::new(lo, hi, SyntaxContext::root(), None) . } . . /// Returns a new span representing an empty span at the beginning of this span. . #[inline] . pub fn shrink_to_lo(self) -> Span { 28 ( 0.00%) let span = self.data_untracked(); 210 ( 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_untracked (14x) 14 ( 0.00%) span.with_hi(span.lo) . } . /// Returns a new span representing an empty span at the end of this span. . #[inline] . pub fn shrink_to_hi(self) -> Span { . let span = self.data_untracked(); . span.with_lo(span.hi) . } . -- line 826 ---------------------------------------- -- line 1693 ---------------------------------------- . /// No attempt has been made to load the external source. . AbsentOk, . /// A failed attempt has been made to load the external source. . AbsentErr, . } . . impl ExternalSource { . pub fn get_source(&self) -> Option<&str> { 10 ( 0.00%) match self { . ExternalSource::Foreign { kind: ExternalSourceKind::Present(src), .. } => Some(src), . _ => None, . } . } . } . . #[derive(Debug)] . pub struct OffsetOverflowError; -- line 1709 ---------------------------------------- -- line 2364 ---------------------------------------- . } . . pub fn count_lines(&self) -> usize { . self.lines().len() . } . . #[inline] . pub fn absolute_position(&self, pos: RelativeBytePos) -> BytePos { 8 ( 0.00%) BytePos::from_u32(pos.to_u32() + self.start_pos.to_u32()) . } . . #[inline] . pub fn relative_position(&self, pos: BytePos) -> RelativeBytePos { 7,632 ( 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 { 9,250 ( 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 { 8 ( 0.00%) self.0 as u32 . } . } . . impl Add for $ident { . type Output = $ident; . . #[inline(always)] . fn add(self, rhs: $ident) -> $ident { 30 ( 0.00%) $ident(self.0 + rhs.0) . } . } . . impl Sub for $ident { . type Output = $ident; . . #[inline(always)] . fn sub(self, rhs: $ident) -> $ident { 2,816 ( 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. 2,117 ( 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 ---------------------------------------- 159,270 ( 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).) 53,194 ( 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/transmute/mod.rs -------------------------------------------------------------------------------- Ir -- line 493 ---------------------------------------- . } . impl Transmute { . pub fn new(conf: &'static Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . . /// When transmuting, a struct containing a single field works like the field. . /// This function extracts the field type and the expression to get the field. 33 ( 0.00%) fn extract_struct_field<'tcx>( . cx: &LateContext<'tcx>, . e: &'tcx Expr<'_>, . outer_type: Ty<'tcx>, . outer: &'tcx Expr<'tcx>, . ) -> (Ty<'tcx>, Sugg<'tcx>) { 3 ( 0.00%) let mut applicability = Applicability::MachineApplicable; 21 ( 0.00%) let outer_sugg = Sugg::hir_with_context(cx, outer, e.span.ctxt(), "..", &mut applicability); 2,401 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/sugg.rs:::hir_with_context (3x) 9 ( 0.00%) if let ty::Adt(struct_def, struct_args) = *outer_type.kind() 3 ( 0.00%) && struct_def.is_struct() . && let mut fields = struct_def.all_fields() . && let Some(first) = fields.next() . && fields.next().is_none() . && first.vis.is_accessible_from(cx.tcx.parent_module(outer.hir_id), cx.tcx) . { . ( . first.ty(cx.tcx, struct_args).skip_norm_wip(), . Sugg::NonParen(format!("{}.{}", outer_sugg.maybe_paren(), first.name).into()), . ) . } else { 27 ( 0.00%) (outer_type, outer_sugg) . } 24 ( 0.00%) } . } . impl<'tcx> LateLintPass<'tcx> for Transmute { 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, e: &'tcx Expr<'_>) { 63,325 ( 0.00%) if let ExprKind::Call(path_expr, [arg]) = e.kind 15,970 ( 0.00%) && let ExprKind::Path(QPath::Resolved(None, path)) = path_expr.kind . && let Some(def_id) = path.res.opt_def_id() 15,064 ( 0.00%) && cx.tcx.is_diagnostic_item(sym::transmute, def_id) 164,973 ( 0.00%) => ???:::is_diagnostic_item (2,152x) . { . // Avoid suggesting non-const operations in const contexts: . // - from/to bits (https://github.com/rust-lang/rust/issues/73736) . // - dereferencing raw pointers (https://github.com/rust-lang/rust/issues/51911) . // - char conversions (https://github.com/rust-lang/rust/issues/89259) 3 ( 0.00%) let const_context = is_in_const_context(cx); 808 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_in_const_context (3x) . 9 ( 0.00%) let (from_ty, from_ty_adjusted) = match cx.typeck_results().expr_adjustments(arg) { 58 ( 0.00%) => ???:::expr_adjustments (3x) 33 ( 0.00%) [] => (cx.typeck_results().expr_ty(arg), false), 120 ( 0.00%) => ???:::expr_ty (3x) . [.., a] => (a.target, true), . }; . // Adjustments for `to_ty` happen after the call to `transmute`, so don't use them. 15 ( 0.00%) let to_ty = cx.typeck_results().expr_ty(e); 120 ( 0.00%) => ???:::expr_ty (3x) . . // If useless_transmute is triggered, the other lints can be skipped. 24 ( 0.00%) if useless_transmute::check(cx, e, from_ty, to_ty, arg) { 90 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/transmute/useless_transmute.rs:clippy_lints::transmute::useless_transmute::check (3x) . return; . } . . // A struct having a single pointer can be treated like a pointer. 30 ( 0.00%) let (from_field_ty, from_field_expr) = Self::extract_struct_field(cx, e, from_ty, arg); 2,602 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/transmute/mod.rs:::extract_struct_field (3x) . 39 ( 0.00%) let linted = wrong_transmute::check(cx, e, from_ty, to_ty) 48 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/transmute/wrong_transmute.rs:clippy_lints::transmute::wrong_transmute::check (3x) 12 ( 0.00%) | crosspointer_transmute::check(cx, e, from_ty, to_ty) 51 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/transmute/crosspointer_transmute.rs:clippy_lints::transmute::crosspointer_transmute::check (3x) 12 ( 0.00%) | transmuting_null::check(cx, e, arg, to_ty) 54 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/transmute/transmuting_null.rs:clippy_lints::transmute::transmuting_null::check (3x) 12 ( 0.00%) | transmute_null_to_fn::check(cx, e, arg, to_ty) 18 ( 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/sty.rs:clippy_lints::transmute::transmute_null_to_fn::check (3x) 39 ( 0.00%) | transmute_ptr_to_ref::check(cx, e, from_field_ty, to_ty, from_field_expr.clone(), path, self.msrv) 310 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/sugg.rs:::clone (3x) 279 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/transmute/transmute_ptr_to_ref.rs:clippy_lints::transmute::transmute_ptr_to_ref::check (3x) 27 ( 0.00%) | missing_transmute_annotations::check(cx, path, arg, from_ty, to_ty, e.hir_id) 513 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/transmute/missing_transmute_annotations.rs:clippy_lints::transmute::missing_transmute_annotations::check (3x) 27 ( 0.00%) | transmute_ref_to_ref::check(cx, e, from_ty, to_ty, arg, const_context) 69 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/transmute/transmute_ref_to_ref.rs:clippy_lints::transmute::transmute_ref_to_ref::check (3x) 54 ( 0.00%) | transmute_ptr_to_ptr::check(cx, e, from_field_ty, to_ty, from_field_expr, self.msrv) 240 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/transmute/transmute_ptr_to_ptr.rs:clippy_lints::transmute::transmute_ptr_to_ptr::check (3x) 21 ( 0.00%) | transmute_int_to_bool::check(cx, e, from_ty, to_ty, arg) 51 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/transmute/transmute_int_to_bool.rs:clippy_lints::transmute::transmute_int_to_bool::check (3x) 21 ( 0.00%) | transmute_int_to_non_zero::check(cx, e, from_ty, to_ty, arg) 63 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/transmute/transmute_int_to_non_zero.rs:clippy_lints::transmute::transmute_int_to_non_zero::check (3x) 24 ( 0.00%) | (unsound_collection_transmute::check(cx, e, from_ty, to_ty) 264 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/transmute/unsound_collection_transmute.rs:clippy_lints::transmute::unsound_collection_transmute::check (3x) 24 ( 0.00%) || transmute_undefined_repr::check(cx, e, from_ty, to_ty)) 102 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/transmute/transmute_undefined_repr.rs:clippy_lints::transmute::transmute_undefined_repr::check (3x) 18 ( 0.00%) | (eager_transmute::check(cx, e, arg, from_ty, to_ty)); 1,377 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/transmute/eager_transmute.rs:clippy_lints::transmute::eager_transmute::check (3x) . 18 ( 0.00%) if !linted { 18 ( 0.00%) transmutes_expressible_as_ptr_casts::check(cx, e, from_ty, from_ty_adjusted, to_ty, arg, const_context); 8,172 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/transmute/transmutes_expressible_as_ptr_casts.rs:clippy_lints::transmute::transmutes_expressible_as_ptr_casts::check (3x) . } . } 217,552 ( 0.01%) } . } 4,385 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/uninit_vec.rs -------------------------------------------------------------------------------- Ir -- line 58 ---------------------------------------- . "Vec with uninitialized data" . } . . declare_lint_pass!(UninitVec => [UNINIT_VEC]); . . // FIXME: update to a visitor-based implementation. . // Threads: https://github.com/rust-lang/rust-clippy/pull/7682#discussion_r710998368 . impl<'tcx> LateLintPass<'tcx> for UninitVec { 25,560 ( 0.00%) fn check_block(&mut self, cx: &LateContext<'tcx>, block: &'tcx Block<'_>) { 2,840 ( 0.00%) let ctxt = block.span.ctxt(); 17,040 ( 0.00%) if !ctxt.in_external_macro(cx.tcx.sess.source_map()) { 469,526 ( 0.01%) => ???:::in_external_macro (2,840x) 7,980 ( 0.00%) for [stmt1, stmt2] in block.stmts.array_windows::<2>() { 4,218 ( 0.00%) if let StmtKind::Expr(expr) | StmtKind::Semi(expr) = stmt2.kind 1,186 ( 0.00%) && stmt1.span.ctxt() == ctxt 1,150 ( 0.00%) && stmt2.span.ctxt() == ctxt 1,114 ( 0.00%) && expr.span.ctxt() == ctxt . { 2,160 ( 0.00%) handle_uninit_vec_pair(cx, ctxt, stmt1, expr); 48,984 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/uninit_vec.rs:clippy_lints::uninit_vec::handle_uninit_vec_pair (540x) . } . } . 3,024 ( 0.00%) if let (Some(stmt), Some(expr)) = (block.stmts.last(), block.expr) 758 ( 0.00%) && stmt.span.ctxt() == ctxt 742 ( 0.00%) && expr.span.ctxt() == ctxt . { 4,026 ( 0.00%) handle_uninit_vec_pair(cx, ctxt, stmt, expr); 22,062 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/uninit_vec.rs:clippy_lints::uninit_vec::handle_uninit_vec_pair (366x) . } . } 19,792 ( 0.00%) } . } . 9,060 ( 0.00%) fn handle_uninit_vec_pair<'tcx>( . cx: &LateContext<'tcx>, . ctxt: SyntaxContext, . maybe_init_or_reserve: &'tcx Stmt<'tcx>, . maybe_set_len: &'tcx Expr<'tcx>, . ) { 1,812 ( 0.00%) if let Some(vec) = extract_init_or_reserve_target(cx, maybe_init_or_reserve) 3 ( 0.00%) && let Some((set_len_self, call_span)) = extract_set_len_self(cx, maybe_set_len) . && vec.location.eq_expr(cx, ctxt, set_len_self) . && let ty::Ref(_, vec_ty, _) = cx.typeck_results().expr_ty_adjusted(set_len_self).kind() . && let ty::Adt(_, args) = vec_ty.kind() . // `#[allow(...)]` attribute can be set on enclosing unsafe block of `set_len()` . && !is_lint_allowed(cx, UNINIT_VEC, maybe_set_len.hir_id) . { . if vec.has_capacity() { . // with_capacity / reserve -> set_len -- line 104 ---------------------------------------- -- line 119 ---------------------------------------- . span_lint( . cx, . UNINIT_VEC, . vec![call_span, maybe_init_or_reserve.span], . "calling `set_len()` on empty `Vec` creates out-of-bound values", . ); . } . } 7,248 ( 0.00%) } . . /// The target `Vec` that is initialized or reserved . #[derive(Clone, Copy)] . struct TargetVec<'tcx> { . location: VecLocation<'tcx>, . /// `None` if `reserve()` . init_kind: Option, . } -- line 135 ---------------------------------------- -- line 153 ---------------------------------------- . VecLocation::Expr(self_expr) => SpanlessEq::new(cx).eq_expr(ctxt, self_expr, expr), . } . } . } . . /// Finds the target location where the result of `Vec` initialization is stored . /// or `self` expression for `Vec::reserve()`. . fn extract_init_or_reserve_target<'tcx>(cx: &LateContext<'tcx>, stmt: &'tcx Stmt<'tcx>) -> Option> { 3,520 ( 0.00%) match stmt.kind { . StmtKind::Let(local) => { 1,167 ( 0.00%) if let Some(init_expr) = local.init 2,748 ( 0.00%) && let PatKind::Binding(_, hir_id, _, None) = local.pat.kind 1,620 ( 0.00%) && let Some(init_kind) = get_vec_init_kind(cx, init_expr) 15,571 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/higher.rs:clippy_utils::higher::get_vec_init_kind (324x) . { . return Some(TargetVec { . location: VecLocation::Local(hir_id), . init_kind: Some(init_kind), . }); . } . }, 2,349 ( 0.00%) StmtKind::Expr(expr) | StmtKind::Semi(expr) => match expr.kind { 176 ( 0.00%) ExprKind::Assign(lhs, rhs, _span) => { 440 ( 0.00%) if let Some(init_kind) = get_vec_init_kind(cx, rhs) { 2,824 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/higher.rs:clippy_utils::higher::get_vec_init_kind (88x) . return Some(TargetVec { . location: VecLocation::Expr(lhs), . init_kind: Some(init_kind), . }); . } . }, 1,882 ( 0.00%) ExprKind::MethodCall(path, self_expr, [_], _) if is_reserve(cx, path, self_expr) => { . return Some(TargetVec { . location: VecLocation::Expr(self_expr), . init_kind: None, . }); . }, . _ => (), . }, . StmtKind::Item(_) => (), . } . None . } . . fn is_reserve(cx: &LateContext<'_>, path: &PathSegment<'_>, self_expr: &Expr<'_>) -> bool { . cx.typeck_results() 185 ( 0.00%) .expr_ty(self_expr) 7,412 ( 0.00%) => ???:::expr_ty (185x) . .peel_refs() . .is_diag_item(cx, sym::Vec) . && path.ident.name == sym::reserve . } . . /// Returns self if the expression is `Vec::set_len()` . fn extract_set_len_self<'tcx>(cx: &LateContext<'_>, expr: &'tcx Expr<'_>) -> Option<(&'tcx Expr<'tcx>, Span)> { . // peel unsafe blocks in `unsafe { vec.set_len() }` . let expr = peel_hir_expr_while(expr, |e| { 14 ( 0.00%) if let ExprKind::Block(block, _) = e.kind { . // Extract the first statement/expression . match (block.stmts.first().map(|stmt| &stmt.kind), block.expr) { . (None, Some(expr)) => Some(expr), . (Some(StmtKind::Expr(expr) | StmtKind::Semi(expr)), _) => Some(expr), . _ => None, . } . } else { . None . } . }); 14 ( 0.00%) match expr.kind { 2 ( 0.00%) ExprKind::MethodCall(path, self_expr, [arg], _) => { 1 ( 0.00%) let self_type = cx.typeck_results().expr_ty(self_expr).peel_refs(); 40 ( 0.00%) => ???:::expr_ty (1x) 3 ( 0.00%) if self_type.is_diag_item(cx, sym::Vec) && path.ident.name == sym::set_len && !is_integer_literal(arg, 0) { . Some((self_expr, expr.span)) . } else { . None . } . }, . _ => None, . } . } -- line 229 ---------------------------------------- 28,464 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/manual_is_ascii_check.rs -------------------------------------------------------------------------------- Ir -- line 85 ---------------------------------------- . /// 'A..=F' . UpperHexLetter, . /// '0..=9' | 'a..=f' | 'A..=F' . HexDigit, . Otherwise, . } . . impl<'tcx> LateLintPass<'tcx> for ManualIsAsciiCheck { 244,746 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 85,100 ( 0.00%) if !matches!( 54,388 ( 0.00%) expr.kind, 3,433 ( 0.00%) ExprKind::Match(_, [_, ..], _) | ExprKind::MethodCall(_, _, [_], _) . ) { . return; . } . 12,810 ( 0.00%) if !self.msrv.meets(cx, msrvs::IS_ASCII_DIGIT) { 49,410 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/msrvs.rs:::meets (1,830x) . return; . } . 7,320 ( 0.00%) if is_in_const_context(cx) && !self.msrv.meets(cx, msrvs::IS_ASCII_DIGIT_CONST) { 496,528 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_in_const_context (1,830x) . return; . } . 14,292 ( 0.00%) let (arg, span, range) = if let ExprKind::Match(recv, [arm, ..], _) = expr.kind 5,190 ( 0.00%) && let Some(macro_call) = matching_root_macro_call(cx, expr.span, sym::matches_macro) 119,170 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::matching_root_macro_call (741x) . { 12 ( 0.00%) let recv = peel_ref_operators(cx, recv); 57 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::peel_ref_operators (3x) 6 ( 0.00%) let range = check_pat(&arm.pat.kind); 472 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/manual_is_ascii_check.rs:clippy_lints::manual_is_ascii_check::check_pat (3x) . (recv, macro_call.span, range) 5,445 ( 0.00%) } else if let ExprKind::MethodCall(path, receiver, [arg], ..) = expr.kind 1,089 ( 0.00%) && path.ident.name == sym::contains . && let Some(higher::Range { . start: Some(start), . end: Some(end), . ty: range_ty, . span: _, . }) = higher::Range::hir(cx, receiver) . && let RangeLimits::Closed = range_ty.limits() . && !matches!(cx.typeck_results().expr_ty(arg).peel_refs().kind(), ty::Param(_)) -- line 124 ---------------------------------------- -- line 125 ---------------------------------------- . { . let arg = peel_ref_operators(cx, arg); . let range = check_expr_range(start, end); . (arg, expr.span, range) . } else { . return; . }; . 3 ( 0.00%) let ty_sugg = get_ty_sugg(cx, arg); . check_is_ascii(cx, span, arg, &range, ty_sugg); 217,552 ( 0.01%) } . } . . fn get_ty_sugg<'tcx>(cx: &LateContext<'tcx>, arg: &Expr<'_>) -> Option<(Span, Ty<'tcx>)> { . let local_hid = arg.res_local_id()?; 6 ( 0.00%) if let Node::Param(Param { ty_span, span, .. }) = cx.tcx.parent_hir_node(local_hid) 176 ( 0.00%) => ???:::parent_hir_node (2x) . // `ty_span` and `span` are the same for inferred type, thus a type suggestion must be given . && ty_span == span . { . let arg_type = cx.typeck_results().expr_ty(arg); . return Some((*ty_span, arg_type)); . } . None . } -- line 148 ---------------------------------------- -- line 149 ---------------------------------------- . . fn check_is_ascii( . cx: &LateContext<'_>, . span: Span, . recv: &Expr<'_>, . range: &CharRange, . ty_sugg: Option<(Span, Ty<'_>)>, . ) { 15 ( 0.00%) let sugg = match range { . CharRange::UpperChar => "is_ascii_uppercase", . CharRange::LowerChar => "is_ascii_lowercase", . CharRange::FullChar => "is_ascii_alphabetic", . CharRange::Digit => "is_ascii_digit", . CharRange::HexDigit => "is_ascii_hexdigit", . CharRange::Otherwise | CharRange::LowerHexLetter | CharRange::UpperHexLetter => return, . }; . let mut app = Applicability::MachineApplicable; -- line 165 ---------------------------------------- -- line 175 ---------------------------------------- . span, . "manual check for common ascii range", . |diag| { . diag.multipart_suggestion("try", suggestion, app); . }, . ); . } . 55 ( 0.00%) fn check_pat(pat_kind: &PatKind<'_>) -> CharRange { 99 ( 0.00%) match pat_kind { . PatKind::Or(pats) => { 20 ( 0.00%) let ranges = pats.iter().map(|p| check_pat(&p.kind)).collect::>(); 160 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/manual_is_ascii_check.rs:clippy_lints::manual_is_ascii_check::check_pat'2 (8x) . 8 ( 0.00%) if ranges.len() == 2 && ranges.contains(&CharRange::UpperChar) && ranges.contains(&CharRange::LowerChar) { . CharRange::FullChar . } else if ranges.len() == 3 . && ranges.contains(&CharRange::Digit) . && ranges.contains(&CharRange::LowerHexLetter) . && ranges.contains(&CharRange::UpperHexLetter) . { . CharRange::HexDigit . } else { . CharRange::Otherwise . } . }, . PatKind::Range(Some(start), Some(end), RangeEnd::Included) => check_range(start, end), . _ => CharRange::Otherwise, . } 66 ( 0.00%) } . . fn check_expr_range(start: &Expr<'_>, end: &Expr<'_>) -> CharRange { . if let ExprKind::Lit(start_lit) = &start.kind . && let ExprKind::Lit(end_lit) = &end.kind . { . check_lit_range(start_lit, end_lit) . } else { . CharRange::Otherwise -- line 211 ---------------------------------------- 12 ( 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 { 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 63,325 ( 0.00%) if let ExprKind::Call(path, [arg]) = expr.kind 7,083 ( 0.00%) && let ExprKind::Path(ref qpath) = path.kind 9,444 ( 0.00%) && let Some(def_id) = cx.qpath_res(qpath, path.hir_id).opt_def_id() 64,325 ( 0.00%) => ???:::qpath_res (2,361x) 11,725 ( 0.00%) && let Some(fn_name) = cx.tcx.get_diagnostic_name(def_id) 146,735 ( 0.00%) => ???:::get_diagnostic_name (2,345x) . { 252 ( 0.00%) let arg_ty = cx.typeck_results().expr_ty(arg); 3,360 ( 0.00%) => ???:::expr_ty (84x) 420 ( 0.00%) let is_copy = is_copy(cx, arg_ty); 60,037 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::is_copy (84x) 152 ( 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 336 ( 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, . sym::mem_drop if arg_ty.is_lang_item(cx, LangItem::ManuallyDrop) => return, . sym::mem_drop . if !(arg_ty.needs_drop(cx.tcx, cx.typing_env()) . || is_must_use_func_call(cx, arg) . || opt_must_use_path(cx, arg_ty).is_some() -- line 101 ---------------------------------------- -- 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); . } . }); . } 217,552 ( 0.01%) } . } . . // 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 { 252 ( 0.00%) if matches!(arg.kind, ExprKind::Call(..) | ExprKind::MethodCall(..)) 85 ( 0.00%) && let Node::Arm(Arm { body, .. }) = cx.tcx.parent_hir_node(drop_expr.hir_id) 1,496 ( 0.00%) => ???:::parent_hir_node (17x) . { . return body.hir_id == drop_expr.hir_id; . } . false . } 7,100 ( 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. 22,110 ( 0.00%) fn span_matches_pat(sess: &Session, span: Span, start_pat: Pat, end_pat: Pat) -> bool { 11,055 ( 0.00%) let pos = sess.source_map().lookup_byte_offset(span.lo()); 331,454 ( 0.01%) => ???:::lookup_byte_offset (2,211x) 4,422 ( 0.00%) let Some(ref src) = pos.sf.src else { . return false; . }; . let end = span.hi() - pos.sf.start_pos; 17,688 ( 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. 2,211 ( 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 == ','); 28,743 ( 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()) . }, 17,544 ( 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)), 426 ( 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, . }) 6,615 ( 0.00%) }) 19,899 ( 0.00%) } . . /// Get the search patterns to use for the given literal . fn lit_search_pat(lit: &LitKind) -> (Pat, Pat) { 25 ( 0.00%) match lit { 3 ( 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("#")), 7 ( 0.00%) 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("")), . } 3 ( 0.00%) } . . /// Get the search patterns to use for the given path 577 ( 0.00%) fn qpath_search_pat(path: &QPath<'_>) -> (Pat, Pat) { 1,158 ( 0.00%) match path { . QPath::Resolved(ty, path) => { 579 ( 0.00%) let start = if ty.is_some() { . Pat::Str("<") . } else { 579 ( 0.00%) path.segments.first().map_or(Pat::Str(""), |seg| { 1,158 ( 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| { 581 ( 0.00%) if seg.args.is_some() { . Pat::Str(">") . } else { . Pat::Sym(seg.ident.name) . } . }); 3,474 ( 0.00%) (start, end) . }, . QPath::TypeRelative(_, name) => (Pat::Str(""), Pat::Sym(name.ident.name)), . } 577 ( 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) { 26,856 ( 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. 5,968 ( 0.00%) if !e.span.eq_ctxt(outer_span) { . return (Pat::Str(""), Pat::Str("")); . } . 9,215 ( 0.00%) match e.kind { 9 ( 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` . ExprKind::Tup([]) => (Pat::Str(")"), Pat::Str("(")), 1,441 ( 0.00%) ExprKind::Unary(UnOp::Deref, e) => (Pat::Str("*"), expr_search_pat_inner(tcx, e, outer_span).1), 7,316 ( 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 (71x) . 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), 33 ( 0.00%) ExprKind::Lit(lit) => lit_search_pat(&lit.node), 52 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::lit_search_pat (3x) 56 ( 0.00%) ExprKind::Array(_) | ExprKind::Repeat(..) => (Pat::Str("["), Pat::Str("]")), 372 ( 0.00%) ExprKind::Call(e, []) | ExprKind::MethodCall(_, e, [], _) => { 360 ( 0.00%) (expr_search_pat_inner(tcx, e, outer_span).0, Pat::Str("(")) 249 ( 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 (3x) . }, 36 ( 0.00%) ExprKind::Call(first, [.., last]) 96 ( 0.00%) | ExprKind::MethodCall(_, first, [.., last], _) . | ExprKind::Binary(_, first, last) . | ExprKind::Tup([first, .., last]) . | ExprKind::Assign(first, last, _) 200 ( 0.00%) | ExprKind::AssignOp(_, first, last) => ( 150 ( 0.00%) expr_search_pat_inner(tcx, first, outer_span).0, 6,745 ( 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 (24x) 400 ( 0.00%) expr_search_pat_inner(tcx, last, outer_span).1, 9,266 ( 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 (24x) . ), . 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), 6 ( 0.00%) 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("}")), . ExprKind::Loop(_, None, LoopSource::ForLoop, _) | ExprKind::Match(_, _, MatchSource::ForLoopDesugar) => { . (Pat::Str("for"), Pat::Str("}")) . }, . ExprKind::Match(_, _, MatchSource::Normal) => (Pat::Str("match"), Pat::Str("}")), 1 ( 0.00%) ExprKind::Match(e, _, MatchSource::TryDesugar(_)) => { 7 ( 0.00%) (expr_search_pat_inner(tcx, e, outer_span).0, Pat::Str("?")) 46 ( 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) . }, . ExprKind::Match(e, _, MatchSource::AwaitDesugar) | ExprKind::Yield(e, YieldSource::Await { .. }) => { . (expr_search_pat_inner(tcx, e, outer_span).0, Pat::Str("await")) . }, 69 ( 0.00%) ExprKind::Closure(&Closure { body, .. }) => ( 92 ( 0.00%) Pat::Str(""), 207 ( 0.00%) expr_search_pat_inner(tcx, tcx.hir_body(body).value, outer_span).1, 8,176 ( 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 (23x) 1,749 ( 0.00%) => ???:::hir_body (23x) . ), . ExprKind::Block( . Block { . rules: BlockCheckMode::UnsafeBlock(UnsafeSource::UserProvided), . .. . }, . None, . ) => (Pat::Str("unsafe"), Pat::Str("}")), 2 ( 0.00%) ExprKind::Block(_, None) => (Pat::Str("{"), Pat::Str("}")), 2,990 ( 0.00%) ExprKind::Field(e, name) => (expr_search_pat_inner(tcx, e, outer_span).0, Pat::Sym(name.name)), 83 ( 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) 900 ( 0.00%) ExprKind::Index(e, _, _) => (expr_search_pat_inner(tcx, e, outer_span).0, Pat::Str("]")), 5,042 ( 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 (44x) 6,336 ( 0.00%) ExprKind::Path(ref path) => qpath_search_pat(path), 850 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::qpath_search_pat (25x) 3,024 ( 0.00%) ExprKind::AddrOf(_, _, e) => (Pat::Str("&"), expr_search_pat_inner(tcx, e, outer_span).1), 49,810 ( 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 (371x) . 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")), 7 ( 0.00%) ExprKind::Ret(Some(e)) => (Pat::Str("return"), expr_search_pat_inner(tcx, e, outer_span).1), 219 ( 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) 10 ( 0.00%) ExprKind::Struct(path, _, _) => (qpath_search_pat(path).0, Pat::Str("}")), 34 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::qpath_search_pat (1x) . ExprKind::Yield(e, YieldSource::Yield) => (Pat::Str("yield"), expr_search_pat_inner(tcx, e, outer_span).1), . _ => (Pat::Str(""), Pat::Str("")), . } 7,304 ( 0.00%) } . 1,620 ( 0.00%) expr_search_pat_inner(tcx, e, e.span) 122,030 ( 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 (540x) . } . . fn fn_header_search_pat(header: FnHeader) -> Pat { 915 ( 0.00%) if header.is_async() { . Pat::Str("async") 1,830 ( 0.00%) } else if matches!(header.constness, rustc_hir::Constness::Const { always: false }) { . Pat::Str("const") . } else if header.is_unsafe() { . Pat::Str("unsafe") 2,730 ( 0.00%) } else if header.abi != ExternAbi::Rust { . Pat::Str("extern") . } else { . Pat::MultiStr(&["fn", "extern"]) . } . } . . fn item_search_pat(item: &Item<'_>) -> (Pat, Pat) { 12,035 ( 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(";")), 1,089 ( 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("")), . }; 1,744 ( 0.00%) if item.vis_span.is_empty() { 5,778 ( 0.00%) (start_pat, end_pat) . } else { 1,840 ( 0.00%) (Pat::Str("pub"), end_pat) . } . } . . fn trait_item_search_pat(item: &TraitItem<'_>) -> (Pat, Pat) { 231 ( 0.00%) match &item.kind { . TraitItemKind::Const(..) => (Pat::Str("const"), Pat::Str(";")), . TraitItemKind::Type(..) => (Pat::Str("type"), Pat::Str(";")), 63 ( 0.00%) TraitItemKind::Fn(sig, ..) => (fn_header_search_pat(sig.header), Pat::Str("")), . } . } . . fn impl_item_search_pat(item: &ImplItem<'_>) -> (Pat, Pat) { 6,256 ( 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(";")), 736 ( 0.00%) ImplItemKind::Fn(sig, ..) => (fn_header_search_pat(sig.header), Pat::Str("")), . }; 986 ( 0.00%) if let ImplItemImplKind::Inherent { vis_span, .. } = item.impl_kind 250 ( 0.00%) && !vis_span.is_empty() . { 900 ( 0.00%) start_pat = Pat::Str("pub"); . } 4,416 ( 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)), . } . } . 1,467 ( 0.00%) fn fn_kind_pat(tcx: TyCtxt<'_>, kind: &FnKind<'_>, body: &Body<'_>, hir_id: HirId) -> (Pat, Pat) { 1,712 ( 0.00%) let (mut start_pat, end_pat) = match kind { 122 ( 0.00%) FnKind::ItemFn(.., header) => (fn_header_search_pat(*header), Pat::Str("")), 82 ( 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), . }; 1,589 ( 0.00%) match tcx.hir_node(hir_id) { 8,539 ( 0.00%) => ???:::hir_node (163x) 366 ( 0.00%) Node::Item(Item { vis_span, .. }) . | Node::ImplItem(ImplItem { 41 ( 0.00%) impl_kind: ImplItemImplKind::Inherent { vis_span, .. }, . .. . }) => { 412 ( 0.00%) if !vis_span.is_empty() { . start_pat = Pat::Str("pub"); . } . }, . Node::ImplItem(_) | Node::TraitItem(_) => {}, . _ => start_pat = Pat::Str(""), . } 1,630 ( 0.00%) (start_pat, end_pat) 1,467 ( 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 383 ---------------------------------------- . (Pat::Str("/**"), Pat::Str("*/")) . } else { . (Pat::Str("/*!"), Pat::Str("*/")) . } . }, . } . } . 32 ( 0.00%) fn ty_search_pat(ty: &Ty<'_>) -> (Pat, Pat) { 36 ( 0.00%) match ty.kind { . TyKind::Slice(..) | TyKind::Array(..) => (Pat::Str("["), Pat::Str("]")), . TyKind::Ptr(MutTy { ty, .. }) => (Pat::Str("*"), ty_search_pat(ty).1), 32 ( 0.00%) TyKind::Ref(_, MutTy { ty, .. }) => (Pat::Str("&"), ty_search_pat(ty).1), 116 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::ty_search_pat'2 (2x) . TyKind::FnPtr(fn_ptr) => ( . if fn_ptr.safety.is_unsafe() { . Pat::Str("unsafe") . } else if fn_ptr.abi != ExternAbi::Rust { . Pat::Str("extern") . } else { . Pat::MultiStr(&["fn", "extern"]) . }, -- line 403 ---------------------------------------- -- line 414 ---------------------------------------- . ), . TyKind::Never => (Pat::Str("!"), Pat::Str("!")), . // Parenthesis are trimmed from the text before the search patterns are matched. . // See: `span_matches_pat` . TyKind::Tup([]) => (Pat::Str(")"), Pat::Str("(")), . TyKind::Tup([ty]) => ty_search_pat(ty), . TyKind::Tup([head, .., tail]) => (ty_search_pat(head).0, ty_search_pat(tail).1), . TyKind::OpaqueDef(..) => (Pat::Str("impl"), Pat::Str("")), 2 ( 0.00%) TyKind::Path(qpath) => qpath_search_pat(&qpath), . TyKind::Infer(()) => (Pat::Str("_"), Pat::Str("_")), . TyKind::UnsafeBinder(binder_ty) => (Pat::Str("unsafe"), ty_search_pat(binder_ty.inner_ty).1), . TyKind::TraitObject(_, tagged_ptr) if let TraitObjectSyntax::Dyn = tagged_ptr.tag() => { . (Pat::Str("dyn"), Pat::Str("")) . }, . // NOTE: `TraitObject` is incomplete. It will always return true then. . _ => (Pat::Str(""), Pat::Str("")), . } 32 ( 0.00%) } . . fn ast_ty_search_pat(ty: &ast::Ty) -> (Pat, Pat) { . use ast::{Extern, FnRetTy, MutTy, Safety, TraitObjectSyntax, TyKind}; . . match &ty.kind { . TyKind::Slice(..) | TyKind::Array(..) => (Pat::Str("["), Pat::Str("]")), . TyKind::Ptr(MutTy { ty, .. }) => (Pat::Str("*"), ast_ty_search_pat(ty).1), . TyKind::Ref(_, MutTy { ty, .. }) | TyKind::PinnedRef(_, MutTy { ty, .. }) => { -- line 439 ---------------------------------------- -- 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>; 8,801 ( 0.00%) fn search_pat(&$self, $cx_ident: &Self::Context) -> (Pat, Pat) { 2 ( 0.00%) $fn($($args)*) 206 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::ty_search_pat (2x) 10,411 ( 0.00%) } . fn span(&self) -> Span { . self.span . } . } . }; . } 540 ( 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) { 1,141 ( 0.00%) fn_kind_pat(cx.tcx, self.0, self.1, self.2) 30,571 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::fn_kind_pat (163x) . } . . 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. 816 ( 0.00%) pub fn is_from_proc_macro<'cx, T: WithSearchPat<'cx>>(cx: &T::Context, item: &T) -> bool { 6,117 ( 0.00%) let (start_pat, end_pat) = item.search_pat(cx); 13,570 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:::search_pat (118x) 24,547 ( 0.00%) !span_matches_pat(cx.sess(), item.span(), start_pat, end_pat) 43,720 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::span_matches_pat (118x) 544 ( 0.00%) } . . /// Checks if the span actually refers to a match expression . pub fn is_span_match(cx: &impl LintContext, span: Span) -> bool { 2,860 ( 0.00%) span_matches_pat(cx.sess(), span, Pat::Str("match"), Pat::Str("}")) 80,498 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::span_matches_pat (220x) . } . . /// Checks if the span actually refers to an if expression . pub fn is_span_if(cx: &impl LintContext, span: Span) -> bool { 375 ( 0.00%) span_matches_pat(cx.sess(), span, Pat::Str("if"), Pat::Str("}")) 8,925 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::span_matches_pat (25x) . } 38,429 ( 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, . ) { 8,530 ( 0.00%) let safety = match kind { . intravisit::FnKind::ItemFn(_, _, header) => header.safety(), . intravisit::FnKind::Method(_, sig) => sig.header.safety(), . intravisit::FnKind::Closure => return, . }; . 11,823 ( 0.00%) check_raw_ptr(cx, safety, decl, body, def_id); 310,958 ( 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 (1,689x) . } . . pub(super) fn check_trait_item<'tcx>(cx: &LateContext<'tcx>, item: &'tcx hir::TraitItem<'_>) { 24 ( 0.00%) if let hir::TraitItemKind::Fn(ref sig, hir::TraitFn::Provided(eid)) = item.kind { 6 ( 0.00%) let body = cx.tcx.hir_body(eid); 156 ( 0.00%) => ???:::hir_body (3x) 24 ( 0.00%) check_raw_ptr(cx, sig.header.safety(), sig.decl, body, item.owner_id.def_id); 490 ( 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 (3x) . } . } . 8,460 ( 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, . ) { 11,834 ( 0.00%) if safety.is_safe() && cx.effective_visibilities.is_exported(def_id) { 95,070 ( 0.00%) => ???:::is_exported (1,690x) . let raw_ptrs = iter_input_pats(decl, body) . .filter_map(|arg| raw_ptr_arg(cx, arg)) . .collect::(); . 1,477 ( 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(()) . }); . } . } 10,152 ( 0.00%) } . . fn raw_ptr_arg(cx: &LateContext<'_>, arg: &hir::Param<'_>) -> Option { 6,172 ( 0.00%) if let (&hir::PatKind::Binding(_, id, _, _), Some(&ty::RawPtr(_, _))) = ( . &arg.pat.kind, 1,562 ( 0.00%) cx.typeck_results 3,110 ( 0.00%) .map(|typeck_results| typeck_results.pat_ty(arg.pat).kind()), 62,200 ( 0.00%) => ???:::pat_ty (1,555x) . ) { . Some(id) . } else { . None . } . } . . fn check_arg(cx: &LateContext<'_>, raw_ptrs: &HirIdSet, arg: &hir::Expr<'_>) { -- line 90 ---------------------------------------- 16,759 ( 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; . 38,024 ( 0.00%) pub(super) fn check(cx: &EarlyContext<'_>, pat: &Pat) { 9,506 ( 0.00%) if let PatKind::Struct(_, ref npat, ref pfields, _) = pat.kind { . let mut wilds = 0; 6 ( 0.00%) let type_name = npat . .segments . .last() . .expect("A path must have at least one segment") . .ident . .name; . 12 ( 0.00%) for field in pfields { 30 ( 0.00%) if let PatKind::Wild = field.pat.kind { . wilds += 1; . } . } 3 ( 0.00%) if !pfields.is_empty() && wilds == pfields.len() { . if !pat.span.in_external_macro(cx.sess().source_map()) { . #[expect(clippy::collapsible_span_lint_calls, reason = "rust-clippy#7797")] . span_lint_and_then( . cx, . UNNEEDED_FIELD_PATTERN, . pat.span, . "all the struct fields are matched to a wildcard pattern, consider using `..`", . |diag| { . diag.help(format!("try with `{type_name} {{ .. }}` instead")); . }, . ); . } . return; . } 6 ( 0.00%) if wilds > 0 { . for field in pfields { . if let PatKind::Wild = field.pat.kind . && !field.span.in_external_macro(cx.sess().source_map()) . { . wilds -= 1; . if wilds > 0 { . span_lint( . cx, -- line 47 ---------------------------------------- -- line 69 ---------------------------------------- . )); . }, . ); . } . } . } . } . } 38,024 ( 0.00%) } 3 ( 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}; . 244,746 ( 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)) 120 ( 0.00%) && let Some((lhs, rhs, _)) = find_assert_eq_args(cx, e, macro_call.expn) 60,537 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::find_assert_eq_args (24x) 24 ( 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); . } 217,552 ( 0.01%) } . . 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 { 3,618 ( 0.00%) matches!( 2,444 ( 0.00%) cx.tcx.get_diagnostic_name(def_id), 37,525 ( 0.00%) => ???:::get_diagnostic_name (611x) . 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,584 ( 0.00%) pub(crate) fn check<'tcx>( . cx: &LateContext<'tcx>, . expr: &'tcx Expr<'_>, . op: BinOpKind, . left: &'tcx Expr<'_>, . right: &'tcx Expr<'_>, . ) { 2,069 ( 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) . if is_inside_assert_eq(cx, expr) { . return; . } . . let ecx = ConstEvalCtxt::new(cx); . let ctxt = expr.span.ctxt(); -- line 73 ---------------------------------------- -- line 108 ---------------------------------------- . lhs - rhs, . if op == BinOpKind::Eq { '<' } else { '>' } . ), . Applicability::HasPlaceholders, // snippet . ); . } . }); . } 3,056 ( 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 164 ---------------------------------------- . // the method call) . { . return is_float(cx, self_arg); . } . false . } . . fn is_float(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool { 378 ( 0.00%) let value = &cx.typeck_results().expr_ty(expr).peel_refs().kind(); 960 ( 0.00%) => ???:::expr_ty (24x) . . if let ty::Array(arr_ty, _) = value { . return matches!(arr_ty.kind(), ty::Float(_)); . } . . matches!(value, ty::Float(_)) . } . -- line 180 ---------------------------------------- 588 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/precedence.rs -------------------------------------------------------------------------------- Ir -- line 42 ---------------------------------------- . pub PRECEDENCE_BITS, . restriction, . "operations mixing bit shifting with bit combining/masking" . } . . declare_lint_pass!(Precedence => [PRECEDENCE, PRECEDENCE_BITS]); . . impl EarlyLintPass for Precedence { 155,876 ( 0.00%) fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { 44,536 ( 0.00%) if expr.span.from_expansion() { . return; . } . 80,667 ( 0.00%) if let ExprKind::Binary(Spanned { node: op, .. }, ref left, ref right) = expr.kind { . let span_sugg = |lint: &'static Lint, expr: &Expr, sugg, appl| { . span_lint_and_sugg( . cx, . lint, . expr.span, . "operator precedence might not be obvious", . "consider parenthesizing your expression", . sugg, -- line 63 ---------------------------------------- -- line 106 ---------------------------------------- . op.as_str(), . snippet_with_applicability(cx, right.span, "..", &mut applicability) . ); . span_sugg(lint_for(&[op, side_op]), expr, sugg, applicability); . }, . _ => (), . } . } else if let ExprKind::MethodCall(method_call) = &expr.kind 9,712 ( 0.00%) && let ExprKind::Closure(closure) = &method_call.receiver.kind . { . span_lint_and_then(cx, PRECEDENCE, expr.span, "precedence might not be obvious", |diag| { . diag.multipart_suggestion( . "consider parenthesizing the closure", . vec![ . (closure.fn_decl_span.shrink_to_lo(), String::from("(")), . (closure.body.span.shrink_to_hi(), String::from(")")), . ], . Applicability::MachineApplicable, . ); . }); . } 178,144 ( 0.00%) } . } . . fn get_bin_opt(expr: &Expr) -> Option { . match expr.kind { . ExprKind::Binary(Spanned { node: op, .. }, _, _) => Some(op), . _ => None, . } . } . . #[must_use] . fn is_bit_op(op: BinOpKind) -> bool { 1,074 ( 0.00%) matches!(op, BitXor | BitAnd | BitOr | Shl | Shr) . } . . fn lint_for(ops: &[BinOpKind]) -> &'static Lint { . if ops.iter().all(|op| is_bit_op(*op)) { . PRECEDENCE_BITS . } else { . PRECEDENCE . } -- line 147 ---------------------------------------- -------------------------------------------------------------------------------- -- 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)] 217,552 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { . // Skip path expressions from deref calls. e.g. `Deref::deref(e)` 54,388 ( 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 54,388 ( 0.00%) if expr.span.from_expansion() { 19,152 ( 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 35,022 ( 0.00%) if let Some((state, data)) = self.state.take() { 134 ( 0.00%) self.report(cx, expr, state, data, typeck); . } . return; . }; 442 ( 0.00%) self.skip_expr = skip_expr; . 884 ( 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; . } . 884 ( 0.00%) match (self.state.take(), kind) { . (None, kind) => { 1,768 ( 0.00%) let expr_ty = typeck.expr_ty(expr); 17,692 ( 0.00%) => ???:::expr_ty (442x) 2,210 ( 0.00%) let use_site = get_expr_use_site(cx.tcx, typeck, SyntaxContext::root(), expr); 148,966 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_expr_use_site (442x) 2,734 ( 0.00%) let adjusted_ty = use_site.adjustments.last().map_or(expr_ty, |a| a.target); . 4,862 ( 0.00%) match kind { 142 ( 0.00%) RefOp::Deref if use_site.same_ctxt => { 71 ( 0.00%) let use_node = use_site.use_node(cx); 1,952 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:::use_node (71x) 213 ( 0.00%) let sub_ty = typeck.expr_ty(sub_expr); 2,840 ( 0.00%) => ???:::expr_ty (71x) 426 ( 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, . }, . )); 71 ( 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() 177 ( 0.00%) && let Some(ty) = use_node.defined_ty(cx) 5,835 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:::defined_ty (59x) 58 ( 0.00%) && TyCoercionStability::for_defined_ty(cx, ty, use_node.is_return()).is_deref_stable() 5,224 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/dereference.rs:::for_defined_ty (29x) . { . self.state = Some(( . State::ExplicitDeref { mutability: None }, . StateData { . first_expr: expr, . adjusted_ty, . }, . )); -- line 315 ---------------------------------------- -- line 328 ---------------------------------------- . mutbl, . }, . StateData { . first_expr: expr, . adjusted_ty, . }, . )); . }, 742 ( 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) => { 2,889 ( 0.00%) if !matches!(adjust.kind, Adjust::Deref(_)) { . break Some(adjust); 642 ( 0.00%) } else if !adjust.target.is_ref() { . deref_count += 1; . break iter.next(); . } . deref_count += 1; . }, . None => break None, . } . }; . 2,208 ( 0.00%) let use_node = use_site.use_node(cx); 13,584 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:::use_node (368x) 1,472 ( 0.00%) let stability = use_node.defined_ty(cx).map_or(TyCoercionStability::None, |ty| { 60,323 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:::defined_ty (368x) 578 ( 0.00%) TyCoercionStability::for_defined_ty(cx, ty, use_node.is_return()) 246,412 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/dereference.rs:::for_defined_ty (289x) . }); 4,846 ( 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 }) 1,763 ( 0.00%) } else if let Some(&Adjustment { . kind: Adjust::Borrow(AutoBorrow::Ref(mutability)), . .. 368 ( 0.00%) }) = next_adjust 1,992 ( 0.00%) && matches!(mutability, AutoBorrowMutability::Mut { .. }) . && !stability.is_reborrow_stable() . { . (3, deref_msg) . } else { . (2, deref_msg) . }; . 736 ( 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, . }, . )); 368 ( 0.00%) } else if stability.is_deref_stable() . // Auto-deref doesn't combine with other adjustments 1,904 ( 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(_))) . { 402 ( 0.00%) self.state = Some(( . State::Borrow { mutability }, . StateData { . first_expr: expr, . adjusted_ty, . }, . )); . } . }, -- line 521 ---------------------------------------- -- 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), . } 217,552 ( 0.01%) } . 46,571 ( 0.00%) fn check_pat(&mut self, cx: &LateContext<'tcx>, pat: &'tcx Pat<'_>) { 26,257 ( 0.00%) if let PatKind::Binding(BindingMode::REF, id, name, _) = pat.kind { . if let Some(opt_prev_pat) = self.ref_locals.get_mut(&id) { . // 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); -- line 661 ---------------------------------------- -- line 685 ---------------------------------------- . spans: vec![pat.span], . app, . replacements: vec![(pat.span, snip.into())], . hir_id: pat.hir_id, . }), . ); . } . } 53,224 ( 0.00%) } . 13,860 ( 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; . } 15,840 ( 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 9,106 ( 0.00%) if !self.in_deref_impl() && is_deref_or_derefmut_impl(cx, item) { 94 ( 0.00%) 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) { 47 ( 0.00%) self.outermost_deref_impl = None; . } . } . } . . fn is_deref_or_derefmut_impl(cx: &LateContext<'_>, item: &Item<'_>) -> bool { 12,768 ( 0.00%) if let hir::ItemKind::Impl(impl_) = item.kind . && let Some(of_trait) = impl_.of_trait 4,050 ( 0.00%) && let Some(trait_id) = of_trait.trait_ref.trait_def_id() 17,550 ( 0.00%) => ???:::trait_def_id (1,350x) . { 5,376 ( 0.00%) cx.tcx.lang_items().deref_trait() == Some(trait_id) || cx.tcx.lang_items().deref_mut_trait() == Some(trait_id) 80,280 ( 0.00%) => ???:::lang_items (2,676x) . } else { . false . } . } . . fn try_parse_ref_op<'tcx>( . tcx: TyCtxt<'tcx>, . typeck: &'tcx TypeckResults<'_>, . expr: &'tcx Expr<'_>, . ) -> Option<(RefOp, &'tcx Expr<'tcx>, Option)> { 111,987 ( 0.00%) let (call_path_id, def_id, arg) = match expr.kind { 18,566 ( 0.00%) ExprKind::MethodCall(_, arg, [], _) => (None, typeck.type_dependent_def_id(expr.hir_id)?, arg), 69,993 ( 0.00%) => ???:::type_dependent_def_id (1,371x) . ExprKind::Call( . &Expr { 884 ( 0.00%) kind: ExprKind::Path(QPath::Resolved(None, path)), 871 ( 0.00%) hir_id, . .. . }, 3,799 ( 0.00%) [arg], . ) => (Some(hir_id), path.res.opt_def_id()?, arg), 687 ( 0.00%) ExprKind::Unary(UnOp::Deref, sub_expr) if !typeck.expr_ty(sub_expr).is_raw_ptr() => { 3,080 ( 0.00%) => ???:::expr_ty (77x) . return Some((RefOp::Deref, sub_expr, None)); . }, . ExprKind::AddrOf(BorrowKind::Ref, mutability, sub_expr) => { 1,855 ( 0.00%) return Some((RefOp::AddrOf(mutability), sub_expr, None)); . }, . _ => return None, . }; 20,178 ( 0.00%) let mutbl = match tcx.get_diagnostic_name(def_id) { 124,778 ( 0.00%) => ???:::get_diagnostic_name (2,242x) . 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 { 765 ( 0.00%) matches!(self, Self::Deref) . } . . fn is_reborrow_stable(self) -> bool { . matches!(self, Self::Deref | Self::Reborrow) . } . 1,908 ( 0.00%) fn for_defined_ty<'tcx>(cx: &LateContext<'tcx>, ty: DefinedTy<'tcx>, for_return: bool) -> Self { 954 ( 0.00%) match ty { . DefinedTy::Hir(ty) => Self::for_hir_ty(ty), 918 ( 0.00%) DefinedTy::Mir { def_site_def_id, ty } => Self::for_mir_ty( . cx.tcx, . def_site_def_id, 954 ( 0.00%) cx.tcx.instantiate_bound_regions_with_erased(ty), 153,518 ( 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:: (318x) . for_return, . ), . } 2,226 ( 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 { 636 ( 0.00%) let ty::Ref(_, mut ty, _) = *ty.kind() else { . return Self::None; . }; . 564 ( 0.00%) if let Some(def_id) = def_site_def_id { 1,112 ( 0.00%) let typing_env = ty::TypingEnv::non_body_analysis(tcx, def_id); 23,598 ( 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:: (278x) . ty = tcx . .try_normalize_erasing_regions(typing_env, Unnormalized::new_wip(ty)) . .unwrap_or(ty); . } . loop { 1,410 ( 0.00%) break match *ty.kind() { . ty::Ref(_, ref_ty, _) => { . ty = ref_ty; . continue; . }, 75 ( 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 952 ---------------------------------------- . kind: ty::Opaque { .. }, . .. . }, . ) . | ty::Placeholder(_) . | ty::Dynamic(..) . | ty::Param(_) => Self::Reborrow, . ty::Adt(_, args) 300 ( 0.00%) if ty.has_placeholders() . || ty.has_opaque_types() 407 ( 0.00%) || (!for_return && args.has_non_region_param()) => . { . Self::Reborrow . }, . ty::Bool . | ty::Char . | ty::Int(_) . | ty::Uint(_) . | ty::Array(..) -- line 970 ---------------------------------------- -- 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) { 27,056 ( 0.00%) if let Some(outer_pat) = self.ref_locals.get_mut(&local) 81,168 ( 0.00%) => /rust/deps/indexmap-2.14.0/src/map.rs:>::get_mut:: (6,764x) . && 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)] 1,340 ( 0.00%) fn report( . &self, . cx: &LateContext<'tcx>, . expr: &'tcx Expr<'_>, . state: State, . data: StateData<'tcx>, . typeck: &'tcx TypeckResults<'tcx>, . ) { 1,072 ( 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 1293 ---------------------------------------- . snip.into_owned() . }; . diag.span_suggestion(data.first_expr.span, "try", sugg, app); . }, . ); . }, . State::Borrow { .. } | State::Reborrow { .. } => (), . } 1,072 ( 0.00%) } . } 62,463 ( 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) { 41,453 ( 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, . ); . } 4,750 ( 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 ---------------------------------------- 156 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/single_component_path_imports.rs -------------------------------------------------------------------------------- Ir -- line 49 ---------------------------------------- . name: Symbol, . span: Span, . item_id: NodeId, . can_suggest: bool, . } . . impl EarlyLintPass for SingleComponentPathImports { . fn check_crate(&mut self, cx: &EarlyContext<'_>, krate: &Crate) { 1 ( 0.00%) if cx.sess().opts.edition < Edition::Edition2018 { . return; . } . 1 ( 0.00%) self.check_mod(&krate.items); 32,596 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/single_component_path_imports.rs:::check_mod (1x) . } . 23,130 ( 0.00%) fn check_item(&mut self, cx: &EarlyContext<'_>, item: &Item) { 10,280 ( 0.00%) for SingleUse { span, can_suggest, .. } in self.found.remove(&item.id).into_iter().flatten() { . if can_suggest { . span_lint_and_sugg( . cx, . SINGLE_COMPONENT_PATH_IMPORTS, . span, . "this import is redundant", . "remove it entirely", . String::new(), -- line 73 ---------------------------------------- -- line 79 ---------------------------------------- . SINGLE_COMPONENT_PATH_IMPORTS, . span, . "this import is redundant", . None, . "remove this import", . ); . } . } 20,560 ( 0.00%) } . } . . #[derive(Default)] . struct ImportUsageVisitor { . // keep track of imports reused with `self` keyword, such as `self::std` in the example below. . // Removing the `use std;` would make this a compile error (#10549) . // ``` . // use std; -- line 95 ---------------------------------------- -- line 118 ---------------------------------------- . && path.segments[0].ident.name == kw::SelfLower . { . self.imports_referenced_with_self.push(path.segments[1].ident.name); . } . } . } . . impl SingleComponentPathImports { 496 ( 0.00%) fn check_mod(&mut self, items: &[Box]) { . // keep track of imports reused with `self` keyword, such as `self::crypto_hash` in the example . // below. Removing the `use crypto_hash;` would make this a compile error . // ``` . // use crypto_hash; . // . // use self::crypto_hash::{Algorithm, Hasher}; . // ``` . let mut imports_reused_with_self = Vec::new(); -- line 134 ---------------------------------------- -- line 142 ---------------------------------------- . // keep track of macros defined in the module as we don't want it to trigger on this (#7106) . // ``` . // macro_rules! foo { () => {} }; . // pub(crate) use foo; . // ``` . let mut macros = Vec::new(); . . for item in items { 1,274 ( 0.00%) self.track_uses(item, &mut imports_reused_with_self, &mut single_use_usages, &mut macros); . } . . // Only walk the module's AST in search of `self::xxx` paths when there are single . // component imports left to lint, as the visitor recurses into every nested item. . single_use_usages.retain(|usage| !imports_reused_with_self.contains(&usage.name)); . if single_use_usages.is_empty() { . return; . } -- line 158 ---------------------------------------- -- line 162 ---------------------------------------- . import_usage_visitor.visit_item(item); . } . . for usage in single_use_usages { . if !import_usage_visitor.imports_referenced_with_self.contains(&usage.name) { . self.found.entry(usage.item_id).or_default().push(usage); . } . } 496 ( 0.00%) } . . fn track_uses( . &mut self, . item: &Item, . imports_reused_with_self: &mut Vec, . single_use_usages: &mut Vec, . macros: &mut Vec, . ) { 5,838 ( 0.00%) if item.span.from_expansion() || item.vis.kind.is_pub() { . return; . } . 6,568 ( 0.00%) match &item.kind { . ItemKind::Mod(_, _, ModKind::Loaded(items, ..)) => { 122 ( 0.00%) self.check_mod(items); 31,200 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/single_component_path_imports.rs:::check_mod'2 (33x) . }, . ItemKind::MacroDef(ident, MacroDef { macro_rules: true, .. }) => { 34 ( 0.00%) macros.push(ident.name); . }, . ItemKind::Use(use_tree) => { . let segments = &use_tree.prefix.segments; . . // keep track of `use some_module;` usages 1,364 ( 0.00%) if segments.len() == 1 { 50 ( 0.00%) if let UseTreeKind::Simple(None) = use_tree.kind { . let name = segments[0].ident.name; . if !macros.contains(&name) { . single_use_usages.push(SingleUse { . name, . span: item.span, . item_id: item.id, . can_suggest: true, . }); -- line 203 ---------------------------------------- -- line 223 ---------------------------------------- . can_suggest: false, . }); . } . } . } . } . } . // keep track of `use self::some_module` usages 316 ( 0.00%) else if segments[0].ident.name == kw::SelfLower { . // simple case such as `use self::module::SomeStruct` . if segments.len() > 1 { . imports_reused_with_self.push(segments[1].ident.name); . return; . } . . // nested case such as `use self::{module1::Struct1, module2::Struct2}` . if let UseTreeKind::Nested { items, .. } = &use_tree.kind { -- line 239 ---------------------------------------- -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/utils/author.rs -------------------------------------------------------------------------------- Ir -- line 96 ---------------------------------------- . } else { . println!(" && {}", format_args!($($t)*)); . } . } . } . . impl<'tcx> LateLintPass<'tcx> for Author { . fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx hir::Item<'_>) { 6,384 ( 0.00%) check_item(cx, item.hir_id()); 424,221 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/utils/author.rs:clippy_lints::utils::author::check_item (3,192x) . } . . fn check_impl_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx hir::ImplItem<'_>) { 3,008 ( 0.00%) check_item(cx, item.hir_id()); 343,092 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/utils/author.rs:clippy_lints::utils::author::check_item (1,504x) . } . . fn check_trait_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx hir::TraitItem<'_>) { 44 ( 0.00%) check_item(cx, item.hir_id()); 3,387 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/utils/author.rs:clippy_lints::utils::author::check_item (22x) . } . 15,921 ( 0.00%) fn check_arm(&mut self, cx: &LateContext<'tcx>, arm: &'tcx hir::Arm<'_>) { 3,538 ( 0.00%) check_node(cx, arm.hir_id, |v| { . v.arm(&v.bind("arm", arm)); . }); 14,152 ( 0.00%) } . 244,746 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx hir::Expr<'_>) { 54,388 ( 0.00%) check_node(cx, expr.hir_id, |v| { . v.expr(&v.bind("expr", expr)); . }); 217,552 ( 0.01%) } . 18,495 ( 0.00%) fn check_stmt(&mut self, cx: &LateContext<'tcx>, stmt: &'tcx hir::Stmt<'_>) { 11,780 ( 0.00%) match stmt.kind { 5,298 ( 0.00%) StmtKind::Expr(e) | StmtKind::Semi(e) if has_attr(cx, e.hir_id) => return, . _ => {}, . } 4,110 ( 0.00%) check_node(cx, stmt.hir_id, |v| { . v.stmt(&v.bind("stmt", stmt)); . }); 16,440 ( 0.00%) } . } . 42,462 ( 0.00%) fn check_item(cx: &LateContext<'_>, hir_id: HirId) { 23,590 ( 0.00%) if let Some(body) = cx.tcx.hir_maybe_body_owned_by(hir_id.expect_owner().def_id) { 539,792 ( 0.01%) => ???:::hir_maybe_body_owned_by (4,718x) . check_node_with_body( . cx, . hir_id, 1,716 ( 0.00%) |v| { . v.expr(&v.bind("expr", body.value)); . }, . Some(body), . ); . } 37,744 ( 0.00%) } . . fn check_node(cx: &LateContext<'_>, hir_id: HirId, f: impl Fn(&PrintVisitor<'_, '_>)) { . check_node_with_body(cx, hir_id, f, None); . } . . /// Check the node at `hir_id`, in the context of `body` or the default from `cx` if none is given. . fn check_node_with_body( . cx: &LateContext<'_>, . hir_id: HirId, . f: impl Fn(&PrintVisitor<'_, '_>), . body: Option<&Body<'_>>, . ) { 30,883 ( 0.00%) if has_attr(cx, hir_id) { . let typeck_results = body.map_or_else(|| cx.typeck_results(), |body| cx.tcx.typeck_body(body.id())); . f(&PrintVisitor::new(cx, typeck_results)); . println!("{{"); . println!(" // report your lint here"); . println!("}}"); . } . } . -- line 170 ---------------------------------------- -- line 875 ---------------------------------------- . kind!("Semi({e})"); . self.expr(e); . }, . } . } . } . . fn has_attr(cx: &LateContext<'_>, hir_id: HirId) -> bool { 42,585 ( 0.00%) let attrs = cx.tcx.hir_attrs(hir_id); 118,871 ( 0.00%) => ???:::hir_attrs (1,769x) 3,843 ( 0.00%) get_builtin_attr(attrs, sym::author).count() > 0 . } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/write/mod.rs -------------------------------------------------------------------------------- Ir -- line 251 ---------------------------------------- . format_args: FormatArgsStorage, . // The outermost `impl Debug` we're currently in. While we're in one, `USE_DEBUG` is deactivated . outermost_debug_impl: Option, . allow_print_in_tests: bool, . } . . impl Write { . pub fn new(conf: &'static Conf, format_args: FormatArgsStorage) -> Self { 3 ( 0.00%) Self { . format_args, . outermost_debug_impl: None, . allow_print_in_tests: conf.allow_print_in_tests, . } . } . . fn in_debug_impl(&self) -> bool { . self.outermost_debug_impl.is_some() . } . } . . impl<'tcx> LateLintPass<'tcx> for Write { . fn check_item(&mut self, cx: &LateContext<'_>, item: &Item<'_>) { . // Only check for `impl Debug`s if we're not already in one 10,434 ( 0.00%) if self.outermost_debug_impl.is_none() && is_debug_impl(cx, item) { 8 ( 0.00%) self.outermost_debug_impl = Some(item.owner_id); . } . } . . fn check_item_post(&mut self, _cx: &LateContext<'_>, item: &Item<'_>) { . // Only clear `self.outermost_debug_impl` if we're escaping the _outermost_ debug impl . if self.outermost_debug_impl == Some(item.owner_id) { 4 ( 0.00%) self.outermost_debug_impl = None; . } . } . 271,940 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 2,196 ( 0.00%) let Some(macro_call) = root_macro_call_first_node(cx, expr) else { . return; . }; 2,562 ( 0.00%) let Some(diag_name) = cx.tcx.get_diagnostic_name(macro_call.def_id) else { 19,185 ( 0.00%) => ???:::get_diagnostic_name (366x) . return; . }; 198 ( 0.00%) let Some(name) = diag_name.as_str().strip_suffix("_macro") else { . return; . }; . . let is_build_script = cx . .sess() . .opts . .crate_name . .as_ref() . .is_some_and(|crate_name| crate_name == "build_script_build"); . 198 ( 0.00%) let allowed_in_tests = self.allow_print_in_tests && is_in_test(cx.tcx, expr.hir_id); . match diag_name { 957 ( 0.00%) sym::print_macro | sym::println_macro if !allowed_in_tests => { . if !is_build_script { . span_lint(cx, PRINT_STDOUT, macro_call.span, format!("use of `{name}!`")); . } . }, . sym::eprint_macro | sym::eprintln_macro if !allowed_in_tests => { . span_lint(cx, PRINT_STDERR, macro_call.span, format!("use of `{name}!`")); . }, . sym::write_macro | sym::writeln_macro => {}, . _ => return, . } . 8 ( 0.00%) if let Some(format_args) = self.format_args.get(cx, expr, macro_call.expn) { 1,246 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:::get (1x) . // ignore `writeln!(w)` and `write!(v, some_macro!())` 2 ( 0.00%) if format_args.span.from_expansion() { . return; . } . . match diag_name { 4 ( 0.00%) sym::print_macro | sym::eprint_macro | sym::write_macro => { 7 ( 0.00%) with_newline::check(cx, format_args, ¯o_call, name); 25 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/write/with_newline.rs:clippy_lints::write::with_newline::check (1x) . }, . sym::println_macro | sym::eprintln_macro | sym::writeln_macro => { . empty_string::check(cx, format_args, ¯o_call, name); . }, . _ => {}, . } . 5 ( 0.00%) literal::check(cx, format_args, name); 324 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/write/literal.rs:clippy_lints::write::literal::check (1x) . 1 ( 0.00%) if !self.in_debug_impl() { 4 ( 0.00%) use_debug::check(cx, format_args); 34 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/write/use_debug.rs:clippy_lints::write::use_debug::check (1x) . } . } 217,552 ( 0.01%) } . } . . fn is_debug_impl(cx: &LateContext<'_>, item: &Item<'_>) -> bool { 19,152 ( 0.00%) if let ItemKind::Impl(Impl { . of_trait: Some(of_trait), . .. . }) = &item.kind 4,050 ( 0.00%) && let Some(trait_id) = of_trait.trait_ref.trait_def_id() 17,550 ( 0.00%) => ???:::trait_def_id (1,350x) . { 5,400 ( 0.00%) cx.tcx.is_diagnostic_item(sym::Debug, trait_id) 90,370 ( 0.00%) => ???:::is_diagnostic_item (1,350x) . } else { . false . } . } 1,450 ( 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 { 13,808 ( 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 { 82,426 ( 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),* $(,)?) => {{ 489 ( 0.00%) $(try_visit!(Visitable::visit($expr, $visitor, ()));)* 190 ( 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 (5x) . }}; . } . . 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, ) => { 64,166 ( 0.00%) Walkable::walk_ref($expr, $visitor) 6,023 ( 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'2 (116x) . }; . } . . 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 { 149,989 ( 0.00%) fn walk_ref(&$lt $self, $vis: &mut $vis_ty) -> V::Result { . $block 127,888 ( 0.00%) } . } . }; . } . . macro_rules! impl_visitable_noop { . (<$lt:lifetime> $($ty:ty,)*) => { . $( . impl_visitable!(|&$lt self: $ty, _vis: &mut V, _extra: ()| { -- line 250 ---------------------------------------- -- line 273 ---------------------------------------- . })* . }; . } . . macro_rules! impl_visitable_direct { . (<$lt:lifetime> $($ty:ty,)*) => { . $(impl_visitable!( . |&$lt self: $ty, visitor: &mut V, _extra: ()| { 18 ( 0.00%) Walkable::walk_ref(self, visitor) . } . );)* . }; . } . . 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; 6,459 ( 0.00%) visitor.$method(self $(, $extra_name)?) 237,251 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/non_expressive_names.rs:::visit_pat'2 (700x) . }); . 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 { 85 ( 0.00%) walk_fn(self, fk) 12,812 ( 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:: (4x) . } . . // (non-mut) `Visitor`-only methods . $( . fn visit_stmt(&mut self, s: &$lt Stmt) -> Self::Result { 10,383 ( 0.00%) walk_stmt(self, s) 756,980 ( 0.02%) => /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::'2 (896x) . } . . 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 738 ---------------------------------------- . fn flat_map_where_predicate( . &mut self, . where_predicate: WherePredicate, . ) -> SmallVec<[WherePredicate; 1]> { . walk_flat_map_where_predicate(self, where_predicate) . } . . fn flat_map_pat_field(&mut self, fp: PatField) -> SmallVec<[PatField; 1]> { 24 ( 0.00%) walk_flat_map_pat_field(self, fp) 492 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_ast/src/mut_visit.rs:rustc_ast::mut_visit::walk_flat_map_pat_field:: (6x) . } . )? . } . . pub trait WalkItemKind { . type Ctxt; . fn walk<$($lt,)? V: $Visitor$(<$lt>)?>( . &$($lt)? $($mut)? self, -- line 754 ---------------------------------------- -- line 922 ---------------------------------------- . visit_visitable!($($mut)? vis, alias), . ForeignItemKind::MacCall(mac) => . visit_visitable!($($mut)? vis, mac), . } . V::Result::output() . } . } . 680 ( 0.00%) pub fn walk_fn<$($lt,)? V: $Visitor$(<$lt>)?>(vis: &mut V, kind: FnKind<$($lt)? $(${ignore($mut)} '_)?>) -> V::Result { 255 ( 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 . ); . } 85 ( 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; 2,674 ( 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); 102,955 ( 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), 30 ( 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 { 85 ( 0.00%) binder, . capture_clause, 85 ( 0.00%) coroutine_kind, . constness, . movability, 85 ( 0.00%) fn_decl, 85 ( 0.00%) body, . fn_decl_span, . fn_arg_span, . }) => { . visit_visitable!($($mut)? vis, constness, movability, capture_clause); 340 ( 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); 85 ( 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), . ExprKind::Assign(lhs, rhs, span) => . visit_visitable!($($mut)? vis, lhs, rhs, span), . ExprKind::AssignOp(op, lhs, rhs) => . visit_visitable!($($mut)? vis, op, lhs, rhs), 3 ( 0.00%) ExprKind::Field(subexpression, ident) => 3 ( 0.00%) visit_visitable!($($mut)? vis, subexpression, ident), . ExprKind::Index(main_expression, index_expression, span) => . visit_visitable!($($mut)? vis, main_expression, index_expression, span), . ExprKind::Range(start, end, limit) => . visit_visitable!($($mut)? vis, start, end, limit), . ExprKind::Underscore => {} . ExprKind::Path(maybe_qself, path) => . visit_visitable!($($mut)? vis, maybe_qself, path), . ExprKind::Break(opt_label, opt_expr) => -- line 1045 ---------------------------------------- -- line 1161 ---------------------------------------- . . fn $name<'a, V: Visitor<'a>>( . vis: &mut V, . values: &'a ThinVec<$Ty>, . $( . $param: $ParamTy, . )* . ) -> V::Result { 6,135 ( 0.00%) walk_list!(vis, $visit_fn, values$(,$param)*); 358,635 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/non_expressive_names.rs:::visit_arm (481x) . 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; . } . 32,056 ( 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)); 20,035 ( 0.00%) match kind { 6,500 ( 0.00%) StmtKind::Let(local) => try_visit!(visitor.visit_local(local)), 426,051 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/non_expressive_names.rs:::visit_local (357x) . StmtKind::Item(item) => try_visit!(visitor.visit_item(item)), 3,332 ( 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() 200 ( 0.00%) } 60,981 ( 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. 306 ( 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,153 ( 0.00%) let mut residual = None; . let shunt = GenericShunt { iter, residual: &mut residual }; . let value = f(shunt); 8,306 ( 0.00%) match residual { . Some(r) => FromResidual::from_residual(r), 12,304 ( 0.00%) None => Try::from_output(value), . } 357 ( 0.00%) } . . impl Iterator for GenericShunt<'_, I, R> . where . I: Iterator>, . { . type Item = ::Output; . 79,174 ( 0.00%) fn next(&mut self) -> Option { . self.try_for_each(ControlFlow::Break).break_value() 71,262 ( 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 12 ( 0.00%) .try_fold(init, |acc, x| match Try::branch(x) { . ControlFlow::Continue(x) => ControlFlow::from_try(f(acc, x)), . ControlFlow::Break(r) => { 59 ( 0.00%) *self.residual = Some(r); . ControlFlow::Break(try { acc }) 6 ( 0.00%) } . }) . .into_try() . } . . impl_fold_via_try_fold! { fold -> try_fold } . } . . #[unstable(issue = "none", feature = "inplace_iteration")] -- line 208 ---------------------------------------- 57 ( 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/num/uint_macros.rs -------------------------------------------------------------------------------- Ir -- line 146 ---------------------------------------- . /// ``` . #[doc = concat!("[`ilog2`]: ", stringify!($SelfT), "::ilog2")] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_stable(feature = "const_math", since = "1.32.0")] . #[must_use = "this returns the result of the operation, \ . without modifying the original"] . #[inline(always)] . pub const fn leading_zeros(self) -> u32 { 4,588 ( 0.00%) return intrinsics::ctlz(self as $ActualT); . } . . /// Returns the number of trailing zeros in the binary representation . /// of `self`. . /// . /// # Examples . /// . /// ``` -- line 162 ---------------------------------------- -- line 170 ---------------------------------------- . #[doc = concat!("assert_eq!(max.trailing_zeros(), 0);")] . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_stable(feature = "const_math", since = "1.32.0")] . #[must_use = "this returns the result of the operation, \ . without modifying the original"] . #[inline(always)] . pub const fn trailing_zeros(self) -> u32 { 3,040 ( 0.00%) return intrinsics::cttz(self); . } . . /// Returns the number of leading ones in the binary representation of `self`. . /// . /// # Examples . /// . /// ``` . #[doc = concat!("let n = !(", stringify!($SelfT), "::MAX >> 2);")] -- line 186 ---------------------------------------- -- line 890 ---------------------------------------- . pub const fn checked_add(self, rhs: Self) -> Option { . // This used to use `overflowing_add`, but that means it ends up being . // a `wrapping_add`, losing some optimization opportunities. Notably, . // phrasing it this way helps `.checked_add(1)` optimize to a check . // against `MAX` and a `add nuw`. . // Per , . // LLVM is happy to re-form the intrinsic later if useful. . 17,983 ( 0.00%) if intrinsics::unlikely(intrinsics::add_with_overflow(self, rhs).1) { . None . } else { . // SAFETY: Just checked it doesn't overflow . Some(unsafe { intrinsics::unchecked_add(self, rhs) }) . } . } . . /// Strict integer addition. Computes `self + rhs`, panicking -- line 906 ---------------------------------------- -- line 965 ---------------------------------------- . ( . lhs: $SelfT = self, . rhs: $SelfT = rhs, . ) => !lhs.overflowing_add(rhs).1, . ); . . // SAFETY: this is guaranteed to be safe by the caller. . unsafe { 13,814 ( 0.00%) intrinsics::unchecked_add(self, rhs) . } . } . . /// Checked addition with a signed integer. Computes `self + rhs`, . /// returning `None` if overflow occurred. . /// . /// # Examples . /// -- line 981 ---------------------------------------- -- line 1044 ---------------------------------------- . without modifying the original"] . #[inline] . pub const fn checked_sub(self, rhs: Self) -> Option { . // Per PR#103299, there's no advantage to the `overflowing` intrinsic . // for *unsigned* subtraction and we just emit the manual check anyway. . // Thus, rather than using `overflowing_sub` that produces a wrapping . // subtraction, check it ourself so we can use an unchecked one. . 22,078 ( 0.00%) if self < rhs { . None . } else { . // SAFETY: just checked this can't overflow 12,283 ( 0.00%) Some(unsafe { intrinsics::unchecked_sub(self, rhs) }) . } . } . . /// Strict integer subtraction. Computes `self - rhs`, panicking if . /// overflow occurred. . /// . /// # Panics . /// -- line 1064 ---------------------------------------- -- line 1144 ---------------------------------------- . ( . lhs: $SelfT = self, . rhs: $SelfT = rhs, . ) => !lhs.overflowing_sub(rhs).1, . ); . . // SAFETY: this is guaranteed to be safe by the caller. . unsafe { 4 ( 0.00%) intrinsics::unchecked_sub(self, rhs) . } . } . . /// Checked subtraction with a signed integer. Computes `self - rhs`, . /// returning `None` if overflow occurred. . /// . /// # Examples . /// -- line 1160 ---------------------------------------- -- line 1353 ---------------------------------------- . ( . lhs: $SelfT = self, . rhs: $SelfT = rhs, . ) => !lhs.overflowing_mul(rhs).1, . ); . . // SAFETY: this is guaranteed to be safe by the caller. . unsafe { 46,090 ( 0.00%) intrinsics::unchecked_mul(self, rhs) . } . } . . /// Checked integer division. Computes `self / rhs`, returning `None` . /// if `rhs == 0`. . /// . /// # Examples . /// -- line 1369 ---------------------------------------- -- line 2448 ---------------------------------------- . #[doc = concat!("assert_eq!(", stringify!($SelfT), "::MAX.saturating_add(127), ", stringify!($SelfT), "::MAX);")] . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . #[must_use = "this returns the result of the operation, \ . without modifying the original"] . #[rustc_const_stable(feature = "const_saturating_int_methods", since = "1.47.0")] . #[inline(always)] . pub const fn saturating_add(self, rhs: Self) -> Self { 3,651 ( 0.00%) intrinsics::saturating_add(self, rhs) . } . . /// Saturating addition with a signed integer. Computes `self + rhs`, . /// saturating at the numeric bounds instead of overflowing. . /// . /// # Examples . /// . /// ``` -- line 2464 ---------------------------------------- -- line 2492 ---------------------------------------- . #[doc = concat!("assert_eq!(13", stringify!($SelfT), ".saturating_sub(127), 0);")] . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . #[must_use = "this returns the result of the operation, \ . without modifying the original"] . #[rustc_const_stable(feature = "const_saturating_int_methods", since = "1.47.0")] . #[inline(always)] . pub const fn saturating_sub(self, rhs: Self) -> Self { 13,400 ( 0.00%) intrinsics::saturating_sub(self, rhs) . } . . /// Saturating integer subtraction. Computes `self` - `rhs`, saturating at . /// the numeric bounds instead of overflowing. . /// . /// # Examples . /// . /// ``` -- line 2508 ---------------------------------------- -- line 2604 ---------------------------------------- . #[doc = concat!("assert_eq!(200", stringify!($SelfT), ".wrapping_add(", stringify!($SelfT), "::MAX), 199);")] . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_stable(feature = "const_wrapping_math", since = "1.32.0")] . #[must_use = "this returns the result of the operation, \ . without modifying the original"] . #[inline(always)] . pub const fn wrapping_add(self, rhs: Self) -> Self { 42,704 ( 0.00%) intrinsics::wrapping_add(self, rhs) . } . . /// Wrapping (modular) addition with a signed integer. Computes . /// `self + rhs`, wrapping around at the boundary of the type. . /// . /// # Examples . /// . /// ``` -- line 2620 ---------------------------------------- -- line 2641 ---------------------------------------- . #[doc = concat!("assert_eq!(100", stringify!($SelfT), ".wrapping_sub(", stringify!($SelfT), "::MAX), 101);")] . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_stable(feature = "const_wrapping_math", since = "1.32.0")] . #[must_use = "this returns the result of the operation, \ . without modifying the original"] . #[inline(always)] . pub const fn wrapping_sub(self, rhs: Self) -> Self { 17,451 ( 0.00%) intrinsics::wrapping_sub(self, rhs) . } . . /// Wrapping (modular) subtraction with a signed integer. Computes . /// `self - rhs`, wrapping around at the boundary of the type. . /// . /// # Examples . /// . /// ``` -- line 2657 ---------------------------------------- -- line 2680 ---------------------------------------- . /// assert_eq!(25u8.wrapping_mul(12), 44); . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_stable(feature = "const_wrapping_math", since = "1.32.0")] . #[must_use = "this returns the result of the operation, \ . without modifying the original"] . #[inline(always)] . pub const fn wrapping_mul(self, rhs: Self) -> Self { 73,877 ( 0.00%) intrinsics::wrapping_mul(self, rhs) . } . . /// Wrapping (modular) division. Computes `self / rhs`. . /// . /// Wrapped division on unsigned types is just normal division. There's . /// no way wrapping could ever happen. This function exists so that all . /// operations are accounted for in the wrapping operations. . /// -- line 2696 ---------------------------------------- -- line 2942 ---------------------------------------- . #[doc = concat!("assert_eq!(", stringify!($SelfT), "::MAX.overflowing_add(1), (0, true));")] . /// ``` . #[stable(feature = "wrapping", since = "1.7.0")] . #[rustc_const_stable(feature = "const_wrapping_math", since = "1.32.0")] . #[must_use = "this returns the result of the operation, \ . without modifying the original"] . #[inline(always)] . pub const fn overflowing_add(self, rhs: Self) -> (Self, bool) { 29 ( 0.00%) let (a, b) = intrinsics::add_with_overflow(self as $ActualT, rhs as $ActualT); . (a as Self, b) . } . . /// Calculates `self` + `rhs` + `carry` and returns a tuple containing . /// the sum and the output carry (in that order). . /// . /// Performs "ternary addition" of two integer operands and a carry-in . /// bit, and returns an output integer and a carry-out bit. This allows -- line 2958 ---------------------------------------- -- line 3164 ---------------------------------------- . /// assert_eq!(1_000_000_000u32.overflowing_mul(10), (1410065408, true)); . /// ``` . #[stable(feature = "wrapping", since = "1.7.0")] . #[rustc_const_stable(feature = "const_wrapping_math", since = "1.32.0")] . #[must_use = "this returns the result of the operation, \ . without modifying the original"] . #[inline(always)] . pub const fn overflowing_mul(self, rhs: Self) -> (Self, bool) { 94,883 ( 0.00%) let (a, b) = intrinsics::mul_with_overflow(self as $ActualT, rhs as $ActualT); . (a as Self, b) . } . . /// Calculates the "full multiplication" `self * rhs + carry` . /// without the possibility to overflow. . /// . /// This returns the low-order (wrapping) bits and the high-order (overflow) bits . /// of the result as two separate values, in that order. -- line 3180 ---------------------------------------- -- line 3858 ---------------------------------------- . // 8u8.one_less_than_next_power_of_two() == 7 . // 6u8.one_less_than_next_power_of_two() == 7 . // . // This method cannot overflow, as in the `next_power_of_two` . // overflow cases it instead ends up returning the maximum value . // of the type, and can return 0 for 0. . #[inline] . const fn one_less_than_next_power_of_two(self) -> Self { 72 ( 0.00%) if self <= 1 { return 0; } . 42 ( 0.00%) let p = self - 1; . // SAFETY: Because `p > 0`, it cannot consist entirely of leading zeros. . // That means the shift is always in-bounds, and some processors . // (such as intel pre-haswell) have more efficient ctlz . // intrinsics when the argument is non-zero. 21 ( 0.00%) let z = unsafe { intrinsics::ctlz_nonzero(p) }; 42 ( 0.00%) <$SelfT>::MAX >> z . } . . /// Returns the smallest power of two greater than or equal to `self`. . /// . /// When return value overflows (i.e., `self > (1 << (N-1))` for type . /// `uN`), it panics in debug mode and the return value is wrapped to 0 in . /// release mode (the only situation in which this method can return 0). . /// -- line 3882 ---------------------------------------- -- line 3889 ---------------------------------------- . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_const_stable(feature = "const_int_pow", since = "1.50.0")] . #[must_use = "this returns the result of the operation, \ . without modifying the original"] . #[inline] . #[rustc_inherit_overflow_checks] . pub const fn next_power_of_two(self) -> Self { 4 ( 0.00%) self.one_less_than_next_power_of_two() + 1 . } . . /// Returns the smallest power of two greater than or equal to `self`. If . /// the next power of two is greater than the type's maximum value, . /// `None` is returned, otherwise the power of two is wrapped in `Some`. . /// . /// # Examples . /// -- line 3905 ---------------------------------------- -- line 4010 ---------------------------------------- . without modifying the original"] . #[allow(unnecessary_transmutes)] . // SAFETY: const sound because integers are plain old datatypes so we can always . // transmute them to arrays of bytes . #[inline] . pub const fn to_ne_bytes(self) -> [u8; size_of::()] { . // SAFETY: integers are plain old datatypes so we can always transmute them to . // arrays of bytes 32 ( 0.00%) unsafe { mem::transmute(self) } . } . . /// Creates a native endian integer value from its representation . /// as a byte array in big endian. . /// . #[doc = $from_xe_bytes_doc] . /// . /// # Examples -- line 4026 ---------------------------------------- 80,595 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/format_args.rs -------------------------------------------------------------------------------- Ir -- line 321 ---------------------------------------- . ty_msrv_map: FxHashMap, Option>, . has_derived_debug: FxHashMap, bool>, . has_pointer_format: FxHashMap, bool>, . } . . impl<'tcx> FormatArgs<'tcx> { . pub fn new(tcx: TyCtxt<'tcx>, conf: &'static Conf, format_args: FormatArgsStorage) -> Self { . let ty_msrv_map = make_ty_msrv_map(tcx); 13 ( 0.00%) Self { . format_args, . msrv: conf.msrv.into(), 1 ( 0.00%) ignore_mixed: conf.allow_mixed_uninlined_format_args, . ty_msrv_map, . has_derived_debug: FxHashMap::default(), . has_pointer_format: FxHashMap::default(), . } . } . } . . impl<'tcx> LateLintPass<'tcx> for FormatArgs<'tcx> { 271,940 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 2,196 ( 0.00%) if let Some(macro_call) = root_macro_call_first_node(cx, expr) 2,196 ( 0.00%) && is_format_macro(cx, macro_call.def_id) 167,365 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::is_format_macro (366x) 592 ( 0.00%) && let Some(format_args) = self.format_args.get(cx, expr, macro_call.expn) 457,328 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:::get (74x) . { 460 ( 0.00%) let mut linter = FormatArgsExpr { . cx, . expr, . macro_call: ¯o_call, . format_args, 46 ( 0.00%) ignore_mixed: self.ignore_mixed, . msrv: &self.msrv, 46 ( 0.00%) ty_msrv_map: &self.ty_msrv_map, 46 ( 0.00%) has_derived_debug: &mut self.has_derived_debug, 46 ( 0.00%) has_pointer_format: &mut self.has_pointer_format, . }; . . linter.check_trailing_comma(); . linter.check_templates(); . 276 ( 0.00%) if self.msrv.meets(cx, msrvs::FORMAT_ARGS_CAPTURE) { 1,242 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/msrvs.rs:::meets (46x) . linter.check_uninlined_args(); . } . } 217,552 ( 0.01%) } . } . . struct FormatArgsExpr<'a, 'tcx> { . cx: &'a LateContext<'tcx>, . expr: &'tcx Expr<'tcx>, . macro_call: &'a MacroCall, . format_args: &'a rustc_ast::FormatArgs, . ignore_mixed: bool, -- line 373 ---------------------------------------- -- line 375 ---------------------------------------- . ty_msrv_map: &'a FxHashMap, Option>, . has_derived_debug: &'a mut FxHashMap, bool>, . has_pointer_format: &'a mut FxHashMap, bool>, . } . . impl<'tcx> FormatArgsExpr<'_, 'tcx> { . /// Check if there is a comma after the last format macro arg. . fn check_trailing_comma(&self) { 46 ( 0.00%) let span = self.macro_call.span; 322 ( 0.00%) if let Some(src) = span.get_text(self.cx) 46 ( 0.00%) && let Some(src) = src.strip_suffix([')', ']', '}']) 1,150 ( 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 (46x) . && let src = src.trim_end_matches(|c: char| c.is_whitespace() && c != '\n') . && let Some(src) = src.strip_suffix(',') . && let src = src.trim_end_matches(|c: char| c.is_whitespace() && c != '\n') . && !src.ends_with('\n') . { . span_lint_and_sugg( . self.cx, . UNNECESSARY_TRAILING_COMMA, -- line 393 ---------------------------------------- -- line 397 ---------------------------------------- . "remove the trailing comma", . String::new(), . Applicability::MachineApplicable, . ); . } . } . . fn check_templates(&mut self) { 46 ( 0.00%) for piece in &self.format_args.template { 194 ( 0.00%) if let FormatArgsPiece::Placeholder(placeholder) = piece 30 ( 0.00%) && let Ok(index) = placeholder.argument.index 30 ( 0.00%) && let Some(arg) = self.format_args.arguments.all_args().get(index) 120 ( 0.00%) && let Some(arg_expr) = find_format_arg_expr(self.expr, arg) 17,322 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::find_format_arg_expr (30x) . { 30 ( 0.00%) self.check_unused_format_specifier(placeholder, arg_expr); 30 ( 0.00%) self.check_useless_format_width(placeholder); 120 ( 0.00%) self.check_useless_borrows_in_formatting(placeholder, arg_expr); 25,424 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/format_args.rs:::check_useless_borrows_in_formatting (30x) . . // Check width and precision arguments the same way as the value . for opt in [&placeholder.format_options.width, &placeholder.format_options.precision] { . if let Some(FormatCount::Argument(position)) = opt.as_ref() . && let Ok(pos_index) = position.index . && let Some(pos_arg) = self.format_args.arguments.all_args().get(pos_index) . && let Some(pos_arg_expr) = find_format_arg_expr(self.expr, pos_arg) . { . self.check_useless_borrows_in_formatting(placeholder, pos_arg_expr); . } . } . 8 ( 0.00%) if placeholder.format_trait == Display 135 ( 0.00%) && placeholder.format_options == FormatOptions::default() 1,215 ( 0.00%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_ast/src/format.rs:::eq (27x) 27 ( 0.00%) && !self.is_aliased(index) . { 135 ( 0.00%) let name = self.cx.tcx.item_name(self.macro_call.def_id); 108 ( 0.00%) self.check_format_in_format_args(name, arg_expr); 54 ( 0.00%) self.check_to_string_in_format_args(name, arg_expr); . } . . if placeholder.format_trait == Debug { 10 ( 0.00%) let name = self.cx.tcx.item_name(self.macro_call.def_id); . self.check_unnecessary_debug_formatting(name, arg_expr); 6 ( 0.00%) if let Some(span) = placeholder.span 16 ( 0.00%) && self.has_pointer_debug(self.cx.typeck_results().expr_ty(arg_expr), 0) 1,106 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/format_args.rs:::has_pointer_debug (2x) 80 ( 0.00%) => ???:::expr_ty (2x) . { . span_lint(self.cx, POINTER_FORMAT, span, "pointer formatting detected"); . } . } . . if placeholder.format_trait == Pointer . && let Some(span) = placeholder.span . { . span_lint(self.cx, POINTER_FORMAT, span, "pointer formatting detected"); . } . } . } . } . 330 ( 0.00%) fn check_useless_borrows_in_formatting(&self, placeholder: &FormatPlaceholder, arg_expr: &Expr<'tcx>) { . // Updated while peeling: 30 ( 0.00%) let mut only_mutable = true; 30 ( 0.00%) let mut has_mutable = false; . 60 ( 0.00%) if !arg_expr.span.from_expansion() 60 ( 0.00%) && !is_from_proc_macro(self.cx, arg_expr) 185 ( 0.00%) && let Some(fmt_trait) = match placeholder.format_trait { . Display => self.cx.tcx.get_diagnostic_item(sym::Display), . Debug => self.cx.tcx.get_diagnostic_item(sym::Debug), . _ => None, . } 174 ( 0.00%) && let Some(sized_trait) = self.cx.tcx.lang_items().sized_trait() 870 ( 0.00%) => ???:::lang_items (29x) 290 ( 0.00%) && let peeled_expr = peel_hir_expr_while(arg_expr, |e| { 551 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::peel_hir_expr_while::<::check_useless_borrows_in_formatting::{closure#0}> (29x) . // Need to handle `&&&T` to `&T` when a single ref is still required 58 ( 0.00%) if let ExprKind::AddrOf(BorrowKind::Ref, m, e) = e.kind . && let ty = self.cx.typeck_results().expr_ty(e) . && implements_trait(self.cx, ty, sized_trait, &[]) . && implements_trait(self.cx, ty, fmt_trait, &[]) . { . only_mutable = only_mutable && m == Mutability::Mut; . has_mutable = has_mutable || m == Mutability::Mut; . Some(e) . } else { . None . } . }) 29 ( 0.00%) && !std::ptr::eq(arg_expr, peeled_expr) . && let Some(peeled_snippet) = snippet_opt(self.cx, peeled_expr.span) . { . let name = self.cx.tcx.item_name(self.macro_call.def_id); . let message = if only_mutable { . "remove the redundant `&mut`" . } else if has_mutable { . "remove the redundant `&`/`&mut`" . } else { -- line 489 ---------------------------------------- -- line 494 ---------------------------------------- . USELESS_BORROWS_IN_FORMATTING, . arg_expr.span, . format!("redundant reference in `{name}!` argument"), . message, . peeled_snippet, . Applicability::MachineApplicable, . ); . } 240 ( 0.00%) } . . fn check_unused_format_specifier(&self, placeholder: &FormatPlaceholder, arg: &Expr<'_>) { . let options = &placeholder.format_options; . 90 ( 0.00%) if let Some(placeholder_span) = placeholder.span 60 ( 0.00%) && *options != FormatOptions::default() . && let ty = self.cx.typeck_results().expr_ty(arg).peel_refs() . && ty.is_lang_item(self.cx, LangItem::FormatArguments) . { . span_lint_and_then( . self.cx, . UNUSED_FORMAT_SPECS, . placeholder_span, . "format specifiers have no effect on `format_args!()`", -- line 516 ---------------------------------------- -- line 549 ---------------------------------------- . }, . ); . } . } . . /// Lint when format width has no effect on the output because the format trait's . /// minimum output is larger (e.g. `{:#02X}` outputs "0x1" so width 2 has no effect). . fn check_useless_format_width(&self, placeholder: &FormatPlaceholder) { 153 ( 0.00%) let min_width = match placeholder.format_trait { . // 0x prefix, e.g. 0x1, 0o1, 0b1 3 ( 0.00%) LowerHex | UpperHex | Octal | Binary if placeholder.format_options.alternate => 4, . LowerExp | UpperExp | Pointer => 4, // e.g. 1e0 with exponent, 0x1 for pointer . _ => return, . }; . if let Some(FormatCount::Literal(width_value)) = placeholder.format_options.width . && width_value < min_width . && let Some(placeholder_span) = placeholder.span . { . span_lint_and_help( -- line 567 ---------------------------------------- -- line 571 ---------------------------------------- . "format width has no effect on the output for this format trait", . None, . format!("consider removing the width or increasing it to at least {min_width}"), . ); . } . } . . fn check_uninlined_args(&self) { 138 ( 0.00%) if self.format_args.span.from_expansion() { . return; . } 184 ( 0.00%) if self.macro_call.span.edition() < Edition2021 2,668 ( 0.00%) => ???:::edition (46x) . && (is_panic(self.cx, self.macro_call.def_id) || is_assert_macro(self.cx, self.macro_call.def_id)) . { . // panic!, assert!, and debug_assert! before 2021 edition considers a single string argument as . // non-format . return; . } . . let mut fixes = Vec::new(); . // If any of the arguments are referenced by an index number, . // and that argument is not a simple variable and cannot be inlined, . // we cannot remove any other arguments in the format string, . // because the index numbers might be wrong after inlining. . // Example of an un-inlinable format: print!("{}{1}", foo, 2) 506 ( 0.00%) for (pos, usage) in self.format_arg_positions() { 24 ( 0.00%) if !self.check_one_arg(pos, usage, &mut fixes) { . return; . } . } . 34 ( 0.00%) if fixes.is_empty() { . return; . } . . // multiline span display suggestion is sometimes broken: https://github.com/rust-lang/rust/pull/102729#discussion_r988704308 . // in those cases, make the code suggestion hidden 15 ( 0.00%) let multiline_fix = fixes . .iter() 45 ( 0.00%) .any(|(span, _)| self.cx.sess().source_map().is_multiline(*span)); 15,698 ( 0.00%) => ???:::is_multiline (30x) . . // Suggest removing each argument only once, for example in `format!("{0} {0}", arg)`. . fixes.sort_unstable_by_key(|(span, _)| *span); . fixes.dedup_by_key(|(span, _)| *span); . 150 ( 0.00%) span_lint_and_then( 22,332 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/diagnostics.rs:clippy_utils::diagnostics::span_lint_and_then::::check_uninlined_args::{closure#3}> (15x) . self.cx, . UNINLINED_FORMAT_ARGS, 15 ( 0.00%) self.macro_call.span, . "variables can be used directly in the `format!` string", 90 ( 0.00%) |diag| { . diag.multipart_suggestion_with_style( . "change this to", . fixes, . Applicability::MachineApplicable, . if multiline_fix { CompletelyHidden } else { ShowCode }, . ); . }, . ); 15 ( 0.00%) } . . fn check_one_arg(&self, pos: &FormatArgPosition, usage: FormatParamUsage, fixes: &mut Vec<(Span, String)>) -> bool { 27 ( 0.00%) let index = pos.index.unwrap(); 108 ( 0.00%) let arg = &self.format_args.arguments.all_args()[index]; . 54 ( 0.00%) if !matches!(arg.kind, FormatArgumentKind::Captured(_)) 111 ( 0.00%) && let rustc_ast::ExprKind::Path(None, path) = &arg.expr.kind 30 ( 0.00%) && let [segment] = path.segments.as_slice() 15 ( 0.00%) && segment.args.is_none() 60 ( 0.00%) && let Some(arg_span) = format_arg_removal_span(self.format_args, index) 2,205 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::format_arg_removal_span (15x) 45 ( 0.00%) && let Some(pos_span) = pos.span . { 30 ( 0.00%) let replacement = match usage { . FormatParamUsage::Argument => segment.ident.name.to_string(), . FormatParamUsage::Width => format!("{}$", segment.ident.name), . FormatParamUsage::Precision => format!(".{}$", segment.ident.name), . }; 90 ( 0.00%) fixes.push((pos_span, replacement)); 60 ( 0.00%) fixes.push((arg_span, String::new())); . true // successful inlining, continue checking . } else { . // Do not continue inlining (return false) in case . // * if we can't inline a numbered argument, e.g. `print!("{0} ...", foo.bar, ...)` . // * if allow_mixed_uninlined_format_args is false and this arg hasn't been inlined already . pos.kind != FormatArgPositionKind::Number 60 ( 0.00%) && (!self.ignore_mixed || matches!(arg.kind, FormatArgumentKind::Captured(_))) . } . } . . fn check_format_in_format_args(&self, name: Symbol, arg: &Expr<'_>) { . let expn_data = arg.span.ctxt().outer_expn_data(); 54 ( 0.00%) if expn_data.call_site.from_expansion() { . return; . } 108 ( 0.00%) let Some(mac_id) = expn_data.macro_def_id else { return }; 135 ( 0.00%) if !self.cx.tcx.is_diagnostic_item(sym::format_macro, mac_id) { 1,188 ( 0.00%) => ???:::is_diagnostic_item (27x) . return; . } . span_lint_and_then( . self.cx, . FORMAT_IN_FORMAT_ARGS, . self.macro_call.span, . format!("`format!` in `{name}!` args"), . |diag| { -- line 674 ---------------------------------------- -- line 677 ---------------------------------------- . )); . diag.help("or consider changing `format!` to `format_args!`"); . }, . ); . } . . fn check_to_string_in_format_args(&self, name: Symbol, value: &Expr<'_>) { . let cx = self.cx; 81 ( 0.00%) if !value.span.from_expansion() . && let ExprKind::MethodCall(_, receiver, [], to_string_span) = value.kind . && cx . .typeck_results() . .type_dependent_def_id(value.hir_id) . .opt_parent(cx) . .is_diag_item(cx, sym::ToString) . && let receiver_ty = cx.typeck_results().expr_ty(receiver) . && let Some(display_trait_id) = cx.tcx.get_diagnostic_item(sym::Display) -- line 693 ---------------------------------------- -- line 722 ---------------------------------------- . ), . Applicability::MachineApplicable, . ); . } . } . } . . fn check_unnecessary_debug_formatting(&self, name: Symbol, value: &Expr<'tcx>) { 2 ( 0.00%) let cx = self.cx; 18 ( 0.00%) if !is_in_test(cx.tcx, value.hir_id) 7,876 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_in_test (2x) 4 ( 0.00%) && !value.span.from_expansion() 4 ( 0.00%) && !is_from_proc_macro(cx, value) 4 ( 0.00%) && let ty = cx.typeck_results().expr_ty(value) 80 ( 0.00%) => ???:::expr_ty (2x) . && self.can_display_format(ty) . { . // If the parent function is a method of `Debug`, we don't want to lint . // because it is likely that the user wants to use `Debug` formatting. . let parent_fn = cx.tcx.hir_get_parent_item(value.hir_id); . if let Some(trait_ref) = trait_ref_of_method(cx, parent_fn) . && let Some(trait_def_id) = trait_ref.trait_def_id() . && cx.tcx.is_diagnostic_item(sym::Debug, trait_def_id) -- line 742 ---------------------------------------- -- line 760 ---------------------------------------- . be removed", . ); . }, . ); . } . } . . fn format_arg_positions(&self) -> impl Iterator { 419 ( 0.00%) self.format_args.template.iter().flat_map(|piece| match piece { . FormatArgsPiece::Placeholder(placeholder) => { . let mut positions = ArrayVec::<_, 3>::new(); . . positions.push((&placeholder.argument, FormatParamUsage::Argument)); 356 ( 0.00%) if let Some(FormatCount::Argument(position)) = &placeholder.format_options.width { . positions.push((position, FormatParamUsage::Width)); . } 180 ( 0.00%) if let Some(FormatCount::Argument(position)) = &placeholder.format_options.precision { . positions.push((position, FormatParamUsage::Precision)); . } . 480 ( 0.00%) positions . }, . FormatArgsPiece::Literal(_) => ArrayVec::new(), . }) . } . . /// Returns true if the format argument at `index` is referred to by multiple format params . fn is_aliased(&self, index: usize) -> bool { . self.format_arg_positions() -- line 788 ---------------------------------------- -- line 789 ---------------------------------------- . .filter(|(position, _)| position.index == Ok(index)) . .at_most_one() . .is_err() . } . . fn can_display_format(&self, ty: Ty<'tcx>) -> bool { . let ty = ty.peel_refs(); . 2 ( 0.00%) if let Some(msrv) = self.ty_msrv_map.get(&ty) . && msrv.is_none_or(|msrv| self.msrv.meets(self.cx, msrv)) . { . return true; . } . . // Even if `ty` is not in `self.ty_msrv_map`, check whether `ty` implements `Deref` with . // a `Target` that is in `self.ty_msrv_map`. 8 ( 0.00%) if let Some(deref_trait_id) = self.cx.tcx.lang_items().deref_trait() 60 ( 0.00%) => ???:::lang_items (2x) 18 ( 0.00%) && implements_trait(self.cx, ty, deref_trait_id, &[]) 5,124 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::implements_trait (2x) . && let Some(target_ty) = self.cx.get_associated_type(ty, deref_trait_id, sym::Target) . && let Some(msrv) = self.ty_msrv_map.get(&target_ty) . && msrv.is_none_or(|msrv| self.msrv.meets(self.cx, msrv)) . { . return true; . } . . false . } . 40 ( 0.00%) fn has_pointer_debug(&mut self, ty: Ty<'tcx>, depth: usize) -> bool { 4 ( 0.00%) let cx = self.cx; 8 ( 0.00%) let tcx = cx.tcx; 8 ( 0.00%) if !tcx.recursion_limit().value_within_limit(depth) { 60 ( 0.00%) => ???:::recursion_limit (2x) . return false; . } 12 ( 0.00%) let depth = depth + 1; 12 ( 0.00%) let typing_env = cx.typing_env(); 398 ( 0.00%) => ???:::typing_env (2x) 4 ( 0.00%) let ty = tcx.normalize_erasing_regions(typing_env, Unnormalized::new_wip(ty)); 32 ( 0.00%) match ty.kind() { . ty::RawPtr(..) | ty::FnPtr(..) | ty::FnDef(..) => true, 8 ( 0.00%) ty::Ref(_, t, _) | ty::Slice(t) | ty::Array(t, _) => self.has_pointer_debug(*t, depth), 548 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/format_args.rs:::has_pointer_debug'2 (2x) . ty::Tuple(ts) => ts.iter().any(|t| self.has_pointer_debug(t, depth)), . ty::Adt(adt, args) => { . match self.has_pointer_format.entry(ty) { . Entry::Occupied(o) => return *o.get(), . Entry::Vacant(v) => v.insert(false), . }; . let derived_debug = if let Some(&known) = self.has_derived_debug.get(&ty) { . known -- line 836 ---------------------------------------- -- line 859 ---------------------------------------- . && adt.all_fields().any(|f| { . self.has_pointer_debug(tcx.normalize_erasing_regions(typing_env, f.ty(tcx, args)), depth) . }); . self.has_pointer_format.insert(ty, pointer_debug); . pointer_debug . }, . _ => false, . } 32 ( 0.00%) } . } . . fn make_ty_msrv_map(tcx: TyCtxt<'_>) -> FxHashMap, Option> { . [(sym::OsStr, Some(msrvs::OS_STR_DISPLAY)), (sym::Path, None)] . .into_iter() . .filter_map(|(name, feature)| { 6 ( 0.00%) tcx.get_diagnostic_item(name).map(|def_id| { 201,823 ( 0.00%) => ???:::get_diagnostic_item (2x) . let ty = Ty::new_adt(tcx, tcx.adt_def(def_id), List::empty()); . (ty, feature) . }) . }) . .collect() . } . . fn count_needed_derefs<'tcx, I>(mut ty: Ty<'tcx>, mut iter: I) -> (usize, Ty<'tcx>) -- line 882 ---------------------------------------- 1,048 ( 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 18 ---------------------------------------- . pub struct Fuse { . // NOTE: for `I: FusedIterator`, we never bother setting `None`, but . // we still have to be prepared for that state due to variance. . // See rust-lang/rust#85863 . iter: Option, . } . impl Fuse { . pub(in crate::iter) const fn new(iter: I) -> Fuse { 112 ( 0.00%) Fuse { iter: Some(iter) } . } . . pub(crate) fn into_inner(self) -> Option { . self.iter . } . } . . #[stable(feature = "fused", since = "1.26.0")] -- line 34 ---------------------------------------- -- 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, . { 10,488 ( 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> { 6,318 ( 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, . { 55,519 ( 0.00%) if let Some(ref mut iter) = self.iter { 27,321 ( 0.00%) acc = iter.try_fold(acc, fold)?; 3,812 ( 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:, ::format_arg_positions::{closure#0}> as core::iter::traits::iterator::Iterator>::try_fold::<(), >::iter_try_fold::flatten, (), core::ops::control_flow::ControlFlow<(&rustc_ast::format::FormatArgPosition, clippy_utils::macros::FormatParamUsage)>, as core::iter::traits::iterator::Iterator>::try_fold::flatten, (), core::ops::control_flow::ControlFlow<(&rustc_ast::format::FormatArgPosition, clippy_utils::macros::FormatParamUsage)>, core::iter::traits::iterator::Iterator::find::check<(&rustc_ast::format::FormatArgPosition, clippy_utils::macros::FormatParamUsage), &mut ::is_aliased::{closure#0}>::{closure#0}>::{closure#0}>::{closure#0}, core::ops::control_flow::ControlFlow<(&rustc_ast::format::FormatArgPosition, clippy_utils::macros::FormatParamUsage)>> (54x) . } . try { acc } . } . . #[inline] . fn find

(&mut self, predicate: P) -> Option . where . P: FnMut(&Self::Item) -> bool, -- line 438 ---------------------------------------- 763 ( 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 102 ---------------------------------------- . /// Expression must be a `Vec<_>`. Type cannot change. . Impossible, . } . . impl UselessVec { . /// Checks if the surrounding environment requires this expression to actually be of type . /// `Vec<_>`, or if it can be changed to `&[]`/`[]` without causing type errors. . fn expr_usage_requires_vec(&mut self, cx: &LateContext<'_>, expr: &Expr<'_>) -> VecToArray { 48 ( 0.00%) match cx.tcx.parent_hir_node(expr.hir_id) { 528 ( 0.00%) => ???:::parent_hir_node (6x) . // search for `let foo = vec![_]` expressions where all uses of `foo` . // adjust to slices or call a method that exist on slices (e.g. len) . Node::LetStmt(LetStmt { . ty: None, . pat: . Pat { . kind: PatKind::Binding(_, id, ..), . .. -- line 118 ---------------------------------------- -- line 166 ---------------------------------------- . VecToArray::Impossible . } . }, . } . } . } . . impl<'tcx> LateLintPass<'tcx> for UselessVec { 244,746 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 108,788 ( 0.00%) if let Some(vec_args) = higher::VecArgs::hir(cx, expr.peel_borrows()) 922,851 ( 0.02%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir (27,194x) . // The `vec![]` or `&vec![]` invocation span. 24 ( 0.00%) && let vec_span = expr.span.parent_callsite().unwrap_or(expr.span) 612 ( 0.00%) => ???:::parent_callsite (6x) . && !vec_span.from_expansion() . { 18 ( 0.00%) if self.allow_in_test && is_in_test(cx.tcx, expr.hir_id) { . return; . } . 6 ( 0.00%) match self.expr_usage_requires_vec(cx, expr) { . VecToArray::Possible => { . let suggest_ty = suggest_type(expr); . . // Size and `Copy` checks don't depend on the enclosing usage of the expression . // and don't need to be inserted into the state map. . let vec_snippet = match vec_args { . higher::VecArgs::Repeat(expr, len) => { . if is_copy(cx, cx.typeck_results().expr_ty(expr)) -- line 192 ---------------------------------------- -- line 228 ---------------------------------------- . entry.insert(VecState::Change { . suggest_ty, . vec_snippet, . expr_hir_id: expr.hir_id, . }); . } . }, . VecToArray::Impossible => { 72 ( 0.00%) self.span_to_state.insert(vec_span, VecState::NoChange); 1,671 ( 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:>::insert (6x) . }, . } . } 217,552 ( 0.01%) } . 8 ( 0.00%) fn check_crate_post(&mut self, cx: &LateContext<'tcx>) { 64 ( 0.00%) for (span, state) in mem::take(&mut self.span_to_state) { 6 ( 0.00%) if let VecState::Change { . suggest_ty, . vec_snippet, . expr_hir_id, 6 ( 0.00%) } = 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()); . // If the `vec!` macro contains comment, better not make the suggestion machine applicable as it . // would remove them. . let applicability = if span_contains_comment(cx, span) { . 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 ---------------------------------------- -- line 301 ---------------------------------------- . } . . fn size_of(cx: &LateContext<'_>, expr: &Expr<'_>) -> u64 { . let ty = cx.typeck_results().expr_ty_adjusted(expr); . cx.layout_of(ty).map_or(0, |l| l.size.bytes()) . } . . fn adjusts_to_slice(cx: &LateContext<'_>, e: &Expr<'_>) -> bool { 24 ( 0.00%) matches!(cx.typeck_results().expr_ty_adjusted(e).kind(), ty::Ref(_, ty, _) if ty.is_slice()) 342 ( 0.00%) => ???:::expr_ty_adjusted (6x) . } . . fn suggest_type(expr: &Expr<'_>) -> SuggestedType { . if let ExprKind::AddrOf(BorrowKind::Ref, mutability, _) = expr.kind { . // `expr` is `&vec![_]`, so suggest `&[_]` (or `&mut[_]` resp.) . SuggestedType::SliceRef(mutability) . } else { . // `expr` is the `vec![_]` expansion, so suggest `[_]` -- line 317 ---------------------------------------- 43 ( 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 { 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, e: &'tcx Expr<'_>) { 58,885 ( 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. 1,264 ( 0.00%) && field.ident.as_str().as_bytes().first().is_some_and(u8::is_ascii_digit) 20,224 ( 0.00%) => ???:::as_str (632x) . // 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, . ); . }, . ); . } 190,358 ( 0.00%) } . } 1,264 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/redundant_static_lifetimes.rs -------------------------------------------------------------------------------- Ir -- line 43 ---------------------------------------- . impl RedundantStaticLifetimes { . pub fn new(conf: &'static Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl RedundantStaticLifetimes { . // Recursively visit types 670 ( 0.00%) fn visit_type(ty: &Ty, cx: &EarlyContext<'_>, reason: &'static str) { 535 ( 0.00%) match ty.kind { . // Be careful of nested structures (arrays and tuples) . TyKind::Array(ref ty, _) | TyKind::Slice(ref ty) => { 22 ( 0.00%) Self::visit_type(ty, cx, reason); . }, . TyKind::Tup(ref tup) => { . for tup_ty in tup { 220 ( 0.00%) Self::visit_type(tup_ty, cx, reason); 1,100 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/redundant_static_lifetimes.rs:::visit_type'2 (44x) . } . }, . // This is what we are looking for ! . TyKind::Ref(ref optional_lifetime, ref borrow_type) => { . // Match the 'static lifetime . if let Some(lifetime) = *optional_lifetime { . match borrow_type.ty.kind { . TyKind::Path(..) | TyKind::Slice(..) | TyKind::Array(..) | TyKind::Tup(..) -- line 67 ---------------------------------------- -- line 80 ---------------------------------------- . }, . _ => {}, . } . } . Self::visit_type(&borrow_type.ty, cx, reason); . }, . _ => {}, . } 536 ( 0.00%) } . } . . impl EarlyLintPass for RedundantStaticLifetimes { . fn check_item(&mut self, cx: &EarlyContext<'_>, item: &Item) { 23,130 ( 0.00%) if !self.msrv.meets(msrvs::STATIC_IN_CONST) { 61,680 ( 0.00%) => /rust/deps/smallvec-1.15.1/src/lib.rs:::meets (2,570x) . return; . } . . if !item.span.from_expansion() { 6,050 ( 0.00%) if let ItemKind::Const(ConstItem { ty: ref var_type, .. }) = item.kind { . Self::visit_type(var_type, cx, "constants have by default a `'static` lifetime"); . // Don't check associated consts because `'static` cannot be elided on those (issue . // #2438) . } . 23 ( 0.00%) if let ItemKind::Static(StaticItem { ty: ref var_type, .. }) = item.kind { 69 ( 0.00%) Self::visit_type(var_type, cx, "statics have by default a `'static` lifetime"); . } . } . } . . extract_msrv_attr!(); . } 2,638 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/methods/swap_with_temporary.rs -------------------------------------------------------------------------------- Ir -- line 7 ---------------------------------------- . use rustc_middle::ty::adjustment::{Adjust, DerefAdjustKind}; . use rustc_span::sym; . . use super::SWAP_WITH_TEMPORARY; . . const MSG_TEMPORARY: &str = "this expression returns a temporary value"; . const MSG_TEMPORARY_REFMUT: &str = "this is a mutable reference to a temporary value"; . 10,248 ( 0.00%) pub(super) fn check<'tcx>(cx: &LateContext<'tcx>, expr: &Expr<'_>, func: &Expr<'_>, args: &'tcx [Expr<'_>]) { 6,994 ( 0.00%) if let ExprKind::Path(QPath::Resolved(_, func_path)) = func.kind . && let Some(func_def_id) = func_path.res.opt_def_id() 12,364 ( 0.00%) && cx.tcx.is_diagnostic_item(sym::mem_swap, func_def_id) 66,716 ( 0.00%) => ???:::is_diagnostic_item (1,124x) . { . match (ArgKind::new(cx, &args[0]), ArgKind::new(cx, &args[1])) { . (ArgKind::RefMutToTemp(left_temp), ArgKind::RefMutToTemp(right_temp)) => { . emit_lint_useless(cx, expr, &args[0], &args[1], left_temp, right_temp); . }, . (ArgKind::RefMutToTemp(left_temp), right) => emit_lint_assign(cx, expr, &right, &args[0], left_temp), . (left, ArgKind::RefMutToTemp(right_temp)) => emit_lint_assign(cx, expr, &left, &args[1], right_temp), . _ => {}, . } . } 11,712 ( 0.00%) } . . enum ArgKind<'tcx> { . // Mutable reference to a place, coming from a macro, and number of dereferences to use . RefMutToPlaceAsMacro(&'tcx Expr<'tcx>, usize), . // Place behind a mutable reference, and number of dereferences to use . RefMutToPlace(&'tcx Expr<'tcx>, usize), . // Temporary value behind a mutable reference . RefMutToTemp(&'tcx Expr<'tcx>), -- line 37 ---------------------------------------- -------------------------------------------------------------------------------- -- 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/context.rs -------------------------------------------------------------------------------- Ir -- line 1081 ---------------------------------------- . Some(hir::CoroutineKind::Desugared(hir::CoroutineDesugaring::AsyncGen, _)) . ) . } . . pub fn features(self) -> &'tcx rustc_feature::Features { . self.features_query(()) . } . 82,092 ( 0.00%) pub fn def_key(self, id: impl IntoQueryKey) -> rustc_hir::definitions::DefKey { . let id = id.into_query_key(); . // Accessing the DefKey is ok, since it is part of DefPathHash. . if let Some(id) = id.as_local() { . self.definitions_untracked().def_key(id) . } else { 15,894 ( 0.00%) self.cstore_untracked().def_key(id) 381,456 ( 0.01%) => ???:::def_key (5,298x) . } 95,774 ( 0.00%) } . . /// Converts a `DefId` into its fully expanded `DefPath` (every . /// `DefId` is really just an interned `DefPath`). . /// . /// Note that if `id` is not local to this crate, the result will . /// be a non-local `DefPath`. . pub fn def_path(self, id: DefId) -> rustc_hir::definitions::DefPath { . // Accessing the DefPath is ok, since it is part of DefPathHash. -- line 1105 ---------------------------------------- -- line 2224 ---------------------------------------- . pub fn mk_ct_from_kind(self, kind: ty::ConstKind<'tcx>) -> Const<'tcx> { . self.interners.intern_const(kind) . } . . // Avoid this in favour of more specific `Ty::new_*` methods, where possible. . #[allow(rustc::usage_of_ty_tykind)] . #[inline] . pub fn mk_ty_from_kind(self, st: TyKind<'tcx>) -> Ty<'tcx> { 9,274 ( 0.00%) self.interners.intern_ty(st) 192 ( 0.00%) => ???:::intern_ty (2x) . } . . pub fn mk_param_from_def(self, param: &ty::GenericParamDef) -> GenericArg<'tcx> { . match param.kind { . GenericParamDefKind::Lifetime => { . ty::Region::new_early_param(self, param.to_early_bound_region_data()).into() . } . GenericParamDefKind::Type { .. } => Ty::new_param(self, param.index, param.name).into(), -- line 2240 ---------------------------------------- -- line 2428 ---------------------------------------- . T::collect_and_apply(iter, |xs| self.mk_clauses(xs)) . } . . pub fn mk_type_list_from_iter(self, iter: I) -> T::Output . where . I: Iterator, . T: CollectAndApply, &'tcx List>>, . { 40 ( 0.00%) T::collect_and_apply(iter, |xs| self.mk_type_list(xs)) 1,236 ( 0.00%) => ???:::mk_type_list (8x) . } . . pub fn mk_args_from_iter(self, iter: I) -> T::Output . where . I: Iterator, . T: CollectAndApply, ty::GenericArgsRef<'tcx>>, . { 2,179 ( 0.00%) T::collect_and_apply(iter, |xs| self.mk_args(xs)) 424 ( 0.00%) => ???:::mk_args (4x) . } . . pub fn mk_canonical_var_infos_from_iter(self, iter: I) -> T::Output . where . I: Iterator, . T: CollectAndApply, &'tcx List>>, . { . T::collect_and_apply(iter, |xs| self.mk_canonical_var_kinds(xs)) -- line 2452 ---------------------------------------- -- line 2500 ---------------------------------------- . #[track_caller] . pub fn emit_node_span_lint( . self, . lint: &'static Lint, . hir_id: HirId, . span: impl Into, . decorator: impl for<'a> Diagnostic<'a, ()>, . ) { 1,308 ( 0.00%) let level_spec = self.lint_level_spec_at_node(lint, hir_id); 10,097 ( 0.00%) => ???:::lint_level_spec_at_node (19x) 2,200 ( 0.00%) emit_lint_base(self.sess, lint, level_spec, Some(span.into()), decorator) 612,174 ( 0.02%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/rustc-src/rust/compiler/rustc_middle/src/lint.rs:rustc_middle::lint::emit_lint_base::::{closure#0}>, rustc_middle::lint::LevelSpec> (1x) . } . . /// Find the appropriate span where `use` and outer attributes can be inserted at. . pub fn crate_level_attribute_injection_span(self) -> Span { . let node = self.hir_node(hir::CRATE_HIR_ID); . let hir::Node::Crate(m) = node else { bug!() }; . m.spans.inject_use_span.shrink_to_lo() . } -- line 2517 ---------------------------------------- -- line 2680 ---------------------------------------- . let def_id = def_id.into_query_key(); . match self.def_kind(def_id) { . DefKind::Fn | DefKind::AssocFn => self.intrinsic_raw(def_id), . _ => None, . } . } . . pub fn next_trait_solver_globally(self) -> bool { 1,196 ( 0.00%) self.sess.opts.unstable_opts.next_solver.globally . } . . pub fn next_trait_solver_in_coherence(self) -> bool { . self.sess.opts.unstable_opts.next_solver.coherence . } . . pub fn disable_trait_solver_fast_paths(self) -> bool { . self.sess.opts.unstable_opts.disable_fast_paths -- line 2696 ---------------------------------------- 44,739 ( 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 { 244,746 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, e: &'tcx Expr<'_>) { 81,582 ( 0.00%) if e.span.from_expansion() { . return; . } . 1,074 ( 0.00%) if let ExprKind::Binary(Spanned { node, .. }, left_side, right_side) = e.kind 2,148 ( 0.00%) && is_expn_of(left_side.span, sym::cfg).is_none() 13,689 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_expn_of (358x) 2,130 ( 0.00%) && is_expn_of(right_side.span, sym::cfg).is_none() 13,135 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_expn_of (355x) 1,775 ( 0.00%) && cx.typeck_results().expr_ty(left_side).is_bool() 14,252 ( 0.00%) => ???:::expr_ty (355x) 920 ( 0.00%) && cx.typeck_results().expr_ty(right_side).is_bool() 7,420 ( 0.00%) => ???:::expr_ty (184x) . { 184 ( 0.00%) let ignore_case = None::<(fn(_) -> _, &str)>; 184 ( 0.00%) let ignore_no_literal = None::<(fn(_, _) -> _, &str)>; 552 ( 0.00%) match node { . BinOpKind::Eq => { . let true_case = Some((|h| h, "equality checks against true are unnecessary")); . let false_case = Some(( . |h: Sugg<'tcx>| !h, . "equality checks against false can be replaced by a negation", . )); . check_comparison(cx, e, true_case, false_case, true_case, false_case, ignore_no_literal); . }, -- line 60 ---------------------------------------- -- line 94 ---------------------------------------- . Some(( . |l: Sugg<'tcx>, r: Sugg<'tcx>| l.bit_and(&(!r)), . "order comparisons between booleans can be simplified", . )), . ), . _ => (), . } . } 217,552 ( 0.01%) } . } . . 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 ---------------------------------------- 35,236 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/derive/derived_hash_with_manual_eq.rs -------------------------------------------------------------------------------- Ir -- line 10 ---------------------------------------- . pub(super) fn check<'tcx>( . cx: &LateContext<'tcx>, . span: Span, . trait_ref: &TraitRef<'_>, . ty: Ty<'tcx>, . adt_hir_id: HirId, . hash_is_automatically_derived: bool, . ) { 5,200 ( 0.00%) if let Some(peq_trait_def_id) = cx.tcx.lang_items().eq_trait() 39,000 ( 0.00%) => ???:::lang_items (1,300x) 5,200 ( 0.00%) && let Some(def_id) = trait_ref.trait_def_id() 16,900 ( 0.00%) => ???:::trait_def_id (1,300x) 7,800 ( 0.00%) && cx.tcx.is_diagnostic_item(sym::Hash, def_id) 87,661 ( 0.00%) => ???:::is_diagnostic_item (1,300x) . { . // Look for the PartialEq implementations for `ty` 117 ( 0.00%) cx.tcx.for_each_relevant_impl(peq_trait_def_id, ty, |impl_id| { 18,176 ( 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/trait_def.rs:::for_each_relevant_impl::<(), clippy_lints::derive::derived_hash_with_manual_eq::check::{closure#0}> (3x) 18 ( 0.00%) let peq_is_automatically_derived = cx.tcx.is_automatically_derived(impl_id); 16,925 ( 0.00%) => ???:::is_automatically_derived (6x) . 30 ( 0.00%) if !hash_is_automatically_derived || peq_is_automatically_derived { . return; . } . . let trait_ref = cx.tcx.impl_trait_ref(impl_id); . . // Only care about `impl PartialEq for Foo` . // For `impl PartialEq for A, input_types is [A, B] . if trait_ref.instantiate_identity().skip_norm_wip().args.type_at(1) == ty { -- line 34 ---------------------------------------- -- line 41 ---------------------------------------- . |diag| { . if let Some(local_def_id) = impl_id.as_local() { . let hir_id = cx.tcx.local_def_id_to_hir_id(local_def_id); . diag.span_note(cx.tcx.hir_span(hir_id), "`PartialEq` implemented here"); . } . }, . ); . } 48 ( 0.00%) }); . } . } 3,903 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs -------------------------------------------------------------------------------- Ir -- line 62 ---------------------------------------- . maybe_typeck_results: Option<(&'tcx TypeckResults<'tcx>, &'tcx TypeckResults<'tcx>)>, . allow_side_effects: bool, . expr_fallback: Option>>, . path_check: PathCheck, . } . . impl<'a, 'tcx> SpanlessEq<'a, 'tcx> { . pub fn new(cx: &'a LateContext<'tcx>) -> Self { 4,490 ( 0.00%) Self { . cx, 1,665 ( 0.00%) maybe_typeck_results: cx.typeck_results.map(|x| (x, x)), . allow_side_effects: true, . expr_fallback: None, . path_check: PathCheck::default(), . } . } . . /// Consider expressions containing potential side effects as not equal. . #[must_use] . pub fn deny_side_effects(self) -> Self { 2,975 ( 0.00%) Self { . allow_side_effects: false, . ..self . } . } . . /// Check paths by their resolution instead of exact equality. See [`PathCheck`] for more . /// details. . #[must_use] . pub fn paths_by_resolution(self) -> Self { 12 ( 0.00%) Self { . path_check: PathCheck::Resolution, . ..self . } . } . . #[must_use] . pub fn expr_fallback( . self, -- line 100 ---------------------------------------- -- line 103 ---------------------------------------- . Self { . expr_fallback: Some(Box::new(expr_fallback)), . ..self . } . } . . /// Use this method to wrap comparisons that may involve inter-expression context. . /// See `self.locals`. 111 ( 0.00%) pub fn inter_expr(&mut self, ctxt: SyntaxContext) -> HirEqInterExpr<'_, 'a, 'tcx> { 21,564 ( 0.00%) HirEqInterExpr { . inner: self, . eval_ctxt: ctxt, . prev_left_ctxt: ctxt, . prev_right_ctxt: ctxt, . locals: HirIdMap::default(), . local_items: FxIndexMap::default(), . } 111 ( 0.00%) } . 388 ( 0.00%) pub fn eq_block(&mut self, ctxt: SyntaxContext, left: &Block<'_>, right: &Block<'_>) -> bool { 1,164 ( 0.00%) self.inter_expr(ctxt).eq_block(left, right) 289,566 ( 0.01%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_block (194x) 3,195 ( 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:: (194x) 776 ( 0.00%) } . 750 ( 0.00%) pub fn eq_expr(&mut self, ctxt: SyntaxContext, left: &Expr<'_>, right: &Expr<'_>) -> bool { 5,820 ( 0.00%) self.inter_expr(ctxt).eq_expr(left, right) 954,520 ( 0.02%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_expr (375x) 7,183 ( 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:: (375x) 1,500 ( 0.00%) } . . pub fn eq_path(&mut self, ctxt: SyntaxContext, left: &Path<'_>, right: &Path<'_>) -> bool { . self.inter_expr(ctxt).eq_path(left, right) . } . . pub fn eq_path_segment(&mut self, ctxt: SyntaxContext, left: &PathSegment<'_>, right: &PathSegment<'_>) -> bool { . self.inter_expr(ctxt).eq_path_segment(left, right) . } -- line 136 ---------------------------------------- -- line 164 ---------------------------------------- . // right. For example, when comparing `{ let x = 1; x + 2 }` and `{ let y = 1; y + 2 }`, . // these blocks are considered equal since `x` is mapped to `y`. . pub locals: HirIdMap, . pub local_items: FxIndexMap, . } . . impl HirEqInterExpr<'_, '_, '_> { . pub fn set_eval_ctxt(&mut self, ctxt: SyntaxContext) { 16 ( 0.00%) self.eval_ctxt = ctxt; . self.prev_left_ctxt = ctxt; 16 ( 0.00%) self.prev_right_ctxt = ctxt; . } . 480 ( 0.00%) pub fn eq_stmt(&mut self, left: &Stmt<'_>, right: &Stmt<'_>) -> bool { 192 ( 0.00%) if self.check_ctxt(left.span.ctxt(), right.span.ctxt()) == Some(false) { 1,630 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::check_ctxt (48x) . return false; . } . 290 ( 0.00%) match (&left.kind, &right.kind) { . (StmtKind::Let(l), StmtKind::Let(r)) => { . // This additional check ensures that the type of the locals are equivalent even if the init . // expression or type have some inferred parts. 20 ( 0.00%) if let Some((typeck_lhs, typeck_rhs)) = self.inner.maybe_typeck_results { 20 ( 0.00%) let l_ty = typeck_lhs.pat_ty(l.pat); 160 ( 0.00%) => ???:::pat_ty (4x) 16 ( 0.00%) let r_ty = typeck_rhs.pat_ty(r.pat); 160 ( 0.00%) => ???:::pat_ty (4x) 4 ( 0.00%) if l_ty != r_ty { . return false; . } . } . . // eq_pat adds the HirIds to the locals map. We therefore call it last to make sure that . // these only get added if the init and type is equal. . both(l.init.as_ref(), r.init.as_ref(), |l, r| self.eq_expr(l, r)) . && both(l.ty.as_ref(), r.ty.as_ref(), |l, r| self.eq_ty(l, r)) . && both(l.els.as_ref(), r.els.as_ref(), |l, r| self.eq_block(l, r)) . && self.eq_pat(l.pat, r.pat) . }, 473 ( 0.00%) (StmtKind::Expr(l), StmtKind::Expr(r)) | (StmtKind::Semi(l), StmtKind::Semi(r)) => self.eq_expr(l, r), 59,253 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_expr (41x) 11,928 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_expr'2 (2x) . (StmtKind::Item(l), StmtKind::Item(r)) => self.eq_item(*l, *r), . _ => false, . } 45 ( 0.00%) } . . pub fn eq_item(&mut self, l: ItemId, r: ItemId) -> bool { . let left = self.inner.cx.tcx.hir_item(l); . let right = self.inner.cx.tcx.hir_item(r); . let eq = match (left.kind, right.kind) { . ( . ItemKind::Const(l_ident, l_generics, l_ty, ConstItemRhs::Body(l_body)), . ItemKind::Const(r_ident, r_generics, r_ty, ConstItemRhs::Body(r_body)), -- line 213 ---------------------------------------- -- line 379 ---------------------------------------- . default: r_default, . }, . ) => self.eq_ty(l_ty, r_ty) && both(*l_default, *r_default, |l, r| self.eq_const_arg(l, r)), . _ => false, . } . } . . /// Checks whether two blocks are the same. 1,393 ( 0.00%) fn eq_block(&mut self, left: &Block<'_>, right: &Block<'_>) -> bool { . use TokenKind::{Semi, Whitespace}; 597 ( 0.00%) if left.stmts.len() != right.stmts.len() { . return false; . } 755 ( 0.00%) let lspan = left.span.data(); 755 ( 0.00%) let rspan = right.span.data(); 1,661 ( 0.00%) match self.check_ctxt(lspan.ctxt, rspan.ctxt) { 4,387 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::check_ctxt (151x) . Some(false) => return false, 298 ( 0.00%) None if self.eval_ctxt.is_root() => {}, . _ => { . // Don't try to check in between statements inside macros. 8 ( 0.00%) return over(left.stmts, right.stmts, |left, right| self.eq_stmt(left, right)) 12,104 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_stmt (2x) . && both(left.expr.as_ref(), right.expr.as_ref(), |left, right| { . self.eq_expr(left, right) . }); . }, . } . 298 ( 0.00%) let mut lstart = lspan.lo; 149 ( 0.00%) let mut rstart = rspan.lo; . . for (left, right) in left.stmts.iter().zip(right.stmts) { 210 ( 0.00%) if !self.eq_stmt(left, right) { 45,734 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_stmt (30x) . return false; . } . . // Try to detect any `cfg`ed statements or empty macro expansions. . let Some(lstmt_span) = walk_span_to_context(left.span, lspan.ctxt) else { . return false; . }; . let Some(rstmt_span) = walk_span_to_context(right.span, rspan.ctxt) else { -- line 418 ---------------------------------------- -- line 435 ---------------------------------------- . }) { . return false; . } . . lstart = lstmt_span.hi; . rstart = rstmt_span.hi; . } . 714 ( 0.00%) let (lend, rend) = match (left.expr, right.expr) { . (Some(left), Some(right)) => { 714 ( 0.00%) if !self.eq_expr(left, right) { 225,647 ( 0.01%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_expr (117x) 3,834 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_expr'2 (2x) . return false; . } 14 ( 0.00%) let Some(lexpr_span) = walk_span_to_context(left.span, lspan.ctxt) else { 172 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/source.rs:clippy_utils::source::walk_span_to_context (2x) . return false; . }; 14 ( 0.00%) let Some(rexpr_span) = walk_span_to_context(right.span, rspan.ctxt) else { 172 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/source.rs:clippy_utils::source::walk_span_to_context (2x) . return false; . }; . (lexpr_span.lo(), rexpr_span.lo()) 2 ( 0.00%) }, . (None, None) => (lspan.hi, rspan.hi), . (Some(_), None) | (None, Some(_)) => return false, . }; . 8 ( 0.00%) if lend < lstart && rend < rstart { . // Can happen when macros rearrange the input. . // Nothing in between the statements to check in this case. . return true; . } else if lend < lstart || rend < rstart { . // Only one of the blocks had a weird macro . return false; . } 14 ( 0.00%) eq_span_tokens(self.inner.cx, lstart..lend, rstart..rend, |t| { 2,900 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:clippy_utils::hir_utils::eq_span_tokens::, core::ops::range::Range, ::eq_block::{closure#3}> (2x) . !matches!(t, Whitespace | Semi) . }) 1,592 ( 0.00%) } . 7,854 ( 0.00%) fn should_ignore(&self, expr: &Expr<'_>) -> bool { 59 ( 0.00%) macro_backtrace(expr.span).last().is_some_and(|macro_call| { 59 ( 0.00%) matches!( 295 ( 0.00%) self.inner.cx.tcx.get_diagnostic_name(macro_call.def_id), 2,877 ( 0.00%) => ???:::get_diagnostic_name (59x) 60 ( 0.00%) Some(sym::todo_macro | sym::unimplemented_macro) . ) . }) 5,712 ( 0.00%) } . . pub fn eq_body(&mut self, left: BodyId, right: BodyId) -> bool { . // swap out TypeckResults when hashing a body . let old_maybe_typeck_results = self.inner.maybe_typeck_results.replace(( . self.inner.cx.tcx.typeck_body(left), . self.inner.cx.tcx.typeck_body(right), . )); . let res = self.eq_expr( -- line 488 ---------------------------------------- -- line 489 ---------------------------------------- . self.inner.cx.tcx.hir_body(left).value, . self.inner.cx.tcx.hir_body(right).value, . ); . self.inner.maybe_typeck_results = old_maybe_typeck_results; . res . } . . #[expect(clippy::too_many_lines)] 18,820 ( 0.00%) pub fn eq_expr(&mut self, left: &Expr<'_>, right: &Expr<'_>) -> bool { 16,905 ( 0.00%) match self.check_ctxt(left.span.ctxt(), right.span.ctxt()) { 32,760 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::check_ctxt (1,128x) . None => { 8,745 ( 0.00%) if let Some((typeck_lhs, typeck_rhs)) = self.inner.maybe_typeck_results 15,741 ( 0.00%) && typeck_lhs.expr_ty(left) == typeck_rhs.expr_ty(right) 89,732 ( 0.00%) => ???:::expr_ty (2,236x) 22,917 ( 0.00%) && let (Some(l), Some(r)) = ( 6,268 ( 0.00%) ConstEvalCtxt::with_env(self.inner.cx.tcx, self.inner.cx.typing_env(), typeck_lhs) 208,612 ( 0.01%) => ???:::typing_env (1,046x) 1,567 ( 0.00%) .eval_local(left, self.eval_ctxt), 6,268 ( 0.00%) ConstEvalCtxt::with_env(self.inner.cx.tcx, self.inner.cx.typing_env(), typeck_rhs) 208,612 ( 0.01%) => ???:::typing_env (1,046x) 1,567 ( 0.00%) .eval_local(right, self.eval_ctxt), . ) 276 ( 0.00%) && l == r 261 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::eq (7x) . { . return true; 3,678 ( 0.00%) } 4,535 ( 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:: (155x) . }, . Some(false) => return false, . Some(true) => {}, . } . 12,710 ( 0.00%) let is_eq = match ( 10,884 ( 0.00%) reduce_exprkind(self.inner.cx, self.eval_ctxt, &left.kind), 4,572 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:clippy_utils::hir_utils::reduce_exprkind (1,118x) 9,070 ( 0.00%) reduce_exprkind(self.inner.cx, self.eval_ctxt, &right.kind), 4,591 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:clippy_utils::hir_utils::reduce_exprkind (1,118x) . ) { . (ExprKind::AddrOf(lb, l_mut, le), ExprKind::AddrOf(rb, r_mut, re)) => { 80 ( 0.00%) lb == rb && l_mut == r_mut && self.eq_expr(le, re) . }, . (ExprKind::Array(l), ExprKind::Array(r)) => self.eq_exprs(l, r), . (ExprKind::Assign(ll, lr, _), ExprKind::Assign(rl, rr, _)) => { 12 ( 0.00%) self.inner.allow_side_effects && self.eq_expr(ll, rl) && self.eq_expr(lr, rr) . }, . (ExprKind::AssignOp(lo, ll, lr), ExprKind::AssignOp(ro, rl, rr)) => { 8 ( 0.00%) self.inner.allow_side_effects && lo.node == ro.node && self.eq_expr(ll, rl) && self.eq_expr(lr, rr) . }, 20 ( 0.00%) (ExprKind::Block(l, _), ExprKind::Block(r, _)) => self.eq_block(l, r), 19,828 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_block (4x) 19 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_block'2 (1x) . (ExprKind::Binary(l_op, ll, lr), ExprKind::Binary(r_op, rl, rr)) => { 475 ( 0.00%) l_op.node == r_op.node && self.eq_expr(ll, rl) && self.eq_expr(lr, rr) 65,896 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_expr'2 (28x) 408 ( 0.00%) || self.swap_binop(l_op.node, ll, lr).is_some_and(|(l_op, ll, lr)| { 2,250 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::swap_binop (26x) 113 ( 0.00%) l_op == r_op.node && self.eq_expr(ll, rl) && self.eq_expr(lr, rr) 6,967 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_expr'2 (10x) 125 ( 0.00%) }) . }, . (ExprKind::Break(li, le), ExprKind::Break(ri, re)) => { 1 ( 0.00%) both(li.label.as_ref(), ri.label.as_ref(), |l, r| l.ident.name == r.ident.name) . && both(le.as_ref(), re.as_ref(), |l, r| self.eq_expr(l, r)) . }, . (ExprKind::Call(l_fun, l_args), ExprKind::Call(r_fun, r_args)) => { 1,426 ( 0.00%) self.inner.allow_side_effects && self.eq_expr(l_fun, r_fun) && self.eq_exprs(l_args, r_args) 50,382 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_expr'2 (49x) . }, . (ExprKind::Cast(lx, lt), ExprKind::Cast(rx, rt)) => { . self.eq_expr(lx, rx) && self.eq_ty(lt, rt) . }, . (ExprKind::Closure(_l), ExprKind::Closure(_r)) => false, . (ExprKind::ConstBlock(lb), ExprKind::ConstBlock(rb)) => self.eq_body(lb.body, rb.body), . (ExprKind::Continue(li), ExprKind::Continue(ri)) => { . both(li.label.as_ref(), ri.label.as_ref(), |l, r| l.ident.name == r.ident.name) . }, . (ExprKind::DropTemps(le), ExprKind::DropTemps(re)) => self.eq_expr(le, re), . (ExprKind::Field(l_f_exp, l_f_ident), ExprKind::Field(r_f_exp, r_f_ident)) => { 33 ( 0.00%) l_f_ident.name == r_f_ident.name && self.eq_expr(l_f_exp, r_f_exp) . }, . (ExprKind::Index(la, li, _), ExprKind::Index(ra, ri, _)) => self.eq_expr(la, ra) && self.eq_expr(li, ri), . (ExprKind::If(lc, lt, le), ExprKind::If(rc, rt, re)) => { 26 ( 0.00%) self.eq_expr(lc, rc) && self.eq_expr(lt, rt) 5,589 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_expr'2 (2x) . && both(le.as_ref(), re.as_ref(), |l, r| self.eq_expr(l, r)) . }, . (ExprKind::Let(l), ExprKind::Let(r)) => { 9 ( 0.00%) self.eq_pat(l.pat, r.pat) 772 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_pat (1x) 4 ( 0.00%) && both(l.ty.as_ref(), r.ty.as_ref(), |l, r| self.eq_ty(l, r)) 2 ( 0.00%) && self.eq_expr(l.init, r.init) . }, . (ExprKind::Lit(l), ExprKind::Lit(r)) => { 60 ( 0.00%) if self.check_ctxt(l.span.ctxt(), r.span.ctxt()) == Some(false) { 203 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::check_ctxt (7x) . return false; . } 24 ( 0.00%) l.node == r.node 101 ( 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 (7x) . }, . (ExprKind::Loop(lb, ll, lls, _), ExprKind::Loop(rb, rl, rls, _)) => { . lls == rls && self.eq_block(lb, rb) . && both(ll.as_ref(), rl.as_ref(), |l, r| l.ident.name == r.ident.name) . }, . (ExprKind::Match(le, la, ls), ExprKind::Match(re, ra, rs)) => { . (ls == rs || (matches!((ls, rs), (TryDesugar(_), TryDesugar(_))))) 126 ( 0.00%) && self.eq_expr(le, re) 31,937 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_expr'2 (9x) 96 ( 0.00%) && over(la, ra, |l, r| { 89,799 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:clippy_utils::hir_utils::over::::eq_expr::{closure#7}> (7x) 304 ( 0.00%) self.eq_pat(l.pat, r.pat) 16,835 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_pat (40x) 40 ( 0.00%) && both(l.guard.as_ref(), r.guard.as_ref(), |l, r| self.eq_expr(l, r)) 160 ( 0.00%) && self.eq_expr(l.body, r.body) 136,462 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_expr'2 (40x) . }) . }, . ( . ExprKind::MethodCall(l_path, l_receiver, l_args, _), . ExprKind::MethodCall(r_path, r_receiver, r_args, _), . ) => { 582 ( 0.00%) self.inner.allow_side_effects 959 ( 0.00%) && self.eq_path_segment(l_path, r_path) 3,264 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_path_segment (68x) 780 ( 0.00%) && self.eq_expr(l_receiver, r_receiver) 97,145 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_expr'2 (65x) 484 ( 0.00%) && self.eq_exprs(l_args, r_args) . }, . (ExprKind::UnsafeBinderCast(lkind, le, None), ExprKind::UnsafeBinderCast(rkind, re, None)) => . lkind == rkind && self.eq_expr(le, re), . (ExprKind::UnsafeBinderCast(lkind, le, Some(lt)), ExprKind::UnsafeBinderCast(rkind, re, Some(rt))) => . lkind == rkind && self.eq_expr(le, re) && self.eq_ty(lt, rt), . (ExprKind::OffsetOf(l_container, l_fields), ExprKind::OffsetOf(r_container, r_fields)) => { . self.eq_ty(l_container, r_container) && over(l_fields, r_fields, |l, r| l.name == r.name) . }, 3,216 ( 0.00%) (ExprKind::Path(l), ExprKind::Path(r)) => self.eq_qpath(l, r), 8,400 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_qpath (134x) . (ExprKind::Repeat(le, ll), ExprKind::Repeat(re, rl)) => { . self.eq_expr(le, re) && self.eq_const_arg(ll, rl) . }, . (ExprKind::Ret(l), ExprKind::Ret(r)) => both(l.as_ref(), r.as_ref(), |l, r| self.eq_expr(l, r)), . (ExprKind::Struct(l_path, lf, lo), ExprKind::Struct(r_path, rf, ro)) => { 231 ( 0.00%) self.eq_qpath(l_path, r_path) 4,884 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_qpath (33x) 264 ( 0.00%) && match (lo, ro) { . (StructTailExpr::Base(l),StructTailExpr::Base(r)) => self.eq_expr(l, r), . (StructTailExpr::None, StructTailExpr::None) | . (StructTailExpr::DefaultFields(_), StructTailExpr::DefaultFields(_)) => true, . _ => false, . } 198 ( 0.00%) && over(lf, rf, |l, r| self.eq_expr_field(l, r)) 39,810 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:clippy_utils::hir_utils::over::::eq_expr::{closure#10}> (33x) . }, . (ExprKind::Tup(l_tup), ExprKind::Tup(r_tup)) => self.eq_exprs(l_tup, r_tup), . (ExprKind::Use(l_expr, _), ExprKind::Use(r_expr, _)) => self.eq_expr(l_expr, r_expr), . (ExprKind::Type(le, lt), ExprKind::Type(re, rt)) => self.eq_expr(le, re) && self.eq_ty(lt, rt), 5 ( 0.00%) (ExprKind::Unary(l_op, le), ExprKind::Unary(r_op, re)) => l_op == r_op && self.eq_expr(le, re), . (ExprKind::Yield(le, _), ExprKind::Yield(re, _)) => return self.eq_expr(le, re), . ( . // Else branches for branches above, grouped as per `match_same_arms`. . | ExprKind::AddrOf(..) . | ExprKind::Array(..) . | ExprKind::Assign(..) . | ExprKind::AssignOp(..) . | ExprKind::Binary(..) -- line 628 ---------------------------------------- -- line 664 ---------------------------------------- . // This behavior may change in the future. . | ExprKind::Closure(..) . // For the time being, we always consider that two instances of InlineAsm are different. . // This behavior may change in the future. . | ExprKind::InlineAsm(_) . , _ . ) => false, . }; 7,257 ( 0.00%) (is_eq && (!self.should_ignore(left) || !self.should_ignore(right))) 10,398 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::should_ignore (151x) 2,200 ( 0.00%) || self . .inner . .maybe_typeck_results . .is_some_and(|(left_typeck_results, right_typeck_results)| { . self.inner . .expr_fallback . .as_mut() . .is_some_and(|f| f(left_typeck_results, left, right_typeck_results, right)) . }) 15,056 ( 0.00%) } . . fn eq_exprs(&mut self, left: &[Expr<'_>], right: &[Expr<'_>]) -> bool { 1,433 ( 0.00%) over(left, right, |l, r| self.eq_expr(l, r)) 172,798 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:clippy_utils::hir_utils::over::::eq_exprs::{closure#0}> (94x) . } . . fn eq_expr_field(&mut self, left: &ExprField<'_>, right: &ExprField<'_>) -> bool { 307 ( 0.00%) left.ident.name == right.ident.name && self.eq_expr(left.expr, right.expr) 38,400 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_expr'2 (35x) . } . . fn eq_generic_arg(&mut self, left: &GenericArg<'_>, right: &GenericArg<'_>) -> bool { 16 ( 0.00%) match (left, right) { . (GenericArg::Const(l), GenericArg::Const(r)) => self.eq_const_arg(l.as_unambig_ct(), r.as_unambig_ct()), . (GenericArg::Lifetime(l_lt), GenericArg::Lifetime(r_lt)) => Self::eq_lifetime(l_lt, r_lt), 4 ( 0.00%) (GenericArg::Type(l_ty), GenericArg::Type(r_ty)) => self.eq_ty(l_ty.as_unambig_ty(), r_ty.as_unambig_ty()), 281 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_ty (1x) . (GenericArg::Infer(l_inf), GenericArg::Infer(r_inf)) => self.eq_ty(&l_inf.to_ty(), &r_inf.to_ty()), . _ => false, . } . } . . fn eq_const_arg(&mut self, left: &ConstArg<'_>, right: &ConstArg<'_>) -> bool { . if self.check_ctxt(left.span.ctxt(), right.span.ctxt()) == Some(false) { . return false; -- line 704 ---------------------------------------- -- line 760 ---------------------------------------- . } . . fn eq_lifetime(left: &Lifetime, right: &Lifetime) -> bool { . left.kind == right.kind . } . . fn eq_pat_field(&mut self, left: &PatField<'_>, right: &PatField<'_>) -> bool { . let (PatField { ident: li, pat: lp, .. }, PatField { ident: ri, pat: rp, .. }) = (&left, &right); 192 ( 0.00%) li.name == ri.name && self.eq_pat(lp, rp) 7,431 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_pat'2 (24x) . } . . fn eq_pat_expr(&mut self, left: &PatExpr<'_>, right: &PatExpr<'_>) -> bool { 95 ( 0.00%) match (&left.kind, &right.kind) { . ( . PatExprKind::Lit { . lit: left, . negated: left_neg, . }, . PatExprKind::Lit { . lit: right, . negated: right_neg, . }, 108 ( 0.00%) ) => left_neg == right_neg && left.node == right.node, 156 ( 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 (12x) 77 ( 0.00%) (PatExprKind::Path(left), PatExprKind::Path(right)) => self.eq_qpath(left, right), 1,456 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_qpath (7x) . (PatExprKind::Lit { .. } | PatExprKind::Path(..), _) => false, . } . } . . /// Checks whether two patterns are the same. 871 ( 0.00%) fn eq_pat(&mut self, left: &Pat<'_>, right: &Pat<'_>) -> bool { 893 ( 0.00%) match (&left.kind, &right.kind) { . (PatKind::Box(l), PatKind::Box(r)) => self.eq_pat(l, r), . (PatKind::Struct(lp, la, ..), PatKind::Struct(rp, ra, ..)) => { 120 ( 0.00%) self.eq_qpath(lp, rp) && over(la, ra, |l, r| self.eq_pat_field(l, r)) . }, . (PatKind::TupleStruct(lp, la, ls), PatKind::TupleStruct(rp, ra, rs)) => { 14 ( 0.00%) self.eq_qpath(lp, rp) && over(la, ra, |l, r| self.eq_pat(l, r)) && ls == rs . }, . (PatKind::Binding(lb, li, _, lp), PatKind::Binding(rb, ri, _, rp)) => { 26 ( 0.00%) let eq = lb == rb && both(lp.as_ref(), rp.as_ref(), |l, r| self.eq_pat(l, r)); 78 ( 0.00%) if eq { 104 ( 0.00%) self.locals.insert(*li, *ri); . } . eq . }, 14 ( 0.00%) (PatKind::Expr(l), PatKind::Expr(r)) => self.eq_pat_expr(l, r), 6 ( 0.00%) (PatKind::Tuple(l, ls), PatKind::Tuple(r, rs)) => ls == rs && over(l, r, |l, r| self.eq_pat(l, r)), 918 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_pat'2 (2x) . (PatKind::Range(ls, le, li), PatKind::Range(rs, re, ri)) => { 90 ( 0.00%) both(ls.as_ref(), rs.as_ref(), |a, b| self.eq_pat_expr(a, b)) 30 ( 0.00%) && both(le.as_ref(), re.as_ref(), |a, b| self.eq_pat_expr(a, b)) . && (li == ri) . }, . (PatKind::Ref(le, lp, lm), PatKind::Ref(re, rp, rm)) => lp == rp && lm == rm && self.eq_pat(le, re), . (PatKind::Slice(ls, li, le), PatKind::Slice(rs, ri, re)) => { . over(ls, rs, |l, r| self.eq_pat(l, r)) . && over(le, re, |l, r| self.eq_pat(l, r)) . && both(li.as_ref(), ri.as_ref(), |l, r| self.eq_pat(l, r)) . }, . (PatKind::Wild, PatKind::Wild) => true, . _ => false, . } 480 ( 0.00%) } . 1,728 ( 0.00%) fn eq_qpath(&mut self, left: &QPath<'_>, right: &QPath<'_>) -> bool { 3,041 ( 0.00%) match (left, right) { . (QPath::Resolved(lty, lpath), QPath::Resolved(rty, rpath)) => { 4,171 ( 0.00%) both(lty.as_ref(), rty.as_ref(), |l, r| self.eq_ty(l, r)) && self.eq_path(lpath, rpath) 41,228 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_path (560x) . }, . (QPath::TypeRelative(lty, lseg), QPath::TypeRelative(rty, rseg)) => { 170 ( 0.00%) self.eq_ty(lty, rty) && self.eq_path_segment(lseg, rseg) 1,636 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_ty (10x) 480 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_path_segment (10x) . }, . _ => false, . } 30 ( 0.00%) } . 4,776 ( 0.00%) pub fn eq_path(&mut self, left: &Path<'_>, right: &Path<'_>) -> bool { 6,413 ( 0.00%) match (left.res, right.res) { 1,241 ( 0.00%) (Res::Local(l), Res::Local(r)) => l == r || self.locals.get(&l) == Some(&r), 984 ( 0.00%) => /rust/deps/indexmap-2.14.0/src/map.rs:>::get:: (82x) . (Res::Local(_), _) | (_, Res::Local(_)) => false, 44 ( 0.00%) (Res::Def(l_kind, l), Res::Def(r_kind, r)) . if l_kind == r_kind . && let DefKind::Const { .. } . | DefKind::Static { .. } . | DefKind::Fn . | DefKind::TyAlias . | DefKind::Use . | DefKind::Mod = l_kind => . { 185 ( 0.00%) (l == r || self.local_items.get(&l) == Some(&r)) && self.eq_path_segments(left.segments, right.segments) 2,302 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_path_segments (17x) 60 ( 0.00%) => /rust/deps/indexmap-2.14.0/src/map.rs:>::get:: (5x) . }, 776 ( 0.00%) _ => self.eq_path_segments(left.segments, right.segments), . } 4,776 ( 0.00%) } . . fn eq_path_parameters(&mut self, left: &GenericArgs<'_>, right: &GenericArgs<'_>) -> bool { 439 ( 0.00%) if left.parenthesized == right.parenthesized { 439 ( 0.00%) over(left.args, right.args, |l, r| self.eq_generic_arg(l, r)) // FIXME(flip1995): may not work 438 ( 0.00%) && over(left.constraints, right.constraints, |l, r| self.eq_assoc_eq_constraint(l, r)) . } else { . false . } . } . 153 ( 0.00%) pub fn eq_path_segments<'tcx>( . &mut self, . mut left: &'tcx [PathSegment<'tcx>], . mut right: &'tcx [PathSegment<'tcx>], . ) -> bool { 633 ( 0.00%) if let PathCheck::Resolution = self.inner.path_check . && let Some(left_seg) = generic_path_segments(left) . && let Some(right_seg) = generic_path_segments(right) . { . // If we compare by resolution, then only check the last segments that could possibly have generic . // arguments . left = left_seg; . right = right_seg; . } . 1,460 ( 0.00%) over(left, right, |l, r| self.eq_path_segment(l, r)) 12,384 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_path_segment (258x) 144 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_path_segment'2 (3x) 102 ( 0.00%) } . 3,073 ( 0.00%) pub fn eq_path_segment(&mut self, left: &PathSegment<'_>, right: &PathSegment<'_>) -> bool { . if !self.eq_path_parameters(left.args(), right.args()) { . return false; . } . 2,190 ( 0.00%) if let PathCheck::Resolution = self.inner.path_check . && left.res != Res::Err . && right.res != Res::Err . { . left.res == right.res . } else { . // The == of idents doesn't work with different contexts, . // we have to be explicit about hygiene . left.ident.name == right.ident.name . } 3,512 ( 0.00%) } . 88 ( 0.00%) pub fn eq_ty(&mut self, left: &Ty<'_>, right: &Ty<'_>) -> bool { 110 ( 0.00%) match (&left.kind, &right.kind) { . (TyKind::Slice(l_vec), TyKind::Slice(r_vec)) => self.eq_ty(l_vec, r_vec), . (TyKind::Array(lt, ll), TyKind::Array(rt, rl)) => self.eq_ty(lt, rt) && self.eq_const_arg(ll, rl), . (TyKind::Ptr(l_mut), TyKind::Ptr(r_mut)) => l_mut.mutbl == r_mut.mutbl && self.eq_ty(l_mut.ty, r_mut.ty), . (TyKind::Ref(_, l_rmut), TyKind::Ref(_, r_rmut)) => { . l_rmut.mutbl == r_rmut.mutbl && self.eq_ty(l_rmut.ty, r_rmut.ty) . }, . (TyKind::Path(l), TyKind::Path(r)) => self.eq_qpath(l, r), . (TyKind::Tup(l), TyKind::Tup(r)) => over(l, r, |l, r| self.eq_ty(l, r)), -- line 907 ---------------------------------------- -- line 916 ---------------------------------------- . // TODO: this could be extended to check for identical associated item bound constraints . left.ident.name == right.ident.name . && (both_some_and(left.ty(), right.ty(), |l, r| self.eq_ty(l, r)) . || both_some_and(left.ct(), right.ct(), |l, r| self.eq_const_arg(l, r))) . } . . /// Checks whether either operand is within a macro context, and if so, whether the macro calls . /// are equal. 16,744 ( 0.00%) fn check_ctxt(&mut self, left: SyntaxContext, right: SyntaxContext) -> Option { . let prev_left = mem::replace(&mut self.prev_left_ctxt, left); . let prev_right = mem::replace(&mut self.prev_right_ctxt, right); . 4,186 ( 0.00%) if left == self.eval_ctxt && right == self.eval_ctxt { . None 138 ( 0.00%) } else if left == prev_left && right == prev_right { . // Same as the previous context, no need to recheck anything . Some(true) . } else if left == prev_left 854 ( 0.00%) || right == prev_right . || left == self.eval_ctxt . || right == self.eval_ctxt . || left.is_root() . || right.is_root() . { . // Either only one context changed, or at least one context is a parent of the . // evaluation context. . // Unfortunately we can't get a span of a metavariable so we have to treat the . // second case as unequal. . Some(false) . } else { . // Walk each context in lockstep up to the evaluation context checking that each . // expansion has the same kind. 94 ( 0.00%) let mut left_data = left.outer_expn_data(); 282 ( 0.00%) let mut right_data = right.outer_expn_data(); . loop { . use TokenKind::{BlockComment, LineComment, Whitespace}; 190 ( 0.00%) if left_data.macro_def_id != right_data.macro_def_id || left_data.kind != right_data.kind { . return Some(false); . } 95 ( 0.00%) let left = left_data.call_site.ctxt(); 95 ( 0.00%) let right = right_data.call_site.ctxt(); 273 ( 0.00%) if left == self.eval_ctxt && right == self.eval_ctxt { . // Finally if the outermost expansion is a macro call, check if the . // tokens are the same. 279 ( 0.00%) if let ExpnKind::Macro(MacroKind::Bang, _) = left_data.kind { 12 ( 0.00%) return Some(eq_span_tokens( 17,331 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:clippy_utils::hir_utils::eq_span_tokens::::check_ctxt::{closure#0}> (6x) 12 ( 0.00%) self.inner.cx, 6 ( 0.00%) left_data.call_site, 6 ( 0.00%) right_data.call_site, 58 ( 0.00%) |t| !matches!(t, Whitespace | LineComment { .. } | BlockComment { .. }), . )); . } . return Some(true); . } 18 ( 0.00%) if left == prev_left && right == prev_right { . return Some(true); . } 6 ( 0.00%) if left == prev_left . || right == prev_right 14 ( 0.00%) || left == self.eval_ctxt . || right == self.eval_ctxt . || left.is_root() . || right.is_root() . { . // Either there's a different number of expansions, or at least one context is . // a parent of the evaluation context. . return Some(false); . } 22 ( 0.00%) left_data = left.outer_expn_data(); 22 ( 0.00%) right_data = right.outer_expn_data(); . } . } 18,837 ( 0.00%) } . . fn swap_binop<'a>( . &self, . binop: BinOpKind, . lhs: &'a Expr<'a>, . rhs: &'a Expr<'a>, . ) -> Option<(BinOpKind, &'a Expr<'a>, &'a Expr<'a>)> { 130 ( 0.00%) match binop { . // `==` and `!=`, are commutative 15 ( 0.00%) BinOpKind::Eq | BinOpKind::Ne => Some((binop, rhs, lhs)), . // Comparisons can be reversed . BinOpKind::Lt => Some((BinOpKind::Gt, rhs, lhs)), . BinOpKind::Le => Some((BinOpKind::Ge, rhs, lhs)), . BinOpKind::Ge => Some((BinOpKind::Le, rhs, lhs)), 3 ( 0.00%) BinOpKind::Gt => Some((BinOpKind::Lt, rhs, lhs)), . // Non-commutative operators . BinOpKind::Shl | BinOpKind::Shr | BinOpKind::Rem | BinOpKind::Sub | BinOpKind::Div => None, . // We know that those operators are commutative for primitive types, . // and we don't assume anything for other types . BinOpKind::Mul . | BinOpKind::Add . | BinOpKind::And . | BinOpKind::Or . | BinOpKind::BitAnd . | BinOpKind::BitXor 20 ( 0.00%) | BinOpKind::BitOr => self.inner.maybe_typeck_results.and_then(|(typeck_lhs, _)| { . typeck_lhs 100 ( 0.00%) .expr_ty_adjusted(lhs) 1,476 ( 0.00%) => ???:::expr_ty_adjusted (20x) . .peel_refs() . .is_primitive() . .then_some((binop, rhs, lhs)) . }), . } 26 ( 0.00%) } . } . . /// Some simple reductions like `{ return }` => `return` 3,628 ( 0.00%) fn reduce_exprkind<'hir>( . cx: &LateContext<'_>, . eval_ctxt: SyntaxContext, . kind: &'hir ExprKind<'hir>, . ) -> &'hir ExprKind<'hir> { 7,256 ( 0.00%) if let ExprKind::Block(block, _) = kind { 93 ( 0.00%) match (block.stmts, block.expr) { . // From an `if let` expression without an `else` block. The arm for the implicit wild pattern is an empty . // block with an empty span. 64 ( 0.00%) ([], None) if block.span.is_empty() => &ExprKind::Tup(&[]), . // `{}` => `()` . ([], None) . if block.span.ctxt() != eval_ctxt . || block.span.check_text(cx, |src| { . tokenize(src, FrontmatterAllowed::No) . .map(|t| t.kind) . .filter(|t| { . !matches!( -- line 1043 ---------------------------------------- -- line 1052 ---------------------------------------- . { . &ExprKind::Tup(&[]) . }, . ([], Some(expr)) => match expr.kind { . // `{ return .. }` => `return ..` . ExprKind::Ret(..) => &expr.kind, . _ => kind, . }, 8 ( 0.00%) ([stmt], None) => match stmt.kind { 4 ( 0.00%) StmtKind::Expr(expr) | StmtKind::Semi(expr) => match expr.kind { . // `{ return ..; }` => `return ..` . ExprKind::Ret(..) => &expr.kind, . _ => kind, . }, . _ => kind, . }, . _ => kind, . } . } else { . kind . } 3,628 ( 0.00%) } . . /// Checks if the two `Option`s are both `None` or some equal values as per . /// `eq_fn`. . pub fn both(l: Option<&X>, r: Option<&X>, mut eq_fn: impl FnMut(&X, &X) -> bool) -> bool { . l.as_ref() 12 ( 0.00%) .map_or_else(|| r.is_none(), |x| r.as_ref().is_some_and(|y| eq_fn(x, y))) 408 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_pat::{closure#4} (12x) . } . . /// Checks if the two `Option`s are both `Some` and pass the predicate function. . pub fn both_some_and(l: Option, r: Option, mut pred: impl FnMut(X, Y) -> bool) -> bool { . l.is_some_and(|l| r.is_some_and(|r| pred(l, r))) . } . . /// Checks if two slices are equal as per `eq_fn`. . pub fn over(left: &[X], right: &[Y], mut eq_fn: impl FnMut(&X, &Y) -> bool) -> bool { 3,766 ( 0.00%) left.len() == right.len() && left.iter().zip(right).all(|(x, y)| eq_fn(x, y)) 258 ( 0.00%) } . . /// Counts how many elements of the slices are equal as per `eq_fn`. . pub fn count_eq( . left: &mut dyn Iterator, . right: &mut dyn Iterator, . mut eq_fn: impl FnMut(&X, &X) -> bool, . ) -> usize { . left.zip(right).take_while(|(l, r)| eq_fn(l, r)).count() -- line 1098 ---------------------------------------- -- line 1099 ---------------------------------------- . } . . /// Checks if two expressions evaluate to the same value, and don't contain any side effects. . /// . /// The context argument is the context used to view the two expressions. e.g. when comparing the . /// two arguments in `f(m!(1), m!(2))` the context of the call expression should be used. This is . /// needed to handle the case where two macros expand to the same thing, but the arguments are . /// different. 2,380 ( 0.00%) pub fn eq_expr_value(cx: &LateContext<'_>, ctxt: SyntaxContext, left: &Expr<'_>, right: &Expr<'_>) -> bool { 595 ( 0.00%) SpanlessEq::new(cx).deny_side_effects().eq_expr(ctxt, left, right) 3,570 ( 0.00%) } . . /// Returns the segments of a path that might have generic parameters. . /// Usually just the last segment for free items, except for when the path resolves to an associated . /// item, in which case it is the last two . fn generic_path_segments<'tcx>(segments: &'tcx [PathSegment<'tcx>]) -> Option<&'tcx [PathSegment<'tcx>]> { . match segments.last()?.res { . Res::Def(DefKind::AssocConst { .. } | DefKind::AssocFn | DefKind::AssocTy, _) => { . // >::assoc:: -- line 1117 ---------------------------------------- -- line 1133 ---------------------------------------- . cx: &'a LateContext<'tcx>, . maybe_typeck_results: Option<&'tcx TypeckResults<'tcx>>, . s: FxHasher, . path_check: PathCheck, . } . . impl<'a, 'tcx> SpanlessHash<'a, 'tcx> { . pub fn new(cx: &'a LateContext<'tcx>) -> Self { 1,777 ( 0.00%) Self { . cx, 369 ( 0.00%) maybe_typeck_results: cx.typeck_results, . s: FxHasher::default(), . path_check: PathCheck::default(), . } . } . . /// Check paths by their resolution instead of exact equality. See [`PathCheck`] for more . /// details. . #[must_use] -- line 1151 ---------------------------------------- -- line 1155 ---------------------------------------- . ..self . } . } . . pub fn finish(self) -> u64 { . self.s.finish() . } . 260 ( 0.00%) pub fn hash_block(&mut self, b: &Block<'_>) { 26 ( 0.00%) for s in b.stmts { . self.hash_stmt(s); . } . 78 ( 0.00%) if let Some(e) = b.expr { 28 ( 0.00%) self.hash_expr(e); 25,532 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_expr'2 (8x) . } . . mem::discriminant(&b.rules).hash(&mut self.s); 208 ( 0.00%) } . . #[expect(clippy::too_many_lines)] 19,566 ( 0.00%) pub fn hash_expr(&mut self, e: &Expr<'_>) { 4,348 ( 0.00%) let simple_const = self.maybe_typeck_results.and_then(|typeck_results| { 6,522 ( 0.00%) ConstEvalCtxt::with_env(self.cx.tcx, self.cx.typing_env(), typeck_results).eval_local(e, e.span.ctxt()) 73,530 ( 0.00%) => ???:::typing_env (369x) . }); . . // const hashing may result in the same hash as some unrelated node, so add a sort of . // discriminant depending on which path we're choosing next 2,174 ( 0.00%) simple_const.hash(&mut self.s); . if simple_const.is_some() { . return; . } . . mem::discriminant(&e.kind).hash(&mut self.s); . 6,396 ( 0.00%) match &e.kind { . ExprKind::AddrOf(kind, m, e) => { . mem::discriminant(kind).hash(&mut self.s); . m.hash(&mut self.s); 26 ( 0.00%) self.hash_expr(e); . }, . ExprKind::Continue(i) => { 67 ( 0.00%) if let Some(i) = i.label { . self.hash_name(i.ident.name); . } . }, . ExprKind::Array(v) => { 3 ( 0.00%) self.hash_exprs(v); . }, . ExprKind::Assign(l, r, _) => { 40 ( 0.00%) self.hash_expr(l); 5,200 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_expr'2 (8x) . self.hash_expr(r); . }, . ExprKind::AssignOp(o, l, r) => { . mem::discriminant(&o.node).hash(&mut self.s); . self.hash_expr(l); . self.hash_expr(r); . }, . ExprKind::Become(f) => { . self.hash_expr(f); . }, . ExprKind::Block(b, _) => { 92 ( 0.00%) self.hash_block(b); 4,578 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_block (2x) . }, . ExprKind::Binary(op, l, r) => { . mem::discriminant(&op.node).hash(&mut self.s); 222 ( 0.00%) self.hash_expr(l); 73,450 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_expr'2 (30x) . self.hash_expr(r); . }, . ExprKind::Break(i, j) => { 44 ( 0.00%) if let Some(i) = i.label { . self.hash_name(i.ident.name); . } 22 ( 0.00%) if let Some(j) = j { . self.hash_expr(j); . } . }, . ExprKind::Call(fun, args) => { 807 ( 0.00%) self.hash_expr(fun); 45,268 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_expr'2 (94x) 269 ( 0.00%) self.hash_exprs(args); . }, . ExprKind::Cast(e, ty) | ExprKind::Type(e, ty) => { . self.hash_expr(e); . self.hash_ty(ty); . }, . ExprKind::Closure(Closure { 3 ( 0.00%) capture_clause, body, .. . }) => { . mem::discriminant(capture_clause).hash(&mut self.s); . // closures inherit TypeckResults 21 ( 0.00%) self.hash_expr(self.cx.tcx.hir_body(*body).value); 220 ( 0.00%) => ???:::hir_body (3x) . }, . ExprKind::ConstBlock(l_id) => { . self.hash_body(l_id.body); . }, . ExprKind::DropTemps(e) | ExprKind::Yield(e, _) => { 44 ( 0.00%) self.hash_expr(e); . }, . ExprKind::Field(e, f) => { 111 ( 0.00%) self.hash_expr(e); 444 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_expr'2 (1x) 37 ( 0.00%) self.hash_name(f.name); . }, . ExprKind::Index(a, i, _) => { 44 ( 0.00%) self.hash_expr(a); 445 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_expr'2 (1x) . self.hash_expr(i); . }, . ExprKind::InlineAsm(asm) => { . for piece in asm.template { . match piece { . InlineAsmTemplatePiece::String(s) => s.hash(&mut self.s), . InlineAsmTemplatePiece::Placeholder { . operand_idx, -- line 1266 ---------------------------------------- -- line 1310 ---------------------------------------- . InlineAsmOperand::Const { anon_const } => { . self.hash_body(anon_const.body); . }, . InlineAsmOperand::SymStatic { path, def_id: _ } => self.hash_qpath(path), . InlineAsmOperand::Label { block } => self.hash_block(block), . } . } . }, 2 ( 0.00%) ExprKind::Let(LetExpr { pat, init, ty, .. }) => { 6 ( 0.00%) self.hash_expr(init); 2,194 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_expr'2 (2x) 6 ( 0.00%) if let Some(ty) = ty { . self.hash_ty(ty); . } 8 ( 0.00%) self.hash_pat(pat); 312 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_pat (2x) . }, . ExprKind::Lit(l) => { . l.node.hash(&mut self.s); . }, . ExprKind::Loop(b, i, ..) => { 9 ( 0.00%) self.hash_block(b); 12,411 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_block (1x) 55,374 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_block'2 (2x) 52 ( 0.00%) if let Some(i) = i { . self.hash_name(i.ident.name); . } . }, . ExprKind::If(cond, then, else_opt) => { 27 ( 0.00%) self.hash_expr(cond); 4,761 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_expr'2 (3x) 27 ( 0.00%) self.hash_expr(then); 6,654 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_expr'2 (3x) . if let Some(e) = else_opt { . self.hash_expr(e); . } . }, . ExprKind::Match(scrutinee, arms, _) => { 126 ( 0.00%) self.hash_expr(scrutinee); 6,310 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_expr'2 (4x) . 42 ( 0.00%) for arm in *arms { 249 ( 0.00%) self.hash_pat(arm.pat); 1,158 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_pat (8x) 249 ( 0.00%) if let Some(e) = arm.guard { . self.hash_expr(e); . } 249 ( 0.00%) self.hash_expr(arm.body); 11,994 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_expr'2 (8x) . } . }, . ExprKind::MethodCall(path, receiver, args, _fn_span) => { 686 ( 0.00%) self.hash_name(path.ident.name); 1,029 ( 0.00%) self.hash_expr(receiver); 91,439 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_expr'2 (167x) 343 ( 0.00%) self.hash_exprs(args); . }, . ExprKind::OffsetOf(container, fields) => { . self.hash_ty(container); . for field in *fields { . self.hash_name(field.name); . } . }, . ExprKind::Path(qpath) => { -- line 1363 ---------------------------------------- -- line 1368 ---------------------------------------- . self.hash_const_arg(len); . }, . ExprKind::Ret(e) => { . if let Some(e) = e { . self.hash_expr(e); . } . }, . ExprKind::Struct(path, fields, expr) => { 32 ( 0.00%) self.hash_qpath(path); . 32 ( 0.00%) for f in *fields { 83 ( 0.00%) self.hash_name(f.ident.name); 249 ( 0.00%) self.hash_expr(f.expr); 5,076 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_expr'2 (2x) . } . 64 ( 0.00%) if let StructTailExpr::Base(e) = expr { 12 ( 0.00%) self.hash_expr(e); . } . }, . ExprKind::Tup(tup) => { 29 ( 0.00%) self.hash_exprs(tup); . }, . ExprKind::Use(expr, _) => { . self.hash_expr(expr); . }, . ExprKind::Unary(l_op, le) => { . mem::discriminant(l_op).hash(&mut self.s); 17 ( 0.00%) self.hash_expr(le); . }, . ExprKind::UnsafeBinderCast(kind, expr, ty) => { . mem::discriminant(kind).hash(&mut self.s); . self.hash_expr(expr); . if let Some(ty) = ty { . self.hash_ty(ty); . } . }, . ExprKind::Err(_) => {}, . } 17,392 ( 0.00%) } . . pub fn hash_exprs(&mut self, e: &[Expr<'_>]) { . for e in e { 1,761 ( 0.00%) self.hash_expr(e); 467,547 ( 0.01%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_expr'2 (265x) . } . } . . pub fn hash_name(&mut self, n: Symbol) { . n.hash(&mut self.s); . } . . pub fn hash_qpath(&mut self, p: &QPath<'_>) { 2,590 ( 0.00%) match p { . QPath::Resolved(_, path) => { 3,513 ( 0.00%) self.hash_path(path); 1,026 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_path (21x) . }, . QPath::TypeRelative(_, path) => { 49 ( 0.00%) self.hash_name(path.ident.name); . }, . } . // self.maybe_typeck_results.unwrap().qpath_res(p, id).hash(&mut self.s); . } . . pub fn hash_pat_expr(&mut self, lit: &PatExpr<'_>) { . mem::discriminant(&lit.kind).hash(&mut self.s); 2 ( 0.00%) match &lit.kind { . PatExprKind::Lit { lit, negated } => { . lit.node.hash(&mut self.s); . negated.hash(&mut self.s); . }, . PatExprKind::Path(qpath) => self.hash_qpath(qpath), . } . } . -- line 1440 ---------------------------------------- -- line 1449 ---------------------------------------- . for variant in variants { . self.hash_ty_pat(variant); . } . }, . TyPatKind::NotNull | TyPatKind::Err(_) => {}, . } . } . 2,534 ( 0.00%) pub fn hash_pat(&mut self, pat: &Pat<'_>) { . mem::discriminant(&pat.kind).hash(&mut self.s); 543 ( 0.00%) match &pat.kind { . PatKind::Missing => unreachable!(), . PatKind::Binding(BindingMode(by_ref, mutability), _, _, pat) => { . mem::discriminant(by_ref).hash(&mut self.s); 96 ( 0.00%) if let ByRef::Yes(pi, mu) = by_ref { . mem::discriminant(pi).hash(&mut self.s); . mem::discriminant(mu).hash(&mut self.s); . } . mem::discriminant(mutability).hash(&mut self.s); 384 ( 0.00%) if let Some(pat) = pat { . self.hash_pat(pat); . } . }, . PatKind::Box(pat) | PatKind::Deref(pat) => self.hash_pat(pat), 2 ( 0.00%) PatKind::Expr(expr) => self.hash_pat_expr(expr), . PatKind::Or(pats) => { . for pat in *pats { . self.hash_pat(pat); . } . }, . PatKind::Range(s, e, i) => { . if let Some(s) = s { . self.hash_pat_expr(s); -- line 1481 ---------------------------------------- -- line 1502 ---------------------------------------- . self.hash_pat(pat); . } . for pat in *r { . self.hash_pat(pat); . } . }, . PatKind::Struct(qpath, fields, e) => { . self.hash_qpath(qpath); 76 ( 0.00%) for f in *fields { 75 ( 0.00%) self.hash_name(f.ident.name); 225 ( 0.00%) self.hash_pat(f.pat); 3,786 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_pat'2 (75x) . } . e.hash(&mut self.s); . }, . PatKind::Tuple(pats, e) => { 1 ( 0.00%) for pat in *pats { 4 ( 0.00%) self.hash_pat(pat); 98 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_pat'2 (2x) . } . e.hash(&mut self.s); . }, . PatKind::TupleStruct(qpath, pats, e) => { . self.hash_qpath(qpath); 6 ( 0.00%) for pat in *pats { 12 ( 0.00%) self.hash_pat(pat); 294 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_pat'2 (6x) . } . e.hash(&mut self.s); 6 ( 0.00%) }, . PatKind::Never | PatKind::Wild | PatKind::Err(_) => {}, . } 1,432 ( 0.00%) } . 9,640 ( 0.00%) pub fn hash_path(&mut self, path: &Path<'_>) { 2,410 ( 0.00%) match path.res { . // constant hash since equality is dependant on inter-expression context . // e.g. The expressions `if let Some(x) = foo() {}` and `if let Some(y) = foo() {}` are considered equal . // even though the binding names are different and they have different `HirId`s. . Res::Local(_) => 1_usize.hash(&mut self.s), . _ => { 1,176 ( 0.00%) if let PathCheck::Resolution = self.path_check . && let [.., last] = path.segments . && let Some(segments) = generic_path_segments(path.segments) . { . for seg in segments { . self.hash_generic_args(seg.args().args); . } . last.res.hash(&mut self.s); . } else { 588 ( 0.00%) for seg in path.segments { 996 ( 0.00%) self.hash_name(seg.ident.name); 3,984 ( 0.00%) self.hash_generic_args(seg.args().args); 2,988 ( 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:::hash_generic_args (996x) . } . } . }, . } 9,640 ( 0.00%) } . . pub fn hash_modifiers(&mut self, modifiers: TraitBoundModifiers) { . let TraitBoundModifiers { constness, polarity } = modifiers; . mem::discriminant(&polarity).hash(&mut self.s); . mem::discriminant(&constness).hash(&mut self.s); . } . . pub fn hash_stmt(&mut self, b: &Stmt<'_>) { . mem::discriminant(&b.kind).hash(&mut self.s); . 236 ( 0.00%) match &b.kind { . StmtKind::Let(local) => { 52 ( 0.00%) self.hash_pat(local.pat); 196 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_pat (4x) 39 ( 0.00%) if let Some(init) = local.init { 26 ( 0.00%) self.hash_expr(init); 5,526 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_expr'2 (4x) . } 39 ( 0.00%) if let Some(els) = local.els { . self.hash_block(els); . } . }, . StmtKind::Item(..) => {}, . StmtKind::Expr(expr) | StmtKind::Semi(expr) => { 171 ( 0.00%) self.hash_expr(expr); 74,616 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_expr'2 (7x) . }, . } . } . . pub fn hash_lifetime(&mut self, lifetime: &Lifetime) { . lifetime.ident.name.hash(&mut self.s); . mem::discriminant(&lifetime.kind).hash(&mut self.s); . if let LifetimeKind::Param(param_id) = lifetime.kind { -- line 1587 ---------------------------------------- -- line 1708 ---------------------------------------- . for arg in arg_list { . match arg { . GenericArg::Lifetime(l) => self.hash_lifetime(l), . GenericArg::Type(ty) => self.hash_ty(ty.as_unambig_ty()), . GenericArg::Const(ca) => self.hash_const_arg(ca.as_unambig_ct()), . GenericArg::Infer(inf) => self.hash_ty(&inf.to_ty()), . } . } 996 ( 0.00%) } . } . 68 ( 0.00%) pub fn hash_stmt(cx: &LateContext<'_>, s: &Stmt<'_>) -> u64 { . let mut h = SpanlessHash::new(cx); . h.hash_stmt(s); 34 ( 0.00%) h.finish() 102 ( 0.00%) } . . pub fn is_bool(ty: &Ty<'_>) -> bool { . if let TyKind::Path(QPath::Resolved(_, path)) = ty.kind { . matches!(path.res, Res::PrimTy(PrimTy::Bool)) . } else { . false . } . } . 335 ( 0.00%) pub fn hash_expr(cx: &LateContext<'_>, e: &Expr<'_>) -> u64 { . let mut h = SpanlessHash::new(cx); 335 ( 0.00%) h.hash_expr(e); 894,503 ( 0.02%) => site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::hash_expr (335x) 335 ( 0.00%) h.finish() 670 ( 0.00%) } . 78 ( 0.00%) fn eq_span_tokens( . cx: &LateContext<'_>, . left: impl SpanRange, . right: impl SpanRange, . pred: impl Fn(TokenKind) -> bool, . ) -> bool { . fn f(cx: &LateContext<'_>, left: Range, right: Range, pred: impl Fn(TokenKind) -> bool) -> bool { 48 ( 0.00%) if let Some(lsrc) = left.get_source_range(cx) . && let Some(lsrc) = lsrc.as_str() 48 ( 0.00%) && let Some(rsrc) = right.get_source_range(cx) . && let Some(rsrc) = rsrc.as_str() . { . let pred = |&(token, ..): &(TokenKind, _, _)| pred(token); . let map = |(_, source, _)| source; . . let ltok = tokenize_with_text(lsrc).filter(pred).map(map); . let rtok = tokenize_with_text(rsrc).filter(pred).map(map); . ltok.eq(rtok) . } else { . // Unable to access the source. Conservatively assume the blocks aren't equal. . false . } . } 54 ( 0.00%) f(cx, left.into_range(), right.into_range(), pred) 204 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/source.rs:::into_range (12x) 64 ( 0.00%) } . . /// Returns true if the expression contains ambiguous literals (unsuffixed float or int literals) . /// that could be interpreted as either f32/f64 or i32/i64 depending on context. . pub fn has_ambiguous_literal_in_expr(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool { . match expr.kind { . ExprKind::Path(ref qpath) => { . if let Res::Local(hir_id) = cx.qpath_res(qpath, expr.hir_id) . && let Node::LetStmt(local) = cx.tcx.parent_hir_node(hir_id) -- line 1771 ---------------------------------------- 50,136 ( 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 { 135,970 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 27,194 ( 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), . ); . } 163,164 ( 0.00%) } . } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/escape.rs -------------------------------------------------------------------------------- Ir -- line 50 ---------------------------------------- . "using `Box` where unnecessary" . } . . impl_lint_pass!(BoxedLocal => [BOXED_LOCAL]); . . /// Whether `ty` is a `Box` where `T` is not a trait object and is small enough to live on the . /// stack (large types are boxed to avoid stack overflows). . fn is_small_non_trait_box<'tcx>(cx: &LateContext<'tcx>, ty: Ty<'tcx>, too_large_for_stack: u64) -> bool { 1,316 ( 0.00%) ty.boxed_ty().is_some_and(|boxed| { 4,404 ( 0.00%) => ???:::boxed_ty (658x) . !boxed.is_trait() && cx.layout_of(boxed).map_or(0, |l| l.size.bytes()) <= too_large_for_stack . }) . } . . struct EscapeDelegate { . set: HirIdSet, . } . . impl<'tcx> LateLintPass<'tcx> for BoxedLocal { 17,740 ( 0.00%) fn check_fn( . &mut self, . cx: &LateContext<'tcx>, . fn_kind: intravisit::FnKind<'tcx>, . _: &'tcx FnDecl<'_>, . body: &'tcx Body<'_>, . _: Span, . fn_def_id: LocalDefId, . ) { . // Skip closures 8,374 ( 0.00%) if matches!(fn_kind, intravisit::FnKind::Closure) { . return; . } . . if let Some(header) = fn_kind.header() 5,067 ( 0.00%) && header.abi != ExternAbi::Rust . { . return; . } . 1,689 ( 0.00%) let parent_id = cx . .tcx 1,689 ( 0.00%) .hir_get_parent_item(cx.tcx.local_def_id_to_hir_id(fn_def_id)) 163,108 ( 0.00%) => ???:::hir_get_parent_item (1,689x) . .def_id; . 1,689 ( 0.00%) let mut trait_self_ty = None; 19,285 ( 0.00%) match cx.tcx.def_kind(parent_id) { . // If the method is an impl for a trait, don't warn. . DefKind::Impl { of_trait: true } => return, . . // find `self` ty for this trait if relevant . DefKind::Trait => { 3 ( 0.00%) trait_self_ty = Some(TraitRef::identity(cx.tcx, parent_id.to_def_id()).self_ty()); . }, . . _ => {}, . } . 944 ( 0.00%) let typeck_results = cx.tcx.typeck_body(body.id()); 81,538 ( 0.00%) => ???:::typeck_body (472x) . . // Seed the set with the `Box` parameters that could be unboxed. The `ExprUseVisitor` walk . // below then removes any that escape by being moved or borrowed. 944 ( 0.00%) let set: HirIdSet = body . .params . .iter() . .filter_map(|param| { . // Only simple bindings (`x: Box<_>`) bind a local that the walk can track and report. 1,316 ( 0.00%) if !matches!(param.pat.kind, PatKind::Binding(..)) { . return None; . } . 1,974 ( 0.00%) let ty = typeck_results.pat_ty(param.pat); 26,320 ( 0.00%) => ???:::pat_ty (658x) 658 ( 0.00%) if !is_small_non_trait_box(cx, ty, self.too_large_for_stack) { . return None; . } . . // skip `self` parameters whose type contains `Self` (i.e.: `self: Box`), see #4804 . if let Some(trait_self_ty) = trait_self_ty . && cx.tcx.hir_name(param.pat.hir_id) == kw::SelfLower . && ty.contains(trait_self_ty) . { -- line 128 ---------------------------------------- -- line 129 ---------------------------------------- . return None; . } . . Some(param.pat.hir_id) . }) . .collect(); . . // Without any candidate parameter, the expensive `ExprUseVisitor` walk can never lint. 472 ( 0.00%) if set.is_empty() { . return; . } . . let mut v = EscapeDelegate { set }; . . ExprUseVisitor::for_clippy(cx, fn_def_id, &mut v) . .consume_body(body) . .into_ok(); -- line 145 ---------------------------------------- -- line 148 ---------------------------------------- . span_lint_hir( . cx, . BOXED_LOCAL, . node, . cx.tcx.hir_span(node), . "local variable doesn't need to be boxed here", . ); . } 14,192 ( 0.00%) } . } . . impl<'tcx> Delegate<'tcx> for EscapeDelegate { . fn consume(&mut self, cmt: &PlaceWithHirId<'tcx>, _: HirId) { . if cmt.place.projections.is_empty() . && let PlaceBase::Local(lid) = cmt.place.base . { . // FIXME(rust/#120456) - is `swap_remove` correct? -- line 164 ---------------------------------------- 6,197 ( 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/span_encoding.rs -------------------------------------------------------------------------------- Ir -- line 72 ---------------------------------------- . /// the form of the code. No crates in `rustc-perf` need more than 15 bits . /// for `ctxt_or_parent_or_marker`, but larger crates might need more than 16 . /// bits. The number of bits needed for `parent` hasn't been measured, . /// because `parent` isn't currently used by default. . /// . /// In order to reliably use parented spans in incremental compilation, . /// accesses to `lo` and `hi` must introduce a dependency to the parent definition's span. . /// This is performed using the callback `SPAN_TRACK` to access the query engine. 57,539 ( 0.00%) #[derive(Clone, Copy, Eq, PartialEq, Hash)] . #[rustc_pass_by_value] . pub struct Span { 145 ( 0.00%) lo_or_index: u32, 126 ( 0.00%) len_with_tag_or_marker: u16, 63 ( 0.00%) ctxt_or_parent_or_marker: u16, . } . . // Convenience structures for all span formats. . #[derive(Clone, Copy)] . struct InlineCtxt { . lo: u32, . len: u16, . ctxt: u16, -- line 93 ---------------------------------------- -- line 109 ---------------------------------------- . #[derive(Clone, Copy)] . struct Interned { . index: u32, . } . . impl InlineCtxt { . #[inline] . fn data(self) -> SpanData { 19,904 ( 0.00%) let len = self.len as u32; . debug_assert!(len <= MAX_LEN); 35,020 ( 0.00%) SpanData { . lo: BytePos(self.lo), . hi: BytePos(self.lo.debug_strict_add(len)), . ctxt: SyntaxContext::from_u16(self.ctxt), . parent: None, . } . } . #[inline] . fn span(lo: u32, len: u16, ctxt: u16) -> Span { -- line 127 ---------------------------------------- -- line 159 ---------------------------------------- . (span.lo_or_index, span.len_with_tag_or_marker, span.ctxt_or_parent_or_marker); . InlineParent { lo, len_with_tag, parent } . } . } . . impl PartiallyInterned { . #[inline] . fn data(self) -> SpanData { 93 ( 0.00%) SpanData { . ctxt: SyntaxContext::from_u16(self.ctxt), 56 ( 0.00%) ..with_span_interner(|interner| interner.spans[self.index as usize]) . } . } . #[inline] . fn span(index: u32, ctxt: u16) -> Span { . let (lo_or_index, len_with_tag_or_marker, ctxt_or_parent_or_marker) = . (index, BASE_LEN_INTERNED_MARKER, ctxt); . Span { lo_or_index, len_with_tag_or_marker, ctxt_or_parent_or_marker } . } -- line 177 ---------------------------------------- -- line 204 ---------------------------------------- . macro_rules! match_span_kind { . ( . $span:expr, . InlineCtxt($span1:ident) => $arm1:expr, . InlineParent($span2:ident) => $arm2:expr, . PartiallyInterned($span3:ident) => $arm3:expr, . Interned($span4:ident) => $arm4:expr, . ) => { 3,203,368 ( 0.08%) if $span.len_with_tag_or_marker != BASE_LEN_INTERNED_MARKER { 5,920,942 ( 0.15%) if $span.len_with_tag_or_marker & PARENT_TAG == 0 { . // Inline-context format. . let $span1 = InlineCtxt::from_span($span); . $arm1 . } else { . // Inline-parent format. . let $span2 = InlineParent::from_span($span); . $arm2 . } 143,854 ( 0.00%) } else if $span.ctxt_or_parent_or_marker != CTXT_INTERNED_MARKER { . // Partially-interned format. . let $span3 = PartiallyInterned::from_span($span); . $arm3 . } else { . // Interned format. . let $span4 = Interned::from_span($span); . $arm4 . } -- line 230 ---------------------------------------- -- line 240 ---------------------------------------- . const CTXT_INTERNED_MARKER: u16 = 0b1111_1111_1111_1111; . . /// The dummy span has zero position, length, and context, and no parent. . pub const DUMMY_SP: Span = . Span { lo_or_index: 0, len_with_tag_or_marker: 0, ctxt_or_parent_or_marker: 0 }; . . impl Span { . #[inline] 1,014 ( 0.00%) pub fn new( . mut lo: BytePos, . mut hi: BytePos, . ctxt: SyntaxContext, . parent: Option, . ) -> Self { 4,619 ( 0.00%) if lo > hi { . std::mem::swap(&mut lo, &mut hi); . } . . // Small len and ctxt may enable one of fully inline formats (or may not). 169 ( 0.00%) let (len, ctxt32) = (hi.0 - lo.0, ctxt.as_u32()); 20,184 ( 0.00%) if len <= MAX_LEN && ctxt32 <= MAX_CTXT { 10,942 ( 0.00%) match parent { . None => return InlineCtxt::span(lo.0, len as u16, ctxt32 as u16), . Some(parent) => { . let parent32 = parent.local_def_index.as_u32(); . if ctxt32 == 0 && parent32 <= MAX_CTXT { . return InlineParent::span(lo.0, len as u16, parent32 as u16); . } . } . } . } . . // Otherwise small ctxt may enable the partially inline format. . let index = |ctxt| { 1,530 ( 0.00%) with_span_interner(|interner| interner.intern(&SpanData { lo, hi, ctxt, parent })) 29,117 ( 0.00%) => ???:::intern (153x) . }; 153 ( 0.00%) if ctxt32 <= MAX_CTXT { . // Interned ctxt should never be read, so it can use any value. 306 ( 0.00%) PartiallyInterned::span(index(SyntaxContext::from_u32(u32::MAX)), ctxt32 as u16) . } else { . Interned::span(index(ctxt)) . } 29,793 ( 0.00%) } . . #[inline] 4,116 ( 0.00%) pub fn data(self) -> SpanData { . let data = self.data_untracked(); 10,133 ( 0.00%) if let Some(parent) = data.parent { . (*SPAN_TRACK)(parent); . } . data 2,352 ( 0.00%) } . . /// Internal function to translate between an encoded span and the expanded representation. . /// This function must not be used outside the incremental engine. . #[inline] 56 ( 0.00%) pub fn data_untracked(self) -> SpanData { . match_span_kind! { . self, . InlineCtxt(span) => span.data(), . InlineParent(span) => span.data(), 56 ( 0.00%) PartiallyInterned(span) => span.data(), . Interned(span) => span.data(), . } 14 ( 0.00%) } . . /// Returns `true` if this span comes from any kind of macro, desugaring or inlining. . #[inline] . pub fn from_expansion(self) -> bool { . let ctxt = match_span_kind! { . self, . // All branches here, except `InlineParent`, actually return `span.ctxt_or_parent_or_marker`. . // Since `Interned` is selected if the field contains `CTXT_INTERNED_MARKER` returning that value -- line 312 ---------------------------------------- -- line 321 ---------------------------------------- . Interned(_span) => SyntaxContext::from_u16(CTXT_INTERNED_MARKER), . }; . !ctxt.is_root() . } . . /// Returns `true` if this is a dummy span with any hygienic context. . #[inline] . pub fn is_dummy(self) -> bool { 10 ( 0.00%) if self.len_with_tag_or_marker != BASE_LEN_INTERNED_MARKER { . // Inline-context or inline-parent format. . let lo = self.lo_or_index; . let len = (self.len_with_tag_or_marker & !PARENT_TAG) as u32; . debug_assert!(len <= MAX_LEN); 15 ( 0.00%) lo == 0 && len == 0 . } else { . // Fully-interned or partially-interned format. . let index = self.lo_or_index; . let data = with_span_interner(|interner| interner.spans[index as usize]); . data.lo == BytePos(0) && data.hi == BytePos(0) . } . } . -- line 342 ---------------------------------------- -- line 344 ---------------------------------------- . pub fn map_ctxt(self, map: impl FnOnce(SyntaxContext) -> SyntaxContext) -> Span { . let data = match_span_kind! { . self, . InlineCtxt(span) => { . // This format occurs 1-2 orders of magnitude more often than others (#125017), . // so it makes sense to micro-optimize it to avoid `span.data()` and `Span::new()`. . let new_ctxt = map(SyntaxContext::from_u16(span.ctxt)); . let new_ctxt32 = new_ctxt.as_u32(); 1,664 ( 0.00%) return if new_ctxt32 <= MAX_CTXT { . // Any small new context including zero will preserve the format. 832 ( 0.00%) InlineCtxt::span(span.lo, span.len, new_ctxt32 as u16) . } else { . span.data().with_ctxt(new_ctxt) . }; . }, . InlineParent(span) => span.data(), . PartiallyInterned(span) => span.data(), . Interned(span) => span.data(), . }; . . data.with_ctxt(map(data.ctxt)) 2,496 ( 0.00%) } . . // Returns either syntactic context, if it can be retrieved without taking the interner lock, . // or an index into the interner if it cannot. . #[inline] . fn inline_ctxt(self) -> Result { . match_span_kind! { . self, . InlineCtxt(span) => Ok(SyntaxContext::from_u16(span.ctxt)), -- line 373 ---------------------------------------- -- line 382 ---------------------------------------- . #[cfg_attr(not(test), rustc_diagnostic_item = "SpanCtxt")] . #[inline] . pub fn ctxt(self) -> SyntaxContext { . self.inline_ctxt() . .unwrap_or_else(|index| with_span_interner(|interner| interner.spans[index].ctxt)) . } . . #[inline] 32 ( 0.00%) pub fn eq_ctxt(self, other: Span) -> bool { 8,178 ( 0.00%) match (self.inline_ctxt(), other.inline_ctxt()) { . (Ok(ctxt1), Ok(ctxt2)) => ctxt1 == ctxt2, . // If `inline_ctxt` returns `Ok` the context is <= MAX_CTXT. . // If it returns `Err` the span is fully interned and the context is > MAX_CTXT. . // As these do not overlap an `Ok` and `Err` result cannot have an equal context. . (Ok(_), Err(_)) | (Err(_), Ok(_)) => false, . (Err(index1), Err(index2)) => with_span_interner(|interner| { . interner.spans[index1].ctxt == interner.spans[index2].ctxt . }), . } 8 ( 0.00%) } . . #[inline] . pub fn with_parent(self, parent: Option) -> Span { . let data = match_span_kind! { . self, . InlineCtxt(span) => { . // This format occurs 1-2 orders of magnitude more often than others (#126544), . // so it makes sense to micro-optimize it to avoid `span.data()` and `Span::new()`. -- line 409 ---------------------------------------- -- line 466 ---------------------------------------- . let (index, _) = self.spans.insert_full(*span_data); . index as u32 . } . } . . // If an interner exists, return it. Otherwise, prepare a fresh one. . #[inline] . fn with_span_interner T>(f: F) -> T { 1,224 ( 0.00%) crate::with_session_globals(|session_globals| f(&mut session_globals.span_interner.lock())) . } 2,118,288 ( 0.05%) -------------------------------------------------------------------------------- -- 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) { 2,570 ( 0.00%) if self.automatically_derived_at.is_none() . && item . .attrs() . .iter() . .any(|attr| attr.has_name(sym::automatically_derived)) . { . 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); . } . 12,523 ( 0.00%) fn check_fn(&mut self, cx: &EarlyContext<'_>, kind: FnKind<'_>, _: Span, _: NodeId) { 3,578 ( 0.00%) let FnKind::Fn(ctxt, _vis, f) = kind else { . return; . }; . . // Skip foreign functions (extern "C" etc.) 6,816 ( 0.00%) if !matches!(ctxt, FnCtxt::Free | FnCtxt::Assoc(..)) { . return; . } . . // Skip automatically derived functions . if self.automatically_derived_at.is_some() { . return; . } . 6,816 ( 0.00%) if f.sig.span.in_external_macro(cx.sess().source_map()) { . return; . } . . lint_fn(cx, f); 14,312 ( 0.00%) } . } . . fn lint_fn(cx: &EarlyContext<'_>, f: &Fn) { . let generics = &f.generics; . let offenders: Vec<&GenericParam> = generics . .params . .iter() . .filter(|param| { 449 ( 0.00%) !param.bounds.is_empty() && matches!(param.kind, GenericParamKind::Lifetime | GenericParamKind::Type { .. }) . }) . .collect(); 1,704 ( 0.00%) if offenders.is_empty() { . return; . } . . let predicates = offenders . .iter() 417 ( 0.00%) .map(|param| build_predicate_text(cx, param)) 257,258 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/inline_trait_bounds.rs:clippy_lints::inline_trait_bounds::build_predicate_text (139x) . .collect::>(); . . let mut edits = Vec::new(); . 138 ( 0.00%) for param in offenders { 417 ( 0.00%) if let Some(colon) = param.colon_span { 139 ( 0.00%) let remove_span = colon.to(param.bounds.last().unwrap().span()); 12,927 ( 0.00%) => ???:::to (139x) . . edits.push((remove_span, String::new())); . } . } . . let predicate_text = predicates.join(", "); . . let where_clause = &generics.where_clause; 414 ( 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 . (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}")) . }; . . edits.push((insert_at, suffix)); . } else { 414 ( 0.00%) let insert_at = match &f.sig.decl.output { 6 ( 0.00%) FnRetTy::Default(span) => span.shrink_to_lo(), 792 ( 0.00%) FnRetTy::Ty(ty) => ty.span.shrink_to_hi(), . }; 966 ( 0.00%) edits.push((insert_at, format!(" where {predicate_text}"))); . } . 1,104 ( 0.00%) span_lint_and_then( 116,638 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/diagnostics.rs:clippy_utils::diagnostics::span_lint_and_then:: (138x) . cx, . INLINE_TRAIT_BOUNDS, 138 ( 0.00%) generics.span, . "inline trait bounds used", 552 ( 0.00%) |diag| { . diag.multipart_suggestion( . "move bounds to a `where` clause", . edits, . Applicability::MachineApplicable, . ); . }, . ); 276 ( 0.00%) } 5,244 ( 0.00%) => ???:__rustc::__rdl_dealloc (138x) . 695 ( 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(); . 278 ( 0.00%) let bounds_span = first.span().to(last.span()); 12,927 ( 0.00%) => ???:::to (139x) . 139 ( 0.00%) let lhs = snippet(cx, param.ident.span, ".."); . . let rhs = snippet(cx, bounds_span, ".."); . 834 ( 0.00%) format!("{lhs}: {rhs}") 973 ( 0.00%) } 2,282 ( 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%) } . 217,552 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 219,913 ( 0.01%) if let ExprKind::Call(fun, [arg]) = expr.kind 2,361 ( 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), . } 54,468 ( 0.00%) } else if let ExprKind::Loop(block, _, _, span) = expr.kind { 80 ( 0.00%) self.loop_stack.push((block.hir_id.owner, span)); . } 217,552 ( 0.01%) } . . fn check_expr_post(&mut self, _: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 190,358 ( 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 ---------------------------------------- 2,362 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/methods/unnecessary_fallible_conversions.rs -------------------------------------------------------------------------------- Ir -- line 157 ---------------------------------------- . path.ident.span, . ); . } . } . . /// Checks function call exprs: . /// - `>::try_from(0i32)` . /// - `<_ as TryInto>::try_into(0i32)` 10,248 ( 0.00%) pub(super) fn check_function(cx: &LateContext<'_>, expr: &Expr<'_>, callee: &Expr<'_>) { 4,392 ( 0.00%) if let ExprKind::Path(ref qpath) = callee.kind 10,248 ( 0.00%) && let Some(item_def_id) = cx.qpath_res(qpath, callee.hir_id).opt_def_id() 51,626 ( 0.00%) => ???:::qpath_res (1,464x) 7,250 ( 0.00%) && let Some(trait_def_id) = cx.tcx.trait_of_assoc(item_def_id) 152,424 ( 0.00%) => ???:::trait_of_assoc (1,450x) . { 136 ( 0.00%) let qpath_spans = match qpath { . QPath::Resolved(_, path) => { 56 ( 0.00%) if let [trait_seg, fn_seg] = path.segments { . Some(SpansKind::TraitFn { 32 ( 0.00%) trait_span: trait_seg.ident.span, 16 ( 0.00%) fn_span: fn_seg.ident.span, . }) . } else { . None . } . }, . QPath::TypeRelative(_, seg) => Some(SpansKind::Fn { 192 ( 0.00%) fn_span: seg.ident.span, . }), . }; . . check( . cx, . expr, 272 ( 0.00%) cx.typeck_results().node_args(callee.hir_id), 2,691 ( 0.00%) => ???:::node_args (68x) 748 ( 0.00%) match cx.tcx.get_diagnostic_name(trait_def_id) { 4,712 ( 0.00%) => ???:::get_diagnostic_name (68x) . Some(sym::TryFrom) => FunctionKind::TryFromFunction(qpath_spans), . Some(sym::TryInto) => FunctionKind::TryIntoFunction(qpath_spans), . _ => return, . }, . callee.span, . ); . } 11,712 ( 0.00%) } 4,716 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/manual_take.rs -------------------------------------------------------------------------------- Ir -- line 48 ---------------------------------------- . . impl ManualTake { . pub fn new(conf: &'static Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl LateLintPass<'_> for ManualTake { 217,552 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'_>, expr: &Expr<'_>) { 55,946 ( 0.00%) if let ExprKind::If(cond, then, Some(otherwise)) = expr.kind 432 ( 0.00%) && let ExprKind::Path(_) = cond.kind 18 ( 0.00%) && let ExprKind::Block( . Block { 21 ( 0.00%) stmts: [stmt], . expr: Some(then_expr), . .. . }, . .., 4 ( 0.00%) ) = then.kind . && let ExprKind::Block( . Block { . stmts: [], . expr: Some(else_expr), . .. . }, . .., . ) = otherwise.kind -- line 74 ---------------------------------------- -- line 98 ---------------------------------------- . expr.span, . "use", . format!("{negate}{std_or_core}::mem::take(&mut {taken})"), . app, . ); . }, . ); . } 217,552 ( 0.01%) } . } . . fn as_const_bool(e: &Expr<'_>) -> Option { . if let ExprKind::Lit(lit) = e.kind . && let LitKind::Bool(b) = lit.node . { . Some(b) . } else { -- line 114 ---------------------------------------- -------------------------------------------------------------------------------- -- 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(); . 72,805 ( 0.00%) if start > end || end > slice.len() { . return false; . } . 34,850 ( 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 { 48,398 ( 0.00%) (start == 0 || bytes.as_ptr().add(start).read().is_utf8_char_boundary()) 31,848 ( 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 { 63,274 ( 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> { 26,711 ( 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 { 1,689 ( 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> { 863 ( 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 447 ---------------------------------------- . #[inline] . unsafe fn get_unchecked_mut(self, slice: *mut str) -> *mut Self::Output { . // SAFETY: the caller has to uphold the safety contract for `get_unchecked_mut`. . unsafe { (0..self.end).get_unchecked_mut(slice) } . } . #[inline] . fn index(self, slice: &str) -> &Self::Output { . let end = self.end; 291 ( 0.00%) match self.get(slice) { . Some(s) => s, . None => super::slice_error_fail(slice, 0, end), . } . } . #[inline] . fn index_mut(self, slice: &mut str) -> &mut Self::Output { . if slice.is_char_boundary(self.end) { . // SAFETY: just checked that `end` is on a char boundary, -- line 463 ---------------------------------------- -- 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> { 38 ( 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 ---------------------------------------- 49,096 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/crate_in_macro_def.rs -------------------------------------------------------------------------------- Ir -- line 48 ---------------------------------------- . pub CRATE_IN_MACRO_DEF, . suspicious, . "using `crate` in a macro definition" . } . . declare_lint_pass!(CrateInMacroDef => [CRATE_IN_MACRO_DEF]); . . impl EarlyLintPass for CrateInMacroDef { 7,710 ( 0.00%) fn check_item(&mut self, cx: &EarlyContext<'_>, item: &Item) { 5,140 ( 0.00%) if let ItemKind::MacroDef(_, macro_def) = &item.kind . && item.attrs.iter().any(is_macro_export) 105 ( 0.00%) && let Some(span) = contains_unhygienic_crate_reference(¯o_def.body.tokens) 104,270 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/crate_in_macro_def.rs:clippy_lints::crate_in_macro_def::contains_unhygienic_crate_reference (21x) . { . span_lint_and_sugg( . cx, . CRATE_IN_MACRO_DEF, . span, . "`crate` references the macro call's crate", . "to reference the macro definition's crate, use", . String::from("$crate"), . Applicability::MachineApplicable, . ); . } 10,280 ( 0.00%) } . } . . fn is_macro_export(attr: &Attribute) -> bool { 1,258 ( 0.00%) if let AttrKind::Normal(normal) = &attr.kind 66 ( 0.00%) && let [segment] = normal.item.path.segments.as_slice() . { . segment.ident.name == sym::macro_export . } else { . false . } . } . 4,408 ( 0.00%) fn contains_unhygienic_crate_reference(tts: &TokenStream) -> Option { . let mut prev_is_dollar = false; . let mut iter = tts.iter(); . while let Some(curr) = iter.next() { 8,514 ( 0.00%) if !prev_is_dollar . && let Some(span) = is_crate_keyword(curr) . && let Some(next) = iter.peek() . && is_token(next, &TokenKind::PathSep) . { . return Some(span); . } 4,269 ( 0.00%) if let TokenTree::Delimited(.., tts) = &curr { 2,120 ( 0.00%) let span = contains_unhygienic_crate_reference(tts); 85,092 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/crate_in_macro_def.rs:clippy_lints::crate_in_macro_def::contains_unhygienic_crate_reference'2 (338x) 1,060 ( 0.00%) if span.is_some() { . return span; . } . } 9,579 ( 0.00%) prev_is_dollar = is_token(curr, &TokenKind::Dollar); 7,774 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/crate_in_macro_def.rs:clippy_lints::crate_in_macro_def::is_token (676x) . } . None 4,408 ( 0.00%) } . . fn is_crate_keyword(tt: &TokenTree) -> Option { 10,294 ( 0.00%) if let TokenTree::Token( . Token { 1,450 ( 0.00%) kind: TokenKind::Ident(kw::Crate, _), . span, . }, . _, . ) = tt . { . Some(*span) . } else { . None . } . } . 9,579 ( 0.00%) fn is_token(tt: &TokenTree, kind: &TokenKind) -> bool { 6,386 ( 0.00%) if let TokenTree::Token(Token { kind: other, .. }, _) = tt { . kind == other . } else { . false . } 12,772 ( 0.00%) } 2,166 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/methods/should_implement_trait.rs -------------------------------------------------------------------------------- Ir -- line 5 ---------------------------------------- . use rustc_lint::LateContext; . use rustc_middle::ty::Ty; . use rustc_span::edition::Edition::{self, Edition2015, Edition2021}; . use rustc_span::{Symbol, kw}; . . use super::SHOULD_IMPLEMENT_TRAIT; . use super::lib::SelfKind; . 10,066 ( 0.00%) pub(super) fn check_impl_item<'tcx>( . cx: &LateContext<'tcx>, . impl_item: &'tcx ImplItem<'_>, . self_ty: Ty<'tcx>, . impl_implements_trait: bool, . first_arg_ty_opt: Option>, . sig: &FnSig<'_>, . ) { . // if this impl block implements a trait, lint in trait definition instead 3,981 ( 0.00%) if !impl_implements_trait && cx.effective_visibilities.is_exported(impl_item.owner_id.def_id) 12,387 ( 0.00%) => ???:::is_exported (221x) . // check missing trait implementations . && let Some(method_config) = TRAIT_METHODS.iter().find(|case| case.method_name == impl_item.ident.name) . && sig.decl.inputs.len() == method_config.param_count . && method_config.output_type.matches(&sig.decl.output) . // in case there is no first arg, since we already have checked the number of arguments . // it's should be always true . && first_arg_ty_opt . .is_none_or(|first_arg_ty| method_config.self_kind.matches(cx, self_ty, first_arg_ty)) -- line 30 ---------------------------------------- -- line 45 ---------------------------------------- . ), . None, . format!( . "consider implementing the trait `{}` or choosing a less ambiguous method name", . method_config.trait_name . ), . ); . } 11,504 ( 0.00%) } . . struct ShouldImplTraitCase { . trait_name: &'static str, . method_name: Symbol, . param_count: usize, . // implicit self kind expected (none, self, &self, ...) . self_kind: SelfKind, . // checks against the output type -- line 61 ---------------------------------------- 1,285 ( 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 { 271,940 ( 0.01%) fn check_expr<'tcx>(&mut self, cx: &LateContext<'tcx>, expr: &Expr<'tcx>) { 81,582 ( 0.00%) if expr.span.in_external_macro(cx.sess().source_map()) { . return; . } . 46,638 ( 0.00%) match expr.kind { . // `T::BITS - n.leading_zeros()` . ExprKind::Binary(op, left, right) . if op.node == BinOpKind::Sub 78 ( 0.00%) && let ExprKind::MethodCall(leading_zeros, recv, [], _) = right.kind 3 ( 0.00%) && 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) . && left.span.eq_ctxt(right.span) -- line 119 ---------------------------------------- -- 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); . } . }, . _ => {}, . } 217,552 ( 0.01%) } . } . . 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: 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 { 14,192 ( 0.00%) fn check_fn( . &mut self, . cx: &LateContext<'tcx>, . k: FnKind<'tcx>, . decl: &'tcx FnDecl<'_>, . body: &'tcx Body<'_>, . _: Span, . _: LocalDefId, . ) { 3,548 ( 0.00%) if !matches!(k, FnKind::Closure) { . for arg in iter_input_pats(decl, body) { 9,445 ( 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", . ); . } . } . } 14,192 ( 0.00%) } . 16,440 ( 0.00%) fn check_stmt(&mut self, cx: &LateContext<'tcx>, stmt: &'tcx Stmt<'_>) { 4,816 ( 0.00%) if let StmtKind::Let(local) = stmt.kind 3,396 ( 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,440 ( 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)> { 44,536 ( 0.00%) if let ExprKind::MethodCall(MethodCall { . seg: name_ident, . receiver, . .. . }) = &expr.kind 2,680 ( 0.00%) && let method_name = name_ident.ident.name 16,080 ( 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 { 155,876 ( 0.00%) fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { 2,680 ( 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, . ); . } 178,144 ( 0.00%) } . } 2,680 ( 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 { 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx hir::Expr<'_>) { 59,748 ( 0.00%) if let hir::ExprKind::MethodCall(is_some_path, to_digit_expr, [], _) = &expr.kind 3,094 ( 0.00%) && is_some_path.ident.name == sym::is_some . { 160 ( 0.00%) let match_result = match to_digit_expr.kind { 36 ( 0.00%) hir::ExprKind::MethodCall(to_digits_path, char_arg, [radix_arg], _) => { 4 ( 0.00%) 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 . } . }, . hir::ExprKind::Call(to_digits_call, [char_arg, radix_arg]) => { -- line 65 ---------------------------------------- -- line 89 ---------------------------------------- . format!("{char_arg_snip}.is_digit({radix_snip})") . } else { . format!("char::is_digit({char_arg_snip}, {radix_snip})") . }, . applicability, . ); . } . } 217,552 ( 0.01%) } . } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/asm_syntax.rs -------------------------------------------------------------------------------- Ir -- line 136 ---------------------------------------- . if let ItemKind::GlobalAsm(inline_asm) = &item.kind { . check_asm_syntax(INLINE_ASM_X86_INTEL_SYNTAX, cx, inline_asm, item.span, AsmStyle::Intel); . } . } . } . . impl EarlyLintPass for InlineAsmX86AttSyntax { . fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { 39,176 ( 0.00%) if let ExprKind::InlineAsm(inline_asm) = &expr.kind { . check_asm_syntax(INLINE_ASM_X86_ATT_SYNTAX, cx, inline_asm, expr.span, AsmStyle::Att); . } . } . . fn check_item(&mut self, cx: &EarlyContext<'_>, item: &Item) { 6,966 ( 0.00%) if let ItemKind::GlobalAsm(inline_asm) = &item.kind { . check_asm_syntax(INLINE_ASM_X86_ATT_SYNTAX, cx, inline_asm, item.span, AsmStyle::Att); . } . } . } -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/mut_key.rs -------------------------------------------------------------------------------- Ir -- line 70 ---------------------------------------- . impl_lint_pass!(MutableKeyType<'_> => [MUTABLE_KEY_TYPE]); . . pub struct MutableKeyType<'tcx> { . interior_mut: InteriorMut<'tcx>, . } . . impl<'tcx> LateLintPass<'tcx> for MutableKeyType<'tcx> { . fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx hir::Item<'tcx>) { 6,384 ( 0.00%) if let hir::ItemKind::Fn { ref sig, .. } = item.kind { 992 ( 0.00%) self.check_sig(cx, item.owner_id.def_id, sig.decl); 84,637 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/mut_key.rs:::check_sig (248x) . } . } . . fn check_impl_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx hir::ImplItem<'tcx>) { 3,008 ( 0.00%) if let hir::ImplItemKind::Fn(ref sig, ..) = item.kind 7,190 ( 0.00%) && trait_ref_of_method(cx, item.owner_id).is_none() 282,080 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::trait_ref_of_method (1,438x) . { 884 ( 0.00%) self.check_sig(cx, item.owner_id.def_id, sig.decl); 110,211 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/mut_key.rs:::check_sig (221x) . } . } . . fn check_trait_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx hir::TraitItem<'tcx>) { 44 ( 0.00%) if let hir::TraitItemKind::Fn(ref sig, ..) = item.kind { 72 ( 0.00%) self.check_sig(cx, item.owner_id.def_id, sig.decl); 6,364 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/mut_key.rs:::check_sig (18x) . } . } . . fn check_local(&mut self, cx: &LateContext<'tcx>, local: &hir::LetStmt<'tcx>) { 2,118 ( 0.00%) if let hir::PatKind::Wild = local.pat.kind { . return; . } 4,879 ( 0.00%) self.check_ty_(cx, local.span, cx.typeck_results().pat_ty(local.pat)); 41,273 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/mut_key.rs:::check_ty_ (697x) 27,960 ( 0.00%) => ???:::pat_ty (697x) . } . } . . impl<'tcx> MutableKeyType<'tcx> { . pub fn new(tcx: TyCtxt<'tcx>, conf: &'static Conf) -> Self { . Self { 1 ( 0.00%) interior_mut: InteriorMut::without_pointers(tcx, &conf.ignore_interior_mutability), 1,145 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:::without_pointers (1x) . } . } . 5,357 ( 0.00%) fn check_sig(&mut self, cx: &LateContext<'tcx>, fn_def_id: LocalDefId, decl: &hir::FnDecl<'tcx>) { 487 ( 0.00%) let fn_sig = cx.tcx.fn_sig(fn_def_id).instantiate_identity().skip_norm_wip(); 2,428 ( 0.00%) for (hir_ty, ty) in iter::zip(decl.inputs, fn_sig.inputs().skip_binder()) { 3,365 ( 0.00%) self.check_ty_(cx, hir_ty.span, *ty); 40,148 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/mut_key.rs:::check_ty_ (673x) . } 2,435 ( 0.00%) self.check_ty_( 33,650 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/mut_key.rs:::check_ty_ (487x) . cx, . decl.output.span(), 1,461 ( 0.00%) cx.tcx.instantiate_bound_regions_with_erased(fn_sig.output()), 77,081 ( 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:: (487x) . ); 3,896 ( 0.00%) } . . // We want to lint 1. sets or maps with 2. not immutable key types and 3. no unerased . // generics (because the compiler cannot ensure immutability for unknown types). 14,856 ( 0.00%) fn check_ty_(&mut self, cx: &LateContext<'tcx>, span: Span, ty: Ty<'tcx>) { . let ty = ty.peel_refs(); . if let ty::Adt(def, args) = ty.kind() 6,190 ( 0.00%) && matches!( 4,952 ( 0.00%) cx.tcx.get_diagnostic_name(def.did()), 61,816 ( 0.00%) => ???:::get_diagnostic_name (1,238x) . Some(sym::HashMap | sym::BTreeMap | sym::HashSet | sym::BTreeSet) . ) . { . let subst_ty = args.type_at(0); . if let Some(chain) = self.interior_mut.interior_mut_ty_chain(cx, subst_ty) { . span_lint_and_then(cx, MUTABLE_KEY_TYPE, span, "mutable key type", |diag| { . for ty in chain.iter().rev() { . diag.note(with_forced_trimmed_paths!(format!( . "... because it contains `{ty}`, which has interior mutability" . ))); . } . }); . } . } 11,142 ( 0.00%) } . } 1,247 ( 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 55 ---------------------------------------- . #[inline] . pub fn is_frozen(&self) -> bool { . self.frozen.load(Ordering::Acquire) . } . . /// Get the inner value if frozen. . #[inline] . pub fn get(&self) -> Option<&T> { 5 ( 0.00%) if self.frozen.load(Ordering::Acquire) { . // SAFETY: This is frozen so the data cannot be modified. . unsafe { Some(&*self.data.get()) } . } else { . hint::cold_path(); . None . } . } . . #[inline] . pub fn read(&self) -> FreezeReadGuard<'_, T> { . FreezeReadGuard { 27,364 ( 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> { 10,596 ( 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 ---------------------------------------- 13,682 ( 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 163,164 ( 0.00%) pub fn hir(expr: &Expr<'tcx>) -> Option { 54,418 ( 0.00%) if let ExprKind::DropTemps(e) = expr.kind 210 ( 0.00%) && let ExprKind::Match(iterexpr, [arm], MatchSource::ForLoopDesugar) = e.kind 120 ( 0.00%) && let ExprKind::Call(_, [arg]) = iterexpr.kind 240 ( 0.00%) && let ExprKind::Loop(block, label, ..) = arm.body.kind 90 ( 0.00%) && let [stmt] = block.stmts 90 ( 0.00%) && let hir::StmtKind::Expr(e) = stmt.kind 150 ( 0.00%) && let ExprKind::Match(_, [_, some_arm], _) = e.kind 180 ( 0.00%) && let hir::PatKind::Struct(_, [field], _) = some_arm.pat.kind . { 330 ( 0.00%) return Some(Self { 30 ( 0.00%) pat: field.pat, . arg, 30 ( 0.00%) body: some_arm.body, 60 ( 0.00%) loop_id: arm.body.hir_id, 60 ( 0.00%) span: expr.span.ctxt().outer_expn_data().call_site, . label, . }); . } 27,164 ( 0.00%) None 163,164 ( 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 { 314,564 ( 0.01%) if let ExprKind::If(cond, then, r#else) = expr.kind 22,343 ( 0.00%) && !has_let_expr(cond) 2,034 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/higher.rs:clippy_utils::higher::has_let_expr (78x) . { . 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 82,939 ( 0.00%) pub fn hir(cx: &LateContext<'_>, expr: &Expr<'hir>) -> Option { 169,522 ( 0.00%) if let ExprKind::If( . &Expr { . kind: . ExprKind::Let(&hir::LetExpr { 618 ( 0.00%) pat: let_pat, . init: let_expr, 309 ( 0.00%) span: let_span, . .. . }), . .. . }, 309 ( 0.00%) if_then, 309 ( 0.00%) if_else, 1,822 ( 0.00%) ) = expr.kind . { 618 ( 0.00%) let mut iter = cx.tcx.hir_parent_iter(expr.hir_id); 1,179 ( 0.00%) if let Some((_, Node::Block(Block { stmts: [], .. }))) = iter.next() 556 ( 0.00%) && let Some(( . _, . Node::Expr(Expr { . kind: ExprKind::Loop(_, _, LoopSource::While, _), . .. . }), 127 ( 0.00%) )) = iter.next() . { . // while loop desugar 48 ( 0.00%) return None; . } 1,140 ( 0.00%) return Some(Self { . let_pat, . let_expr, . if_then, . if_else, . let_span, . }); . } 82,630 ( 0.00%) None 82,939 ( 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 2,964 ( 0.00%) pub fn parse(cx: &LateContext<'_>, expr: &Expr<'hir>) -> Option { 1,976 ( 0.00%) match expr.kind { 1,072 ( 0.00%) ExprKind::Match(expr, arms, source) => Some(Self::Match(expr, arms, source)), 854 ( 0.00%) _ => IfLet::hir(cx, expr).map( 4,661 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir (854x) . |IfLet { . let_expr, . let_pat, . if_then, . if_else, . let_span, . }| { Self::IfLet(let_expr, let_pat, if_then, if_else, let_span) }, . ), . } 3,952 ( 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 { 2,351 ( 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`. 546,810 ( 0.01%) pub fn hir(cx: &LateContext<'_>, expr: &'a Expr<'_>) -> Option> { 109,362 ( 0.00%) let span = expr.range_span()?; 1,331,577 ( 0.03%) => ???:::range_span (54,681x) 784 ( 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,120 ( 0.00%) ExprKind::Struct(&qpath, fields, StructTailExpr::None) => match (cx.tcx.qpath_lang_item(qpath)?, fields) { 12,544 ( 0.00%) => ???:::qpath_lang_item (112x) . (hir::LangItem::RangeFull, []) => (RangeTy::OpsFull, None, None), 312 ( 0.00%) (hir::LangItem::RangeFrom, [start]) if start.ident.name == sym::start => { 104 ( 0.00%) (RangeTy::OpsFrom, Some(start.expr), None) . }, . (hir::LangItem::RangeFromCopy, [start]) if start.ident.name == sym::start => { . (RangeTy::RangeFrom, Some(start.expr), None) . }, 24 ( 0.00%) (hir::LangItem::Range, [start, end] | [end, start]) 16 ( 0.00%) if start.ident.name == sym::start && end.ident.name == sym::end => . { 16 ( 0.00%) (RangeTy::OpsRange, Some(start.expr), Some(end.expr)) 8 ( 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 => . { -- line 248 ---------------------------------------- -- line 255 ---------------------------------------- . (RangeTy::RangeToInclusive, None, Some(last.expr)) . }, . (hir::LangItem::RangeTo, [end]) if end.ident.name == sym::end => (RangeTy::OpsTo, None, Some(end.expr)), . _ => return None, . }, . _ => return None, . }; . 448 ( 0.00%) Some(Range { ty, start, end, span }) 437,560 ( 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!`. 576,198 ( 0.01%) pub fn hir(cx: &LateContext<'_>, expr: &'a Expr<'_>) -> Option> { 174,590 ( 0.00%) if let ExprKind::Call(fun, args) = expr.kind 19,984 ( 0.00%) && let ExprKind::Path(ref qpath) = fun.kind 59,772 ( 0.00%) && is_expn_of(fun.span, sym::vec).is_some() 1,237,356 ( 0.03%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_expn_of (9,962x) 300 ( 0.00%) && let Some(fun_def_id) = cx.qpath_res(qpath, fun.hir_id).opt_def_id() 2,480 ( 0.00%) => ???:::qpath_res (60x) 540 ( 0.00%) && let Some(name) = cx.tcx.get_diagnostic_name(fun_def_id) 4,410 ( 0.00%) => ???:::get_diagnostic_name (60x) . { . return match (name, args) { . (sym::vec_from_elem, [elem, size]) => { . // `vec![elem; size]` case . Some(VecArgs::Repeat(elem, size)) . }, 50 ( 0.00%) (sym::box_assume_init_into_vec_unsafe, [write_box_via_move]) 125 ( 0.00%) if let ExprKind::Call(_, [_box, elems]) = write_box_via_move.kind 75 ( 0.00%) && let ExprKind::Array(elems) = elems.kind => . { . // `vec![a, b, c]` case 50 ( 0.00%) Some(VecArgs::Vec(elems)) 25 ( 0.00%) }, 30 ( 0.00%) (sym::vec_new, []) => Some(VecArgs::Vec(&[])), 9,902 ( 0.00%) _ => None, . }; . } . 9,902 ( 0.00%) None 576,198 ( 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 { 266 ( 0.00%) if let ExprKind::Loop( . Block { . expr: . Some(Expr { . kind: ExprKind::If(condition, body, _), . .. . }), . .. . }, . label, . LoopSource::While, 22 ( 0.00%) span, 150 ( 0.00%) ) = expr.kind 88 ( 0.00%) && !has_let_expr(condition) 530 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/higher.rs:clippy_utils::higher::has_let_expr (22x) . { . 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 { 135,098 ( 0.00%) if let ExprKind::Loop( . &Block { . expr: . Some(&Expr { . kind: . ExprKind::If( . &Expr { . kind: . ExprKind::Let(&hir::LetExpr { 30 ( 0.00%) pat: let_pat, 12 ( 0.00%) init: let_expr, . span: let_span, . .. . }), . .. . }, 6 ( 0.00%) if_then, . _, . ), . .. . }), . .. . }, 12 ( 0.00%) label, . LoopSource::While, . _, 990 ( 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. 6,650 ( 0.00%) pub fn get_vec_init_kind<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) -> Option { 2,155 ( 0.00%) if let ExprKind::Call(func, args) = expr.kind { 1,275 ( 0.00%) match func.kind { 23 ( 0.00%) ExprKind::Path(QPath::TypeRelative(ty, name)) 1,408 ( 0.00%) if cx.typeck_results().node_type(ty.hir_id).is_diag_item(cx, sym::Vec) => 7,216 ( 0.00%) => ???:::node_type (176x) . { 132 ( 0.00%) if name.ident.name == sym::new { 40 ( 0.00%) 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()?; 21 ( 0.00%) return match ConstEvalCtxt::new(cx).eval_local(arg, expr.span.ctxt()) { 675 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::new (3x) 186 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/consts.rs:::eval_local (3x) . Some(Constant::Int(num)) => Some(VecInitKind::WithConstCapacity(num)), 9 ( 0.00%) _ => Some(VecInitKind::WithExprCapacity(arg.hir_id)), . }; . } . }, . ExprKind::Path(QPath::Resolved(_, path)) 1,027 ( 0.00%) if cx.tcx.is_diagnostic_item(sym::default_fn, path.res.opt_def_id()?) 4,856 ( 0.00%) => ???:::is_diagnostic_item (79x) . && cx.typeck_results().expr_ty(expr).is_diag_item(cx, sym::Vec) => . { . return Some(VecInitKind::Default); . }, . _ => (), . } . } . None 8,550 ( 0.00%) } . . /// Checks that a condition doesn't have a `let` expression, to keep `If` and `While` from accepting . /// `if let` and `while let`. 34,400 ( 0.00%) pub const fn has_let_expr<'tcx>(cond: &'tcx Expr<'tcx>) -> bool { 49,672 ( 0.00%) match &cond.kind { . ExprKind::Let(_) => true, 10,490 ( 0.00%) ExprKind::Binary(_, lhs, rhs) => has_let_expr(lhs) || has_let_expr(rhs), 43,233 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/higher.rs:clippy_utils::higher::has_let_expr'2 (1,338x) . _ => false, . } 34,400 ( 0.00%) } 206,547 ( 0.01%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/methods/or_fun_call.rs -------------------------------------------------------------------------------- Ir -- line 16 ---------------------------------------- . use rustc_hir as hir; . use rustc_lint::LateContext; . use rustc_middle::ty; . use rustc_span::{Span, Symbol}; . . use super::{OR_FUN_CALL, UNWRAP_OR_DEFAULT}; . . /// Checks for the `OR_FUN_CALL` lint. 7,284 ( 0.00%) pub(super) fn check<'tcx>( . cx: &LateContext<'tcx>, . expr: &hir::Expr<'_>, . method_span: Span, . name: Symbol, . receiver: &'tcx hir::Expr<'_>, . args: &'tcx [hir::Expr<'_>], . msrv: Msrv, . ) { . // Bail out early unless the method is one that `check_unwrap_or_default` or . // `check_or_fn_call` can lint, to avoid walking the argument of every method call. . if !matches!( . name, 16,200 ( 0.00%) sym::unwrap_or . | sym::unwrap_or_else . | sym::or_insert . | sym::or_insert_with . | sym::get_or_insert . | sym::map_or . | sym::ok_or . | sym::or . | sym::and . ) { . return; . } . 34 ( 0.00%) if let [arg] = args { 7 ( 0.00%) let inner_arg = peel_blocks(arg); 7 ( 0.00%) for_each_expr(cx.tcx, inner_arg, |ex| { . // `or_fun_call` lint needs to take nested expr into account, . // but `unwrap_or_default` lint doesn't, we don't want something like: . // `opt.unwrap_or(Foo { inner: String::default(), other: 1 })` to get replaced by . // `opt.unwrap_or_default()`. 9 ( 0.00%) let is_nested_expr = ex.hir_id != inner_arg.hir_id; . 60 ( 0.00%) let is_triggered = match ex.kind { . hir::ExprKind::Call(fun, fun_args) => { . let inner_fun_has_args = !fun_args.is_empty(); . let fun_span = if inner_fun_has_args || is_nested_expr { . None . } else { . Some(fun.span) . }; . (!inner_fun_has_args . && !is_nested_expr . && check_unwrap_or_default(cx, name, receiver, fun, Some(ex), expr.span, method_span, msrv)) . || check_or_fn_call(cx, name, method_span, receiver, arg, None, expr.span, fun_span) . }, 10 ( 0.00%) hir::ExprKind::Path(..) | hir::ExprKind::Closure(..) if !is_nested_expr => { 52 ( 0.00%) check_unwrap_or_default(cx, name, receiver, ex, None, expr.span, method_span, msrv) 112 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/or_fun_call.rs:clippy_lints::methods::or_fun_call::check_unwrap_or_default (4x) . }, . hir::ExprKind::Index(..) | hir::ExprKind::MethodCall(..) => { . check_or_fn_call(cx, name, method_span, receiver, arg, None, expr.span, None) . }, . _ => false, . }; . 12 ( 0.00%) if is_triggered { . ControlFlow::Break(()) . } else { . ControlFlow::Continue(()) . } . }); . } . . // `map_or` takes two arguments 3 ( 0.00%) if let [arg, lambda] = args { 3 ( 0.00%) let inner_arg = peel_blocks(arg); 3 ( 0.00%) for_each_expr(cx.tcx, inner_arg, |ex| { 3 ( 0.00%) let is_top_most_expr = ex.hir_id == inner_arg.hir_id; 15 ( 0.00%) match ex.kind { . hir::ExprKind::Call(fun, fun_args) => { . let fun_span = if fun_args.is_empty() && is_top_most_expr { . Some(fun.span) . } else { . None . }; . if check_or_fn_call(cx, name, method_span, receiver, arg, Some(lambda), expr.span, fun_span) { . return ControlFlow::Break(()); -- line 102 ---------------------------------------- -- line 107 ---------------------------------------- . { . return ControlFlow::Break(()); . }, . _ => {}, . } . ControlFlow::Continue(()) . }); . } 4,856 ( 0.00%) } . . /// Checks for `unwrap_or(T::new())`, `unwrap_or(T::default())`, . /// `or_insert(T::new())` or `or_insert(T::default())`. . /// Similarly checks for `unwrap_or_else(T::new)`, `unwrap_or_else(T::default)`, . /// `or_insert_with(T::new)` or `or_insert_with(T::default)`. . #[expect(clippy::too_many_arguments)] 48 ( 0.00%) fn check_unwrap_or_default( . cx: &LateContext<'_>, . name: Symbol, . receiver: &hir::Expr<'_>, . fun: &hir::Expr<'_>, . call_expr: Option<&hir::Expr<'_>>, . span: Span, . method_span: Span, . msrv: Msrv, . ) -> bool { 4 ( 0.00%) let sugg = match (name, call_expr.is_some()) { 16 ( 0.00%) (sym::unwrap_or, true) | (sym::unwrap_or_else, false) => sym::unwrap_or_default, . (sym::or_insert, true) | (sym::or_insert_with, false) => sym::or_default, . _ => return false, . }; . . let receiver_ty = cx.typeck_results().expr_ty_adjusted(receiver).peel_refs(); . . // Check MSRV, but only for `Result::unwrap_or_default` . if receiver_ty.is_diag_item(cx, sym::Result) && !msrv.meets(cx, msrvs::RESULT_UNWRAP_OR_DEFAULT) { -- line 141 ---------------------------------------- -- line 232 ---------------------------------------- . format!("{sugg}()"), . Applicability::MachineApplicable, . ); . . true . } else { . false . } 32 ( 0.00%) } . . /// Checks for `*or(foo())`. . #[expect(clippy::too_many_arguments)] . fn check_or_fn_call<'tcx>( . cx: &LateContext<'tcx>, . name: Symbol, . method_span: Span, . self_expr: &hir::Expr<'_>, -- line 248 ---------------------------------------- 4,948 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/methods/unnecessary_to_owned.rs -------------------------------------------------------------------------------- Ir -- line 19 ---------------------------------------- . self, ClauseKind, GenericArg, GenericArgKind, GenericArgsRef, ParamTy, ProjectionPredicate, TraitPredicate, Ty, . }; . use rustc_span::Symbol; . use rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt as _; . use rustc_trait_selection::traits::{Obligation, ObligationCause}; . . use super::UNNECESSARY_TO_OWNED; . 21,852 ( 0.00%) pub fn check<'tcx>( . cx: &LateContext<'tcx>, . expr: &'tcx Expr<'tcx>, . method_name: Symbol, . receiver: &'tcx Expr<'_>, . args: &'tcx [Expr<'_>], . msrv: Msrv, . ) { 31,564 ( 0.00%) if let Some(method_parent_id) = cx.typeck_results().type_dependent_def_id(expr.hir_id).opt_parent(cx) 124,636 ( 0.00%) => ???:::type_dependent_def_id (2,428x) . && args.is_empty() . { . if is_cloned_or_copied(cx, method_name, method_parent_id) { . unnecessary_iter_cloned::check(cx, expr, method_name, receiver); 45 ( 0.00%) } else if is_to_owned_like(cx, expr, method_name, method_parent_id) { . if check_split_call_arg(cx, expr, method_name, receiver) { . return; . } . // At this point, we know the call is of a `to_owned`-like function. The functions . // `check_addr_of_expr` and `check_into_iter_call_arg` determine whether the call is unnecessary . // based on its context, that is, whether it is a referent in an `AddrOf` expression, an . // argument in a `into_iter` call, or an argument in the call of some other function. . if check_addr_of_expr(cx, expr, method_name, method_parent_id, receiver) { -- line 48 ---------------------------------------- -- line 54 ---------------------------------------- . if check_string_from_utf8(cx, expr, receiver) { . return; . } . check_other_call_arg(cx, expr, method_name, receiver); . } . } else { . check_borrow_predicate(cx, expr); . } 19,424 ( 0.00%) } . . /// Checks whether `expr` is a referent in an `AddrOf` expression and, if so, determines whether its . /// call of a `to_owned`-like function is unnecessary. . #[expect(clippy::too_many_lines)] . fn check_addr_of_expr( . cx: &LateContext<'_>, . expr: &Expr<'_>, . method_name: Symbol, . method_parent_id: DefId, . receiver: &Expr<'_>, . ) -> bool { 27 ( 0.00%) if let Some(parent) = get_parent_expr(cx, expr) 891 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_parent_expr (9x) 18 ( 0.00%) && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, _) = parent.kind . && let adjustments = cx.typeck_results().expr_adjustments(parent).iter().collect::>() . && let . // For matching uses of `Cow::from` . [ . Adjustment { . kind: Adjust::Deref(DerefAdjustKind::Builtin), . target: referent_ty, . }, -- line 83 ---------------------------------------- -- line 205 ---------------------------------------- . /// call of a `to_owned`-like function is unnecessary. . fn check_into_iter_call_arg( . cx: &LateContext<'_>, . expr: &Expr<'_>, . method_name: Symbol, . receiver: &Expr<'_>, . msrv: Msrv, . ) -> bool { 36 ( 0.00%) if let Some(parent) = get_parent_expr(cx, expr) 891 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_parent_expr (9x) 36 ( 0.00%) && let Some(callee_def_id) = fn_def_id(cx, parent) 1,233 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::fn_def_id (9x) 9 ( 0.00%) && is_into_iter(cx, callee_def_id) . && let Some(iterator_trait_id) = cx.tcx.get_diagnostic_item(sym::Iterator) . && let parent_ty = cx.typeck_results().expr_ty(parent) . && implements_trait(cx, parent_ty, iterator_trait_id, &[]) . && let Some(item_ty) = get_iterator_item_ty(cx, parent_ty) . && let Some(receiver_snippet) = receiver.span.get_text(cx) . // If the receiver is a `Cow`, we can't remove the `into_owned` generally, see https://github.com/rust-lang/rust-clippy/issues/13624. . && !cx.typeck_results().expr_ty(receiver).is_diag_item(cx, sym::Cow) . // Calling `iter()` on a temporary object can lead to false positives. #14242 -- line 223 ---------------------------------------- -- line 248 ---------------------------------------- . } . false . } . . /// Checks for `&String::from_utf8(bytes.{to_vec,to_owned,...}()).unwrap()` coercing to `&str`, . /// which can be written as just `std::str::from_utf8(bytes).unwrap()`. . fn check_string_from_utf8<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>, receiver: &'tcx Expr<'tcx>) -> bool { . if let Some((call, arg)) = skip_addr_of_ancestors(cx, expr) 18 ( 0.00%) && !arg.span.from_expansion() . && let ExprKind::Call(callee, _) = call.kind . && fn_def_id(cx, call).is_some_and(|did| cx.tcx.is_diagnostic_item(sym::string_from_utf8, did)) . && let Some(unwrap_call) = get_parent_expr(cx, call) . && let ExprKind::MethodCall(unwrap_method_name, ..) = unwrap_call.kind . && matches!(unwrap_method_name.ident.name, sym::unwrap | sym::expect) . && let Some(ref_string) = get_parent_expr(cx, unwrap_call) . && let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, _) = ref_string.kind . && let adjusted_ty = cx.typeck_results().expr_ty_adjusted(ref_string) -- line 264 ---------------------------------------- -- line 306 ---------------------------------------- . } else { . false . } . } . . /// Checks whether `expr` is an argument in an `into_iter` call and, if so, determines whether its . /// call of a `to_owned`-like function is unnecessary. . fn check_split_call_arg(cx: &LateContext<'_>, expr: &Expr<'_>, method_name: Symbol, receiver: &Expr<'_>) -> bool { 27 ( 0.00%) if let Some(parent) = get_parent_expr(cx, expr) 891 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_parent_expr (9x) . && let Some((sym::split, argument_expr)) = get_fn_name_and_arg(cx, parent) . && let Some(receiver_snippet) = receiver.span.get_text(cx) . && let Some(arg_snippet) = argument_expr.span.get_text(cx) . { . // We may end-up here because of an expression like `x.to_string().split(…)` where the type of `x` . // implements `AsRef` but does not implement `Deref`. In this case, we have to . // add `.as_ref()` to the suggestion. . let as_ref = if cx.typeck_results().expr_ty(expr).is_lang_item(cx, LangItem::String) -- line 322 ---------------------------------------- -- line 342 ---------------------------------------- . Applicability::MaybeIncorrect, . ); . return true; . } . false . } . . fn get_fn_name_and_arg<'tcx>(cx: &LateContext<'tcx>, expr: &Expr<'tcx>) -> Option<(Symbol, Expr<'tcx>)> { 27 ( 0.00%) match &expr.kind { 18 ( 0.00%) ExprKind::MethodCall(path, _, [arg_expr], ..) => Some((path.ident.name, *arg_expr)), . ExprKind::Call( . Expr { . kind: ExprKind::Path(qpath), . hir_id: path_hir_id, . .. . }, . [arg_expr], . ) => { -- line 359 ---------------------------------------- -- line 376 ---------------------------------------- . /// of a `to_owned`-like function is unnecessary. . fn check_other_call_arg<'tcx>( . cx: &LateContext<'tcx>, . expr: &'tcx Expr<'tcx>, . method_name: Symbol, . receiver: &'tcx Expr<'tcx>, . ) -> bool { . if let Some((maybe_call, maybe_arg)) = skip_addr_of_ancestors(cx, expr) 99 ( 0.00%) && let Some((callee_def_id, _, recv, call_args)) = get_callee_generic_args_and_args(cx, maybe_call) 1,197 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/unnecessary_to_owned.rs:clippy_lints::methods::unnecessary_to_owned::get_callee_generic_args_and_args (9x) . && let fn_sig = cx.tcx.fn_sig(callee_def_id).instantiate_identity().skip_norm_wip().skip_binder() . && let Some(i) = recv.into_iter().chain(call_args).position(|arg| arg.hir_id == maybe_arg.hir_id) . && let Some(input) = fn_sig.inputs().get(i) 45 ( 0.00%) && let (input, n_refs, _) = peel_and_count_ty_refs(*input) 81 ( 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 (9x) . && let (trait_predicates, _) = get_input_traits_and_projections(cx, callee_def_id, input) 54 ( 0.00%) && let Some(sized_def_id) = cx.tcx.lang_items().sized_trait() 270 ( 0.00%) => ???:::lang_items (9x) 45 ( 0.00%) && let Some(meta_sized_def_id) = cx.tcx.lang_items().meta_sized_trait() 270 ( 0.00%) => ???:::lang_items (9x) 18 ( 0.00%) && let [trait_predicate] = trait_predicates . .iter() . .filter(|trait_predicate| trait_predicate.def_id() != sized_def_id) . .filter(|trait_predicate| trait_predicate.def_id() != meta_sized_def_id) . .collect::>()[..] . && let Some(deref_trait_id) = cx.tcx.get_diagnostic_item(sym::Deref) . && let Some(as_ref_trait_id) = cx.tcx.get_diagnostic_item(sym::AsRef) . && (trait_predicate.def_id() == deref_trait_id || trait_predicate.def_id() == as_ref_trait_id) . && let receiver_ty = cx.typeck_results().expr_ty(receiver) -- line 400 ---------------------------------------- -- line 430 ---------------------------------------- . } . . /// Walks an expression's ancestors until it finds a non-`AddrOf` expression. Returns the first such . /// expression found (if any) along with the immediately prior expression. . fn skip_addr_of_ancestors<'tcx>( . cx: &LateContext<'tcx>, . mut expr: &'tcx Expr<'tcx>, . ) -> Option<(&'tcx Expr<'tcx>, &'tcx Expr<'tcx>)> { 81 ( 0.00%) while let Some(parent) = get_parent_expr(cx, expr) { 1,782 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_parent_expr (18x) 45 ( 0.00%) if let ExprKind::AddrOf(BorrowKind::Ref, Mutability::Not, _) = parent.kind { . expr = parent; . } else { . return Some((parent, expr)); . } . } . None . } . . /// Checks whether an expression is a function or method call and, if so, returns its `DefId`, . /// `GenericArgs`, and arguments. 81 ( 0.00%) fn get_callee_generic_args_and_args<'tcx>( . cx: &LateContext<'tcx>, . expr: &'tcx Expr<'tcx>, . ) -> Option<( . DefId, . GenericArgsRef<'tcx>, . Option<&'tcx Expr<'tcx>>, . &'tcx [Expr<'tcx>], . )> { 27 ( 0.00%) if let ExprKind::Call(callee, args) = expr.kind . && let callee_ty = cx.typeck_results().expr_ty(callee) . && let ty::FnDef(callee_def_id, _) = callee_ty.kind() . { . let generic_args = cx.typeck_results().node_args(callee.hir_id); . return Some((*callee_def_id, generic_args, None, args)); . } . if let ExprKind::MethodCall(_, recv, args, _) = expr.kind 72 ( 0.00%) && let Some(method_def_id) = cx.typeck_results().type_dependent_def_id(expr.hir_id) 459 ( 0.00%) => ???:::type_dependent_def_id (9x) . { 36 ( 0.00%) let generic_args = cx.typeck_results().node_args(expr.hir_id); 306 ( 0.00%) => ???:::node_args (9x) 63 ( 0.00%) return Some((method_def_id, generic_args, Some(recv), args)); . } . None 72 ( 0.00%) } . . /// Returns the `TraitPredicate`s and `ProjectionPredicate`s for a function's input type. . fn get_input_traits_and_projections<'tcx>( . cx: &LateContext<'tcx>, . callee_def_id: DefId, . input: Ty<'tcx>, . ) -> (Vec>, Vec>) { . let mut trait_predicates = Vec::new(); -- line 481 ---------------------------------------- -- line 486 ---------------------------------------- . trait_predicates.push(trait_predicate); . }, . ClauseKind::Projection(projection_predicate) if projection_predicate.projection_term.self_ty() == input => { . projection_predicates.push(projection_predicate); . }, . _ => {}, . } . } 45 ( 0.00%) (trait_predicates, projection_predicates) . } . . #[expect(clippy::too_many_lines)] . fn can_change_type<'a>(cx: &LateContext<'a>, mut expr: &'a Expr<'a>, mut ty: Ty<'a>) -> bool { . for (_, node) in cx.tcx.hir_parent_iter(expr.hir_id) { . match node { . Node::Stmt(_) => return true, . Node::Block(..) => {}, -- line 502 ---------------------------------------- -- line 607 ---------------------------------------- . } . . fn has_lifetime(ty: Ty<'_>) -> bool { . ty.walk().any(|t| matches!(t.kind(), GenericArgKind::Lifetime(_))) . } . . /// Returns true if the named method is `Iterator::cloned` or `Iterator::copied`. . fn is_cloned_or_copied(cx: &LateContext<'_>, method_name: Symbol, method_parent_id: DefId) -> bool { 5,484 ( 0.00%) matches!(method_name, sym::cloned | sym::copied) && method_parent_id.is_diag_item(cx, sym::Iterator) . } . . /// Returns true if the named method can be used to convert the receiver to its "owned" . /// representation. . fn is_to_owned_like<'a>( . cx: &LateContext<'a>, . call_expr: &Expr<'a>, . method_name: Symbol, . method_parent_id: DefId, . ) -> bool { 10,968 ( 0.00%) is_cow_into_owned(cx, method_name, method_parent_id) 21,936 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/unnecessary_to_owned.rs:clippy_lints::methods::unnecessary_to_owned::is_cow_into_owned (1,371x) 10,847 ( 0.00%) || (method_name != sym::to_string && is_clone_like(cx, method_name, method_parent_id)) 15,031 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/implicit_clone.rs:clippy_lints::methods::implicit_clone::is_clone_like (1,355x) . || is_to_string_on_string_like(cx, call_expr, method_name, method_parent_id) . } . . /// Returns true if the named method is `Cow::into_owned`. 8,226 ( 0.00%) fn is_cow_into_owned(cx: &LateContext<'_>, method_name: Symbol, method_parent_id: DefId) -> bool { 1,371 ( 0.00%) method_name == sym::into_owned && method_parent_id.opt_impl_ty(cx).is_diag_item(cx, sym::Cow) 9,597 ( 0.00%) } . . /// Returns true if the named method is `ToString::to_string` and it's called on a type that . /// is string-like i.e. implements `AsRef` or `Deref`. . fn is_to_string_on_string_like<'a>( . cx: &LateContext<'_>, . call_expr: &'a Expr<'a>, . method_name: Symbol, . method_parent_id: DefId, . ) -> bool { 48 ( 0.00%) if method_name != sym::to_string || !method_parent_id.is_diag_item(cx, sym::ToString) { . return false; . } . 75 ( 0.00%) if let Some(args) = cx.typeck_results().node_args_opt(call_expr.hir_id) 585 ( 0.00%) => ???:::node_args_opt (15x) 30 ( 0.00%) && let [generic_arg] = args.as_slice() 15 ( 0.00%) && let GenericArgKind::Type(ty) = generic_arg.kind() 60 ( 0.00%) && let Some(deref_trait_id) = cx.tcx.get_diagnostic_item(sym::Deref) 1,080 ( 0.00%) => ???:::get_diagnostic_item (15x) 60 ( 0.00%) && let Some(as_ref_trait_id) = cx.tcx.get_diagnostic_item(sym::AsRef) 1,080 ( 0.00%) => ???:::get_diagnostic_item (15x) 105 ( 0.00%) && (cx.get_associated_type(ty, deref_trait_id, sym::Target) == Some(cx.tcx.types.str_) 91,196 ( 0.00%) => ???:::get_associated_type (15x) 120 ( 0.00%) || implements_trait(cx, ty, as_ref_trait_id, &[cx.tcx.types.str_.into()])) 56,098 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::implements_trait (15x) . { . true . } else { . false . } . } . . fn std_map_key<'tcx>(cx: &LateContext<'tcx>, ty: Ty<'tcx>) -> Option> { -- line 662 ---------------------------------------- -- line 728 ---------------------------------------- . . // In std "map types", the getters all expect a `Borrow` generic argument. So in here, we . // check that: . // 1. This is a method with only one argument that doesn't come from a trait. . // 2. That it has `Borrow` in its generic predicates. . // 3. `Self` is a std "map type" (ie `HashSet`, `HashMap`, `BTreeSet`, `BTreeMap`). . // 4. The key to the "map type" is not a reference. . fn check_borrow_predicate<'tcx>(cx: &LateContext<'tcx>, expr: &Expr<'tcx>) { 15,371 ( 0.00%) if let ExprKind::MethodCall(_, caller, &[arg], _) = expr.kind 5,065 ( 0.00%) && let Some(method_def_id) = cx.typeck_results().type_dependent_def_id(expr.hir_id) 52,399 ( 0.00%) => ???:::type_dependent_def_id (1,013x) 3,039 ( 0.00%) && cx.tcx.trait_of_assoc(method_def_id).is_none() 184,939 ( 0.00%) => ???:::trait_of_assoc (1,013x) 3,470 ( 0.00%) && let Some(borrow_id) = cx.tcx.get_diagnostic_item(sym::Borrow) 49,968 ( 0.00%) => ???:::get_diagnostic_item (694x) . && cx.tcx.clauses_of(method_def_id).clauses.iter().any(|(clause, _)| { 6,579 ( 0.00%) if let ClauseKind::Trait(trait_pred) = clause.kind().skip_binder() 18,746 ( 0.00%) => ???:::kind (1,339x) . && trait_pred.polarity == ty::PredicatePolarity::Positive . && trait_pred.trait_ref.def_id == borrow_id . { . true . } else { . false . } . }) -- line 749 ---------------------------------------- 22,145 ( 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, . ) { 4,961 ( 0.00%) if let FnRetTy::Return(hir_ty) = decl.output 25 ( 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); . } 1,774 ( 0.00%) } . . fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 137,847 ( 0.00%) if let ExprKind::Ret(Some(expr)) | ExprKind::Break(_, Some(expr)) = expr.kind 2 ( 0.00%) && is_unit_expr(expr) . && !expr.span.from_expansion() . { . span_lint_and_sugg( . cx, . UNUSED_UNIT, . expr.span, . "unneeded `()`", . "remove the `()`", . String::new(), . Applicability::MachineApplicable, . ); . } 27,194 ( 0.00%) } . 1,542 ( 0.00%) fn check_poly_trait_ref(&mut self, cx: &LateContext<'tcx>, poly: &'tcx PolyTraitRef<'tcx>) { 1,022 ( 0.00%) if let [segment] = &poly.trait_ref.path.segments 1,004 ( 0.00%) && matches!(segment.ident.name, sym::Fn | sym::FnMut | sym::FnOnce) 39 ( 0.00%) && let Some(args) = segment.args 13 ( 0.00%) && args.parenthesized == GenericArgsParentheses::ParenSugar 39 ( 0.00%) && let [constraint] = &args.constraints 13 ( 0.00%) && constraint.ident.name == sym::Output 65 ( 0.00%) && let AssocItemConstraintKind::Equality { term: Term::Ty(hir_ty) } = constraint.kind 39 ( 0.00%) && args.span_ext.hi() != poly.span.hi() 18 ( 0.00%) && !hir_ty.span.from_expansion() 27 ( 0.00%) && args.span_ext.hi() != hir_ty.span.hi() . && is_unit_ty(hir_ty) . { . lint_unneeded_unit_return(cx, hir_ty.span, poly.span); . } 1,799 ( 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. 10,844 ( 0.00%) fn check_block(&mut self, cx: &EarlyContext<'_>, block: &Block) { . if let Some(stmt) = block.stmts.last() 5,388 ( 0.00%) && let StmtKind::Expr(expr) = &stmt.kind 6,189 ( 0.00%) && let rustc_ast::ExprKind::Tup(inner) = &expr.kind 28 ( 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, . ); . } 13,555 ( 0.00%) } . } . . fn is_unit_ty(ty: &Ty<'_>) -> bool { 2,869 ( 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 ---------------------------------------- 23,965 ( 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<'_>) { 5,159 ( 0.00%) if let StmtKind::Semi(expr) = stmt.kind 2,098 ( 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,055 ( 0.00%) } . 244,746 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 81,582 ( 0.00%) if expr.span.in_external_macro(cx.sess().source_map()) 68,883 ( 0.00%) || expr.span.desugaring_kind().is_some() 2,204,256 ( 0.05%) => ???:::desugaring_kind (22,961x) 180,520 ( 0.00%) || in_automatically_derived(cx.tcx, expr.hir_id) 13,372,564 ( 0.33%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::in_automatically_derived (22,565x) . { . return; . } . . used_underscore_binding(cx, expr); . used_underscore_items(cx, expr); 217,552 ( 0.01%) } . } . . fn used_underscore_items<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 130,851 ( 0.00%) let (def_id, ident) = match expr.kind { 2,118 ( 0.00%) ExprKind::Call(func, ..) => { 10,153 ( 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, ..) => { 8,037 ( 0.00%) if let Some(def_id) = cx.typeck_results().type_dependent_def_id(expr.hir_id) { 138,541 ( 0.00%) => ???:::type_dependent_def_id (2,679x) 2,679 ( 0.00%) (def_id, path.ident) . } else { . return; . } 2,679 ( 0.00%) }, . ExprKind::Struct(QPath::Resolved(_, path), ..) => { 597 ( 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); 4,939 ( 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<'_>) { 131,558 ( 0.00%) let (definition_hir_id, ident) = match expr.kind { . ExprKind::Path(ref qpath) => { 35,098 ( 0.00%) if let QPath::Resolved(None, path) = qpath 43,851 ( 0.00%) && let Res::Local(id) = path.res 668 ( 0.00%) && is_used(cx, expr) . { 29,620 ( 0.00%) (id, last_path_segment(qpath).ident) 71,088 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::last_path_segment (5,924x) . } else { . return; . } 5,924 ( 0.00%) }, 3,621 ( 0.00%) ExprKind::Field(recv, ident) => { 1,207 ( 0.00%) if let Some(adt_def) = cx.typeck_results().expr_ty_adjusted(recv).ty_adt_def() 66,870 ( 0.00%) => ???:::expr_ty_adjusted (1,207x) . && let Some(field) = adt_def.all_fields().find(|field| field.name == ident.name) . && let Some(local_did) = field.did.as_local() 1,068 ( 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(); 7,115 ( 0.00%) if name.starts_with('_') 75 ( 0.00%) && !name.starts_with("__") 675 ( 0.00%) && let definition_span = cx.tcx.hir_span(definition_hir_id) 10,275 ( 0.00%) => ???:::hir_span (75x) . && !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, . expr.span, . "used underscore-prefixed binding".to_string(), -- line 228 ---------------------------------------- -- 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 { 99,581 ( 0.00%) get_parent_expr(cx, expr).is_none_or(|parent| match parent.kind { 1,770,775 ( 0.04%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_parent_expr (17,527x) 334 ( 0.00%) ExprKind::Assign(_, rhs, _) | ExprKind::AssignOp(_, _, rhs) => { 1,670 ( 0.00%) SpanlessEq::new(cx).eq_expr(parent.span.ctxt(), rhs, expr) 938,501 ( 0.02%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/hir_utils.rs:::eq_expr (334x) . }, . _ => is_used(cx, parent), . }) . } 141,375 ( 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; . 12,418 ( 0.00%) pub fn check_fn(cx: &LateContext<'_>, kind: FnKind<'_>, decl: &FnDecl<'_>, body: &Body<'_>, span: Span) { 3,548 ( 0.00%) let FnKind::Method(ref ident, sig) = kind else { . return; . }; . . // Takes only &(mut) self 2,882 ( 0.00%) if decl.inputs.len() != 1 { . return; . } . . let name = ident.name.as_str(); . 4,947 ( 0.00%) let name = match decl.implicit_self() { 7,008 ( 0.00%) => ???:::implicit_self (876x) . 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… . 1,712 ( 0.00%) let block_expr = if let ExprKind::Block(block, _) = body.value.kind 428 ( 0.00%) && block.stmts.is_empty() 1,197 ( 0.00%) && let Some(block_expr) = block.expr . { 1,243 ( 0.00%) if let ExprKind::Block(unsafe_block, _) = block_expr.kind 46 ( 0.00%) && unsafe_block.stmts.is_empty() 92 ( 0.00%) && matches!( . unsafe_block.rules, . BlockCheckMode::UnsafeBlock(UnsafeSource::UserProvided) . ) 138 ( 0.00%) && let Some(unsafe_block_expr) = unsafe_block.expr . { . unsafe_block_expr . } else { . block_expr . } . } else { . return; . }; 1,197 ( 0.00%) let expr_span = block_expr.span; . . // Accept &, &mut and 901 ( 0.00%) let expr = if let ExprKind::AddrOf(_, _, tmp) = block_expr.kind { . tmp . } else { . block_expr . }; 925 ( 0.00%) let (self_data, used_ident) = if let ExprKind::Field(self_data, ident) = expr.kind 9 ( 0.00%) && 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(); 20 ( 0.00%) for adjusted_type in iter::once(typeck_results.expr_ty(self_data)) 200 ( 0.00%) => ???:::expr_ty (5x) 20 ( 0.00%) .chain(typeck_results.expr_adjustments(self_data).iter().map(|adj| adj.target)) 215 ( 0.00%) => ???:::expr_adjustments (5x) . { 30 ( 0.00%) let ty::Adt(def, _) = adjusted_type.kind() else { . continue; . }; . 7 ( 0.00%) for f in def.all_fields() { 17 ( 0.00%) if f.name.as_str() == name { . correct_field = Some(f); . } 15 ( 0.00%) if f.name == used_ident.name { . used_field = Some(f); . } . } . } . 25 ( 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); . }, . ); . } 14,192 ( 0.00%) } 6,976 ( 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 { 244,746 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 27,194 ( 0.00%) let span = expr.span; 108,776 ( 0.00%) if !span.in_external_macro(cx.tcx.sess.source_map()) && 183,688 ( 0.00%) let Some(body_expr) = desugar_async_block(cx, expr) && 236,211 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/redundant_async_block.rs:clippy_lints::redundant_async_block::desugar_async_block (22,961x) . 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, . ); . } 217,552 ( 0.01%) } . } . . /// If `expr` is a desugared `async` block, return the original expression if it does not capture . /// any variable by ref. 68,883 ( 0.00%) fn desugar_async_block<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) -> Option<&'tcx Expr<'tcx>> { 45,922 ( 0.00%) if let ExprKind::Closure(Closure { body, def_id, kind, .. }) = expr.kind 255 ( 0.00%) && let body = cx.tcx.hir_body(*body) 6,006 ( 0.00%) => ???:::hir_body (85x) 170 ( 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 . } 91,844 ( 0.00%) } 23,131 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/panicking_overflow_checks.rs -------------------------------------------------------------------------------- Ir -- line 44 ---------------------------------------- . correctness, . "overflow checks which will panic in debug mode" . } . . declare_lint_pass!(PanickingOverflowChecks => [PANICKING_OVERFLOW_CHECKS]); . . impl<'tcx> LateLintPass<'tcx> for PanickingOverflowChecks { . // a + b < a, a > a + b, a < a - b, a - b > a 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 55,916 ( 0.00%) if let ExprKind::Binary(op, lhs, rhs) = expr.kind 1,120 ( 0.00%) && let (lt, gt) = match op.node { . BinOpKind::Lt => (lhs, rhs), . BinOpKind::Gt => (rhs, lhs), . _ => return, . } 22 ( 0.00%) && let ctxt = expr.span.ctxt() 88 ( 0.00%) && let (op_lhs, op_rhs, other, commutative) = match (<.kind, >.kind) { . (&ExprKind::Binary(op, lhs, rhs), _) if op.node == BinOpKind::Add && ctxt == lt.span.ctxt() => { . (lhs, rhs, gt, true) . }, . (_, &ExprKind::Binary(op, lhs, rhs)) if op.node == BinOpKind::Sub && ctxt == gt.span.ctxt() => { . (lhs, rhs, lt, false) . }, . _ => return, . } -- line 68 ---------------------------------------- -- line 76 ---------------------------------------- . { . span_lint( . cx, . PANICKING_OVERFLOW_CHECKS, . expr.span, . "you are trying to use classic C overflow conditions that will fail in Rust", . ); . } 217,552 ( 0.01%) } . } 132 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/item_name_repetitions.rs -------------------------------------------------------------------------------- Ir -- line 181 ---------------------------------------- . is_public: bool, . /// How many bodies are between this module and the current lint pass position. . /// . /// Only the most recently seen module is updated when entering/exiting a body. . in_body_count: u32, . } . . impl ItemNameRepetitions { 7 ( 0.00%) pub fn new(conf: &'static Conf) -> Self { 9 ( 0.00%) Self { . modules: Vec::new(), 1 ( 0.00%) enum_threshold: conf.enum_variant_name_threshold, 1 ( 0.00%) struct_threshold: conf.struct_field_name_threshold, 1 ( 0.00%) avoid_breaking_exported_api: conf.avoid_breaking_exported_api, 1 ( 0.00%) allow_exact_repetitions: conf.allow_exact_repetitions, 1 ( 0.00%) allow_private_module_inception: conf.allow_private_module_inception, 14 ( 0.00%) allowed_prefixes: conf.allowed_prefixes.iter().map(|s| to_camel_case(s)).collect(), 2,313 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/str_utils.rs:clippy_utils::str_utils::to_camel_case (6x) . } 9 ( 0.00%) } . . fn is_allowed_prefix(&self, prefix: &str) -> bool { . self.allowed_prefixes.contains(prefix) . } . } . . #[must_use] . fn have_no_extra_prefix(prefixes: &[&str]) -> bool { . prefixes.iter().all(|p| p == &"" || p == &"_") . } . . impl ItemNameRepetitions { . /// Lint the names of enum variants against the name of the enum. . fn check_variants(&self, cx: &LateContext<'_>, item: &Item<'_>, def: &EnumDef<'_>) { 429 ( 0.00%) if self.avoid_breaking_exported_api && cx.effective_visibilities.is_exported(item.owner_id.def_id) { 1,608 ( 0.00%) => ???:::is_exported (29x) . return; . } . . if (def.variants.len() as u64) < self.enum_threshold { . return; . } . 18 ( 0.00%) let Some(ident) = item.kind.ident() else { . return; . }; . let item_name = ident.name.as_str(); 24 ( 0.00%) for var in def.variants { . check_enum_start(cx, item_name, var); . check_enum_end(cx, item_name, var); . } . 6 ( 0.00%) Self::check_enum_common_affix(cx, item, def); . } . . /// Lint the names of struct fields against the name of the struct. 2,106 ( 0.00%) fn check_fields(&self, cx: &LateContext<'_>, item: &Item<'_>, fields: &[FieldDef<'_>]) { 468 ( 0.00%) if (fields.len() as u64) < self.struct_threshold { . return; . } . 200 ( 0.00%) self.check_struct_name_repetition(cx, item, fields); . self.check_struct_common_affix(cx, item, fields); 1,872 ( 0.00%) } . . fn check_enum_common_affix(cx: &LateContext<'_>, item: &Item<'_>, def: &EnumDef<'_>) { . let first = match def.variants.first() { 6 ( 0.00%) Some(variant) => variant.ident.name.as_str(), . None => return, . }; 18 ( 0.00%) let mut pre = camel_case_split(first); 5,514 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/str_utils.rs:clippy_utils::str_utils::camel_case_split (6x) 12 ( 0.00%) let mut post = pre.clone(); 559 ( 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 (6x) 1 ( 0.00%) post.reverse(); . for var in def.variants { . let name = var.ident.name.as_str(); . 27 ( 0.00%) let variant_split = camel_case_split(name); 9,371 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/str_utils.rs:clippy_utils::str_utils::camel_case_split (9x) 18 ( 0.00%) if variant_split.len() == 1 { . return; . } . 12 ( 0.00%) pre = pre . .iter() . .zip(variant_split.iter()) . .take_while(|(a, b)| a == b) . .map(|e| *e.0) . .collect(); 12 ( 0.00%) post = post . .iter() . .zip(variant_split.iter().rev()) . .take_while(|(a, b)| a == b) . .map(|e| *e.0) . .collect(); . } . let (what, value) = match (have_no_extra_prefix(&pre), post.is_empty()) { . (true, true) => return, -- line 274 ---------------------------------------- -- line 296 ---------------------------------------- . // this prevents linting in macros in which the location of the field identifier names differ . if !fields . .iter() . .all(|field| item.kind.ident().is_some_and(|i| i.span.eq_ctxt(field.ident.span))) . { . return; . } . 300 ( 0.00%) if self.avoid_breaking_exported_api . && fields . .iter() 63 ( 0.00%) .any(|field| cx.effective_visibilities.is_exported(field.def_id)) 3,306 ( 0.00%) => ???:::is_exported (63x) . { . return; . } . . let mut pre: Vec<&str> = match fields.first() { . Some(first_field) => first_field.ident.name.as_str().split('_').collect(), . None => return, . }; . let mut post = pre.clone(); . post.reverse(); . for field in fields { . let field_split: Vec<&str> = field.ident.name.as_str().split('_').collect(); 12 ( 0.00%) if field_split.len() == 1 { . return; . } . . pre = pre . .into_iter() . .zip(field_split.iter()) . .take_while(|(a, b)| &a == b) . .map(|e| e.0) -- line 328 ---------------------------------------- -- line 360 ---------------------------------------- . format!("all fields have the same {what}fix: `{value}`"), . None, . format!("remove the {what}fixes"), . ); . } . } . . fn check_struct_name_repetition(&self, cx: &LateContext<'_>, item: &Item<'_>, fields: &[FieldDef<'_>]) { 200 ( 0.00%) let Some(ident) = item.kind.ident() else { return }; 100 ( 0.00%) let snake_name = to_snake_case(ident.name.as_str()); 42,878 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/str_utils.rs:clippy_utils::str_utils::to_snake_case (50x) . let item_name_words: Vec<&str> = snake_name.split('_').collect(); . for field in fields { 1,414 ( 0.00%) if self.avoid_breaking_exported_api && cx.effective_visibilities.is_exported(field.def_id) { 11,229 ( 0.00%) => ???:::is_exported (202x) . continue; . } . 19 ( 0.00%) if !field.ident.span.eq_ctxt(ident.span) { . // consider linting only if the field identifier has the same SyntaxContext as the item(struct) . continue; . } . . let field_words: Vec<&str> = field.ident.name.as_str().split('_').collect(); 38 ( 0.00%) if field_words.len() >= item_name_words.len() { . // if the field name is shorter than the struct name it cannot contain it 6 ( 0.00%) if field_words.iter().zip(item_name_words.iter()).all(|(a, b)| a == b) { . span_lint_hir( . cx, . STRUCT_FIELD_NAMES, . field.hir_id, . field.span, . "field name starts with the struct's name", . ); . } 12 ( 0.00%) if field_words.len() > item_name_words.len() . // lint only if the end is not covered by the start . && field_words . .iter() . .rev() . .zip(item_name_words.iter().rev()) . .all(|(a, b)| a == b) . { . span_lint_hir( -- line 401 ---------------------------------------- -- line 410 ---------------------------------------- . } . } . } . . fn check_enum_start(cx: &LateContext<'_>, item_name: &str, variant: &Variant<'_>) { . let name = variant.ident.name.as_str(); . let item_name_chars = item_name.chars().count(); . 329 ( 0.00%) if count_match_start(item_name, name).char_count == item_name_chars 5,420 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/str_utils.rs:clippy_utils::str_utils::count_match_start (47x) . && name.chars().nth(item_name_chars).is_some_and(|c| !c.is_lowercase()) . && name.chars().nth(item_name_chars + 1).is_some_and(|c| !c.is_numeric()) . && !check_enum_tuple_path_match(name, variant.data) . { . span_lint_hir( . cx, . ENUM_VARIANT_NAMES, . variant.hir_id, -- line 426 ---------------------------------------- -- line 429 ---------------------------------------- . ); . } . } . . fn check_enum_end(cx: &LateContext<'_>, item_name: &str, variant: &Variant<'_>) { . let name = variant.ident.name.as_str(); . let item_name_chars = item_name.chars().count(); . 376 ( 0.00%) if count_match_end(item_name, name).char_count == item_name_chars 5,748 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/str_utils.rs:clippy_utils::str_utils::count_match_end (47x) . && !check_enum_tuple_path_match(name, variant.data) . { . span_lint_hir( . cx, . ENUM_VARIANT_NAMES, . variant.hir_id, . variant.span, . "variant name ends with the enum's name", -- line 445 ---------------------------------------- -- line 465 ---------------------------------------- . .any(|segment| segment.ident.name.as_str() == variant_name), . TyKind::Path(QPath::TypeRelative(_, segment)) => segment.ident.name.as_str() == variant_name, . _ => false, . } . } . . impl LateLintPass<'_> for ItemNameRepetitions { . fn check_item_post(&mut self, _: &LateContext<'_>, item: &Item<'_>) { 6,384 ( 0.00%) if matches!(item.kind, ItemKind::Mod(..)) { . let prev = self.modules.pop(); . debug_assert!(prev.is_some()); . } . } . . fn check_body(&mut self, _: &LateContext<'_>, _: &Body<'_>) { 3,960 ( 0.00%) if let [.., last] = &mut *self.modules { 3,954 ( 0.00%) last.in_body_count += 1; . } . } . . fn check_body_post(&mut self, _: &LateContext<'_>, _: &Body<'_>) { 3,960 ( 0.00%) if let [.., last] = &mut *self.modules { 3,954 ( 0.00%) last.in_body_count -= 1; . } . } . 28,728 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'_>, item: &Item<'_>) { 19,057 ( 0.00%) let ident = match item.kind { 152 ( 0.00%) ItemKind::Mod(ident, _) => { 228 ( 0.00%) if let [.., prev] = &*self.modules . && prev.name == ident.name . && prev.in_body_count == 0 . && (!self.allow_private_module_inception || prev.is_public) . && !item.span.from_expansion() . && !is_from_proc_macro(cx, item) . { . span_lint( . cx, -- line 502 ---------------------------------------- -- line 503 ---------------------------------------- . MODULE_INCEPTION, . item.span, . "module has the same name as its containing module", . ); . } . ident . }, . 203 ( 0.00%) ItemKind::Enum(ident, _, def) => { 145 ( 0.00%) if !ident.span.in_external_macro(cx.tcx.sess.source_map()) { 29 ( 0.00%) self.check_variants(cx, item, &def); . } . ident . }, 508 ( 0.00%) ItemKind::Struct(ident, _, data) => { 996 ( 0.00%) if let VariantData::Struct { fields, .. } = data 936 ( 0.00%) && !ident.span.in_external_macro(cx.tcx.sess.source_map()) . { 1,638 ( 0.00%) self.check_fields(cx, item, fields); 107,924 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/item_name_repetitions.rs:::check_fields (234x) . } . ident . }, . . ItemKind::Const(ident, ..) 3 ( 0.00%) | ItemKind::ExternCrate(_, ident) . | ItemKind::Fn { ident, .. } . | ItemKind::Macro(ident, ..) . | ItemKind::Static(_, ident, ..) . | ItemKind::Trait { ident, .. } . | ItemKind::TraitAlias(_, ident, ..) . | ItemKind::TyAlias(ident, ..) . | ItemKind::Union(ident, ..) . | ItemKind::Use(_, UseKind::Single(ident)) => ident, . . ItemKind::ForeignMod { .. } | ItemKind::GlobalAsm { .. } | ItemKind::Impl(_) | ItemKind::Use(..) => return, . }; . . let item_name = ident.name.as_str(); 3,252 ( 0.00%) let item_camel = to_camel_case(item_name); 412,703 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/str_utils.rs:clippy_utils::str_utils::to_camel_case (1,626x) . 3,252 ( 0.00%) if let [.., prev] = &*self.modules 4,365 ( 0.00%) && prev.is_public 828 ( 0.00%) && prev.in_body_count == 0 1,640 ( 0.00%) && !item.span.from_expansion() . && !matches!(item.kind, ItemKind::Macro(..)) 788 ( 0.00%) && cx.tcx.visibility(item.owner_id).is_public() . { 130 ( 0.00%) if !self.allow_exact_repetitions && item_camel == prev.name_camel { . if !is_from_proc_macro(cx, item) { . span_lint( . cx, . MODULE_NAME_REPETITIONS, . ident.span, . "item name is the same as its containing module's name", . ); . } 130 ( 0.00%) } else if item_camel.len() > prev.name_camel.len() { . if let Some(s) = item_camel.strip_prefix(&prev.name_camel) . && let Some(c) = s.chars().next() 21 ( 0.00%) && (c == '_' || c.is_uppercase() || c.is_numeric()) . { 6 ( 0.00%) if !is_from_proc_macro(cx, item) { 891 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::is_from_proc_macro:: (2x) . span_lint( . cx, . MODULE_NAME_REPETITIONS, . ident.span, . "item name starts with its containing module's name", . ); . } . } else if let Some(s) = item_camel.strip_suffix(&prev.name_camel) 6 ( 0.00%) && !self.is_allowed_prefix(s) 9 ( 0.00%) && !is_from_proc_macro(cx, item) 1,325 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::is_from_proc_macro:: (3x) . { . span_lint( . cx, . MODULE_NAME_REPETITIONS, . ident.span, . "item name ends with its containing module's name", . ); . } . } . } . 3,252 ( 0.00%) if matches!(item.kind, ItemKind::Mod(..)) { . self.modules.push(ModInfo { . name: ident.name, . name_camel: item_camel, 228 ( 0.00%) is_public: cx.tcx.visibility(item.owner_id).is_public(), . in_body_count: 0, . }); . } 25,536 ( 0.00%) } . } 14,182 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/toml_parser-1.1.2+spec-1.1.0/src/lexer/mod.rs -------------------------------------------------------------------------------- Ir -- line 27 ---------------------------------------- . pub struct Lexer<'i> { . stream: Stream<'i>, . eof: bool, . } . . impl<'i> Lexer<'i> { . pub(crate) fn new(input: &'i str) -> Self { . let mut stream = Stream::new(input); 1 ( 0.00%) if input.as_bytes().starts_with(BOM) { . let offset = BOM.len(); . #[cfg(feature = "unsafe")] // SAFETY: only called when next character is ASCII . unsafe { . stream.next_slice_unchecked(offset) . }; . #[cfg(not(feature = "unsafe"))] . stream.next_slice(offset); . } 5 ( 0.00%) Lexer { stream, eof: false } . } . . #[cfg(feature = "alloc")] 7 ( 0.00%) pub fn into_vec(self) -> Vec { . #![allow(unused_qualifications)] // due to MSRV of 1.66 . let capacity = core::cmp::min( 1 ( 0.00%) self.stream.len(), . usize::MAX / core::mem::size_of::(), . ); . let mut vec = Vec::with_capacity(capacity); . vec.extend(self); 5 ( 0.00%) vec 8 ( 0.00%) } . } . . impl Iterator for Lexer<'_> { . type Item = Token; . 8,953 ( 0.00%) fn next(&mut self) -> Option { . let Some(peek_byte) = self.stream.as_bstr().first() else { 5 ( 0.00%) if self.eof { . return None; . } else { 1 ( 0.00%) self.eof = true; . let start = self.stream.current_token_start(); . let span = Span::new_unchecked(start, start); . return Some(Token::new(TokenKind::Eof, span)); . } . }; 1,277 ( 0.00%) Some(process_token(*peek_byte, &mut self.stream)) 11,640 ( 0.00%) } . } . . const BOM: &[u8] = b"\xEF\xBB\xBF"; . . pub(crate) type Stream<'i> = winnow::stream::LocatingSlice<&'i str>; . . fn process_token(peek_byte: u8, stream: &mut Stream<'_>) -> Token { 7,662 ( 0.00%) let token = match peek_byte { . b'.' => lex_ascii_char(stream, TokenKind::Dot), . b'=' => lex_ascii_char(stream, TokenKind::Equals), . b',' => lex_ascii_char(stream, TokenKind::Comma), . b'[' => lex_ascii_char(stream, TokenKind::LeftSquareBracket), . b']' => lex_ascii_char(stream, TokenKind::RightSquareBracket), . b'{' => lex_ascii_char(stream, TokenKind::LeftCurlyBracket), . b'}' => lex_ascii_char(stream, TokenKind::RightCurlyBracket), . b' ' => lex_whitespace(stream), -- line 91 ---------------------------------------- -- line 96 ---------------------------------------- . b'\'' => { . if stream.starts_with(ML_LITERAL_STRING_DELIM) { . lex_ml_literal_string(stream) . } else { . lex_literal_string(stream) . } . } . b'"' => { 129 ( 0.00%) if stream.starts_with(ML_BASIC_STRING_DELIM) { . lex_ml_basic_string(stream) . } else { . lex_basic_string(stream) . } . } . _ => lex_atom(stream), . }; . token -- line 112 ---------------------------------------- -- line 419 ---------------------------------------- . }; . #[cfg(not(feature = "unsafe"))] . stream.next_slice(offset); . . loop { . // newline is present for error recovery . match stream.as_bstr().find_slice((QUOTATION_MARK, ESCAPE, b'\n')) { . Some(span) => { 516 ( 0.00%) let found = stream.as_bstr()[span.start]; 129 ( 0.00%) if found == QUOTATION_MARK { . let offset = span.end; . #[cfg(feature = "unsafe")] . // SAFETY: `QUOTATION_MARK` ensure `offset` is along UTF-8 boundary . unsafe { . stream.next_slice_unchecked(offset) . }; . #[cfg(not(feature = "unsafe"))] . stream.next_slice(offset); -- line 436 ---------------------------------------- 7,203 ( 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 { 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 48 ( 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); 163,164 ( 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 { 267 ( 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 { 21 ( 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), . ]; . 2,750 ( 0.00%) fn is_infinite(cx: &LateContext<'_>, expr: &Expr<'_>) -> Finiteness { 2,200 ( 0.00%) match expr.kind { 140 ( 0.00%) ExprKind::MethodCall(method, receiver, args, _) => { . for &(name, len, heuristic, cap) in &HEURISTICS { 1,330 ( 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), 7 ( 0.00%) ExprKind::Call(path, _) => { 21 ( 0.00%) if let ExprKind::Path(ref qpath) = path.kind { 42 ( 0.00%) cx.qpath_res(qpath, path.hir_id) 216 ( 0.00%) => ???:::qpath_res (7x) . .opt_def_id() 21 ( 0.00%) .is_some_and(|id| cx.tcx.is_diagnostic_item(sym::iter_repeat, id)) 308 ( 0.00%) => ???:::is_diagnostic_item (7x) . .into() . } else { . Finite . } . }, . ExprKind::Struct(..) => higher::Range::hir(cx, expr).is_some_and(|r| r.end.is_none()).into(), . _ => Finite, . } 1,925 ( 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 { 135,206 ( 0.00%) match expr.kind { 8,040 ( 0.00%) ExprKind::MethodCall(method, receiver, args, _) => { 2,680 ( 0.00%) let method_str = method.ident.name; . for &(name, len) in &COMPLETING_METHODS { 58,960 ( 0.00%) if method_str == name && args.len() == len { . return is_infinite(cx, receiver); . } . } . for &(name, len) in &POSSIBLY_COMPLETING_METHODS { 19,347 ( 0.00%) if method_str == name && args.len() == len { 6 ( 0.00%) return MaybeInfinite.and(is_infinite(cx, receiver)); 319 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/infinite_iter.rs:clippy_lints::infinite_iter::is_infinite (3x) . } . } 5,354 ( 0.00%) if method.ident.name == sym::last && args.is_empty() { 16 ( 0.00%) let not_double_ended = cx . .tcx 16 ( 0.00%) .get_diagnostic_item(sym::DoubleEndedIterator) 576 ( 0.00%) => ???:::get_diagnostic_item (8x) 80 ( 0.00%) .is_some_and(|id| !implements_trait(cx, cx.typeck_results().expr_ty(receiver), id, &[])); 33,560 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::implements_trait (8x) 320 ( 0.00%) => ???:::expr_ty (8x) 16 ( 0.00%) if not_double_ended { . return is_infinite(cx, receiver); . } 2,669 ( 0.00%) } else if method.ident.name == sym::collect { 6 ( 0.00%) let ty = cx.typeck_results().expr_ty(expr); 120 ( 0.00%) => ???:::expr_ty (3x) 15 ( 0.00%) if matches!( . ty.opt_diag_name(cx), . Some( . sym::BinaryHeap . | sym::BTreeMap . | sym::BTreeSet . | sym::HashMap . | sym::HashSet . | sym::LinkedList -- line 246 ---------------------------------------- -- line 247 ---------------------------------------- . | sym::Vec . | sym::VecDeque, . ) . ) { . return is_infinite(cx, receiver); . } . } . }, 264 ( 0.00%) ExprKind::Binary(op, l, r) if op.node.is_comparison() => { 792 ( 0.00%) return is_infinite(cx, l).and(is_infinite(cx, r)).and(MaybeInfinite); 11,290 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/infinite_iter.rs:clippy_lints::infinite_iter::is_infinite (264x) . }, // TODO: ExprKind::Loop + Match . _ => (), . } . Finite . } 25,249 ( 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/traits/iterator.rs -------------------------------------------------------------------------------- Ir -- line 224 ---------------------------------------- . fn count(self) -> usize . where . Self: Sized + [const] Destruct, . Self::Item: [const] Destruct, . { . self.fold( . 0, . #[rustc_inherit_overflow_checks] 361 ( 0.00%) const |accum, _elem| accum + 1, . ) . } . . /// Consumes the iterator, returning the last element. . /// . /// This method will evaluate the iterator until it returns [`None`]. While . /// doing so, it keeps track of the current element. After [`None`] is . /// returned, `last()` will then return the last element it saw. -- line 240 ---------------------------------------- -- 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()?; 48 ( 0.00%) self.next() 3,063 ( 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 (24x) . } . . /// 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,623 ( 0.00%) self.fold((), call(f)); 1,078 ( 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:, alloc::vec::Vec, ::new::{closure#0}>, as core::iter::traits::collect::Extend>::extend, alloc::vec::Vec, ::new::{closure#0}>>::{closure#0}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<(rustc_span::def_id::DefId, ()), as core::iter::traits::collect::Extend<(rustc_span::def_id::DefId, ())>>::extend, alloc::vec::Vec, ::new::{closure#0}>, as core::iter::traits::collect::Extend>::extend, alloc::vec::Vec, ::new::{closure#0}>>::{closure#0}>>::{closure#0}>::{closure#0}> (1x) . } . . /// 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,719 ( 0.00%) FromIterator::from_iter(self) 238,525 ( 0.01%) => /home/moon/.rustup/toolchains/nightly-2026-08-07-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/collections/hash/map.rs:, rustc_hash::FxBuildHasher> as core::iter::traits::collect::FromIterator<(rustc_middle::ty::Ty, core::option::Option)>>::from_iter::), 2>, clippy_lints::format_args::make_ty_msrv_map::{closure#0}>> (1x) . } . . /// 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| { 26 ( 0.00%) let p = predicate(&**x); 7 ( 0.00%) *true_count += p as usize; . !p . } . } . . #[inline] . fn is_true(predicate: &mut impl FnMut(&T) -> bool) -> impl FnMut(&&mut T) -> bool + '_ { 46 ( 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); 3 ( 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")] 213,052 ( 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; 1,259,150 ( 0.03%) while let Some(x) = self.next() { 380 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ast_utils/ident_iter.rs:::next (40x) 237,653 ( 0.01%) accum = f(accum, x)?; 1,190 ( 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 core::iter::traits::iterator::Iterator::all::check<&(rustc_middle::ty::predicate::Clause, rustc_span::span_encoding::Span), clippy_utils::eager_or_lazy::fn_eagerness::{closure#2}>::{closure#0} as core::ops::function::FnMut<((), &(rustc_middle::ty::predicate::Clause, rustc_span::span_encoding::Span))>>::call_mut (10x) . } . try { accum } 145,538 ( 0.00%) } . . /// 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; 243,452 ( 0.01%) while let Some(x) = self.next() { 29,718 ( 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 (162x) 100,769 ( 0.00%) accum = f(accum, x); . } 458,610 ( 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()?; 198 ( 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 2828 ---------------------------------------- . where . Self: Sized, . 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(()) } 10 ( 0.00%) } . } 26 ( 0.00%) self.try_fold((), check(f)) == ControlFlow::Continue(()) 8,631 ( 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::PatField, &rustc_hir::hir::PatField), clippy_utils::hir_utils::over::eq_pat::{closure#0}>::{closure#0}>::{closure#0}, core::ops::control_flow::ControlFlow<()>> (24x) 1,012 ( 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<()>> (2x) . } . . /// 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| { 940 ( 0.00%) if predicate(&x) { ControlFlow::Break(x) } else { ControlFlow::Continue(()) } 156 ( 0.00%) } . } . . self.try_fold((), check(predicate)).break_value() . } . . /// Applies function to the elements of iterator and returns . /// the first non-none result. . /// -- line 2972 ---------------------------------------- -- 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 { 42,513 ( 0.00%) move |(), x| match f(x) { 16,553 ( 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::manual_clamp::is_two_if_pattern::{closure#0} as core::ops::function::FnMut<((clippy_lints::manual_clamp::MaybeBorrowedStmtKind, clippy_lints::manual_clamp::MaybeBorrowedStmtKind),)>>::call_mut (414x) . Some(x) => ControlFlow::Break(x), . None => ControlFlow::Continue(()), . } . } . 17,833 ( 0.00%) self.try_fold((), check(f)).break_value() 4,301,562 ( 0.11%) => /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> (17,612x) . } . . /// 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 3134 ---------------------------------------- . { . #[inline] . fn check<'a, T>( . mut predicate: impl FnMut(T) -> bool + 'a, . acc: &'a mut usize, . ) -> impl FnMut((), T) -> ControlFlow + 'a { . #[rustc_inherit_overflow_checks] . move |_, x| { 9 ( 0.00%) if predicate(x) { . ControlFlow::Break(*acc) . } else { . *acc += 1; . ControlFlow::Continue(()) . } . } . } . -- line 3150 ---------------------------------------- -- 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] 4,032 ( 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); 5,040 ( 0.00%) unzipped 4,536 ( 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, . { 104 ( 0.00%) self.eq_by(other, |x, y| x == y) 6,340 ( 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:, ::block::{closure#0}>, ::block::{closure#1}> as core::iter::traits::iterator::Iterator>::eq_by::<[rustc_lexer::TokenKind; 1], , ::block::{closure#0}>, ::block::{closure#1}> as core::iter::traits::iterator::Iterator>::eq<[rustc_lexer::TokenKind; 1]>::{closure#0}> (16x) . } . . /// 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] 72 ( 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(()) } . } . } . 136 ( 0.00%) SpecIterEq::spec_iter_eq(self, other.into_iter(), compare(eq)) 96 ( 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 10 ( 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), . } . } . 32 ( 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 { 72 ( 0.00%) (**self).next() 189 ( 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 (33x) 33 ( 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 (3x) . } . 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 ---------------------------------------- 726,226 ( 0.02%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/incompatible_msrv.rs -------------------------------------------------------------------------------- Ir -- line 80 ---------------------------------------- . Since(RustcVersion), . } . . /// All known std crates containing a stability attribute. . struct StdCrates([Option; 6]); . impl StdCrates { . fn new(tcx: TyCtxt<'_>) -> Self { . let mut res = Self([None; _]); 48 ( 0.00%) for &krate in tcx.crates(()) { . // FIXME(@Jarcho): We should have an internal lint to detect when this list is out of date. . match tcx.crate_name(krate) { 182 ( 0.00%) sym::alloc => res.0[0] = Some(krate), . sym::core => res.0[1] = Some(krate), . sym::core_arch => res.0[2] = Some(krate), . sym::proc_macro => res.0[3] = Some(krate), . sym::std => res.0[4] = Some(krate), . sym::std_detect => res.0[5] = Some(krate), . _ => {}, . } . } -- line 99 ---------------------------------------- -- line 112 ---------------------------------------- . std_crates: StdCrates, . . // The most recently called path. Used to skip checking the path after it's . // been checked when visiting the call expression. . called_path: Option, . } . . impl IncompatibleMsrv { 9 ( 0.00%) pub fn new(tcx: TyCtxt<'_>, conf: &'static Conf) -> Self { 19 ( 0.00%) Self { 2 ( 0.00%) msrv: conf.msrv.into(), . availability_cache: FxHashMap::default(), 1 ( 0.00%) check_in_tests: conf.check_incompatible_msrv_in_tests, . std_crates: StdCrates::new(tcx), . called_path: None, . } 8 ( 0.00%) } . . /// Returns the availability of `def_id`, whether it is enabled through a feature or . /// available since a given version (the default being Rust 1.0.0). `needs_const` requires . /// the `const`-stability to be looked up instead of the stability in non-`const` contexts. 23,991 ( 0.00%) fn get_def_id_availability(&mut self, tcx: TyCtxt<'_>, def_id: DefId, needs_const: bool) -> Availability { . if let Some(availability) = self.availability_cache.get(&(def_id, needs_const)) { 4,036 ( 0.00%) return *availability; . } 489 ( 0.00%) let (feature, stability_level) = if needs_const { . tcx.lookup_const_stability(def_id) . .map(|stability| (stability.feature, stability.level)) . .unzip() . } else { . tcx.lookup_stability(def_id) . .map(|stability| (stability.feature, stability.level)) . .unzip() . }; 1,141 ( 0.00%) let version = if feature.is_some_and(|feature| tcx.features().enabled(feature)) { 4,890 ( 0.00%) => ???:::features (163x) 652 ( 0.00%) => ???:::enabled (163x) . Availability::FeatureEnabled . } else if let Some(StableSince::Version(version)) = . stability_level.as_ref().and_then(StabilityLevel::stable_since) . { . Availability::Since(version) . } else if needs_const { . // Fallback to regular stability . self.get_def_id_availability(tcx, def_id, false) -- line 154 ---------------------------------------- -- line 158 ---------------------------------------- . Availability::Since(RustcVersion { . major: 1, . minor: 0, . patch: 0, . }) . }; . self.availability_cache.insert((def_id, needs_const), version); . version 19,629 ( 0.00%) } . . /// Emit lint if `def_id`, associated with `node` and `span`, is below the current MSRV. 187,035 ( 0.00%) fn emit_lint_if_under_msrv( . &mut self, . cx: &LateContext<'_>, . needs_const: bool, . def_id: DefId, . node: HirId, . span: Span, . ) { . if !self.std_crates.contains(def_id.krate) { . // No stability attributes to lookup for these items. . return; . } . // Use `from_expansion` to fast-path the common case. . if span.from_expansion() { . let expn = span.ctxt().outer_expn_data(); 6,852 ( 0.00%) match expn.kind { . // FIXME(@Jarcho): Check that the actual desugaring or std macro is supported by the . // current MSRV. Note that nested expansions need to be handled as well. . ExpnKind::AstPass(_) | ExpnKind::Desugaring(_) => return, 406 ( 0.00%) ExpnKind::Macro(..) if expn.macro_def_id.is_some_and(|did| self.std_crates.contains(did.krate)) => { . return; . }, . // All other expansions share the target's MSRV. . // FIXME(@Jarcho): What should we do about version dependant macros from external crates? . _ => {}, . } . } . . // Check `is_in_test` last as it walks the HIR parent chain. 34,896 ( 0.00%) if let Some(current) = self.msrv.current(cx) 21,810 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/msrvs.rs:::current (2,181x) 32,715 ( 0.00%) && let Availability::Since(version) = self.get_def_id_availability(cx.tcx, def_id, needs_const) 186,527 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/incompatible_msrv.rs:::get_def_id_availability (2,181x) 8,722 ( 0.00%) && version > current . && (self.check_in_tests || !is_in_test(cx.tcx, node)) . { . span_lint_and_then( . cx, . INCOMPATIBLE_MSRV, . span, . format!( . "current MSRV (Minimum Supported Rust Version) is `{current}` but this item is stable{} since `{version}`", -- line 208 ---------------------------------------- -- line 210 ---------------------------------------- . ), . |diag| { . if is_under_cfg_attribute(cx, node) { . diag.note_once("you may want to conditionally increase the MSRV considered by Clippy using the `clippy::msrv` attribute"); . } . }, . ); . } 99,752 ( 0.00%) } . } . . impl<'tcx> LateLintPass<'tcx> for IncompatibleMsrv { 244,746 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) { 171,846 ( 0.00%) match expr.kind { . ExprKind::MethodCall(_, _, _, span) => { 18,760 ( 0.00%) if let Some(method_did) = cx.typeck_results().type_dependent_def_id(expr.hir_id) { 138,592 ( 0.00%) => ???:::type_dependent_def_id (2,680x) 32,160 ( 0.00%) self.emit_lint_if_under_msrv(cx, is_in_const_context(cx), method_did, expr.hir_id, span); 738,768 ( 0.02%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_in_const_context (2,680x) 251,502 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/incompatible_msrv.rs:::emit_lint_if_under_msrv (2,680x) . } . }, 23,016 ( 0.00%) ExprKind::Call(callee, _) if let ExprKind::Path(qpath) = callee.kind => { 6,576 ( 0.00%) self.called_path = Some(callee.hir_id); 9,864 ( 0.00%) let needs_const = is_in_const_context(cx); 889,209 ( 0.02%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_in_const_context (3,288x) 19,728 ( 0.00%) let def_id = if let Some(def_id) = cx.qpath_res(&qpath, callee.hir_id).opt_def_id() { 104,193 ( 0.00%) => ???:::qpath_res (3,288x) . def_id 34 ( 0.00%) } else if needs_const && let ty::FnDef(def_id, _) = *cx.typeck_results().expr_ty(callee).kind() { . // Edge case where a function is first assigned then called. . // We previously would have warned for the non-const MSRV, when . // checking the path, but now that it's called the const MSRV . // must also be met. . def_id . } else { . return; . }; 22,897 ( 0.00%) self.emit_lint_if_under_msrv(cx, needs_const, def_id, expr.hir_id, callee.span); . }, . // Desugaring into function calls by the compiler will use `QPath::LangItem` variants. Those should . // not be linted as they will not be generated in older compilers if the function is not available, . // and the compiler is allowed to call unstable functions. 10,899 ( 0.00%) ExprKind::Path(qpath) 98,091 ( 0.00%) if let Some(path_def_id) = cx.qpath_res(&qpath, expr.hir_id).opt_def_id() 283,426 ( 0.01%) => ???:::qpath_res (10,899x) . && self.called_path != Some(expr.hir_id) => . { 6,048 ( 0.00%) self.emit_lint_if_under_msrv(cx, false, path_def_id, expr.hir_id, expr.span); . }, . _ => {}, . } 217,552 ( 0.01%) } . . fn check_ty(&mut self, cx: &LateContext<'tcx>, hir_ty: &'tcx hir::Ty<'tcx, AmbigArg>) { 49,908 ( 0.00%) if let hir::TyKind::Path(qpath) = hir_ty.kind 62,080 ( 0.00%) && let Some(ty_def_id) = cx.qpath_res(&qpath, hir_ty.hir_id).opt_def_id() 183,474 ( 0.00%) => ???:::qpath_res (7,760x) . // `CStr` and `CString` have been moved around but have been available since Rust 1.0.0 39,627 ( 0.00%) && !matches!(cx.tcx.get_diagnostic_name(ty_def_id), Some(sym::cstr_type | sym::cstring_type)) 260,672 ( 0.01%) => ???:::get_diagnostic_name (5,661x) . { 50,886 ( 0.00%) self.emit_lint_if_under_msrv(cx, false, ty_def_id, hir_ty.hir_id, hir_ty.span); 279,834 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/incompatible_msrv.rs:::emit_lint_if_under_msrv (5,654x) . } . } . } . . /// Heuristic checking if the node `hir_id` is under a `#[cfg()]` or `#[cfg_attr()]` . /// attribute. . fn is_under_cfg_attribute(cx: &LateContext<'_>, hir_id: HirId) -> bool { . cx.tcx -- line 272 ---------------------------------------- 27,460 ( 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 { 49,152 ( 0.00%) fn new(kind: ItemKindDescr, ident: Option, span: Span, mod_items: Option) -> Self { 32,768 ( 0.00%) Self { . kind, . name: ident.map(|ident| ident.name), . span: match ident { 2,228 ( 0.00%) Some(ident) => span.with_hi(ident.span.hi()), . None => span.shrink_to_lo(), . }, . mod_items, . } 32,768 ( 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 { 11,448 ( 0.00%) let SpanData { lo, hi, .. } = attr.span.data(); 15,264 ( 0.00%) let file = cx.sess().source_map().lookup_source_file(lo); 530,424 ( 0.01%) => ???:::lookup_source_file (3,816x) . 3,816 ( 0.00%) Some(Self { . span: attr.span, 15,264 ( 0.00%) kind: match attr.kind { . AttrKind::Normal(_) | AttrKind::Synthetic(_) => StopKind::Attr, . AttrKind::DocComment(comment_kind, _) => StopKind::Doc(comment_kind), . }, 11,448 ( 0.00%) first: file.lookup_line(file.relative_position(lo))?, 416,178 ( 0.01%) => ???:::lookup_line (3,816x) 7,632 ( 0.00%) last: file.lookup_line(file.relative_position(hi))?, 416,178 ( 0.01%) => ???:::lookup_line (3,816x) 7,632 ( 0.00%) name: attr.name(), 15,771 ( 0.00%) => ???:::name (3,816x) . }) . } . } . . /// Represents a set of attrs/doc comments separated by 1 or more empty lines . /// . /// ```ignore . /// /// chunk 1 docs -- line 267 ---------------------------------------- -- line 453 ---------------------------------------- . StopKind::Doc(_) => format!("if the comment should document the {desc} use an inner doc comment"), . }, . suggestions, . Applicability::MaybeIncorrect, . ); . } . } . 53,248 ( 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() 14,098 ( 0.00%) .filter(|attr| attr.style == AttrStyle::Outer && !attr.span.from_expansion()) 3,816 ( 0.00%) .map(|attr| Stop::from_attr(cx, attr)) . .collect::>>() . .unwrap_or_default(); . 4,096 ( 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 2,001 ( 0.00%) let span = self.items.last().unwrap().span; . if !span.from_expansion() 6,003 ( 0.00%) && let Ok(line) = cx.sess().source_map().lookup_line(span.lo()) 172,759 ( 0.00%) => ???:::lookup_line (667x) . { . 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, . }); 1,334 ( 0.00%) } . . let mut gaps = Vec::new(); . let mut last = 0; . for pos in outer . .array_windows() 3,816 ( 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; . if let Some(gap) = Gap::new(cx, &outer[last..pos], &outer[pos..]) { . last = pos; . gaps.push(gap); . } . } . . self.check_gaps(cx, &gaps, id); 32,768 ( 0.00%) } . } . . fn assoc_item_descr(kind: &AssocItemKind) -> &'static str { 7,630 ( 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(); . } . 12,208 ( 0.00%) fn check_impl_item(&mut self, cx: &EarlyContext<'_>, item: &Item) { 6,104 ( 0.00%) let kind = ItemKindDescr::Other(assoc_item_descr(&item.kind)); 9,156 ( 0.00%) let info = ItemInfo::new(kind, item.kind.ident(), item.span, None); 112,894 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/empty_line_after.rs:::new (1,526x) 7,630 ( 0.00%) self.check_item_kind(cx, info, &item.attrs, item.id); 1,197,375 ( 0.03%) => site/frontend/rust-clippy/clippy_lints/src/empty_line_after.rs:::check_item_kind (1,526x) 9,156 ( 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); . } . 25,700 ( 0.00%) fn check_item(&mut self, cx: &EarlyContext<'_>, item: &Item) { 13,005 ( 0.00%) let (kind, mod_items) = match &item.kind { . ItemKind::Mod(_, _, ModKind::Loaded(items, _, _)) => { . let first = items . .iter() 304 ( 0.00%) .filter(|i| !matches!(i.span.ctxt().outer_expn_data().kind, ExpnKind::AstPass(_))) 228 ( 0.00%) .map(|i| i.id) . .next(); . (ItemKindDescr::Module, first) . }, . ItemKind::Mod(..) => (ItemKindDescr::Module, None), 9,976 ( 0.00%) _ => (ItemKindDescr::Other(item.kind.descr()), None), . }; 12,850 ( 0.00%) let info = ItemInfo::new(kind, item.kind.ident(), item.span, mod_items); 179,417 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/empty_line_after.rs:::new (2,570x) 12,850 ( 0.00%) self.check_item_kind(cx, info, &item.attrs, item.id); 1,500,749 ( 0.04%) => site/frontend/rust-clippy/clippy_lints/src/empty_line_after.rs:::check_item_kind (2,570x) 20,560 ( 0.00%) } . } 34,846 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_utils/src/str_utils.rs -------------------------------------------------------------------------------- Ir -- line 63 ---------------------------------------- . /// assert_eq!(camel_case_start("AbcDef"), StrIndex::new(0, 0)); . /// assert_eq!(camel_case_start("abcDef"), StrIndex::new(3, 3)); . /// assert_eq!(camel_case_start("ABCD"), StrIndex::new(4, 4)); . /// assert_eq!(camel_case_start("abcd"), StrIndex::new(4, 4)); . /// assert_eq!(camel_case_start("\u{f6}\u{f6}cd"), StrIndex::new(4, 6)); . /// ``` . #[must_use] . pub fn camel_case_start(s: &str) -> StrIndex { 60 ( 0.00%) camel_case_start_from_idx(s, 0) 2,932 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/str_utils.rs:clippy_utils::str_utils::camel_case_start_from_idx (15x) . } . . /// Returns `StrIndex` of the last camel-case component of `s[idx..]`. . /// . /// ```no_run . /// # use clippy_utils::str_utils::{camel_case_start_from_idx, StrIndex}; . /// assert_eq!(camel_case_start_from_idx("AbcDef", 0), StrIndex::new(0, 0)); . /// assert_eq!(camel_case_start_from_idx("AbcDef", 1), StrIndex::new(3, 3)); . /// assert_eq!(camel_case_start_from_idx("AbcDefGhi", 0), StrIndex::new(0, 0)); . /// assert_eq!(camel_case_start_from_idx("AbcDefGhi", 1), StrIndex::new(3, 3)); . /// assert_eq!(camel_case_start_from_idx("Abcdefg", 1), StrIndex::new(7, 7)); . /// ``` 340 ( 0.00%) pub fn camel_case_start_from_idx(s: &str, start_idx: usize) -> StrIndex { . let char_count = s.chars().count(); . let range = 0..char_count; . let mut iter = range.rev().zip(s.char_indices().rev()); . if let Some((_, (_, first))) = iter.next() { . if !first.is_lowercase() { . return StrIndex::new(char_count, s.len()); . } . } else { . return StrIndex::new(char_count, s.len()); . } . . let mut down = true; . let mut last_index = StrIndex::new(char_count, s.len()); . for (char_index, (byte_index, c)) in iter { 335 ( 0.00%) if byte_index < start_idx { . break; . } 278 ( 0.00%) if down { . if c.is_uppercase() { . down = false; . last_index.byte_index = byte_index; . last_index.char_index = char_index; . } else if !c.is_lowercase() { . return last_index; . } . } else if c.is_lowercase() { -- line 110 ---------------------------------------- -- line 113 ---------------------------------------- . last_index.byte_index = byte_index; . last_index.char_index = char_index; . } else { . return last_index; . } . } . . last_index 272 ( 0.00%) } . . /// Get the indexes of camel case components of a string `s` . /// . /// ```no_run . /// # use clippy_utils::str_utils::{camel_case_indices, StrIndex}; . /// assert_eq!( . /// camel_case_indices("AbcDef"), . /// vec![StrIndex::new(0, 0), StrIndex::new(3, 3), StrIndex::new(6, 6)] . /// ); . /// assert_eq!( . /// camel_case_indices("abcDef"), . /// vec![StrIndex::new(3, 3), StrIndex::new(6, 6)] . /// ); . /// ``` 150 ( 0.00%) pub fn camel_case_indices(s: &str) -> Vec { . let mut result = Vec::new(); . let mut str_idx = camel_case_start(s); . 68 ( 0.00%) while str_idx.byte_index < s.len() { 19 ( 0.00%) let next_idx = str_idx.byte_index + 1; . result.push(str_idx); 114 ( 0.00%) str_idx = camel_case_start_from_idx(s, next_idx); 3,521 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/str_utils.rs:clippy_utils::str_utils::camel_case_start_from_idx (19x) . } . result.push(str_idx); . 45 ( 0.00%) result 120 ( 0.00%) } . . /// Split camel case string into a vector of its components . /// . /// ```no_run . /// # use clippy_utils::str_utils::{camel_case_split, StrIndex}; . /// assert_eq!(camel_case_split("AbcDef"), vec!["Abc", "Def"]); . /// ``` 165 ( 0.00%) pub fn camel_case_split(s: &str) -> Vec<&str> { 15 ( 0.00%) let mut offsets = camel_case_indices(s) 9,068 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/str_utils.rs:clippy_utils::str_utils::camel_case_indices (15x) . .iter() . .map(|e| e.byte_index) . .collect::>(); 30 ( 0.00%) if offsets[0] != 0 { . offsets.insert(0, 0); . } . 53 ( 0.00%) offsets.windows(2).map(|w| &s[w[0]..w[1]]).collect() 135 ( 0.00%) } . . /// Dealing with string comparison can be complicated, this struct ensures that both the . /// character and byte count are provided for correct indexing. . #[derive(Debug, Default, PartialEq, Eq)] . pub struct StrCount { . pub char_count: usize, . pub byte_count: usize, . } -- line 174 ---------------------------------------- -- line 184 ---------------------------------------- . /// ```no_run . /// # use clippy_utils::str_utils::{count_match_start, StrCount}; . /// assert_eq!(count_match_start("hello_mouse", "hello_penguin"), StrCount::new(6, 6)); . /// assert_eq!(count_match_start("hello_clippy", "bye_bugs"), StrCount::new(0, 0)); . /// assert_eq!(count_match_start("hello_world", "hello_world"), StrCount::new(11, 11)); . /// assert_eq!(count_match_start("T\u{f6}ffT\u{f6}ff", "T\u{f6}ff"), StrCount::new(4, 5)); . /// ``` . #[must_use] 517 ( 0.00%) pub fn count_match_start(str1: &str, str2: &str) -> StrCount { . // (char_index, char1) . let char_count = str1.chars().count(); . let iter1 = (0..=char_count).zip(str1.chars()); . // (byte_index, char2) . let iter2 = str2.char_indices(); . . iter1 . .zip(iter2) . .take_while(|((_, c1), (_, c2))| c1 == c2) . .last() . .map_or_else(StrCount::default, |((char_index, _), (byte_index, character))| { 9 ( 0.00%) StrCount::new(char_index + 1, byte_index + character.len_utf8()) . }) 423 ( 0.00%) } . . /// Returns the number of chars and bytes that match from the end . /// . /// ```no_run . /// # use clippy_utils::str_utils::{count_match_end, StrCount}; . /// assert_eq!(count_match_end("hello_cat", "bye_cat"), StrCount::new(4, 4)); . /// assert_eq!(count_match_end("if_item_thing", "enum_value"), StrCount::new(0, 0)); . /// assert_eq!(count_match_end("Clippy", "Clippy"), StrCount::new(6, 6)); . /// assert_eq!(count_match_end("MyT\u{f6}ff", "YourT\u{f6}ff"), StrCount::new(4, 5)); . /// ``` . #[must_use] 517 ( 0.00%) pub fn count_match_end(str1: &str, str2: &str) -> StrCount { . let char_count = str1.chars().count(); 94 ( 0.00%) if char_count == 0 { . return StrCount::default(); . } . . // (char_index, char1) . let iter1 = (0..char_count).rev().zip(str1.chars().rev()); . // (byte_index, char2) . let byte_count = str2.len(); . let iter2 = str2.char_indices().rev(); -- line 228 ---------------------------------------- -- line 229 ---------------------------------------- . . iter1 . .zip(iter2) . .take_while(|((_, c1), (_, c2))| c1 == c2) . .last() . .map_or_else(StrCount::default, |((char_index, _), (byte_index, _))| { . StrCount::new(char_count - char_index, byte_count - byte_index) . }) 423 ( 0.00%) } . . /// Returns a `snake_case` version of the input . /// ```no_run . /// use clippy_utils::str_utils::to_snake_case; . /// assert_eq!(to_snake_case("AbcDef"), "abc_def"); . /// assert_eq!(to_snake_case("ABCD"), "a_b_c_d"); . /// assert_eq!(to_snake_case("AbcDD"), "abc_d_d"); . /// assert_eq!(to_snake_case("Abc1DD"), "abc1_d_d"); . /// ``` 400 ( 0.00%) pub fn to_snake_case(name: &str) -> String { . let mut s = String::new(); . for (i, c) in name.chars().enumerate() { . if c.is_uppercase() { . // characters without capitalization are considered lowercase 202 ( 0.00%) if i != 0 { . s.push('_'); . } . s.extend(c.to_lowercase()); . } else { . s.push(c); . } . } 350 ( 0.00%) s 400 ( 0.00%) } . /// Returns a `CamelCase` version of the input . /// ```no_run . /// use clippy_utils::str_utils::to_camel_case; . /// assert_eq!(to_camel_case("abc_def"), "AbcDef"); . /// assert_eq!(to_camel_case("a_b_c_d"), "ABCD"); . /// assert_eq!(to_camel_case("abc_d_d"), "AbcDD"); . /// assert_eq!(to_camel_case("abc1_d_d"), "Abc1DD"); . /// ``` 14,688 ( 0.00%) pub fn to_camel_case(item_name: &str) -> String { . let mut s = String::new(); . let mut up = true; . for c in item_name.chars() { . if c.is_uppercase() { . // we only turn snake case text into CamelCase . return item_name.to_string(); . } 11,069 ( 0.00%) if c == '_' { . up = true; . continue; . } 6,938 ( 0.00%) if up { . up = false; . s.extend(c.to_uppercase()); . } else { . s.push(c); . } . } 2,196 ( 0.00%) s 14,688 ( 0.00%) } . . #[cfg(test)] . mod test { . use super::*; . . #[test] . fn camel_case_start_full() { . assert_eq!(camel_case_start("AbcDef"), StrIndex::new(0, 0)); -- line 298 ---------------------------------------- 1,481 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/doc/doc_suspicious_footnotes.rs -------------------------------------------------------------------------------- Ir -- line 5 ---------------------------------------- . use rustc_hir::attrs::AttributeKind; . use rustc_hir::{AttrStyle, Attribute}; . use rustc_lint::{LateContext, LintContext as _}; . . use std::ops::Range; . . use super::{DOC_SUSPICIOUS_FOOTNOTES, Fragments}; . 18,781 ( 0.00%) pub fn check(cx: &LateContext<'_>, doc: &str, range: Range, fragments: &Fragments<'_>, attrs: &[Attribute]) { . for i in doc[range.clone()] . .bytes() . .enumerate() 67,800 ( 0.00%) .filter_map(|(i, c)| if c == b'[' { Some(i) } else { None }) . { 6 ( 0.00%) let start = i + range.start; 9 ( 0.00%) if doc.as_bytes().get(start + 1) == Some(&b'^') . && let Some(end) = all_numbers_upto_brace(doc, start + 2) . && doc.as_bytes().get(end) != Some(&b':') . && doc.as_bytes().get(start - 1) != Some(&b'\\') . && let Some(this_fragment) = { . // the `doc` string contains all fragments concatenated together . // figure out which one this suspicious footnote comes from . let mut starting_position = 0; . let mut found_fragment = fragments.fragments.last(); -- line 28 ---------------------------------------- -- line 107 ---------------------------------------- . Applicability::HasPlaceholders, . ); . } . } . }, . ); . } . } 21,464 ( 0.00%) } . . fn all_numbers_upto_brace(text: &str, i: usize) -> Option { . for (j, c) in text.as_bytes()[i..].iter().copied().enumerate().take(64) { . if c == b']' && j != 0 { . return Some(i + j + 1); . } . if !c.is_ascii_digit() || j >= 64 { . break; -- line 123 ---------------------------------------- 21,464 ( 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. 100,040 ( 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)); 119 ( 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. 4,036 ( 0.00%) match borrow.get() { . UNUSED => { . borrow.replace(UNUSED - 1); . Some(BorrowRefMut { borrow }) . } . _ => None, . } . } . -- line 2077 ---------------------------------------- 14,482 ( 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/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 { 182,737 ( 0.00%) !self.eq(other) 720 ( 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 (120x) . } . } . . /// 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)] 332 ( 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 { 101 ( 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 { 22,803 ( 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 { 92 ( 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 { 237,829 ( 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 } 41,263 ( 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 } 13,272 ( 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 1415 ---------------------------------------- . /// assert_eq!(1.0 < 2.0, true); . /// assert_eq!(2.0 < 1.0, false); . /// ``` . #[inline] . #[must_use] . #[stable(feature = "rust1", since = "1.0.0")] . #[rustc_diagnostic_item = "cmp_partialord_lt"] . fn lt(&self, other: &Rhs) -> bool { 45 ( 0.00%) self.partial_cmp(other).is_some_and(Ordering::is_lt) 600 ( 0.00%) => ???:::cmp (15x) . } . . /// Tests less than or equal to (for `self` and `other`) and is used by the . /// `<=` operator. . /// . /// # Examples . /// . /// ``` -- line 1431 ---------------------------------------- -- 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 } 288 ( 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 } 1,056 ( 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] 346,761 ( 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)] 21,990 ( 0.00%) fn lt(&self, other: &Self) -> bool { *self < *other } . #[inline(always)] 7 ( 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,897 ( 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 { 412 ( 0.00%) PartialEq::eq(*self, *other) 85 ( 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 (13x) . } . #[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 ---------------------------------------- 24,167 ( 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 { 108,776 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'_>, expr: &'_ Expr<'_>) { 55,066 ( 0.00%) if let ExprKind::Lit(lit) = expr.kind 3,885 ( 0.00%) && let LitKind::Str(_, _) | LitKind::Char(_) = lit.node . { 1,356 ( 0.00%) check_str(cx, lit.span, expr.hir_id); . } 135,970 ( 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) { 2,712 ( 0.00%) if !span_is_local(span) { 42,994 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::span_is_local (678x) . 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 ---------------------------------------- 1,356 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_utils/src/res.rs -------------------------------------------------------------------------------- Ir -- line 41 ---------------------------------------- . /// only returned so logic errors can be handled by not emitting a lint on . /// release builds. . #[inline] . #[cfg_attr(debug_assertions, track_caller)] . fn ty_based_def(&self, node: impl HasHirId) -> Option { . #[inline] . #[cfg_attr(debug_assertions, track_caller)] . fn f(typeck: &TypeckResults<'_>, id: HirId) -> Option { 1,906 ( 0.00%) if typeck.hir_owner == id.owner { 8,694 ( 0.00%) let def = typeck.type_dependent_def(id); 4,675 ( 0.00%) => ???:::type_dependent_def (85x) . debug_assert!( . def.is_some(), . "attempted type-dependent lookup for a node with no definition\ . \n node `{id:?}`", . ); . def . } else { . debug_assert!( -- line 58 ---------------------------------------- -- line 99 ---------------------------------------- . /// use for type dependant lookup. . fn opt_qpath(self) -> Option>; . . /// If this is a path gets its resolution. Returns `Res::Err` otherwise. . #[inline] . #[cfg_attr(debug_assertions, track_caller)] . fn res<'tcx>(self, typeck: &impl MaybeTypeckRes<'tcx>) -> Res { . #[cfg_attr(debug_assertions, track_caller)] 5,900 ( 0.00%) fn f(qpath: &QPath<'_>, id: HirId, typeck: &TypeckResults<'_>) -> Res { 12,748 ( 0.00%) match *qpath { 27,779 ( 0.00%) QPath::Resolved(_, p) => p.res, 4,943 ( 0.00%) QPath::TypeRelative(..) if let Some((kind, id)) = typeck.ty_based_def(id) => Res::Def(kind, id), . QPath::TypeRelative(..) => Res::Err, . } 6,766 ( 0.00%) } . match self.opt_qpath() { 15,241 ( 0.00%) Some((qpath, id)) if let Some(typeck) = typeck.typeck_res() => f(qpath, id, typeck), 747 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/res.rs:clippy_utils::res::MaybeQPath::res::f (35x) 24 ( 0.00%) _ => Res::Err, . } . } . . /// If this is a path with the specified name as its final segment gets its . /// resolution. Returns `Res::Err` otherwise. . #[inline] . #[cfg_attr(debug_assertions, track_caller)] . fn res_if_named<'tcx>(self, typeck: &impl MaybeTypeckRes<'tcx>, name: Symbol) -> Res { -- line 124 ---------------------------------------- -- line 243 ---------------------------------------- . } . . /// If this is a type-relative path gets the definition it resolves to. . /// . /// Only inherent associated items require a type-relative path. . #[inline] . #[cfg_attr(debug_assertions, track_caller)] . fn ty_rel_def<'tcx>(self, typeck: &impl MaybeTypeckRes<'tcx>) -> Option { 343 ( 0.00%) match self.opt_qpath() { 115 ( 0.00%) Some((QPath::TypeRelative(..), id)) => typeck.ty_based_def(id), . _ => None, . } . } . . /// If this is a type-relative path to an item with the specified name gets . /// the definition it resolves to. . /// . /// Only inherent associated items require a type-relative path. . #[inline] . #[cfg_attr(debug_assertions, track_caller)] . fn ty_rel_def_if_named<'tcx>(self, typeck: &impl MaybeTypeckRes<'tcx>, name: Symbol) -> Option { 160 ( 0.00%) match self.opt_qpath() { 51 ( 0.00%) Some((&QPath::TypeRelative(_, seg), id)) if seg.ident.name == name => typeck.ty_based_def(id), . _ => None, . } . } . . /// If this is a type-relative path gets the definition it resolves to and . /// its final segment. . /// . /// Only inherent associated items require a type-relative path. -- line 273 ---------------------------------------- -- line 285 ---------------------------------------- . #[inline] . fn opt_qpath(self) -> Option> { . Some((self.0, self.1)) . } . } . impl<'tcx> MaybeQPath<'tcx> for &'tcx Expr<'_> { . #[inline] . fn opt_qpath(self) -> Option> { 37,479 ( 0.00%) match &self.kind { 17,718 ( 0.00%) ExprKind::Path(qpath) => Some((qpath, self.hir_id)), . _ => None, . } . } . } . impl<'tcx> MaybeQPath<'tcx> for &'tcx PatExpr<'_> { . #[inline] . fn opt_qpath(self) -> Option> { . match &self.kind { -- line 302 ---------------------------------------- -- line 366 ---------------------------------------- . fn basic_res(self) -> &'a Res { . self.opt_res_path().1.map_or(&Res::Err, |p| &p.res) . } . . /// If this node is a path to a local gets the local's `HirId`. . #[inline] . fn res_local_id(self) -> Option { . if let (_, Some(p)) = self.opt_res_path() 102,205 ( 0.00%) && let Res::Local(id) = p.res . { . Some(id) . } else { . None . } . } . . /// If this node is a path to a local gets the local's `HirId` and identifier. -- line 382 ---------------------------------------- -- line 405 ---------------------------------------- . #[inline] . fn basic_res(self) -> &'a Res { . &self.res . } . } . impl<'a> MaybeResPath<'a> for &QPath<'a> { . #[inline] . fn opt_res_path(self) -> OptResPath<'a> { 13,644 ( 0.00%) match *self { 38,571 ( 0.00%) QPath::Resolved(ty, path) => (ty, Some(path)), . QPath::TypeRelative(..) => (None, None), . } . } . . #[inline] . fn opt_ty_rel_path(self) -> OptTyRelPath<'a> { . match *self { . QPath::TypeRelative(ty, seg) => Some((ty, seg)), . QPath::Resolved(..) => None, . } . } . } . impl<'a> MaybeResPath<'a> for &Expr<'a> { . #[inline] . fn opt_res_path(self) -> OptResPath<'a> { 392,778 ( 0.01%) match &self.kind { 3,010 ( 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 (7x) . ExprKind::Path(qpath) => qpath.opt_res_path(), . _ => (None, None), . } . } . . #[inline] . fn opt_ty_rel_path(self) -> OptTyRelPath<'a> { . match &self.kind { -- line 438 ---------------------------------------- -- line 456 ---------------------------------------- . PatExprKind::Path(qpath) => qpath.opt_ty_rel_path(), . PatExprKind::Lit { .. } => None, . } . } . } . impl<'a, AmbigArg> MaybeResPath<'a> for &hir::Ty<'a, AmbigArg> { . #[inline] . fn opt_res_path(self) -> OptResPath<'a> { 3,097 ( 0.00%) match &self.kind { . TyKind::Path(qpath) => qpath.opt_res_path(), . _ => (None, None), . } . } . . #[inline] . fn opt_ty_rel_path(self) -> OptTyRelPath<'a> { . match &self.kind { -- line 472 ---------------------------------------- -- line 518 ---------------------------------------- . . /// Gets this definition's id and kind. This will lookup the kind in the def . /// tree if needed. . fn opt_def<'tcx>(self, tcx: &impl HasTyCtxt<'tcx>) -> Option<(DefKind, DefId)>; . . /// Gets the diagnostic name of this definition if it has one. . #[inline] . fn opt_diag_name<'tcx>(self, tcx: &impl HasTyCtxt<'tcx>) -> Option { 6,141 ( 0.00%) self.opt_def_id().and_then(|id| tcx.tcx().get_diagnostic_name(id)) 231 ( 0.00%) => ???:::get_diagnostic_name (3x) . } . . /// Checks if this definition has the specified diagnostic name. . #[inline] . fn is_diag_item<'tcx>(self, tcx: &impl HasTyCtxt<'tcx>, name: Symbol) -> bool { . self.opt_def_id() 34,373 ( 0.00%) .is_some_and(|id| tcx.tcx().is_diagnostic_item(name, id)) 17,445 ( 0.00%) => ???:::is_diagnostic_item (191x) . } . . /// Checks if this definition is the specified `LangItem`. . #[inline] . fn is_lang_item<'tcx>(self, tcx: &impl HasTyCtxt<'tcx>, item: LangItem) -> bool { . self.opt_def_id() 1,050 ( 0.00%) .is_some_and(|id| tcx.tcx().lang_items().get(item) == Some(id)) 1,410 ( 0.00%) => ???:::lang_items (47x) . } . . /// If this definition is an impl block gets its type. . #[inline] 1,470 ( 0.00%) fn opt_impl_ty<'tcx>(self, tcx: &impl HasTyCtxt<'tcx>) -> Option>> { 834 ( 0.00%) match self.opt_def(tcx) { 8,580 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/res.rs:::opt_def:: (78x) 113 ( 0.00%) Some((DefKind::Impl { .. }, id)) => Some(tcx.tcx().type_of(id)), . _ => None, . } 1,351 ( 0.00%) } . . /// Gets the parent of this definition if it has one. . #[inline] 20 ( 0.00%) fn opt_parent<'tcx>(self, tcx: &impl HasTyCtxt<'tcx>) -> Option { . self.opt_def_id().and_then(|id| tcx.tcx().opt_parent(id)) 40 ( 0.00%) } . . /// Checks if this definition is an impl block. . #[inline] . fn is_impl<'tcx>(self, tcx: &impl HasTyCtxt<'tcx>) -> bool { 170 ( 0.00%) matches!(self.opt_def(tcx), Some((DefKind::Impl { .. }, _))) . } . . /// If this definition is a constructor gets the `DefId` of it's type or variant. . #[inline] . fn ctor_parent<'tcx>(self, tcx: &impl HasTyCtxt<'tcx>) -> Option { 738 ( 0.00%) match self.opt_def(tcx) { . Some((DefKind::Ctor(..), id)) => tcx.tcx().opt_parent(id), . _ => None, . } . } . . /// If this definition is an associated item of an impl or trait gets the . /// `DefId` of its parent. . #[inline] 255 ( 0.00%) fn assoc_parent<'tcx>(self, tcx: &impl HasTyCtxt<'tcx>) -> Option { 366 ( 0.00%) match self.opt_def(tcx) { . Some((DefKind::AssocConst { .. } | DefKind::AssocFn | DefKind::AssocTy, id)) => tcx.tcx().opt_parent(id), . _ => None, . } 340 ( 0.00%) } . . /// If this definition is an associated function of an impl or trait gets the . /// `DefId` of its parent. . #[inline] . fn assoc_fn_parent<'tcx>(self, tcx: &impl HasTyCtxt<'tcx>) -> Option { 42 ( 0.00%) match self.opt_def(tcx) { . Some((DefKind::AssocFn, id)) => tcx.tcx().opt_parent(id), . _ => None, . } . } . } . impl MaybeDef for DefId { . #[inline] . fn opt_def_id(self) -> Option { . Some(self) . } . . #[inline] 1,364 ( 0.00%) fn opt_def<'tcx>(self, tcx: &impl HasTyCtxt<'tcx>) -> Option<(DefKind, DefId)> { . self.opt_def_id().map(|id| (tcx.tcx().def_kind(id), id)) 904 ( 0.00%) } . } . impl MaybeDef for (DefKind, DefId) { . #[inline] . fn opt_def_id(self) -> Option { . Some(self.1) . } . . #[inline] . fn opt_def<'tcx>(self, _: &impl HasTyCtxt<'tcx>) -> Option<(DefKind, DefId)> { 21 ( 0.00%) Some(self) . } . } . impl MaybeDef for AdtDef<'_> { . #[inline] . fn opt_def_id(self) -> Option { . Some(self.did()) . } . -- line 620 ---------------------------------------- -- line 642 ---------------------------------------- . impl MaybeDef for Res { . #[inline] . fn opt_def_id(self) -> Option { . Res::opt_def_id(&self) . } . . #[inline] . fn opt_def<'tcx>(self, _: &impl HasTyCtxt<'tcx>) -> Option<(DefKind, DefId)> { 1,388 ( 0.00%) match self { 754 ( 0.00%) Res::Def(kind, id) => Some((kind, id)), . _ => None, . } . } . } . impl MaybeDef for Option { . #[inline] . fn opt_def_id(self) -> Option { . self.and_then(T::opt_def_id) . } . . #[inline] . fn opt_def<'tcx>(self, tcx: &impl HasTyCtxt<'tcx>) -> Option<(DefKind, DefId)> { 70 ( 0.00%) self.and_then(|x| T::opt_def(x, tcx)) 3,115 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/res.rs:::opt_def:: (35x) . } . } . impl MaybeDef for EarlyBinder<'_, T> { . #[inline] . fn opt_def_id(self) -> Option { . self.skip_binder().opt_def_id() . } . -- line 672 ---------------------------------------- 92,266 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/doc/too_long_first_doc_paragraph.rs -------------------------------------------------------------------------------- Ir -- line 12 ---------------------------------------- . pub(super) fn check( . cx: &LateContext<'_>, . item: &Item<'_>, . attrs: &[Attribute], . first_paragraph_text_len: usize, . mut first_paragraph_md_len: usize, . check_private_items: bool, . ) { 24,040 ( 0.00%) if !check_private_items && !cx.effective_visibilities.is_exported(item.owner_id.def_id) { 162,960 ( 0.00%) => ???:::is_exported (3,005x) . return; . } . if first_paragraph_text_len <= 200 . || !matches!( . item.kind, . // This is the list of items which can be documented AND are displayed on the module . // page. So associated items or impl blocks are not part of this list. . ItemKind::Static(..) -- line 28 ---------------------------------------- -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_utils/src/msrvs.rs -------------------------------------------------------------------------------- Ir -- line 110 ---------------------------------------- . } . } . . impl Msrv { . /// Returns the MSRV at the current node . /// . /// If the crate being linted uses an `#[clippy::msrv]` attribute this will search the parent . /// nodes for that attribute, prefer to run this check after cheaper pattern matching operations 6,543 ( 0.00%) pub fn current(self, cx: &LateContext<'_>) -> Option { 64,267 ( 0.00%) if SEEN_MSRV_ATTR.load(Ordering::Relaxed) { . self.for_attrs(cx.tcx, cx.last_node_with_lint_attrs) . } else { . self.0 . } 8,724 ( 0.00%) } . . /// Returns the MSRV at the specified node . /// . /// If the crate being linted uses an `#[clippy::msrv]` attribute this will search the parent . /// nodes for that attribute, prefer to run this check after cheaper pattern matching operations . pub fn at(self, tcx: TyCtxt<'_>, node: HirId) -> Option { 3 ( 0.00%) if SEEN_MSRV_ATTR.load(Ordering::Relaxed) { . self.for_attrs(tcx, node) . } else { . self.0 . } . } . . fn for_attrs(self, tcx: TyCtxt<'_>, node: HirId) -> Option { . once(node) -- line 139 ---------------------------------------- -- line 141 ---------------------------------------- . .find_map(|id| parse_attrs(tcx.hir_attrs(id))) . .or(self.0) . } . . /// Checks if a required version from [this module](self) is met at the current node . /// . /// If the crate being linted uses an `#[clippy::msrv]` attribute this will search the parent . /// nodes for that attribute, prefer to run this check after cheaper pattern matching operations 310,430 ( 0.01%) pub fn meets(self, cx: &LateContext<'_>, required: RustcVersion) -> bool { 248,344 ( 0.01%) self.current(cx).is_none_or(|msrv| msrv >= required) 248,344 ( 0.01%) } . /// Checks if a required version from [this module](self) is met at the specified node . /// . /// If the crate being linted uses an `#[clippy::msrv]` attribute this will search the parent . /// nodes for that attribute, prefer to run this check after cheaper pattern matching operations . pub fn meets_at(self, tcx: TyCtxt<'_>, node: HirId, required: RustcVersion) -> bool { . self.at(tcx, node).is_none_or(|msrv| msrv >= required) . } . -- line 159 ---------------------------------------- -- line 232 ---------------------------------------- . } . . impl MsrvStack { . pub fn current(&self) -> Option { . self.stack.last().copied() . } . . pub fn meets(&self, required: RustcVersion) -> bool { 146,075 ( 0.00%) self.current().is_none_or(|msrv| msrv >= required) 29,215 ( 0.00%) } . . pub fn check_attributes(&mut self, attrs: &[Attribute]) { . if let Some(version) = parse_attrs(attrs) { . SEEN_MSRV_ATTR.store(true, Ordering::Relaxed); . self.stack.push(version); . } 215,011 ( 0.01%) } . . pub fn check_attributes_post(&mut self, attrs: &[Attribute]) { . if parse_attrs(attrs).is_some() { . self.stack.pop(); . } 215,011 ( 0.01%) } . } . . fn parse_attrs(attrs: &[impl AttributeExt]) -> Option { 345,920 ( 0.01%) let msrv_attr = attrs.iter().find(|attr| attr.path_matches(&[sym::clippy, sym::msrv]))?; 204,828 ( 0.01%) => ???:::path_matches (43,240x) . . let msrv = msrv_attr.value_str()?; . . parse_version(msrv) . } . 288,872 ( 0.01%) pub fn check_attrs(sess: &Session, attrs: &[impl AttributeExt]) { 30,048 ( 0.00%) let mut msrv_attrs = attrs.iter().filter(|attr| attr.path_matches(&[sym::clippy, sym::msrv])); 35,220 ( 0.00%) => ???:::path_matches (7,512x) . . let Some(msrv_attr) = msrv_attrs.next() else { . return; . }; . . if let Some(duplicate) = msrv_attrs.next_back() { . sess.dcx() . .struct_span_err(duplicate.span(), "`clippy::msrv` is defined multiple times") -- line 274 ---------------------------------------- -- line 280 ---------------------------------------- . sess.dcx().span_err(msrv_attr.span(), "bad clippy attribute"); . return; . }; . . if parse_version(msrv).is_none() { . sess.dcx() . .span_err(msrv_attr.span(), format!("`{msrv}` is not a valid Rust version")); . } 288,872 ( 0.01%) } 69,598 ( 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 { 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 54,388 ( 0.00%) if let ExprKind::Binary(bin_op, left_expr, right_expr) = expr.kind 764 ( 0.00%) && let BinOpKind::Mul = &bin_op.node 4 ( 0.00%) && !expr.span.from_expansion() 2 ( 0.00%) && let ctxt = expr.span.ctxt() 4 ( 0.00%) && left_expr.span.ctxt() == ctxt 4 ( 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, . ); . } 217,552 ( 0.01%) } . } . . fn get_one_size_of_ty<'tcx>( . cx: &LateContext<'tcx>, . expr1: &'tcx Expr<'_>, . expr2: &'tcx Expr<'_>, . ) -> Option<(Span, Ty<'tcx>, &'tcx Expr<'tcx>)> { 28 ( 0.00%) match (get_size_of_ty(cx, expr1), get_size_of_ty(cx, expr2)) { 56 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/manual_bits.rs:clippy_lints::manual_bits::get_size_of_ty (4x) . (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, . } . } . 20 ( 0.00%) fn get_size_of_ty<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) -> Option<(Span, Ty<'tcx>)> { 8 ( 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 { 4 ( 0.00%) None . } 24 ( 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 ---------------------------------------- 44 ( 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)] 244,746 ( 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`" 54,598 ( 0.00%) let (inner_expr, span, suggested_type) = if let ExprKind::Array([inner_expr]) = expr.kind 76 ( 0.00%) && !expr.span.from_expansion() . { 9 ( 0.00%) (inner_expr, expr.span, SuggestedType::Array) 1,103 ( 0.00%) } else if let Some(macro_call) = root_macro_call_first_node(cx, expr) 1,847 ( 0.00%) && let Some(VecArgs::Vec([expr])) = VecArgs::hir(cx, expr) 14,567 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir (366x) . { . (expr, macro_call.span, SuggestedType::Vec) . } else { . return; . }; . 84 ( 0.00%) let Some(range) = Range::hir(cx, inner_expr) else { 698 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir (14x) . 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, . ); . } . } . }, . ); 217,552 ( 0.01%) } . } 394 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/attrs/inline_always.rs -------------------------------------------------------------------------------- Ir -- line 2 ---------------------------------------- . use super::utils::is_relevant_expr; . use clippy_utils::diagnostics::span_lint; . use rustc_hir::attrs::InlineAttr; . use rustc_hir::{Attribute, BodyId, find_attr}; . use rustc_lint::LateContext; . use rustc_span::Span; . use rustc_span::symbol::Symbol; . 13,632 ( 0.00%) pub(super) fn check(cx: &LateContext<'_>, span: Span, name: Symbol, attrs: &[Attribute], body: Option) { . if span.from_expansion() { . return; . } . 4,126 ( 0.00%) if let Some(span) = find_attr!(attrs, Inline(InlineAttr::Always, span) => *span) . && body.is_none_or(|body| is_relevant_expr(cx, cx.tcx.hir_body(body).value)) . { . span_lint( . cx, . INLINE_ALWAYS, . span, . format!("you have declared `#[inline(always)]` on `{name}`. This is usually a bad idea"), . ); . } 8,520 ( 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 { 344,740 ( 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. 135,334 ( 0.00%) 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`. 5,740 ( 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 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`. 10,628 ( 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`. 47,573 ( 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`. 99,336 ( 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 { 47,804 ( 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 ---------------------------------------- 17,991 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/returns/needless_return_with_question_mark.rs -------------------------------------------------------------------------------- Ir -- line 5 ---------------------------------------- . use rustc_hir::LangItem::ResultErr; . use rustc_hir::{Expr, ExprKind, HirId, MatchSource, Node, Stmt, StmtKind}; . use rustc_lint::{LateContext, LintContext as _}; . use rustc_middle::ty::adjustment::Adjust; . . use super::NEEDLESS_RETURN_WITH_QUESTION_MARK; . . pub(super) fn check_stmt<'tcx>(cx: &LateContext<'tcx>, stmt: &'tcx Stmt<'_>) { 5,159 ( 0.00%) if let StmtKind::Semi(expr) = stmt.kind 2,461 ( 0.00%) && let ExprKind::Ret(Some(ret)) = expr.kind . // return Err(...)? desugars to a match . // over a Err(...).branch() . // which breaks down to a branch call, with the callee being . // the constructor of the Err variant 230 ( 0.00%) && let ExprKind::Match(maybe_cons, _, MatchSource::TryDesugar(_)) = ret.kind . && let ExprKind::Call(_, [maybe_result_err]) = maybe_cons.kind . && let ExprKind::Call(maybe_constr, _) = maybe_result_err.kind . && maybe_constr.res(cx).ctor_parent(cx).is_lang_item(cx, ResultErr) . . // Ensure this is not the final stmt, otherwise removing it would cause a compile error . && let block = cx.tcx.hir_body_owned_by(cx.tcx.hir_enclosing_body_owner(expr.hir_id)).value . && let ExprKind::Block(block, _) = peel_async_body(block).kind . && !is_inside_let_else(cx.tcx, expr) -- line 27 ---------------------------------------- -- line 36 ---------------------------------------- . NEEDLESS_RETURN_WITH_QUESTION_MARK, . expr.span.until(ret.span), . "unneeded `return` statement with `?` operator", . "remove it", . String::new(), . Applicability::MachineApplicable, . ); . } 2,055 ( 0.00%) } . . /// In async functions, the body is wrapped in a . /// `Block { expr: DropTemps(inner) }`. We peel through to `inner` so . /// we can check the actual stmts. . /// Returns `body_value` unchanged for non-async functions. . fn peel_async_body<'a>(body_value: &'a Expr<'a>) -> &'a Expr<'a> { . if let ExprKind::Block(block, _) = body_value.kind . && let Some(expr) = block.expr -- line 52 ---------------------------------------- 14,686 ( 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 { 244,746 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, e: &'tcx Expr<'_>) { . use rustc_ast::LitKind; . 219,913 ( 0.01%) if let ExprKind::Call(fun, [bytes_arg]) = e.kind . // Find `std::str::converts::from_utf8` or `std::primitive::str::from_utf8` 7,035 ( 0.00%) && let Some(sym::str_from_utf8 | sym::str_inherent_from_utf8) = 2,361 ( 0.00%) fun.res(cx).opt_diag_name(cx) . . // Find string::as_bytes . && 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() -- line 300 ---------------------------------------- -- 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, . ); . } . 59,748 ( 0.00%) if !e.span.in_external_macro(cx.sess().source_map()) . && let ExprKind::MethodCall(path, receiver, ..) = &e.kind 5,358 ( 0.00%) && path.ident.name == sym::as_bytes 8 ( 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, . ); . } . } . } . 32,554 ( 0.00%) if let ExprKind::MethodCall(path, recv, [], _) = &e.kind 3,094 ( 0.00%) && path.ident.name == sym::into_bytes 6 ( 0.00%) && let ExprKind::MethodCall(path, recv, [], _) = &recv.kind 4 ( 0.00%) && matches!(path.ident.name, sym::to_owned | sym::to_string) 3 ( 0.00%) && 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; . . span_lint_and_sugg( -- line 382 ---------------------------------------- -- line 387 ---------------------------------------- . "consider using a byte string literal instead", . format!( . "b{}.to_vec()", . snippet_with_applicability(cx, recv.span, r#""..""#, &mut applicability) . ), . applicability, . ); . } 217,552 ( 0.01%) } . } . . 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 { 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &Expr<'_>) { . let tyckres = cx.typeck_results(); 61,295 ( 0.00%) if let ExprKind::MethodCall(path, split_recv, [], split_ws_span) = expr.kind 1,547 ( 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, . ); . } 217,552 ( 0.01%) } . } . . 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 ---------------------------------------- 29,555 ( 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/pattern.rs -------------------------------------------------------------------------------- Ir -- line 142 ---------------------------------------- . } . . /// Removes the pattern from the back of haystack, if it matches. . #[inline] . fn strip_suffix_of<'a>(self, haystack: &'a str) -> Option<&'a str> . where . Self::Searcher<'a>: ReverseSearcher<'a>, . { 92 ( 0.00%) if let SearchStep::Match(start, end) = self.into_searcher(haystack).next_back() { . debug_assert_eq!( . end, . haystack.len(), . "The first search step from ReverseSearcher \ . must include the last character" . ); . // SAFETY: `Searcher` is known to return valid indices. . unsafe { Some(haystack.get_unchecked(..start)) } -- line 158 ---------------------------------------- -- line 243 ---------------------------------------- . /// . /// Unlike [`next()`][Searcher::next], there is no guarantee that the returned ranges . /// of this and [`next_reject`][Searcher::next_reject] will overlap. This will return . /// `(start_match, end_match)`, where start_match is the index of where . /// the match begins, and end_match is the index after the end of the match. . #[inline] . fn next_match(&mut self) -> Option<(usize, usize)> { . loop { 188 ( 0.00%) match self.next() { . SearchStep::Match(a, b) => return Some((a, b)), . SearchStep::Done => return None, . _ => continue, . } . } . } . . /// Finds the next [`Reject`][SearchStep::Reject] result. See [`next()`][Searcher::next] . /// and [`next_match()`][Searcher::next_match]. . /// . /// Unlike [`next()`][Searcher::next], there is no guarantee that the returned ranges . /// of this and [`next_match`][Searcher::next_match] will overlap. . #[inline] . fn next_reject(&mut self) -> Option<(usize, usize)> { 1,240 ( 0.00%) loop { 294 ( 0.00%) match self.next() { . SearchStep::Reject(a, b) => return Some((a, b)), . SearchStep::Done => return None, . _ => continue, . } . } . } . } . -- line 275 ---------------------------------------- -- line 324 ---------------------------------------- . } . } . . /// Finds the next [`Reject`][SearchStep::Reject] result. . /// See [`next_back()`][ReverseSearcher::next_back]. . #[inline] . fn next_reject_back(&mut self) -> Option<(usize, usize)> { . loop { 11,327 ( 0.00%) match self.next_back() { . SearchStep::Reject(a, b) => return Some((a, b)), . SearchStep::Done => return None, . _ => continue, . } . } . } . } . -- line 340 ---------------------------------------- -- line 416 ---------------------------------------- . // starts at the end and only decreases . let slice = unsafe { self.haystack.get_unchecked(old_finger..self.finger_back) }; . let mut iter = slice.chars(); . let old_len = iter.iter.len(); . if let Some(ch) = iter.next() { . // add byte offset of current character . // without re-encoding as utf-8 . self.finger += old_len - iter.iter.len(); 248 ( 0.00%) if ch == self.needle { . SearchStep::Match(old_finger, self.finger) . } else { . SearchStep::Reject(old_finger, self.finger) . } . } else { . SearchStep::Done . } . } . #[inline] . fn next_match(&mut self) -> Option<(usize, usize)> { . loop { . // get the haystack after the last character found . let bytes = self.haystack.as_bytes().get(self.finger..self.finger_back)?; . // the last byte of the utf8 encoded needle . // SAFETY: we have an invariant that `utf8_size < 5` 2,425 ( 0.00%) let last_byte = unsafe { *self.utf8_encoded.get_unchecked(self.utf8_size() - 1) }; 21,818 ( 0.00%) if let Some(index) = memchr::memchr(last_byte, bytes) { . // The new finger is the index of the byte we found, . // plus one, since we memchr'd for the last byte of the character. . // . // Note that this doesn't always give us a finger on a UTF8 boundary. . // If we *didn't* find our character . // we may have indexed to the non-last byte of a 3-byte or 4-byte character. . // We can't just skip to the next valid starting byte because a character like . // ꁁ (U+A041 YI SYLLABLE PA), utf-8 `EA 81 81` will have us always find -- line 449 ---------------------------------------- -- line 451 ---------------------------------------- . // . // However, this is totally okay. While we have the invariant that . // self.finger is on a UTF8 boundary, this invariant is not relied upon . // within this method (it is relied upon in CharSearcher::next()). . // . // We only exit this method when we reach the end of the string, or if we . // find something. When we find something the `finger` will be set . // to a UTF8 boundary. 15,461 ( 0.00%) self.finger += index + 1; 36,358 ( 0.00%) if self.finger >= self.utf8_size() { . let found_char = self.finger - self.utf8_size(); . if let Some(slice) = self.haystack.as_bytes().get(found_char..self.finger) { 14,599 ( 0.00%) if slice == &self.utf8_encoded[0..self.utf8_size()] { . return Some((found_char, self.finger)); . } . } . } . } else { . // found nothing, exit 190 ( 0.00%) self.finger = self.finger_back; . return None; . } . } . } . . // let next_reject use the default implementation from the Searcher trait . } . -- line 478 ---------------------------------------- -- line 483 ---------------------------------------- . // SAFETY: see the comment for next() above . let slice = unsafe { self.haystack.get_unchecked(self.finger..old_finger) }; . let mut iter = slice.chars(); . let old_len = iter.iter.len(); . if let Some(ch) = iter.next_back() { . // subtract byte offset of current character . // without re-encoding as utf-8 . self.finger_back -= old_len - iter.iter.len(); 2 ( 0.00%) if ch == self.needle { . SearchStep::Match(self.finger_back, old_finger) . } else { . SearchStep::Reject(self.finger_back, old_finger) . } . } else { . SearchStep::Done . } . } -- line 499 ---------------------------------------- -- line 501 ---------------------------------------- . fn next_match_back(&mut self) -> Option<(usize, usize)> { . let haystack = self.haystack.as_bytes(); . loop { . // get the haystack up to but not including the last character searched . let bytes = haystack.get(self.finger..self.finger_back)?; . // the last byte of the utf8 encoded needle . // SAFETY: we have an invariant that `utf8_size < 5` . let last_byte = unsafe { *self.utf8_encoded.get_unchecked(self.utf8_size() - 1) }; 1,530 ( 0.00%) if let Some(index) = memchr::memrchr(last_byte, bytes) { 11,514 ( 0.00%) => ???:core::slice::memchr::memrchr (255x) . // we searched a slice that was offset by self.finger, . // add self.finger to recoup the original index 9 ( 0.00%) let index = self.finger + index; . // memrchr will return the index of the byte we wish to . // find. In case of an ASCII character, this is indeed . // were we wish our new finger to be ("after" the found . // char in the paradigm of reverse iteration). For . // multibyte chars we need to skip down by the number of more . // bytes they have than ASCII . let shift = self.utf8_size() - 1; 36 ( 0.00%) if index >= shift { . let found_char = index - shift; 27 ( 0.00%) if let Some(slice) = haystack.get(found_char..(found_char + self.utf8_size())) { 9 ( 0.00%) if slice == &self.utf8_encoded[0..self.utf8_size()] { . // move finger to before the character found (i.e., at its start index) 9 ( 0.00%) self.finger_back = found_char; . return Some((self.finger_back, self.finger_back + self.utf8_size())); . } . } . } . // We can't use finger_back = index - size + 1 here. If we found the last char . // of a different-sized character (or the middle byte of a different character) . // we need to bump the finger_back down to `index`. This similarly makes . // `finger_back` have the potential to no longer be on a boundary, -- line 533 ---------------------------------------- -- line 535 ---------------------------------------- . // or when the haystack has been searched completely. . // . // Unlike next_match this does not . // have the problem of repeated bytes in utf-8 because . // we're searching for the last byte, and we can only have . // found the last byte when searching in reverse. . self.finger_back = index; . } else { 246 ( 0.00%) self.finger_back = self.finger; . // found nothing, exit . return None; . } . } . } . . // let next_reject_back use the default implementation from the Searcher trait . } -- line 551 ---------------------------------------- -- line 584 ---------------------------------------- . #[inline] . fn is_contained_in(self, haystack: &str) -> bool { . if (self as u32) < 128 { . haystack.as_bytes().contains(&(self as u8)) . } else { . let mut buffer = [0u8; 4]; . self.encode_utf8(&mut buffer).is_contained_in(haystack) . } 194 ( 0.00%) } . . #[inline] . fn is_prefix_of(self, haystack: &str) -> bool { . self.encode_utf8(&mut [0u8; 4]).is_prefix_of(haystack) . } . . #[inline] . fn strip_prefix_of(self, haystack: &str) -> Option<&str> { -- line 600 ---------------------------------------- -- line 691 ---------------------------------------- . fn next(&mut self) -> SearchStep { . let s = &mut self.char_indices; . // Compare lengths of the internal byte slice iterator . // to find length of current char . let pre_len = s.iter.iter.len(); . if let Some((i, c)) = s.next() { . let len = s.iter.iter.len(); . let char_len = pre_len - len; 4,714 ( 0.00%) if self.char_eq.matches(c) { . return SearchStep::Match(i, i + char_len); . } else { . return SearchStep::Reject(i, i + char_len); . } . } . SearchStep::Done . } . } -- line 707 ---------------------------------------- -- line 711 ---------------------------------------- . fn next_back(&mut self) -> SearchStep { . let s = &mut self.char_indices; . // Compare lengths of the internal byte slice iterator . // to find length of current char . let pre_len = s.iter.iter.len(); . if let Some((i, c)) = s.next_back() { . let len = s.iter.iter.len(); . let char_len = pre_len - len; 6 ( 0.00%) if self.char_eq.matches(c) { . return SearchStep::Match(i, i + char_len); . } else { . return SearchStep::Reject(i, i + char_len); . } . } . SearchStep::Done . } . } -- line 727 ---------------------------------------- -- line 970 ---------------------------------------- . /// ``` . /// assert_eq!("Hello world".find("world"), Some(6)); . /// ``` . impl<'b> Pattern for &'b str { . type Searcher<'a> = StrSearcher<'a, 'b>; . . #[inline] . fn into_searcher(self, haystack: &str) -> StrSearcher<'_, 'b> { 113,214 ( 0.00%) StrSearcher::new(haystack, self) 1,284 ( 0.00%) => ???:::new (6x) . } . . /// Checks whether the pattern matches at the front of the haystack. . #[inline] . fn is_prefix_of(self, haystack: &str) -> bool { . haystack.as_bytes().starts_with(self.as_bytes()) . } . . /// Checks whether the pattern matches anywhere in the haystack . #[inline] 1,710 ( 0.00%) fn is_contained_in(self, haystack: &str) -> bool { . if self.len() == 0 { . return true; . } . 364 ( 0.00%) match self.len().cmp(&haystack.len()) { . Ordering::Less => { . if self.len() == 1 { . return haystack.as_bytes().contains(&self.as_bytes()[0]); . } . . #[cfg(any( . all(target_arch = "x86_64", target_feature = "sse2"), . all(target_arch = "loongarch64", target_feature = "lsx"), -- line 1002 ---------------------------------------- -- line 1007 ---------------------------------------- . return result; . } . } . . self.into_searcher(haystack).next_match().is_some() . } . _ => self == haystack, . } 1,368 ( 0.00%) } . . /// Removes the pattern from the front of haystack, if it matches. . #[inline] . fn strip_prefix_of(self, haystack: &str) -> Option<&str> { 5,550 ( 0.00%) if self.is_prefix_of(haystack) { . // SAFETY: prefix was just verified to exist. . unsafe { Some(haystack.get_unchecked(self.as_bytes().len()..)) } . } else { . None . } . } . . /// Checks whether the pattern matches at the back of the haystack. -- line 1028 ---------------------------------------- -- line 1035 ---------------------------------------- . } . . /// Removes the pattern from the back of haystack, if it matches. . #[inline] . fn strip_suffix_of<'a>(self, haystack: &'a str) -> Option<&'a str> . where . Self::Searcher<'a>: ReverseSearcher<'a>, . { 7,202 ( 0.00%) if self.is_suffix_of(haystack) { 261 ( 0.00%) let i = haystack.len() - self.as_bytes().len(); . // SAFETY: suffix was just verified to exist. . unsafe { Some(haystack.get_unchecked(..i)) } . } else { . None . } . } . . #[inline] -- line 1052 ---------------------------------------- -- line 1165 ---------------------------------------- . } . otherwise => otherwise, . } . } . } . } . . #[inline] 113,844 ( 0.00%) fn next_match(&mut self) -> Option<(usize, usize)> { 32,538 ( 0.00%) match self.searcher { . StrSearcherImpl::Empty(..) => loop { . match self.next() { . SearchStep::Match(a, b) => return Some((a, b)), . SearchStep::Done => return None, . SearchStep::Reject(..) => {} . } . }, . StrSearcherImpl::TwoWay(ref mut searcher) => { 32,539 ( 0.00%) let is_long = searcher.memory == usize::MAX; . // write out `true` and `false` cases to encourage the compiler . // to specialize the two cases separately. 16,270 ( 0.00%) if is_long { . searcher.next::( . self.haystack.as_bytes(), . self.needle.as_bytes(), . true, . ) . } else { . searcher.next::( . self.haystack.as_bytes(), . self.needle.as_bytes(), . false, . ) . } . } . } 130,032 ( 0.00%) } . } . . unsafe impl<'a, 'b> ReverseSearcher<'a> for StrSearcher<'a, 'b> { . #[inline] . fn next_back(&mut self) -> SearchStep { . match self.searcher { . StrSearcherImpl::Empty(ref mut searcher) => { . if searcher.is_finished { -- line 1209 ---------------------------------------- -- line 1220 ---------------------------------------- . } . Some(ch) => { . searcher.end -= ch.len_utf8(); . SearchStep::Reject(searcher.end, end) . } . } . } . StrSearcherImpl::TwoWay(ref mut searcher) => { 4 ( 0.00%) if searcher.end == 0 { . return SearchStep::Done; . } . let is_long = searcher.memory == usize::MAX; . match searcher.next_back::( . self.haystack.as_bytes(), . self.needle.as_bytes(), . is_long, . ) { -- line 1236 ---------------------------------------- -- line 1446 ---------------------------------------- . . #[inline] . fn byteset_create(bytes: &[u8]) -> u64 { . bytes.iter().fold(0, |a, &b| (1 << (b & 0x3f)) | a) . } . . #[inline] . fn byteset_contains(&self, byte: u8) -> bool { 464,768 ( 0.01%) (self.byteset >> ((byte & 0x3f) as usize)) & 1 != 0 . } . . // One of the main ideas of Two-Way is that we factorize the needle into . // two halves, (u, v), and begin trying to find v in the haystack by scanning . // left to right. If v matches, we try to match u by scanning right to left. . // How far we can jump when we encounter a mismatch is all based on the fact . // that (u, v) is a critical factorization for the needle. . #[inline] . fn next(&mut self, haystack: &[u8], needle: &[u8], long_period: bool) -> S::Output . where . S: TwoWayStrategy, . { . // `next()` uses `self.position` as its cursor . let old_pos = self.position; 16,269 ( 0.00%) let needle_last = needle.len() - 1; . 'search: loop { . // Check that we have room to search in . // position + needle_last can not overflow if we assume slices . // are bounded by isize's range. 201,152 ( 0.00%) let tail_byte = match haystack.get(self.position + needle_last) { . Some(&b) => b, . None => { 15,912 ( 0.00%) self.position = haystack.len(); . return S::rejecting(old_pos, self.position); . } . }; . . if S::use_early_reject() && old_pos != self.position { . return S::rejecting(old_pos, self.position); . } . . // Quickly skip by large portions unrelated to our substring 320,758 ( 0.01%) if !self.byteset_contains(tail_byte) { 263,948 ( 0.01%) self.position += needle.len(); . if !long_period { . self.memory = 0; . } . continue 'search; . } . . // See if the right part of the needle matches . let start = -- line 1496 ---------------------------------------- -- line 1497 ---------------------------------------- . if long_period { self.crit_pos } else { cmp::max(self.crit_pos, self.memory) }; . for i in start..needle.len() { . // SAFETY: on every iteration of `'search`, the `haystack.get(self.position + needle_last)` . // check returned `Some`, so `self.position + needle_last < haystack.len()`. . // Since `i < needle.len()` implies `i <= needle_last`, we have . // `self.position + i < haystack.len()`. . // Every path that mutates `self.position` below either returns or re-enters `'search`, . // which re-runs the check before reaching the loop again. 43,460 ( 0.00%) if needle[i] != unsafe { *haystack.get_unchecked(self.position + i) } { 11,166 ( 0.00%) self.position += i - self.crit_pos + 1; 16,472 ( 0.00%) if !long_period { . self.memory = 0; . } . continue 'search; . } . } . . // See if the left part of the needle matches . let start = if long_period { 0 } else { self.memory }; . for i in (start..self.crit_pos).rev() { . // SAFETY: on every iteration of `'search`, the `haystack.get(self.position + needle_last)` . // check returned `Some`, so `self.position + needle_last < haystack.len()`. . // Since `i < self.crit_pos <= needle.len()`, we have `i <= needle_last`, and thus . // `self.position + i <= self.position + needle_last < haystack.len()`. . // Every path that mutates `self.position` below either returns or re-enters `'search`, . // which re-runs the check before reaching the loop again. 1,712 ( 0.00%) if needle[i] != unsafe { *haystack.get_unchecked(self.position + i) } { 60 ( 0.00%) self.position += self.period; 4,280 ( 0.00%) if !long_period { . self.memory = needle.len() - self.period; . } . continue 'search; . } . } . . // We have found a match! . let match_pos = self.position; . . // Note: add self.period instead of needle.len() to have overlapping matches 716 ( 0.00%) self.position += needle.len(); . if !long_period { 171 ( 0.00%) self.memory = 0; // set to needle.len() - self.period for overlapping matches . } . . return S::matching(match_pos, match_pos + needle.len()); . } . } . . // Follows the ideas in `next()`. . // -- line 1546 ---------------------------------------- -- line 1759 ---------------------------------------- . false . } . #[inline] . fn rejecting(_a: usize, _b: usize) -> Self::Output { . None . } . #[inline] . fn matching(a: usize, b: usize) -> Self::Output { 1,190 ( 0.00%) Some((a, b)) . } . } . . /// Emit Rejects regularly . enum RejectAndMatch {} . . impl TwoWayStrategy for RejectAndMatch { . type Output = SearchStep; -- line 1775 ---------------------------------------- -- line 1818 ---------------------------------------- . let haystack = haystack.as_bytes(); . . debug_assert!(needle.len() > 1); . . use crate::ops::BitAnd; . use crate::simd::cmp::SimdPartialEq; . use crate::simd::{mask8x16 as Mask, u8x16 as Block}; . 165 ( 0.00%) let first_probe = needle[0]; 165 ( 0.00%) let last_byte_offset = needle.len() - 1; . . // the offset used for the 2nd vector 330 ( 0.00%) let second_probe_offset = if needle.len() == 2 { . // never bail out on len=2 needles because the probes will fully cover them and have . // no degenerate cases. . 1 . } else { . // try a few bytes in case first and last byte of the needle are the same . let Some(second_probe_offset) = 495 ( 0.00%) (needle.len().saturating_sub(4)..needle.len()).rfind(|&idx| needle[idx] != first_probe) . else { . // fall back to other search methods if we can't find any different bytes . // since we could otherwise hit some degenerate cases . return None; . }; . second_probe_offset . }; . . // do a naive search if the haystack is too small to fit 495 ( 0.00%) if haystack.len() < Block::LEN + last_byte_offset { . return Some(haystack.windows(needle.len()).any(|c| c == needle)); . } . . let first_probe: Block = Block::splat(first_probe); . let second_probe: Block = Block::splat(needle[second_probe_offset]); . // first byte are already checked by the outer loop. to verify a match only the . // remainder has to be compared. . let trimmed_needle = &needle[1..]; . . // this #[cold] is load-bearing, benchmark before removing it... . let check_mask = #[cold] 815 ( 0.00%) |idx, mask: u16, skip: bool| -> bool { 88 ( 0.00%) if skip { . return false; . } . . // and so is this. optimizations are weird. . let mut mask = mask; . 64 ( 0.00%) while mask != 0 { . let trailing = mask.trailing_zeros(); . let offset = idx + trailing as usize + 1; . // SAFETY: mask is between 0 and 15 trailing zeroes, we skip one additional byte that was already compared . // and then take trimmed_needle.len() bytes. This is within the bounds defined by the outer loop . unsafe { . let sub = haystack.get_unchecked(offset..).get_unchecked(..trimmed_needle.len()); . if small_slice_eq(sub, trimmed_needle) { . return true; . } . } 64 ( 0.00%) mask &= !(1 << trailing); . } . false 44 ( 0.00%) }; . . let test_chunk = |idx| -> u16 { . // SAFETY: this requires at least LANES bytes being readable at idx . // that is ensured by the loop ranges (see comments below) . let a: Block = unsafe { haystack.as_ptr().add(idx).cast::().read_unaligned() }; . // SAFETY: this requires LANES + block_offset bytes being readable at idx . let b: Block = unsafe { . haystack.as_ptr().add(idx).add(second_probe_offset).cast::().read_unaligned() -- line 1889 ---------------------------------------- -- line 1896 ---------------------------------------- . mask . }; . . let mut i = 0; . let mut result = false; . // The loop condition must ensure that there's enough headroom to read LANE bytes, . // and not only at the current index but also at the index shifted by block_offset . const UNROLL: usize = 4; 9,191 ( 0.00%) while i + last_byte_offset + UNROLL * Block::LEN < haystack.len() && !result { . let mut masks = [0u16; UNROLL]; . for j in 0..UNROLL { 1,497 ( 0.00%) masks[j] = test_chunk(i + j * Block::LEN); . } . for j in 0..UNROLL { . let mask = masks[j]; 12,622 ( 0.00%) if mask != 0 { 390 ( 0.00%) result |= check_mask(i + j * Block::LEN, mask, result); 876 ( 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:core::str::pattern::simd_contains::{closure#2} (36x) . } . } 1,497 ( 0.00%) i += UNROLL * Block::LEN; . } 1,691 ( 0.00%) while i + last_byte_offset + Block::LEN < haystack.len() && !result { . let mask = test_chunk(i); 715 ( 0.00%) if mask != 0 { 8 ( 0.00%) result |= check_mask(i, mask, result); 44 ( 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:core::str::pattern::simd_contains::{closure#2} (2x) . } . i += Block::LEN; . } . . // Process the tail that didn't fit into LANES-sized steps. . // This simply repeats the same procedure but as right-aligned chunk instead . // of a left-aligned one. The last byte must be exactly flush with the string end so . // we don't miss a single byte or read out of bounds. 163 ( 0.00%) let i = haystack.len() - last_byte_offset - Block::LEN; . let mask = test_chunk(i); 326 ( 0.00%) if mask != 0 { 48 ( 0.00%) result |= check_mask(i, mask, result); 132 ( 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:core::str::pattern::simd_contains::{closure#2} (6x) . } . . Some(result) . } . . /// Compares short slices for equality. . /// . /// It avoids a call to libc's memcmp which is faster on long slices -- line 1940 ---------------------------------------- -- line 1955 ---------------------------------------- . // https://github.com/BurntSushi/memchr/blob/8037d11b4357b0f07be2bb66dc2659d9cf28ad32/src/memmem/util.rs#L32 . . // If we don't have enough bytes to do 4-byte at a time loads, then . // fall back to the naive slow version. . // . // Potential alternative: We could do a copy_nonoverlapping combined with a mask instead . // of a loop. Benchmark it. . if x.len() < 4 { 68 ( 0.00%) for (&b1, &b2) in x.iter().zip(y) { 148 ( 0.00%) if b1 != b2 { . return false; . } . } . return true; . } . // When we have 4 or more bytes to compare, then proceed in chunks of 4 at . // a time using unaligned loads. . // -- line 1972 ---------------------------------------- 690,940 ( 0.02%) -------------------------------------------------------------------------------- -- Auto-annotated source: /home/moon/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winnow-1.0.3/src/stream/mod.rs -------------------------------------------------------------------------------- Ir -- line 445 ---------------------------------------- . Ok(self.eof_offset()) . } else { . Err(Needed::Unknown) . } . } . #[inline(always)] . fn next_slice(&mut self, offset: usize) -> Self::Slice { . let (slice, next) = self.split_at(offset); 4,605 ( 0.00%) *self = next; . slice . } . #[inline(always)] . unsafe fn next_slice_unchecked(&mut self, offset: usize) -> Self::Slice { . #[cfg(debug_assertions)] . self.peek_slice(offset); . . // SAFETY: `Stream::next_slice_unchecked` requires `offset` to be in bounds and on a UTF-8 -- line 461 ---------------------------------------- -- line 643 ---------------------------------------- . fn offset_from(&self, start: &Self) -> usize { . let fst = (*start).as_ptr(); . let snd = (*self).as_ptr(); . . debug_assert!( . fst <= snd, . "`Offset::offset_from({snd:?}, {fst:?})` only accepts slices of `self`" . ); 1,278 ( 0.00%) (snd as usize - fst as usize) / core::mem::size_of::() . } . } . . impl<'a, T> Offset<<&'a [T] as Stream>::Checkpoint> for &'a [T] . where . T: Clone + core::fmt::Debug, . { . #[inline(always)] -- line 659 ---------------------------------------- -- line 660 ---------------------------------------- . fn offset_from(&self, other: &<&'a [T] as Stream>::Checkpoint) -> usize { . self.checkpoint().offset_from(other) . } . } . . impl Offset for &str { . #[inline(always)] . fn offset_from(&self, start: &Self) -> usize { 1,765 ( 0.00%) self.as_bytes().offset_from(&start.as_bytes()) . } . } . . impl<'a> Offset<<&'a str as Stream>::Checkpoint> for &'a str { . #[inline(always)] . fn offset_from(&self, other: &<&'a str as Stream>::Checkpoint) -> usize { . self.checkpoint().offset_from(other) . } -- line 676 ---------------------------------------- -- line 710 ---------------------------------------- . fn as_bstr(&self) -> &[u8] { . self . } . } . . impl AsBStr for &str { . #[inline(always)] . fn as_bstr(&self) -> &[u8] { 2,556 ( 0.00%) (*self).as_bytes() . } . } . . /// Result of [`Compare::compare`] . #[derive(Debug, Eq, PartialEq)] . pub enum CompareResult { . /// Comparison was successful . /// -- line 726 ---------------------------------------- -- line 1506 ---------------------------------------- . fn is_newline(self) -> bool { . self == b'\n' . } . } . . impl AsChar for &u8 { . #[inline(always)] . fn as_char(self) -> char { 1,299 ( 0.00%) (*self).as_char() . } . #[inline(always)] . fn is_alpha(self) -> bool { . (*self).is_alpha() . } . #[inline(always)] . fn is_alphanum(self) -> bool { . (*self).is_alphanum() -- line 1522 ---------------------------------------- -- line 1808 ---------------------------------------- . impl ContainsToken for ($($haystack),+,) . where . T: Clone, . $($haystack: ContainsToken),+ . { . #[inline] . fn contains_token(&self, token: T) -> bool { . let ($(ref $haystack),+,) = *self; 1,887 ( 0.00%) $($haystack.contains_token(token.clone()) || )+ false . } . } . ) . } . . macro_rules! impl_contains_token_for_tuples { . ($haystack1:ident, $($haystack:ident),+) => { . impl_contains_token_for_tuples!(__impl $haystack1; $($haystack),+); -- line 1824 ---------------------------------------- -- line 1856 ---------------------------------------- . #[inline(always)] . fn memchr(token: u8, slice: &[u8]) -> Option { . slice.iter().position(|t| *t == token) . } . . #[cfg(not(feature = "simd"))] . #[inline(always)] . fn memchr2(token: (u8, u8), slice: &[u8]) -> Option { 1,378 ( 0.00%) slice.iter().position(|t| *t == token.0 || *t == token.1) . } . . #[cfg(not(feature = "simd"))] . #[inline(always)] . fn memchr3(token: (u8, u8, u8), slice: &[u8]) -> Option { . slice . .iter() 9,822 ( 0.00%) .position(|t| *t == token.0 || *t == token.1 || *t == token.2) . } . . #[inline(always)] . fn memmem(slice: &[u8], literal: &[u8]) -> Option> { . match literal.len() { . 0 => Some(0..0), . 1 => memchr(literal[0], slice).map(|i| i..i + 1), . _ => memmem_(slice, literal), -- line 1880 ---------------------------------------- 3,697 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_utils/src/attrs.rs -------------------------------------------------------------------------------- Ir -- line 8 ---------------------------------------- . use rustc_lexer::TokenKind; . use rustc_lint::LateContext; . use rustc_middle::ty::{AdtDef, TyCtxt}; . use rustc_session::Session; . use rustc_span::{Span, Symbol}; . use std::str::FromStr as _; . . /// Validates a single clippy attribute and emits errors for unknown or deprecated ones. 67,536 ( 0.00%) pub fn check_clippy_attr(sess: &Session, attr: &A) { 1,290 ( 0.00%) if let [clippy, segment2] = &*attr.path() 3 ( 0.00%) && *clippy == sym::clippy . { . let path_span = attr . .path_span() . .expect("Clippy attributes are unparsed and have a span"); . . match *segment2 { . sym::cyclomatic_complexity => { . sess.dcx() -- line 26 ---------------------------------------- -- line 40 ---------------------------------------- . | sym::msrv . | sym::has_significant_drop . | sym::format_args => {}, . _ => { . sess.dcx().span_err(path_span, "usage of unknown attribute"); . }, . } . } 52,528 ( 0.00%) } . . /// Given `attrs`, extract all the instances of a built-in Clippy attribute called `name` . pub fn get_builtin_attr<'a, A: AttributeExt + 'a>(attrs: &'a [A], name: Symbol) -> impl Iterator { . attrs.iter().filter(move |attr| { 4,232 ( 0.00%) if let [clippy, segment2] = &*attr.path() 9 ( 0.00%) && *clippy == sym::clippy . { . if *segment2 == sym::cyclomatic_complexity { . return false; . } . *segment2 == name . } else { . false . } . }) . } . . /// If `attrs` contain exactly one instance of a built-in Clippy attribute called `name`, . /// returns that attribute, and `None` otherwise 2,403 ( 0.00%) pub fn get_unique_builtin_attr<'a, A: AttributeExt>(sess: &'a Session, attrs: &'a [A], name: Symbol) -> Option<&'a A> { . let mut unique_attr: Option<&A> = None; . for attr in get_builtin_attr(attrs, name) { . if let Some(duplicate) = unique_attr { . sess.dcx() . .struct_span_err(attr.span(), format!("`{name}` is defined multiple times")) . .with_span_note(duplicate.span(), "first definition found here") . .emit(); . } else { . unique_attr = Some(attr); . } . } . unique_attr 2,136 ( 0.00%) } . . /// Checks whether `attrs` contain any of `proc_macro`, `proc_macro_derive` or . /// `proc_macro_attribute` . pub fn is_proc_macro(attrs: &[impl AttributeExt]) -> bool { . attrs.iter().any(AttributeExt::is_proc_macro_attr) . } . . /// Checks whether `attrs` contain `#[doc(hidden)]` . pub fn is_doc_hidden(attrs: &[impl AttributeExt]) -> bool { . attrs.iter().any(AttributeExt::is_doc_hidden) . } . . /// Checks whether the given ADT, or any of its fields/variants, are marked as `#[non_exhaustive]` 4,008 ( 0.00%) pub fn has_non_exhaustive_attr(tcx: TyCtxt<'_>, adt: AdtDef<'_>) -> bool { 1,002 ( 0.00%) adt.is_variant_list_non_exhaustive() 58,590 ( 0.00%) || find_attr!(tcx, adt.did(), NonExhaustive(..)) 40,776 ( 0.00%) => ???:>::get_attrs (472x) . || adt.variants().iter().any(|variant_def| { 11,338 ( 0.00%) variant_def.is_field_list_non_exhaustive() || find_attr!(tcx, variant_def.def_id, NonExhaustive(..)) 118,774 ( 0.00%) => ???:>::get_attrs (1,048x) . }) . || adt . .all_fields() 2,058 ( 0.00%) .any(|field_def| find_attr!(tcx, field_def.did, NonExhaustive(..))) 92,498 ( 0.00%) => ???:>::get_attrs (983x) 4,008 ( 0.00%) } . . /// Checks whether the given span contains a `#[cfg(..)]` attribute 225 ( 0.00%) pub fn span_contains_cfg(cx: &LateContext<'_>, s: Span) -> bool { . s.check_text(cx, |src| { . // PERF: A `#[cfg]` needs a literal `#`, so skip the lexer when the source has none. 74 ( 0.00%) if !src.contains('#') { . return false; . } . . let mut iter = tokenize_with_text(src); . . // Search for the token sequence [`#`, `[`, `cfg`] 462 ( 0.00%) while iter.any(|(t, ..)| matches!(t, TokenKind::Pound)) { . let mut iter = iter.by_ref().skip_while(|(t, ..)| { . matches!( . t, . TokenKind::Whitespace | TokenKind::LineComment { .. } | TokenKind::BlockComment { .. } . ) . }); 2 ( 0.00%) if matches!(iter.next(), Some((TokenKind::OpenBracket, ..))) 3 ( 0.00%) && matches!(iter.next(), Some((TokenKind::Ident, "cfg", _))) . { . return true; . } . } . false . }) 675 ( 0.00%) } . . /// Currently used to keep track of the current value of `#[clippy::cognitive_complexity(N)]` . pub struct LimitStack { . default: u64, . stack: Vec, . } . . impl Drop for LimitStack { -- line 140 ---------------------------------------- -- line 149 ---------------------------------------- . /// Initialize the stack starting with a default value, which usually comes from configuration . pub fn new(limit: u64) -> Self { . Self { . default: limit, . stack: vec![], . } . } . pub fn limit(&self) -> u64 { 851 ( 0.00%) self.stack.last().copied().unwrap_or(self.default) . } . pub fn push_attrs(&mut self, sess: &Session, attrs: &[impl AttributeExt], name: Symbol) { . let stack = &mut self.stack; 161,320 ( 0.00%) parse_attrs(sess, attrs, name, |val| stack.push(val)); 966,950 ( 0.02%) => site/frontend/rust-clippy/clippy_utils/src/attrs.rs:clippy_utils::attrs::parse_attrs::<::push_attrs::{closure#0}, rustc_hir::hir::Attribute> (40,330x) . } . pub fn pop_attrs(&mut self, sess: &Session, attrs: &[impl AttributeExt], name: Symbol) { . let stack = &mut self.stack; 161,320 ( 0.00%) parse_attrs(sess, attrs, name, |val| { 964,833 ( 0.02%) => site/frontend/rust-clippy/clippy_utils/src/attrs.rs:clippy_utils::attrs::parse_attrs::<::pop_attrs::{closure#0}, rustc_hir::hir::Attribute> (40,330x) . let popped = stack.pop(); . debug_assert_eq!(popped, Some(val)); . }); . } . } . 806,600 ( 0.02%) fn parse_attrs(sess: &Session, attrs: &[impl AttributeExt], name: Symbol, mut f: F) { . for attr in get_builtin_attr(attrs, name) { . let Some(value) = attr.value_str() else { . sess.dcx().span_err(attr.span(), "bad clippy attribute"); . continue; . }; . let Ok(value) = u64::from_str(value.as_str()) else { . sess.dcx().span_err(attr.span(), "not a number"); . continue; . }; . f(value); . } 645,280 ( 0.02%) } 41,025 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/derive/expl_impl_clone_on_copy.rs -------------------------------------------------------------------------------- Ir -- line 3 ---------------------------------------- . use clippy_utils::ty::{implements_trait, is_copy}; . use rustc_hir::{self as hir, HirId, Item}; . use rustc_lint::LateContext; . use rustc_middle::ty::{self, GenericArgKind, Ty}; . . use super::EXPL_IMPL_CLONE_ON_COPY; . . /// Implementation of the `EXPL_IMPL_CLONE_ON_COPY` lint. 16,900 ( 0.00%) pub(super) fn check<'tcx>( . cx: &LateContext<'tcx>, . item: &Item<'_>, . trait_ref: &hir::TraitRef<'_>, . ty: Ty<'tcx>, . adt_hir_id: HirId, . ) { 6,500 ( 0.00%) let clone_id = match cx.tcx.lang_items().clone_trait() { 39,000 ( 0.00%) => ???:::lang_items (1,300x) 2,824 ( 0.00%) Some(id) if trait_ref.trait_def_id() == Some(id) => id, 16,900 ( 0.00%) => ???:::trait_def_id (1,300x) . _ => return, . }; 1,120 ( 0.00%) let Some(copy_id) = cx.tcx.lang_items().copy_trait() else { 6,720 ( 0.00%) => ???:::lang_items (224x) . return; . }; . let (ty_adt, ty_subs) = match *ty.kind() { . // Unions can't derive clone. 896 ( 0.00%) ty::Adt(adt, subs) if !adt.is_union() => (adt, subs), . _ => return, . }; . // If the current self type doesn't implement Copy (due to generic constraints), search to see if . // there's a Copy impl for any instance of the adt. 1,344 ( 0.00%) if !is_copy(cx, ty) { 135,341 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::is_copy (224x) . if ty_subs.non_erasable_generics().next().is_some() { 21 ( 0.00%) let has_copy_impl = cx.tcx.local_trait_impls(copy_id).iter().any(|&id| { 30,539 ( 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>::any:: (7x) 1,656 ( 0.00%) matches!(cx.tcx.type_of(id).instantiate_identity().skip_norm_wip().kind(), ty::Adt(adt, _) 828 ( 0.00%) if ty_adt.did() == adt.did()) . }); 14 ( 0.00%) if !has_copy_impl { . return; . } . } else { . return; . } . } . // Derive constrains all generic types to requiring Clone. Check if any type is not constrained for . // this impl. 256 ( 0.00%) if ty_subs.types().any(|ty| !implements_trait(cx, ty, clone_id, &[])) { 13,487 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::implements_trait (3x) . return; . } . // `#[repr(packed)]` structs with type/const parameters can't derive `Clone`. . // https://github.com/rust-lang/rust-clippy/issues/10188 238 ( 0.00%) if ty_adt.repr().packed() . && ty_subs . .iter() . .any(|arg| matches!(arg.kind(), GenericArgKind::Type(_) | GenericArgKind::Const(_))) . { . return; . } . // The presence of `unsafe` fields prevents deriving `Clone` automatically 238 ( 0.00%) if ty_adt.all_fields().any(|f| f.safety.is_unsafe()) { . return; . } . 952 ( 0.00%) if fulfill_or_allowed(cx, EXPL_IMPL_CLONE_ON_COPY, [adt_hir_id]) { 51,374 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::fulfill_or_allowed::<[rustc_hir_id::HirId; 1]> (119x) . return; . } . . span_lint_and_help( . cx, . EXPL_IMPL_CLONE_ON_COPY, . item.span, . "you are implementing `Clone` explicitly on a `Copy` type", . None, . "consider deriving `Clone` or removing `Copy`", . ); 10,400 ( 0.00%) } 1,986 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/missing_const_for_thread_local.rs -------------------------------------------------------------------------------- Ir -- line 55 ---------------------------------------- . } . . #[inline] . fn is_thread_local_initializer( . cx: &LateContext<'_>, . fn_kind: intravisit::FnKind<'_>, . span: rustc_span::Span, . ) -> Option { 5,398 ( 0.00%) let macro_def_id = span.source_callee()?.macro_def_id?; 227,938 ( 0.01%) => ???:::source_callee (1,774x) . Some( 2,775 ( 0.00%) cx.tcx.is_diagnostic_item(sym::thread_local_macro, macro_def_id) 40,700 ( 0.00%) => ???:::is_diagnostic_item (925x) . && matches!(fn_kind, intravisit::FnKind::ItemFn(..)), . ) . } . . fn is_unreachable(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool { . if let Some(macro_call) = macro_backtrace(expr.span).next() . && let Some(diag_name) = cx.tcx.get_diagnostic_name(macro_call.def_id) . { -- line 73 ---------------------------------------- -- line 95 ---------------------------------------- . && let Ok(()) = is_min_const_fn(cx, mir, msrv) . { . return true; . } . false . } . . impl<'tcx> LateLintPass<'tcx> for MissingConstForThreadLocal { 17,740 ( 0.00%) fn check_fn( . &mut self, . cx: &LateContext<'tcx>, . fn_kind: intravisit::FnKind<'tcx>, . _: &'tcx rustc_hir::FnDecl<'tcx>, . body: &'tcx rustc_hir::Body<'tcx>, . span: rustc_span::Span, . local_defid: rustc_span::def_id::LocalDefId, . ) { . let defid = local_defid.to_def_id(); 3,548 ( 0.00%) if is_thread_local_initializer(cx, fn_kind, span).unwrap_or(false) . // Some implementations of `thread_local!` include an initializer fn. . // In the case of a const initializer, the init fn is also const, . // so we can skip the lint in that case. This occurs only on some . // backends due to conditional compilation: . // https://doc.rust-lang.org/src/std/sys/common/thread_local/mod.rs.html . // for details on this issue, see: . // https://github.com/rust-lang/rust-clippy/pull/12276 . && !cx.tcx.is_const_fn(defid) -- line 121 ---------------------------------------- -- line 139 ---------------------------------------- . MISSING_CONST_FOR_THREAD_LOCAL, . unpeeled.span, . "initializer for `thread_local` value can be made `const`", . "replace with", . format!("const {{ {initializer_snippet} }}"), . Applicability::MachineApplicable, . ); . } 14,192 ( 0.00%) } . } 1,774 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/inherent_to_string.rs -------------------------------------------------------------------------------- Ir -- line 91 ---------------------------------------- . declare_lint_pass!(InherentToString => [ . INHERENT_TO_STRING, . INHERENT_TO_STRING_SHADOW_DISPLAY, . ]); . . impl<'tcx> LateLintPass<'tcx> for InherentToString { . fn check_impl_item(&mut self, cx: &LateContext<'tcx>, impl_item: &'tcx ImplItem<'_>) { . // Check if item is a method called `to_string` and has a parameter 'self' 3,008 ( 0.00%) if let ImplItemKind::Fn(ref signature, _) = impl_item.kind . // #11201 2,876 ( 0.00%) && let header = signature.header . && header.is_safe() 10,052 ( 0.00%) && header.abi == ExternAbi::Rust 67,492 ( 0.00%) => ???:::eq (1,436x) . && impl_item.ident.name == sym::to_string 1 ( 0.00%) && let decl = signature.decl 3 ( 0.00%) && decl.implicit_self().has_implicit_self() 8 ( 0.00%) => ???:::implicit_self (1x) 2 ( 0.00%) && decl.inputs.len() == 1 3 ( 0.00%) && impl_item.generics.params.iter().all(|p| matches!(p.kind, GenericParamKind::Lifetime { .. })) 2 ( 0.00%) && !impl_item.span.from_expansion() . // Check if return type is String 7 ( 0.00%) && return_ty(cx, impl_item.owner_id).is_lang_item(cx, LangItem::String) 77 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::return_ty (1x) . // Filters instances of to_string which are required by a trait 4 ( 0.00%) && trait_ref_of_method(cx, impl_item.owner_id).is_none() 189 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::trait_ref_of_method (1x) . { 4 ( 0.00%) show_lint(cx, impl_item); 10,910 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/inherent_to_string.rs:clippy_lints::inherent_to_string::show_lint (1x) . } 1,504 ( 0.00%) } . } . 10 ( 0.00%) fn show_lint(cx: &LateContext<'_>, item: &ImplItem<'_>) { 1 ( 0.00%) let display_trait_id = cx . .tcx 3 ( 0.00%) .get_diagnostic_item(sym::Display) 72 ( 0.00%) => ???:::get_diagnostic_item (1x) . .expect("Failed to get trait ID of `Display`!"); . . // Get the real type of 'self' . let self_type = cx.tcx.fn_sig(item.owner_id).skip_binder().input(0); . let self_type = self_type.skip_binder().peel_refs(); . . // Emit either a warning or an error 8 ( 0.00%) if implements_trait(cx, self_type, display_trait_id, &[]) { 5,793 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::implements_trait (1x) . span_lint_and_help( . cx, . INHERENT_TO_STRING_SHADOW_DISPLAY, . item.span, . format!( . "type `{self_type}` implements inherent method `to_string(&self) -> String` which shadows the implementation of `Display`" . ), . None, . format!("remove the inherent method from type `{self_type}`"), . ); . } else { . span_lint_and_help( . cx, . INHERENT_TO_STRING, . item.span, 3 ( 0.00%) format!("implementation of inherent method `to_string(&self) -> String` for type `{self_type}`"), 1 ( 0.00%) None, 2 ( 0.00%) format!("implement trait `Display` for type `{self_type}` instead"), . ); . } 8 ( 0.00%) } 18,698 ( 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/context.rs -------------------------------------------------------------------------------- Ir -- line 523 ---------------------------------------- . lint: &'static Lint, . span: Option, . decorate: impl for<'a> Diagnostic<'a, ()>, . ); . . /// Emit a lint at `span` from a lint struct (some type that implements `Diagnostic`, . /// typically generated by `#[derive(Diagnostic)]`). . #[track_caller] 7,835 ( 0.00%) fn emit_span_lint>( . &self, . lint: &'static Lint, . span: S, . decorator: impl for<'a> Diagnostic<'a, ()>, . ) { . self.opt_span_lint(lint, Some(span), decorator); 5,789 ( 0.00%) } . . /// This returns the lint level spec for the given lint at the current location. . fn get_lint_level_spec(&self, lint: &'static Lint) -> LevelSpec; . . /// This function can be used to manually fulfill an expectation. This can . /// be used for lints which contain several spans, and should be suppressed, . /// if either location was marked with an expectation. . /// -- line 546 ---------------------------------------- -- line 584 ---------------------------------------- . } . } . . impl<'tcx> LintContext for LateContext<'tcx> { . type LintExpectationId = StableLintExpectationId; . . /// Gets the overall compiler `Session` object. . fn sess(&self) -> &Session { 443,245 ( 0.01%) self.tcx.sess . } . . fn opt_span_lint>( . &self, . lint: &'static Lint, . span: Option, . decorate: impl for<'a> Diagnostic<'a, ()>, . ) { 870 ( 0.00%) let hir_id = self.last_node_with_lint_attrs; . 870 ( 0.00%) match span { 3,045 ( 0.00%) Some(s) => self.tcx.emit_node_span_lint(lint, hir_id, s, decorate), . None => self.tcx.emit_node_lint(lint, hir_id, decorate), . } . } . . fn get_lint_level_spec(&self, lint: &'static Lint) -> StableLevelSpec { . self.tcx.lint_level_spec_at_node(lint, self.last_node_with_lint_attrs) . } . } -- line 612 ---------------------------------------- -- line 660 ---------------------------------------- . } . . /// Gets the type-checking results for the current body. . /// As this will ICE if called outside bodies, only call when working with . /// `Expr` or `Pat` nodes (they are guaranteed to be found only in bodies). . #[inline] . #[track_caller] . pub fn typeck_results(&self) -> &'tcx ty::TypeckResults<'tcx> { 116,277 ( 0.00%) self.typeck_results.expect("`LateContext::typeck_results` called outside of body") . } . . /// Returns the final resolution of a `QPath`, or `Res::Err` if unavailable. . /// Unlike `.typeck_results().qpath_res(qpath, id)`, this can be used even outside . /// bodies (e.g. for paths in `hir::Ty`), without any risk of ICE-ing. . pub fn qpath_res(&self, qpath: &hir::QPath<'_>, id: hir::HirId) -> Res { . match *qpath { . hir::QPath::Resolved(_, path) => path.res, -- line 676 ---------------------------------------- -- line 949 ---------------------------------------- . fn data_layout(&self) -> &abi::TargetDataLayout { . &self.tcx.data_layout . } . } . . impl<'tcx> ty::layout::HasTyCtxt<'tcx> for LateContext<'tcx> { . #[inline] . fn tcx(&self) -> TyCtxt<'tcx> { 14,213 ( 0.00%) self.tcx . } . } . . impl<'tcx> ty::layout::HasTypingEnv<'tcx> for LateContext<'tcx> { . #[inline] . fn typing_env(&self) -> ty::TypingEnv<'tcx> { 308 ( 0.00%) self.typing_env() 26,559 ( 0.00%) => ???:::typing_env (214x) . } . } . . impl<'tcx> LayoutOfHelpers<'tcx> for LateContext<'tcx> { . type LayoutOfResult = Result, LayoutError<'tcx>>; . . #[inline] . fn handle_layout_err(&self, err: LayoutError<'tcx>, _: Span, _: Ty<'tcx>) -> LayoutError<'tcx> { -- line 972 ---------------------------------------- 42,505 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/missing_enforced_import_rename.rs -------------------------------------------------------------------------------- Ir -- line 65 ---------------------------------------- . .map(move |id| (id, rename)) . }) . .collect(), . } . } . } . . impl LateLintPass<'_> for ImportRename { 22,344 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'_>, item: &Item<'_>) { 8,554 ( 0.00%) if let ItemKind::Use(path, UseKind::Single(_)) = &item.kind { . // use `present_items` because it could be in any of type_ns, value_ns, macro_ns 15,708 ( 0.00%) for res in path.res.present_items() { . if let Res::Def(_, id) = res . && let Some(name) = self.renames.get(&id) . // Remove semicolon since it is not present for nested imports . && let span_without_semi = cx.sess().source_map().span_until_char(item.span, ';') . && let Some(snip) = span_without_semi.get_text(cx) . && let Some(import) = match snip.split_once(" as ") { . None => Some(snip.as_str()), . Some((import, rename)) => { -- line 84 ---------------------------------------- -- line 98 ---------------------------------------- . "this import should be renamed", . "try", . format!("{import} as {name}"), . Applicability::MachineApplicable, . ); . } . } . } 25,536 ( 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, . } . 105,845 ( 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) { 175,839 ( 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 ---------------------------------------- 5,193 ( 0.00%) -------------------------------------------------------------------------------- -- 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 { 244,746 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'_>, expr: &Expr<'_>) { 1,098 ( 0.00%) let Some(macro_call) = root_macro_call_first_node(cx, expr) else { . return; . }; 1,830 ( 0.00%) let Some(VecArgs::Repeat(elem, len)) = VecArgs::hir(cx, expr) else { 14,567 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir (366x) . return; . }; . let Some((symbol, func_span)) = ref_init(cx, elem) else { . return; . }; . . emit_lint(cx, symbol, macro_call.span, elem, len, func_span); 217,552 ( 0.01%) } . } . . 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 ---------------------------------------- 366 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/await_holding_invalid.rs -------------------------------------------------------------------------------- Ir -- line 178 ---------------------------------------- . AWAIT_HOLDING_REFCELL_REF, . ]); . . pub struct AwaitHolding { . def_ids: DefIdMap<(&'static str, &'static DisallowedPathWithoutReplacement)>, . } . . impl AwaitHolding { 8 ( 0.00%) pub(crate) fn new(tcx: TyCtxt<'_>, conf: &'static Conf) -> Self { . let (def_ids, _) = create_disallowed_map( . tcx, . &conf.await_holding_invalid_types, . PathNS::Type, . crate::disallowed_types::def_kind_predicate, . "type", . false, . ); . Self { def_ids } 8 ( 0.00%) } . } . . impl<'tcx> LateLintPass<'tcx> for AwaitHolding { 217,552 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx hir::Expr<'tcx>) { 54,558 ( 0.00%) if let hir::ExprKind::Closure(hir::Closure { . kind: hir::ClosureKind::Coroutine(hir::CoroutineKind::Desugared(hir::CoroutineDesugaring::Async, _)), . def_id, . .. 85 ( 0.00%) }) = expr.kind . && let Some(coroutine_layout) = cx.tcx.mir_coroutine_witnesses(*def_id) . { . self.check_interior_types(cx, coroutine_layout); . } 217,552 ( 0.01%) } . } . . impl AwaitHolding { . fn check_interior_types(&self, cx: &LateContext<'_>, coroutine: &CoroutineLayout<'_>) { . for (ty_index, ty_cause) in coroutine.field_tys.iter_enumerated() { . if let rustc_middle::ty::Adt(adt, _) = ty_cause.ty.kind() { . let await_points = || { . coroutine -- line 218 ---------------------------------------- -------------------------------------------------------------------------------- -- 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 { 219,138 ( 0.01%) 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 { 13,890 ( 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, . { 45,370 ( 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()) . } . 7,001 ( 0.00%) if let Some(iter) = self.frontiter { . acc = fold(acc, iter); . } . 15 ( 0.00%) acc = self.iter.fold(acc, flatten(&mut fold)); . 17,466 ( 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] 2,322 ( 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,119 ( 0.00%) move |acc, iter| fold(acc, frontiter.insert(iter.into_iter())) 223,167 ( 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} (546x) . } . 1,349 ( 0.00%) if let Some(iter) = &mut self.frontiter { . acc = fold(acc, iter)?; . } 81,869 ( 0.00%) self.frontiter = None; . 142 ( 0.00%) acc = self.iter.try_fold(acc, flatten(&mut self.frontiter, &mut fold))?; 28,124 ( 0.00%) self.frontiter = None; . 56,653 ( 0.00%) if let Some(iter) = &mut self.backiter { . acc = fold(acc, iter)?; . } 826 ( 0.00%) self.backiter = None; . . try { acc } 2,183 ( 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 { 450 ( 0.00%) loop { . if let elt @ Some(_) = and_then_or_clear(&mut self.frontiter, Iterator::next) { . return elt; . } 7,710 ( 0.00%) match self.iter.next() { . None => return and_then_or_clear(&mut self.backiter, Iterator::next), 192 ( 0.00%) Some(inner) => self.frontiter = Some(inner.into_iter()), . } . } . } . . #[inline] . default fn size_hint(&self) -> (usize, Option) { . let (flo, fhi) = self.frontiter.as_ref().map_or((0, Some(0)), U::size_hint); . let (blo, bhi) = self.backiter.as_ref().map_or((0, Some(0)), U::size_hint); -- line 536 ---------------------------------------- -- 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 { 2,382 ( 0.00%) move |acc, iter| iter.try_fold(acc, &mut fold) . } . 377 ( 0.00%) self.iter_try_fold(init, flatten(fold)) 196,039 ( 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>>> (2x) . } . . #[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 { 273 ( 0.00%) acc + iter.count() . } . 150 ( 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 { 15,315 ( 0.00%) while let Some(inner) = self.iter.next() { 1,852 ( 0.00%) if let item @ Some(_) = inner.into_iter().next() { . return item; . } . } . None . } . . #[inline] . fn size_hint(&self) -> (usize, Option) { -- line 864 ---------------------------------------- 77,074 ( 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 { 28,728 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'_>) { 15,960 ( 0.00%) let attrs = cx.tcx.hir_attrs(item.hir_id()); 158,874 ( 0.00%) => ???:::hir_attrs (3,192x) 7,128 ( 0.00%) if let ItemKind::Fn { ident, body, .. } = item.kind { 1,736 ( 0.00%) inline_always::check(cx, item.span, ident.name, attrs, Some(body)); 6,711 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/attrs/inline_always.rs:clippy_lints::attrs::inline_always::check (248x) . } 2,944 ( 0.00%) repr_attributes::check(cx, item.span, attrs, self.msrv); 22,344 ( 0.00%) } . . fn check_impl_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx ImplItem<'_>) { 7,322 ( 0.00%) if let ImplItemKind::Fn(_, body) = item.kind { 10,066 ( 0.00%) inline_always::check( 41,027 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/attrs/inline_always.rs:clippy_lints::attrs::inline_always::check (1,438x) . cx, 1,438 ( 0.00%) item.span, 1,438 ( 0.00%) item.ident.name, 5,752 ( 0.00%) cx.tcx.hir_attrs(item.hir_id()), 69,888 ( 0.00%) => ???:::hir_attrs (1,438x) . Some(body), . ); . } . } . . fn check_trait_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx TraitItem<'_>) { 44 ( 0.00%) if let TraitItemKind::Fn(_, kind) = item.kind { 108 ( 0.00%) let body = match kind { . TraitFn::Required(_) => None, . TraitFn::Provided(body) => Some(body), . }; 252 ( 0.00%) inline_always::check(cx, item.span, item.ident.name, cx.tcx.hir_attrs(item.hir_id()), body); 1,644 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/attrs/inline_always.rs:clippy_lints::attrs::inline_always::check (18x) 886 ( 0.00%) => ???:::hir_attrs (18x) . } . } . } . . pub struct EarlyAttributes { . msrv: MsrvStack, . } . . impl EarlyAttributes { . pub fn new(conf: &'static Conf) -> Self { 43 ( 0.00%) Self { msrv: conf.msrv.into() } . } . } . . impl EarlyLintPass for EarlyAttributes { 33,942 ( 0.00%) fn check_attribute(&mut self, cx: &EarlyContext<'_>, attr: &Attribute) { 16,971 ( 0.00%) deprecated_cfg_attr::check(cx, attr, &self.msrv); 1,387,825 ( 0.03%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/attrs/deprecated_cfg_attr.rs:clippy_lints::attrs::deprecated_cfg_attr::check (5,657x) 16,971 ( 0.00%) deprecated_cfg_attr::check_clippy(cx, attr); 1,009,301 ( 0.02%) => /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 (5,657x) . non_minimal_cfg::check(cx, attr); 22,628 ( 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); . } . 75,040 ( 0.00%) fn check_attribute(&mut self, cx: &EarlyContext<'_>, attr: &Attribute) { 22,512 ( 0.00%) check_clippy_attr(cx.sess(), attr); 363,625 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/attrs.rs:clippy_utils::attrs::check_clippy_attr:: (7,504x) 37,520 ( 0.00%) if let Some(items) = &attr.meta_item_list() 207,128 ( 0.01%) => ???:::meta_item_list (7,504x) 4,412 ( 0.00%) && let Some(name) = attr.name() 3,699 ( 0.00%) => ???:::name (411x) . { 865 ( 0.00%) if matches!(name, sym::allow) && self.msrv.meets(msrvs::LINT_REASONS_STABILIZATION) { 4,152 ( 0.00%) => /rust/deps/smallvec-1.15.1/src/lib.rs:::meets (173x) . allow_attributes::check(cx, attr); . } 865 ( 0.00%) if matches!(name, sym::allow | sym::expect) && self.msrv.meets(msrvs::LINT_REASONS_STABILIZATION) { 4,152 ( 0.00%) => /rust/deps/smallvec-1.15.1/src/lib.rs:::meets (173x) . allow_attributes_without_reason::check(cx, name, items, attr); . } . if is_lint_level(name) { . blanket_clippy_restriction_lints::check(cx, name, items); . } 822 ( 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); . } . 870 ( 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 `= \"..\"`", . ); . } 60,032 ( 0.00%) } . . fn check_item(&mut self, cx: &EarlyContext<'_>, item: &'_ ast::Item) { 7,710 ( 0.00%) match item.kind { 1,398 ( 0.00%) ast::ItemKind::ExternCrate(..) | ast::ItemKind::Use(..) => useless_attribute::check(cx, item, &item.attrs), 27,857 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/attrs/useless_attribute.rs:clippy_lints::attrs::useless_attribute::check (466x) . _ => {}, . } . 12,850 ( 0.00%) mixed_attributes_style::check(cx, item.span, &item.attrs); 1,258,693 ( 0.03%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/attrs/mixed_attributes_style.rs:clippy_lints::attrs::mixed_attributes_style::check (2,570x) . } . 361,090 ( 0.01%) fn check_attributes(&mut self, cx: &EarlyContext<'_>, attrs: &[Attribute]) { 108,327 ( 0.00%) self.msrv.check_attributes(attrs); 244,311 ( 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 (36,109x) . duplicated_attributes::check(cx, attrs); 72,218 ( 0.00%) msrvs::check_attrs(cx.sess(), attrs); 778,722 ( 0.02%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/msrvs.rs:clippy_utils::msrvs::check_attrs:: (36,109x) 288,872 ( 0.01%) } . . fn check_attributes_post(&mut self, _cx: &EarlyContext<'_>, attrs: &[Attribute]) { 144,436 ( 0.00%) self.msrv.check_attributes_post(attrs); 244,311 ( 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 (36,109x) . } . } 798 ( 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() { 40,849 ( 0.00%) match key.cmp(k.borrow()) { 600 ( 0.00%) => ???:::cmp (15x) . Ordering::Greater => {} . Ordering::Equal => return IndexResult::KV(start_index + offset), . Ordering::Less => return IndexResult::Edge(start_index + offset), . } . } . IndexResult::Edge(keys.len()) . } . -- line 234 ---------------------------------------- 1,164 ( 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(), . } . } . 195 ( 0.00%) fn is_potentially_local_place(&self, place: &Place<'_>) -> bool { 78 ( 0.00%) match self { . Self::WithFieldAccess { . local_id, . field_indices, . .. . } => { . let field_projections = place . .projections . .iter() 9 ( 0.00%) .filter(|proj| matches!(proj.kind, ProjectionKind::Field(_, _))) . .collect::>(); 9 ( 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` 8 ( 0.00%) && field_projections.len() <= field_indices.len() 12 ( 0.00%) && iter::zip(&field_projections, field_indices.iter().copied().rev()).all(|(proj, field_idx)| { 12 ( 0.00%) 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, . } . }) . }, 30 ( 0.00%) Self::Pure { local_id } => is_potentially_local_place(*local_id, place), . } 195 ( 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) { 44 ( 0.00%) (sym::Option, sym::is_some) => Some((UnwrappableKind::Option, true)), 18 ( 0.00%) (sym::Option, sym::is_none) => Some((UnwrappableKind::Option, false)), 4 ( 0.00%) (sym::Result, sym::is_ok) => Some((UnwrappableKind::Result, true)), . (sym::Result, sym::is_err) => Some((UnwrappableKind::Result, false)), . _ => None, . } . } . 7,406 ( 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>, . ) { 5,508 ( 0.00%) match expr.kind { 130 ( 0.00%) ExprKind::Binary(op, left, right) 636 ( 0.00%) if matches!( 420 ( 0.00%) (invert, op.node), . (false, BinOpKind::And | BinOpKind::BitAnd) | (true, BinOpKind::Or | BinOpKind::BitOr) . ) => . { 455 ( 0.00%) inner(cx, if_expr, left, branch, invert, false, out); 4,750 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/unwrap.rs:clippy_lints::unwrap::collect_unwrap_info::inner'2 (41x) . inner(cx, if_expr, right, branch, invert, false, out); . }, 204 ( 0.00%) ExprKind::Unary(UnOp::Not, expr) => inner(cx, if_expr, expr, branch, !invert, false, out), 717 ( 0.00%) ExprKind::MethodCall(method_name, receiver, [], _) 1,125 ( 0.00%) if let Some(local) = extract_local(cx, receiver) 7,201 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/unwrap.rs:clippy_lints::unwrap::extract_local (86x) 90 ( 0.00%) && let ty = cx.typeck_results().expr_ty(receiver) 3,320 ( 0.00%) => ???:::expr_ty (83x) . && let name = method_name.ident.name 146 ( 0.00%) && let Some((kind, unwrappable)) = option_or_result_call(cx, ty, name) => . { . let safe_to_unwrap = unwrappable != invert; . 294 ( 0.00%) out.push(UnwrapInfo { . local, . if_expr, . check: expr, . check_name: name, . branch, . safe_to_unwrap, . kind, . is_entire_condition, . }); . }, . _ => {}, . } 4,112 ( 0.00%) } . . let mut out = vec![]; 1,856 ( 0.00%) inner(cx, if_expr, expr, branch, invert, is_entire_condition, &mut out); 30,904 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/unwrap.rs:clippy_lints::unwrap::collect_unwrap_info::inner (324x) 1,392 ( 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`]) 19,168 ( 0.00%) fn extract_local(cx: &LateContext<'_>, mut expr: &Expr<'_>) -> Option { 2,396 ( 0.00%) let span = expr.span; . let mut field_indices = vec![]; 15,780 ( 0.00%) while let ExprKind::Field(recv, _) = expr.kind 5,320 ( 0.00%) && let Some(field_idx) = cx.typeck_results().opt_field_index(expr.hir_id) 29,652 ( 0.00%) => ???:::opt_field_index (760x) . { . field_indices.push(field_idx); . expr = recv; . } . let local_id = expr.res_local_id()?; 2,111 ( 0.00%) if field_indices.is_empty() { 4,269 ( 0.00%) Some(Local::Pure { local_id }) . } else { 2,752 ( 0.00%) Some(Local::WithFieldAccess { . local_id, 2,752 ( 0.00%) field_indices, . span, . }) . } 19,856 ( 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 336 ---------------------------------------- . /// Checks if the parent of the expression pointed at by the given `HirId` is a call to . /// `.as_mut()`. . /// . /// Used by the mutation visitor to specifically allow `.as_mut()` calls. . /// In particular, the `HirId` that the visitor receives is the id of the local expression . /// (i.e. the `x` in `x.as_mut()`), and that is the reason for why we care about its parent . /// expression: that will be where the actual method call is. . fn is_as_mut_use(tcx: TyCtxt<'_>, expr_id: HirId) -> bool { 3 ( 0.00%) if let Node::Expr(mutating_expr) = tcx.parent_hir_node(expr_id) 88 ( 0.00%) => ???:::parent_hir_node (1x) . && let ExprKind::MethodCall(path, _, [], _) = mutating_expr.kind . { . 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) { 71 ( 0.00%) if let ty::BorrowKind::Mutable = bk 30 ( 0.00%) && self.local.is_potentially_local_place(&cat.place) 664 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/unwrap.rs:::is_potentially_local_place (6x) 1 ( 0.00%) && !is_as_mut_use(self.tcx, diag_expr_id) . { . self.is_mutated = true; . } . } . . fn mutate(&mut self, cat: &PlaceWithHirId<'tcx>, _: HirId) { 221 ( 0.00%) if self.local.is_potentially_local_place(&cat.place) { 832 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/unwrap.rs:::is_potentially_local_place (28x) 3 ( 0.00%) 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> { 4,176 ( 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(); 3,468 ( 0.00%) for unwrap_info in collect_unwrap_info(self.cx, if_expr, cond, branch, else_branch, true) { 80 ( 0.00%) let mut delegate = MutationVisitor { . is_mutated: false, . local: &unwrap_info.local, 40 ( 0.00%) tcx: self.cx.tcx, . }; . . let vis = ExprUseVisitor::for_clippy(self.cx, cond.hir_id.owner.def_id, &mut delegate); 60 ( 0.00%) vis.walk_expr(cond).into_ok(); 47,612 ( 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 (15x) 60 ( 0.00%) vis.walk_expr(branch).into_ok(); 261,669 ( 0.01%) => /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 (15x) . 40 ( 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; . } 192 ( 0.00%) self.unwrappables.push(unwrap_info); . } 1,392 ( 0.00%) walk_expr(self, branch); 640,786 ( 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 (324x) . self.unwrappables.truncate(prev_len); 3,712 ( 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) { 5,344 ( 0.00%) if let ExprKind::MethodCall(path, recv, [], _) = expr.kind { 169 ( 0.00%) match path.ident.name { 674 ( 0.00%) sym::as_ref => (recv, Some(AsRefKind::AsRef)), 2 ( 0.00%) sym::as_mut => (recv, Some(AsRefKind::AsMut)), . _ => (expr, None), . } . } else { . (expr, None) . } . } . . impl<'tcx> Visitor<'tcx> for UnwrappableVariablesVisitor<'_, 'tcx> { . type NestedFilter = nested_filter::OnlyBodies; . 179,649 ( 0.00%) fn visit_expr(&mut self, expr: &'tcx Expr<'_>) { . // Skip checking inside closures since they are visited through `Unwrap::check_fn()` already. 130,353 ( 0.00%) if matches!(expr.kind, ExprKind::Closure(_)) { . return; . } . if let Some(higher::If { cond, then, r#else }) = higher::If::hir(expr) { 972 ( 0.00%) walk_expr(self, cond); 153,983 ( 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 (324x) 1,944 ( 0.00%) self.visit_branch(expr, cond, then, false); 707,643 ( 0.02%) => site/frontend/rust-clippy/clippy_lints/src/unwrap.rs:::visit_branch (229x) 202,587 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/unwrap.rs:::visit_branch'2 (95x) 648 ( 0.00%) if let Some(else_inner) = r#else { 1,820 ( 0.00%) self.visit_branch(expr, cond, else_inner, true); 296,230 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/unwrap.rs:::visit_branch (95x) 282,225 ( 0.01%) => site/frontend/rust-clippy/clippy_lints/src/unwrap.rs:::visit_branch'2 (45x) . } . } else { . // find `unwrap[_err]()` or `expect("...")` calls: 2,301 ( 0.00%) if let ExprKind::MethodCall(method_name, self_arg, ..) = expr.kind 2,301 ( 0.00%) && let (self_arg, as_ref_kind) = consume_option_as_ref(self_arg) 24,191 ( 0.00%) && let Some(local) = extract_local(self.cx, self_arg) 912 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/unwrap.rs:clippy_lints::unwrap::extract_local (14x) 14,147 ( 0.00%) && matches!(method_name.ident.name, sym::unwrap | sym::expect | sym::unwrap_err) 12 ( 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"); . }, . ); . } . } 58,656 ( 0.00%) walk_expr(self, expr); 2,529,390 ( 0.06%) => /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:: (855x) . } 158,568 ( 0.00%) } . . fn maybe_tcx(&mut self) -> Self::MaybeTyCtxt { 856 ( 0.00%) self.cx.tcx . } . } . . impl<'tcx> LateLintPass<'tcx> for Unwrap { 12,418 ( 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; . } . 4,245 ( 0.00%) let mut v = UnwrappableVariablesVisitor { . unwrappables: Vec::new(), . cx, 849 ( 0.00%) msrv: self.msrv, . }; . 3,396 ( 0.00%) walk_fn(&mut v, kind, decl, body.id(), fn_id); 2,827,593 ( 0.07%) => /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:: (849x) 8,870 ( 0.00%) } . } 12,651 ( 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 { 271,940 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 152 ( 0.00%) let (let_pat, let_expr, ifwhile) = 108,846 ( 0.00%) if let Some(higher::IfLet { let_pat, let_expr, .. }) = higher::IfLet::hir(cx, expr) { 152,379 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir (27,194x) . (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; . }; . 233 ( 0.00%) if let ExprKind::MethodCall(ok_path, recv, [], ..) = let_expr.kind //check is expr.ok() has type Result.ok(, _) 22 ( 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, . ); . } 217,552 ( 0.01%) } . } 140 ( 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); 85,668 ( 0.00%) let mut other_attrs = ThinVec::::with_capacity(if doc_only { 0 } else { size_hint }); . for (attr, item_id) in attrs { 141 ( 0.00%) if let Some((doc_str, fragment_kind)) = attr.doc_str_and_fragment_kind() { 15,402 ( 0.00%) let doc = beautify_doc_string(doc_str, fragment_kind.comment_kind()); 539,927 ( 0.01%) => ???:rustc_ast::util::comments::beautify_doc_string (5,134x) 20,536 ( 0.00%) let attr_span = attr.span(); 11,932 ( 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(); . 40,131 ( 0.00%) unindent_doc_fragments(&mut doc_fragments); 2,121,201 ( 0.05%) => ???:rustc_resolve::rustdoc::unindent_doc_fragments (40,131x) . 240,786 ( 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 ---------------------------------------- 15,674 ( 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. 6,456 ( 0.00%) __rust_no_alloc_shim_is_unstable_v2(); 1 ( 0.00%) => ???:std::exception::~exception() (1x) . 109,724 ( 0.00%) __rust_alloc(layout.size(), layout.alignment()) 7,688 ( 0.00%) => ???:__rustc::__rust_alloc (46x) . } . } . . /// 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) { 119,215 ( 0.00%) unsafe { __rust_dealloc(ptr, layout.size(), layout.alignment()) } 38 ( 0.00%) => ???:__rustc::__rdl_dealloc (1x) . } . . /// 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 { 7,175 ( 0.00%) unsafe { __rust_realloc(ptr, layout.size(), layout.alignment(), new_size) } 60,798 ( 0.00%) => ???:__rustc::__rust_realloc (220x) . } . . /// 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(); . 4 ( 0.00%) __rust_alloc_zeroed(layout.size(), layout.alignment()) 90 ( 0.00%) => ???:__rustc::__rust_alloc_zeroed (1x) . } . } . . 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> { 16,482 ( 0.00%) match layout.size() { . 0 => Ok(layout.dangling_ptr().cast_slice(0)), . // SAFETY: `layout` is non-zero in size, . size => unsafe { 8,248 ( 0.00%) let raw_ptr = if zeroed { alloc_zeroed(layout) } else { alloc(layout) }; 4 ( 0.00%) => ???:std::exception::~exception() (4x) . 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,761 ( 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 ---------------------------------------- 77,352 ( 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 { 155,876 ( 0.00%) fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { 44,536 ( 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. 12,728 ( 0.00%) && let start_offset = BytePos::from_u32(match lit.kind { . LitKind::Str => 1, . LitKind::ByteStr | LitKind::CStr => 2, . _ => return, . }) 2,466 ( 0.00%) && !expr.span.in_external_macro(cx.sess().source_map()) . { . let s = lit.symbol.as_str(); . let mut iter = s.as_bytes().iter(); 6,622 ( 0.00%) while let Some(&c) = iter.next() { 13,260 ( 0.00%) if c == b'\\' . // Always move the iterator to read the escape char. 32 ( 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; . } . } . } . } 178,144 ( 0.00%) } . } 5,927 ( 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 { 155,876 ( 0.00%) fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { . // `NumericLiteral::from_lit_kind` only accepts integer and float literals. 46,824 ( 0.00%) if let ExprKind::Lit(lit) = expr.kind 6,864 ( 0.00%) && matches!(lit.kind, token::LitKind::Integer | token::LitKind::Float) 1,552 ( 0.00%) && !expr.span.in_external_macro(cx.sess().source_map()) . { . self.check_lit(cx, lit, expr.span); . } 178,144 ( 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) { 2,716 ( 0.00%) if let Some(src) = span.get_text(cx) 3,104 ( 0.00%) && let Ok(lit_kind) = LitKind::from_token_lit(lit) 54,652 ( 0.00%) => ???:::from_token_lit (388x) 5,908 ( 0.00%) && let Some(mut num_lit) = NumericLiteral::from_lit_kind(&src, &lit_kind) 46,020 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/numeric_literal.rs:::from_lit_kind (388x) 9,700 ( 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 (388x) . { . if !Self::check_for_mistyped_suffix(cx, span, &mut num_lit) { . return; . } . . if Self::is_literal_uuid_formatted(&num_lit) { . return; . } . 744 ( 0.00%) let result = (|| { 4 ( 0.00%) let integral_group_size = Self::get_group_size(num_lit.integer.split('_'), num_lit.radix, true)?; 744 ( 0.00%) if let Some(fraction) = num_lit.fraction { . let fractional_group_size = . 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(), -- line 253 ---------------------------------------- -- 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 { 248 ( 0.00%) if num_lit.suffix.is_some() { . return true; . } . 738 ( 0.00%) let (part, mistyped_suffixes, is_float) = if let Some((_, exponent)) = &mut num_lit.exponent { . (exponent, &["32", "64"][..], true) 246 ( 0.00%) } else if num_lit.fraction.is_some() { . return true; . } else { . (&mut num_lit.integer, &["8", "16", "32", "64"][..], false) . }; . 492 ( 0.00%) let mut split = part.rsplit('_'); 492 ( 0.00%) let last_group = split.next().expect("At least one group"); 246 ( 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 336 ---------------------------------------- . } . } . . /// Checks whether the numeric literal matches the formatting of a UUID. . /// . /// Returns `true` if the radix is hexadecimal, and the groups match the . /// UUID format of 8-4-4-4-12. . fn is_literal_uuid_formatted(num_lit: &NumericLiteral<'_>) -> bool { 8 ( 0.00%) if num_lit.radix != Radix::Hexadecimal { . return false; . } . . // UUIDs should not have a fraction . if num_lit.fraction.is_some() { . return false; . } . 8 ( 0.00%) let group_sizes: Vec = num_lit.integer.split('_').map(str::len).collect(); 8 ( 0.00%) if UUID_GROUP_LENS.len() == group_sizes.len() { . iter::zip(&UUID_GROUP_LENS, &group_sizes).all(|(&a, &b)| a == b) . } else { . false . } . } . . /// Given the sizes of the digit groups of both integral and fractional . /// parts, and the length -- line 362 ---------------------------------------- -- 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"); . 496 ( 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() { . if !groups.all(|x| x == second) || first > second { . Err(WarningType::InconsistentDigitGrouping) . } else if second > 4 { . Err(WarningType::LargeDigitGroups) . } else { . Ok(Some(second)) . } 496 ( 0.00%) } else if first > 5 && lint_unreadable { . Err(WarningType::UnreadableLiteral) . } else { . Ok(None) . } . } . } . . pub struct DecimalLiteralRepresentation { . threshold: u64, . } . . impl EarlyLintPass for DecimalLiteralRepresentation { 155,876 ( 0.00%) fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { . // Only integer tokens can produce `LitKind::Int`. 44,536 ( 0.00%) if let ExprKind::Lit(lit) = expr.kind . && lit.kind == token::LitKind::Integer 1,164 ( 0.00%) && !expr.span.in_external_macro(cx.sess().source_map()) . { 1,940 ( 0.00%) self.check_lit(cx, lit, expr.span); . } 178,144 ( 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. 2,716 ( 0.00%) if let Ok(lit_kind) = LitKind::from_token_lit(lit) 54,652 ( 0.00%) => ???:::from_token_lit (388x) 1,552 ( 0.00%) && let LitKind::Int(val, _) = lit_kind 388 ( 0.00%) && val >= u128::from(self.threshold) . && let Some(src) = span.get_text(cx) . && let Some(num_lit) = NumericLiteral::from_lit_kind(&src, &lit_kind) . && num_lit.radix == Radix::Decimal . { . let hex = format!("{val:#X}"); . let num_lit = NumericLiteral::new(&hex, num_lit.suffix, false); . let _: Result<(), ()> = Self::do_lint(num_lit.integer).map_err(|warning_type| { . warning_type.display(&num_lit, cx, span); -- line 451 ---------------------------------------- 4,972 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_utils/src/consts.rs -------------------------------------------------------------------------------- Ir -- line 98 ---------------------------------------- . UintTy::U128 => 128, . UintTy::Usize => usize::BITS.into(), . } . } . } . impl IntTypeBounds for IntTy { . type Output = i128; . fn min_max(self) -> Option<(Self::Output, Self::Output)> { 4 ( 0.00%) Some(match self { . IntTy::I8 => (i8::MIN.into(), i8::MAX.into()), . IntTy::I16 => (i16::MIN.into(), i16::MAX.into()), . IntTy::I32 => (i32::MIN.into(), i32::MAX.into()), . IntTy::I64 => (i64::MIN.into(), i64::MAX.into()), . IntTy::I128 => (i128::MIN, i128::MAX), . IntTy::Isize => (isize::MIN.try_into().ok()?, isize::MAX.try_into().ok()?), . }) . } -- line 114 ---------------------------------------- -- line 120 ---------------------------------------- . IntTy::I64 => 64, . IntTy::I128 => 128, . IntTy::Isize => isize::BITS.into(), . } . } . } . . impl PartialEq for Constant { 840 ( 0.00%) fn eq(&self, other: &Self) -> bool { 1,049 ( 0.00%) match (self, other) { . (Self::Str(ls), Self::Str(rs)) => ls == rs, . (Self::Binary(l), Self::Binary(r)) => l == r, . (&Self::Char(l), &Self::Char(r)) => l == r, 204 ( 0.00%) (&Self::Int(l), &Self::Int(r)) => l == r, . (&Self::F64(l), &Self::F64(r)) => { . // `to_bits` is required to catch non-matching `0.0` and `-0.0`. . l.to_bits() == r.to_bits() && !l.is_nan() . }, . (&Self::F32(l), &Self::F32(r)) => { . // `to_bits` is required to catch non-matching `0.0` and `-0.0`. . l.to_bits() == r.to_bits() && !l.is_nan() . }, 9 ( 0.00%) (&Self::Bool(l), &Self::Bool(r)) => l == r, . (&Self::Vec(ref l), &Self::Vec(ref r)) | (&Self::Tuple(ref l), &Self::Tuple(ref r)) => l == r, . (Self::Repeat(lv, ls), Self::Repeat(rv, rs)) => ls == rs && lv == rv, . (Self::Ref(lb), Self::Ref(rb)) => *lb == *rb, . // TODO: are there inter-type equalities? . _ => false, . } 420 ( 0.00%) } . } . . impl Hash for Constant { 420 ( 0.00%) fn hash(&self, state: &mut H) . where . H: Hasher, . { . std::mem::discriminant(self).hash(state); 210 ( 0.00%) match *self { . Self::Adt(ref elem) => { . elem.hash(state); . }, . Self::Str(ref s) => { . s.hash(state); . }, . Self::Binary(ref b) => { . b.hash(state); -- line 166 ---------------------------------------- -- line 179 ---------------------------------------- . f64::from(f).to_bits().hash(state); . }, . Self::F64(f) => { . f.to_bits().hash(state); . }, . Self::F128(f) => { . f.hash(state); . }, 5 ( 0.00%) Self::Bool(b) => { . b.hash(state); . }, . Self::Vec(ref v) | Self::Tuple(ref v) => { . v.hash(state); . }, . Self::Repeat(ref c, l) => { . c.hash(state); . l.hash(state); -- line 195 ---------------------------------------- -- line 197 ---------------------------------------- . Self::RawPtr(u) => { . u.hash(state); . }, . Self::Ref(ref r) => { . r.hash(state); . }, . Self::Err => {}, . } 252 ( 0.00%) } . } . . impl Constant { . pub fn partial_cmp(tcx: TyCtxt<'_>, cmp_type: Ty<'_>, left: &Self, right: &Self) -> Option { . match (left, right) { . (Self::Str(ls), Self::Str(rs)) => Some(ls.cmp(rs)), . (Self::Char(l), Self::Char(r)) => Some(l.cmp(r)), . (&Self::Int(l), &Self::Int(r)) => match *cmp_type.kind() { -- line 213 ---------------------------------------- -- line 259 ---------------------------------------- . rb, . ), . // TODO: are there any useful inter-type orderings? . _ => None, . } . } . . /// Returns the integer value or `None` if `self` or `val_type` is not integer type. 190 ( 0.00%) pub fn int_value(&self, tcx: TyCtxt<'_>, val_type: Ty<'_>) -> Option { 384 ( 0.00%) if let Constant::Int(const_int) = *self { 485 ( 0.00%) match *val_type.kind() { . ty::Int(ity) => Some(FullInt::S(sext(tcx, const_int, ity))), 392 ( 0.00%) ty::Uint(_) => Some(FullInt::U(const_int)), . _ => None, . } . } else { . None . } 285 ( 0.00%) } . . #[must_use] 344 ( 0.00%) pub fn peel_refs(mut self) -> Self { 129 ( 0.00%) while let Constant::Ref(r) = self { . self = *r; . } 172 ( 0.00%) self 301 ( 0.00%) } . . fn parse_f16(s: &str) -> Self { . let f: Half = s.parse().unwrap(); . Self::F16(f.to_bits().try_into().unwrap()) . } . . fn parse_f128(s: &str) -> Self { . let f: Quad = s.parse().unwrap(); -- line 293 ---------------------------------------- -- line 391 ---------------------------------------- . (&Self::Char(x), &ty::Char) => x == char::MAX, . (&Self::F32(x), &ty::Float(FloatTy::F32)) => x == f32::INFINITY, . (&Self::F64(x), &ty::Float(FloatTy::F64)) => x == f64::INFINITY, . _ => false, . } . } . . pub fn is_pos_infinity(&self) -> bool { 9 ( 0.00%) match *self { . // FIXME(f16_f128): add f16 and f128 when constants are available . Constant::F32(x) => x == f32::INFINITY, . Constant::F64(x) => x == f64::INFINITY, . _ => false, . } . } . . pub fn is_neg_infinity(&self) -> bool { -- line 407 ---------------------------------------- -- line 410 ---------------------------------------- . Constant::F32(x) => x == f32::NEG_INFINITY, . Constant::F64(x) => x == f64::NEG_INFINITY, . _ => false, . } . } . } . . /// Parses a `LitKind` to a `Constant`. 3,738 ( 0.00%) pub fn lit_to_mir_constant(lit: &LitKind, ty: Option>) -> Constant { 2,670 ( 0.00%) match *lit { 236 ( 0.00%) LitKind::Str(ref is, _) => Constant::Str(is.to_string()), 516 ( 0.00%) LitKind::Byte(b) => Constant::Int(u128::from(b)), 27 ( 0.00%) LitKind::ByteStr(ref s, _) | LitKind::CStr(ref s, _) => Constant::Binary(s.as_byte_str().to_vec()), 96 ( 0.00%) => ???:::as_byte_str (3x) 90 ( 0.00%) LitKind::Char(c) => Constant::Char(c), 468 ( 0.00%) LitKind::Int(n, _) => Constant::Int(n.get()), . LitKind::Float(ref is, LitFloatType::Suffixed(fty)) => match fty { . // FIXME(f16_f128): just use `parse()` directly when available for `f16`/`f128` . FloatTy::F16 => Constant::parse_f16(is.as_str()), . FloatTy::F32 => Constant::F32(is.as_str().parse().unwrap()), . FloatTy::F64 => Constant::F64(is.as_str().parse().unwrap()), . FloatTy::F128 => Constant::parse_f128(is.as_str()), . }, . LitKind::Float(ref is, LitFloatType::Unsuffixed) => match ty.expect("type of float is known").kind() { . ty::Float(FloatTy::F16) => Constant::parse_f16(is.as_str()), . ty::Float(FloatTy::F32) => Constant::F32(is.as_str().parse().unwrap()), . ty::Float(FloatTy::F64) => Constant::F64(is.as_str().parse().unwrap()), . ty::Float(FloatTy::F128) => Constant::parse_f128(is.as_str()), . _ => bug!(), . }, 240 ( 0.00%) LitKind::Bool(b) => Constant::Bool(b), . LitKind::Err(_) => Constant::Err, . } 4,272 ( 0.00%) } . . /// The source of a constant value. . #[derive(Clone, Copy)] . pub enum ConstantSource { . /// The value is determined solely from the expression. . Local, . /// The value is dependent on another definition that may change independently from the local . /// expression. -- line 450 ---------------------------------------- -- line 466 ---------------------------------------- . pub fn is_zero(self) -> bool { . matches!(self, Self::S(0) | Self::U(0)) . } . } . . impl PartialEq for FullInt { . fn eq(&self, other: &Self) -> bool { . self.cmp(other) == Ordering::Equal 166 ( 0.00%) } . } . . impl PartialOrd for FullInt { . fn partial_cmp(&self, other: &Self) -> Option { . Some(self.cmp(other)) . } . } . -- line 482 ---------------------------------------- -- line 483 ---------------------------------------- . impl Ord for FullInt { . fn cmp(&self, other: &Self) -> Ordering { . use FullInt::{S, U}; . . fn cmp_s_u(s: i128, u: u128) -> Ordering { . u128::try_from(s).map_or(Ordering::Less, |x| x.cmp(&u)) . } . 8,100 ( 0.00%) match (*self, *other) { . (S(s), S(o)) => s.cmp(&o), . (U(s), U(o)) => s.cmp(&o), . (S(s), U(o)) => cmp_s_u(s, o), . (U(s), S(o)) => cmp_s_u(o, s).reverse(), . } 734 ( 0.00%) } . } . . /// Evaluates an expression if it's a builtin integer type. 20 ( 0.00%) pub fn eval_int(cx: &LateContext<'_>, e: &Expr<'_>) -> Option { 10 ( 0.00%) match e.kind { 14 ( 0.00%) ExprKind::Lit(lit) if let LitKind::Int(val, _) = lit.node => Some(FullInt::U(val.0)), . ExprKind::Unary(UnOp::Neg, e) . if let ExprKind::Lit(lit) = e.kind . && let LitKind::Int(val, _) = lit.node => . { . Some(FullInt::S(val.0.cast_signed().wrapping_neg())) . }, . _ if let ty = cx.typeck_results().expr_ty(e) . && let ty::Int(_) | ty::Uint(_) = *ty.kind() => . { . ConstEvalCtxt::new(cx).eval(e).and_then(|x| x.int_value(cx.tcx, ty)) . }, . _ => None, . } 18 ( 0.00%) } . . /// The context required to evaluate a constant expression. . /// . /// This is currently limited to constant folding and reading the value of named constants. . /// . /// See the module level documentation for some context. . pub struct ConstEvalCtxt<'tcx> { . pub tcx: TyCtxt<'tcx>, -- line 525 ---------------------------------------- -- line 527 ---------------------------------------- . pub typeck: &'tcx TypeckResults<'tcx>, . source: Cell, . ctxt: Cell, . } . . impl<'tcx> ConstEvalCtxt<'tcx> { . /// Creates the evaluation context from the lint context. This requires the lint context to be . /// in a body (i.e. `cx.enclosing_body.is_some()`). 3,978 ( 0.00%) pub fn new(cx: &LateContext<'tcx>) -> Self { 5,356 ( 0.00%) Self { 1,352 ( 0.00%) tcx: cx.tcx, 689 ( 0.00%) typing_env: cx.typing_env(), 132,160 ( 0.00%) => ???:::typing_env (663x) . typeck: cx.typeck_results(), . source: Cell::new(ConstantSource::Local), . ctxt: Cell::new(SyntaxContext::root()), . } 3,978 ( 0.00%) } . . /// Creates an evaluation context. . pub fn with_env(tcx: TyCtxt<'tcx>, typing_env: ty::TypingEnv<'tcx>, typeck: &'tcx TypeckResults<'tcx>) -> Self { 27,524 ( 0.00%) Self { . tcx, . typing_env, . typeck, . source: Cell::new(ConstantSource::Local), . ctxt: Cell::new(SyntaxContext::root()), . } . } . . /// Attempts to evaluate the expression and returns both the value and whether it's dependant on . /// other items. . pub fn eval_with_source(&self, e: &Expr<'_>, ctxt: SyntaxContext) -> Option<(Constant, ConstantSource)> { . self.source.set(ConstantSource::Local); . self.ctxt.set(ctxt); 10,837 ( 0.00%) self.expr(e).map(|c| (c, self.source.get())) 706 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/consts.rs:::expr (5x) . } . . /// Attempts to evaluate the expression. . pub fn eval(&self, e: &Expr<'_>) -> Option { 220 ( 0.00%) self.expr(e) 28,224 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/consts.rs:::expr (220x) . } . . /// Attempts to evaluate the expression without accessing other items. . /// . /// The context argument is the context used to view the evaluated expression. e.g. when . /// evaluating the argument in `f(m!(1))` the context of the call expression should be used. . /// This is need so the const evaluator can see the `m` macro and marke the evaluation as . /// non-local independant of what the macro expands to. 1,080 ( 0.00%) pub fn eval_local(&self, e: &Expr<'_>, ctxt: SyntaxContext) -> Option { 2,313 ( 0.00%) match self.eval_with_source(e, ctxt) { 1,679 ( 0.00%) Some((x, ConstantSource::Local)) => Some(x), 1,633 ( 0.00%) _ => None, 3,037 ( 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) 1,080 ( 0.00%) } . . /// Attempts to evaluate the expression as an integer without accessing other items. . /// . /// The context argument is the context used to view the evaluated expression. e.g. when . /// evaluating the argument in `f(m!(1))` the context of the call expression should be used. . /// This is need so the const evaluator can see the `m` macro and marke the evaluation as . /// non-local independant of what the macro expands to. 50 ( 0.00%) pub fn eval_full_int(&self, e: &Expr<'_>, ctxt: SyntaxContext) -> Option { 12 ( 0.00%) match self.eval_with_source(e, ctxt) { 18 ( 0.00%) Some((x, ConstantSource::Local)) => x.int_value(self.tcx, self.typeck.expr_ty(e)), 80 ( 0.00%) => ???:::expr_ty (2x) 6 ( 0.00%) _ => None, 3 ( 0.00%) } 45 ( 0.00%) } . 760 ( 0.00%) pub fn eval_pat_expr(&self, pat_expr: &PatExpr<'_>) -> Option { 190 ( 0.00%) match &pat_expr.kind { . PatExprKind::Lit { lit, negated } => { 665 ( 0.00%) let ty = self.typeck.node_type_opt(pat_expr.hir_id); 3,515 ( 0.00%) => ???:::node_type_opt (95x) 380 ( 0.00%) let val = lit_to_mir_constant(&lit.node, ty); 2,467 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/consts.rs:clippy_utils::consts::lit_to_mir_constant (95x) 190 ( 0.00%) if *negated { . self.constant_negate(&val, ty?) . } else { 380 ( 0.00%) Some(val) . } 95 ( 0.00%) }, . PatExprKind::Path(qpath) => self.qpath(qpath, pat_expr.hir_id), . } 855 ( 0.00%) } . . fn check_ctxt(&self, ctxt: SyntaxContext) { 8,786 ( 0.00%) if self.ctxt.get() != ctxt { . self.source.set(ConstantSource::NonLocal); . } . } . 31,170 ( 0.00%) fn qpath(&self, qpath: &QPath<'_>, hir_id: HirId) -> Option { . self.fetch_path(qpath, hir_id) 70 ( 0.00%) .and_then(|c| mir_to_const(self.tcx, c, self.typeck.node_type(hir_id))) 287 ( 0.00%) => ???:::node_type (7x) 232 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/consts.rs:clippy_utils::consts::mir_to_const (7x) 24,936 ( 0.00%) } . . /// Simple constant folding: Insert an expression, get a constant or none. 105,896 ( 0.00%) fn expr(&self, e: &Expr<'_>) -> Option { 7,565 ( 0.00%) self.check_ctxt(e.span.ctxt()); 45,390 ( 0.00%) match e.kind { . ExprKind::ConstBlock(ConstBlock { body, .. }) => self.expr(self.tcx.hir_body(body).value), . ExprKind::DropTemps(e) => self.expr(e), 21,819 ( 0.00%) ExprKind::Path(ref qpath) => self.qpath(qpath, e.hir_id), 316,338 ( 0.01%) => site/frontend/rust-clippy/clippy_utils/src/consts.rs:::qpath (2,466x) 37 ( 0.00%) ExprKind::Block(block, _) => { 37 ( 0.00%) self.check_ctxt(block.span.ctxt()); . self.block(block) . }, 1,756 ( 0.00%) ExprKind::Lit(lit) => { 439 ( 0.00%) self.check_ctxt(lit.span.ctxt()); 3,073 ( 0.00%) Some(lit_to_mir_constant(&lit.node, self.typeck.expr_ty_opt(e))) 24,207 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/consts.rs:clippy_utils::consts::lit_to_mir_constant (414x) 16,146 ( 0.00%) => ???:::expr_ty_opt (414x) . }, 6 ( 0.00%) ExprKind::Array(vec) => self.multi(vec).map(Constant::Vec), 96 ( 0.00%) ExprKind::Tup(tup) => self.multi(tup).map(Constant::Tuple), . ExprKind::Repeat(value, _) => { . let n = match self.typeck.expr_ty(e).kind() { . ty::Array(_, n) => n.try_to_target_usize(self.tcx)?, . _ => span_bug!(e.span, "typeck error"), . }; . self.expr(value).map(|v| Constant::Repeat(Box::new(v), n)) . }, 566 ( 0.00%) ExprKind::Unary(op, operand) => self.expr(operand).and_then(|o| match op { 9,988 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/consts.rs:::expr'2 (116x) . UnOp::Not => self.constant_not(&o, self.typeck.expr_ty(e)), 10 ( 0.00%) UnOp::Neg => self.constant_negate(&o, self.typeck.expr_ty(e)), 40 ( 0.00%) => ???:::expr_ty (1x) 102 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/consts.rs:::constant_negate (1x) . UnOp::Deref => Some(if let Constant::Ref(r) = o { *r } else { o }), 6 ( 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) 51 ( 0.00%) ExprKind::If(cond, then, ref otherwise) => self.ifthenelse(cond, then, *otherwise), 2,235 ( 0.00%) ExprKind::Binary(op, left, right) => { . self.check_ctxt(e.span.ctxt()); . self.binop(op.node, left, right) . }, 1,192 ( 0.00%) ExprKind::Call(callee, []) => { . // We only handle a few const functions for now. 48 ( 0.00%) if let ExprKind::Path(qpath) = &callee.kind 72 ( 0.00%) && let Some(did) = self.typeck.qpath_res(qpath, callee.hir_id).opt_def_id() 752 ( 0.00%) => ???:::qpath_res (12x) . { 60 ( 0.00%) match self.tcx.get_diagnostic_name(did) { 788 ( 0.00%) => ???:::get_diagnostic_name (12x) . Some(sym::i8_legacy_fn_max_value) => Some(Constant::Int(i8::MAX as u128)), . Some(sym::i16_legacy_fn_max_value) => Some(Constant::Int(i16::MAX as u128)), . Some(sym::i32_legacy_fn_max_value) => Some(Constant::Int(i32::MAX as u128)), . Some(sym::i64_legacy_fn_max_value) => Some(Constant::Int(i64::MAX as u128)), . Some(sym::i128_legacy_fn_max_value) => Some(Constant::Int(i128::MAX as u128)), . _ => None, . } . } else { . None . } . }, 510 ( 0.00%) ExprKind::Index(arr, index, _) => self.index(arr, index), 513 ( 0.00%) ExprKind::AddrOf(_, _, inner) => self.expr(inner).map(|r| Constant::Ref(Box::new(r))), 41,317 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/consts.rs:::expr'2 (168x) . ExprKind::Field(base, ref field) 1,422 ( 0.00%) if let base_ty = self.typeck.expr_ty(base) 7,664 ( 0.00%) => ???:::expr_ty (191x) 1,037 ( 0.00%) && match self.typeck.expr_adjustments(base) { 7,717 ( 0.00%) => ???:::expr_adjustments (191x) 474 ( 0.00%) [] => true, . [.., a] => a.target == base_ty, . } 740 ( 0.00%) && let Some(Constant::Adt(constant)) = self.expr(base) 21,265 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/consts.rs:::expr'2 (137x) . && let ty::Adt(adt_def, _) = *base_ty.kind() . && adt_def.is_struct() . && let Some((desired_field, ty)) = . field_of_struct(adt_def, self.tcx, constant, base_ty, field.name) => . { . self.check_ctxt(field.span.ctxt()); . mir_to_const(self.tcx, desired_field, ty) . }, . _ => None, . } 68,041 ( 0.00%) } . . /// Simple constant folding to determine if an expression is an empty slice, str, array, … . /// `None` will be returned if the constness cannot be determined, or if the resolution . /// leaves the local crate. 583 ( 0.00%) pub fn eval_is_empty(&self, e: &Expr<'_>) -> Option { 318 ( 0.00%) match e.kind { . ExprKind::ConstBlock(ConstBlock { body, .. }) => self.eval_is_empty(self.tcx.hir_body(body).value), . ExprKind::DropTemps(e) => self.eval_is_empty(e), . ExprKind::Lit(lit) => { . if is_direct_expn_of(e.span, sym::cfg).is_some() { . None . } else { . match &lit.node { . LitKind::Str(is, _) => Some(is.is_empty()), -- line 705 ---------------------------------------- -- line 713 ---------------------------------------- . if let ty::Array(_, n) = self.typeck.expr_ty(e).kind() { . Some(n.try_to_target_usize(self.tcx)? == 0) . } else { . span_bug!(e.span, "typeck error"); . } . }, . _ => None, . } 371 ( 0.00%) } . . #[expect(clippy::cast_possible_wrap)] . fn constant_not(&self, o: &Constant, ty: Ty<'_>) -> Option { . use self::Constant::{Bool, Int}; . match *o { . Bool(b) => Some(Bool(!b)), . Int(value) => { . let value = !value; -- line 729 ---------------------------------------- -- line 732 ---------------------------------------- . ty::Uint(ity) => Some(Int(clip(self.tcx, value, ity))), . _ => None, . } . }, . _ => None, . } . } . 5 ( 0.00%) fn constant_negate(&self, o: &Constant, ty: Ty<'_>) -> Option { . use self::Constant::{F32, F64, Int}; 8 ( 0.00%) match *o { . Int(value) => { 2 ( 0.00%) let ty::Int(ity) = *ty.kind() else { return None }; . let (min, _) = ity.min_max()?; . // sign extend 1 ( 0.00%) let value = sext(self.tcx, value, ity); . . // Applying unary - to the most negative value of any signed integer type panics. 4 ( 0.00%) if value == min { . return None; . } . . let value = value.checked_neg()?; . // clear unused bits 5 ( 0.00%) Some(Int(unsext(self.tcx, value, ity))) . }, . F32(f) => Some(F32(-f)), . F64(f) => Some(F64(-f)), . _ => None, . } 5 ( 0.00%) } . . /// Create `Some(Vec![..])` of all constants, unless there is any . /// non-constant part. . fn multi(&self, vec: &[Expr<'_>]) -> Option> { 188 ( 0.00%) vec.iter().map(|elem| self.expr(elem)).collect::>() 4,873 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/consts.rs:::expr'2 (44x) . } . . /// Lookup a possibly constant expression from an `ExprKind::Path` and apply a function on it. . #[expect(clippy::too_many_lines)] . fn fetch_path(&self, qpath: &QPath<'_>, id: HirId) -> Option { . // Resolve the path to a constant and check if that constant is known to . // not change based on the target. . // . // This should be replaced with an attribute at some point. 12,328 ( 0.00%) let did = match *qpath { . QPath::Resolved(None, path) 9,141 ( 0.00%) if path.span.ctxt() == self.ctxt.get() 3,040 ( 0.00%) && path.segments.iter().all(|s| self.ctxt.get() == s.ident.span.ctxt()) 7,232 ( 0.00%) && let Res::Def(DefKind::Const { .. }, did) = path.res . && (matches!( . self.tcx.get_diagnostic_name(did), . Some( . sym::f32_legacy_const_digits . | sym::f32_legacy_const_epsilon . | sym::f32_legacy_const_infinity . | sym::f32_legacy_const_mantissa_dig . | sym::f32_legacy_const_max -- line 789 ---------------------------------------- -- line 839 ---------------------------------------- . sym::f16_consts_mod | sym::f32_consts_mod | sym::f64_consts_mod | sym::f128_consts_mod . ) . ) . })) => . { . did . }, . QPath::TypeRelative(ty, const_name) 490 ( 0.00%) if let TyKind::Path(QPath::Resolved(None, ty_path)) = ty.kind 280 ( 0.00%) && let [.., ty_name] = ty_path.segments . && (matches!( 210 ( 0.00%) ty_name.ident.name, 512 ( 0.00%) sym::i8 . | sym::i16 . | sym::i32 . | sym::i64 . | sym::i128 . | sym::u8 . | sym::u16 . | sym::u32 . | sym::u64 . | sym::u128 . | sym::f32 . | sym::f64 . | sym::char . ) || (ty_name.ident.name == sym::usize && const_name.ident.name == sym::MIN)) 6 ( 0.00%) && const_name.ident.span.ctxt() == self.ctxt.get() 4 ( 0.00%) && ty.span.ctxt() == self.ctxt.get() 4 ( 0.00%) && ty_name.ident.span.ctxt() == self.ctxt.get() 4 ( 0.00%) && matches!(ty_path.res, Res::PrimTy(_)) 22 ( 0.00%) && let Some((DefKind::AssocConst { .. }, did)) = self.typeck.type_dependent_def(id) 110 ( 0.00%) => ???:::type_dependent_def (2x) . && self.tcx.inherent_impl_of_assoc(did).is_some() => . { . did . }, . // TODO: revisit when feature `min_generic_const_args` is stabilized. In the meantime, . // `TyCtxt::const_eval_resolve()` will trigger an ICE when evaluating the body of the . // `type const` definition. 9,908 ( 0.00%) _ if let Res::Def( . DefKind::Const { is_type_const: false } | DefKind::AssocConst { is_type_const: false }, 14 ( 0.00%) did, 22,362 ( 0.00%) ) = self.typeck.qpath_res(qpath, id) => 50,395 ( 0.00%) => ???:::qpath_res (3,117x) . { . self.source.set(ConstantSource::NonLocal); . did . }, . _ => return None, . }; . 42 ( 0.00%) let args = self.typeck.node_args(id); 248 ( 0.00%) => ???:::node_args (7x) . 14 ( 0.00%) if !args.is_empty() { 4 ( 0.00%) let owner_def_id = self.typeck.hir_owner.def_id.to_def_id(); 6 ( 0.00%) let identity_args = ty::GenericArgs::identity_for_item(self.tcx, owner_def_id); . // Don't try to fully evaluate consts inside code whose bounds can't be satisfied. 4 ( 0.00%) if self . .tcx 6 ( 0.00%) .instantiate_and_check_impossible_clauses((owner_def_id, identity_args)) . { . return None; . } . } . 7 ( 0.00%) self.tcx 56 ( 0.00%) .const_eval_resolve(self.typing_env, mir::UnevaluatedConst::new(did, args), qpath.span()) 62,020 ( 0.00%) => ???:::const_eval_resolve (7x) 700 ( 0.00%) => ???:::span (7x) . .ok() . } . . fn index(&self, lhs: &'_ Expr<'_>, index: &'_ Expr<'_>) -> Option { 765 ( 0.00%) let lhs = self.expr(lhs); 16,676 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/consts.rs:::expr'2 (116x) 765 ( 0.00%) let index = self.expr(index); 10,354 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/consts.rs:::expr'2 (116x) . 3,315 ( 0.00%) match (lhs, index) { . (Some(Constant::Vec(vec)), Some(Constant::Int(index))) => match vec.get(index as usize) { . Some(Constant::F16(x)) => Some(Constant::F16(*x)), . Some(Constant::F32(x)) => Some(Constant::F32(*x)), . Some(Constant::F64(x)) => Some(Constant::F64(*x)), . Some(Constant::F128(x)) => Some(Constant::F128(*x)), . _ => None, . }, . (Some(Constant::Vec(vec)), _) => { -- line 919 ---------------------------------------- -- line 924 ---------------------------------------- . Some(Constant::F64(x)) => Some(Constant::F64(*x)), . Some(Constant::F128(x)) => Some(Constant::F128(*x)), . _ => None, . } . } else { . None . } . }, 255 ( 0.00%) _ => None, . } . } . . /// A block can only yield a constant if it has exactly one constant expression. . fn block(&self, block: &Block<'_>) -> Option { 37 ( 0.00%) if block.stmts.is_empty() 60 ( 0.00%) && let Some(expr) = block.expr . { . // Try to detect any `cfg`ed statements or empty macro expansions. 60 ( 0.00%) let span = block.span.data(); 420 ( 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 (20x) 20 ( 0.00%) if span.ctxt == SyntaxContext::root() { 112 ( 0.00%) if let Some(expr_span) = walk_span_to_context(expr.span, span.ctxt) 1,376 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/source.rs:clippy_utils::source::walk_span_to_context (16x) . && let expr_lo = expr_span.lo() 16 ( 0.00%) && expr_lo >= span.lo 128 ( 0.00%) && let Some(src) = (span.lo..expr_lo).get_source_range(self.tcx) 48 ( 0.00%) && let Some(src) = src.as_str() 448 ( 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 (16x) . { . use rustc_lexer::TokenKind::{BlockComment, LineComment, OpenBrace, Semi, Whitespace}; 48 ( 0.00%) if !tokenize(src, FrontmatterAllowed::No) . .map(|t| t.kind) . .filter(|t| !matches!(t, Whitespace | LineComment { .. } | BlockComment { .. } | Semi)) . .eq([OpenBrace]) . { . self.source.set(ConstantSource::NonLocal); . } . } else { . // Unable to access the source. Assume a non-local dependency. . self.source.set(ConstantSource::NonLocal); . } . } . 80 ( 0.00%) self.expr(expr) 1,889 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/consts.rs:::expr'2 (20x) . } else { . None . } . } . . fn ifthenelse(&self, cond: &Expr<'_>, then: &Expr<'_>, otherwise: Option<&Expr<'_>>) -> Option { 102 ( 0.00%) if let Some(Constant::Bool(b)) = self.expr(cond) { 2,278 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/consts.rs:::expr'2 (17x) . if b { . self.expr(then) . } else { . otherwise.as_ref().and_then(|expr| self.expr(expr)) . } . } else { . None . } . } . . #[expect(clippy::too_many_lines)] . fn binop(&self, op: BinOpKind, left: &Expr<'_>, right: &Expr<'_>) -> Option { 3,725 ( 0.00%) let l = self.expr(left)?; 53,975 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/consts.rs:::expr'2 (378x) 48 ( 0.00%) let r = self.expr(right); 2,216 ( 0.00%) => site/frontend/rust-clippy/clippy_utils/src/consts.rs:::expr'2 (16x) 339 ( 0.00%) match (l, r) { . (Constant::Int(l), Some(Constant::Int(r))) => match *self.typeck.expr_ty_opt(left)?.kind() { . ty::Int(ity) => { . let (ty_min_value, _) = ity.min_max()?; . let bits = ity.bits(); . let l = sext(self.tcx, l, ity); . let r = sext(self.tcx, r, ity); . . // Using / or %, where the left-hand argument is the smallest integer of a signed integer type and -- line 994 ---------------------------------------- -- line 1080 ---------------------------------------- . BinOpKind::Eq => Some(Constant::Bool(l == r)), . BinOpKind::Ne => Some(Constant::Bool(l != r)), . BinOpKind::Lt => Some(Constant::Bool(l < r)), . BinOpKind::Le => Some(Constant::Bool(l <= r)), . BinOpKind::Ge => Some(Constant::Bool(l >= r)), . BinOpKind::Gt => Some(Constant::Bool(l > r)), . _ => None, . }, 229 ( 0.00%) (l, r) => match (op, l, r) { 9 ( 0.00%) (BinOpKind::And, Constant::Bool(false), _) => Some(Constant::Bool(false)), . (BinOpKind::Or, Constant::Bool(true), _) => Some(Constant::Bool(true)), . (BinOpKind::And, Constant::Bool(true), Some(r)) | (BinOpKind::Or, Constant::Bool(false), Some(r)) => { . Some(r) . }, . (BinOpKind::BitXor, Constant::Bool(l), Some(Constant::Bool(r))) => Some(Constant::Bool(l ^ r)), . (BinOpKind::BitAnd, Constant::Bool(l), Some(Constant::Bool(r))) => Some(Constant::Bool(l & r)), . (BinOpKind::BitOr, Constant::Bool(l), Some(Constant::Bool(r))) => Some(Constant::Bool(l | r)), 13 ( 0.00%) _ => None, 48 ( 0.00%) }, 400 ( 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:: (16x) . } . } . } . 63 ( 0.00%) pub fn mir_to_const<'tcx>(tcx: TyCtxt<'tcx>, val: ConstValue, ty: Ty<'tcx>) -> Option { 26 ( 0.00%) match (val, ty.kind()) { 62 ( 0.00%) (_, &ty::Adt(adt_def, _)) if adt_def.is_struct() => Some(Constant::Adt(val)), 5 ( 0.00%) (ConstValue::Scalar(Scalar::Int(int)), _) => match ty.kind() { . ty::Bool => Some(Constant::Bool(int == ScalarInt::TRUE)), . ty::Uint(_) | ty::Int(_) => Some(Constant::Int(int.to_bits(int.size()))), . ty::Float(FloatTy::F16) => Some(Constant::F16(int.into())), . ty::Float(FloatTy::F32) => Some(Constant::F32(f32::from_bits(int.into()))), . ty::Float(FloatTy::F64) => Some(Constant::F64(f64::from_bits(int.into()))), . ty::Float(FloatTy::F128) => Some(Constant::F128(int.into())), . ty::RawPtr(_, _) => Some(Constant::RawPtr(int.to_bits(int.size()))), . _ => None, -- line 1114 ---------------------------------------- -- line 1134 ---------------------------------------- . FloatTy::F64 => Constant::F64(f64::from_bits(val.to_u64().discard_err()?)), . FloatTy::F128 => Constant::F128(val.to_u128().discard_err()?), . }); . } . Some(Constant::Vec(res)) . }, . _ => None, . } 63 ( 0.00%) } . . fn field_of_struct<'tcx>( . adt_def: ty::AdtDef<'tcx>, . tcx: TyCtxt<'tcx>, . value: ConstValue, . ty: Ty<'tcx>, . field: Symbol, . ) -> Option<(ConstValue, Ty<'tcx>)> { -- line 1150 ---------------------------------------- 63,240 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/partialeq_to_none.rs -------------------------------------------------------------------------------- Ir -- line 36 ---------------------------------------- . pub PARTIALEQ_TO_NONE, . style, . "Binary comparison to `Option::None` relies on `T: PartialEq`, which is unneeded" . } . . declare_lint_pass!(PartialeqToNone => [PARTIALEQ_TO_NONE]); . . impl<'tcx> LateLintPass<'tcx> for PartialeqToNone { 217,552 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, e: &'tcx Expr<'_>) { . // Skip expanded code, as we have no control over it anyway... 54,388 ( 0.00%) if e.span.from_expansion() { . return; . } . . // If the expression is of type `Option` . let is_ty_option = |expr: &Expr<'_>| { . cx.typeck_results() . .expr_ty(expr) . .peel_refs() . .is_diag_item(cx, sym::Option) . }; . . // If the expression is a literal `Option::None` . let is_none_ctor = 1,092 ( 0.00%) |expr: &Expr<'_>| !expr.span.from_expansion() && is_none_expr(cx, peel_hir_expr_refs(expr).0); 5,196 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/res.rs:clippy_utils::is_none_expr (156x) 780 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::peel_hir_expr_refs (156x) . 17,618 ( 0.00%) let mut applicability = Applicability::MachineApplicable; . 36,668 ( 0.00%) if let ExprKind::Binary(op, left_side, right_side) = e.kind { . // All other comparisons (e.g. `>= None`) have special meaning wrt T 948 ( 0.00%) let is_eq = match op.node { . BinOpKind::Eq => true, . BinOpKind::Ne => false, . _ => return, . }; . . // We are only interested in comparisons between `Option` and a literal `Option::None` 156 ( 0.00%) let scrutinee = match ( 156 ( 0.00%) is_none_ctor(left_side) && is_ty_option(right_side), 156 ( 0.00%) is_none_ctor(right_side) && is_ty_option(left_side), . ) { . (true, false) => right_side, . (false, true) => left_side, . _ => return, . }; . . // Peel away refs/derefs (as long as we don't cross manual deref impls), as . // autoref/autoderef will take care of those -- line 83 ---------------------------------------- -- line 97 ---------------------------------------- . "use `Option::is_none()` instead" . } else { . "use `Option::is_some()` instead" . }, . sugg, . applicability, . ); . } 217,552 ( 0.01%) } . } 93 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/needless_parens_on_range_literals.rs -------------------------------------------------------------------------------- Ir -- line 41 ---------------------------------------- . declare_lint_pass!(NeedlessParensOnRangeLiterals => [ . NEEDLESS_PARENS_ON_RANGE_LITERALS, . ]); . . fn snippet_enclosed_in_parenthesis(snippet: &str) -> bool { . snippet.starts_with('(') && snippet.ends_with(')') . } . 648 ( 0.00%) fn check_for_parens(cx: &LateContext<'_>, e: &Expr<'_>, is_start: bool) { 108 ( 0.00%) if is_start . && let ExprKind::Lit(literal) = e.kind 76 ( 0.00%) && let ast::LitKind::Float(_sym, ast::LitFloatType::Unsuffixed) = literal.node . { . // don't check floating point literals on the start expression of a range . return; . } 168 ( 0.00%) if let ExprKind::Lit(literal) = e.kind . // the indicator that parenthesis surround the literal is that the span of the expression and the literal differ 266 ( 0.00%) && (literal.span.data().hi - literal.span.data().lo) != (e.span.data().hi - e.span.data().lo) . // inspect the source code of the expression for parenthesis . && snippet_enclosed_in_parenthesis(&snippet(cx, e.span, "")) . { . let mut applicability = Applicability::MachineApplicable; . span_lint_and_then( . cx, . NEEDLESS_PARENS_ON_RANGE_LITERALS, . e.span, . "needless parenthesis on range literals can be removed", . |diag| { . let suggestion = snippet_with_applicability(cx, literal.span, "_", &mut applicability); . diag.span_suggestion(e.span, "try", suggestion, applicability); . }, . ); . } 432 ( 0.00%) } . . impl<'tcx> LateLintPass<'tcx> for NeedlessParensOnRangeLiterals { . fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 136,070 ( 0.00%) if let Some(higher::Range { start, end, .. }) = higher::Range::hir(cx, expr) { 1,294,020 ( 0.03%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/higher.rs:::hir (27,194x) 100 ( 0.00%) if let Some(start) = start { 150 ( 0.00%) check_for_parens(cx, start, true); 2,492 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/needless_parens_on_range_literals.rs:clippy_lints::needless_parens_on_range_literals::check_for_parens (50x) . } 100 ( 0.00%) if let Some(end) = end { 16 ( 0.00%) check_for_parens(cx, end, false); 96 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/needless_parens_on_range_literals.rs:clippy_lints::needless_parens_on_range_literals::check_for_parens (4x) . } . } . } . } 168 ( 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); 8,465 ( 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. 7,596 ( 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). 5,068 ( 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(); 13,506 ( 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; 12,351 ( 0.00%) while ptr < end { . if confirm(*ptr) { . return Some(ptr); . } . ptr = ptr.offset(1); . } . None . } . -- line 1163 ---------------------------------------- 10,559 ( 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. 78,270 ( 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 { 74,758 ( 0.00%) Relaxed => intrinsics::atomic_load::(dst), 134,993 ( 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), 626 ( 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 { 22,240 ( 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), 47,648 ( 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) => { 939 ( 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) => { -- line 4091 ---------------------------------------- 1,689 ( 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 { 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 55,417 ( 0.00%) if let ExprKind::Unary(UnOp::Not, inner) = expr.kind 254 ( 0.00%) && let ExprKind::Binary(ref op, left, _) = inner.kind 108 ( 0.00%) && let BinOpKind::Le | BinOpKind::Ge | BinOpKind::Lt | BinOpKind::Gt = op.node 12 ( 0.00%) && !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 { . return; -- line 58 ---------------------------------------- -- 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", . ); . } . } 217,552 ( 0.01%) } . } 148 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/non_canonical_impls.rs -------------------------------------------------------------------------------- Ir -- line 125 ---------------------------------------- . partial_ord_trait: Option, . ord_trait: Option, . clone_trait: Option, . copy_trait: Option, . } . . impl NonCanonicalImpls { . pub(crate) fn new(tcx: TyCtxt<'_>) -> Self { 2 ( 0.00%) let lang_items = tcx.lang_items(); 30 ( 0.00%) => ???:::lang_items (1x) . Self { . partial_ord_trait: lang_items.partial_ord_trait(), 3 ( 0.00%) ord_trait: tcx.get_diagnostic_item(sym::Ord), 72 ( 0.00%) => ???:::get_diagnostic_item (1x) . clone_trait: lang_items.clone_trait(), . copy_trait: lang_items.copy_trait(), . } . } . } . . /// The traits that this lint looks at . enum Trait { . Clone, . PartialOrd, . } . . impl LateLintPass<'_> for NonCanonicalImpls { 22,344 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'_>, item: &Item<'_>) { 9,194 ( 0.00%) if let ItemKind::Impl(impl_) = item.kind . // Both `PartialOrd` and `Clone` have one required method, and `PartialOrd` can have 5 methods in total 2,810 ( 0.00%) && (1..=5).contains(&impl_.items.len()) . && let Some(of_trait) = impl_.of_trait 5,435 ( 0.00%) && let Some(trait_did) = of_trait.trait_ref.trait_def_id() 14,131 ( 0.00%) => ???:::trait_def_id (1,087x) . // Check this early to hopefully bail out as soon as possible 448 ( 0.00%) && let trait_ = if Some(trait_did) == self.clone_trait { . Trait::Clone 3 ( 0.00%) } else if Some(trait_did) == self.partial_ord_trait { . Trait::PartialOrd . } else { . return; . } 1,816 ( 0.00%) && !cx.tcx.is_automatically_derived(item.owner_id.to_def_id()) 27,659 ( 0.00%) => ???:::is_automatically_derived (227x) . { . let mut assoc_fns = impl_ . .items . .iter() 238 ( 0.00%) .map(|id| cx.tcx.hir_impl_item(*id)) 53 ( 0.00%) => ???:::hir_impl_item (1x) . .filter_map(|assoc| { 476 ( 0.00%) if let ImplItemKind::Fn(_, body_id) = assoc.kind 357 ( 0.00%) && let body = cx.tcx.hir_body(body_id) 52 ( 0.00%) => ???:::hir_body (1x) 476 ( 0.00%) && let ExprKind::Block(block, ..) = body.value.kind 595 ( 0.00%) && !block.span.in_external_macro(cx.sess().source_map()) . { . Some((assoc, body, block)) . } else { . None . } . }); . 681 ( 0.00%) let trait_impl = cx.tcx.impl_trait_ref(item.owner_id).skip_binder(); 10,171 ( 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:: (227x) . 454 ( 0.00%) match trait_ { . Trait::Clone => { 896 ( 0.00%) if let Some(copy_trait) = self.copy_trait 2,240 ( 0.00%) && implements_trait(cx, trait_impl.self_ty(), copy_trait, &[]) 592,774 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::implements_trait (224x) . { . for (assoc, body, _) in assoc_fns { 118 ( 0.00%) check_clone_on_copy(cx, assoc, body.value); . } . } . }, . Trait::PartialOrd => { . // If `Self` and `Rhs` are not the same type, then a corresponding `Ord` impl is not possible, . // since it doesn't have an `Rhs` 7 ( 0.00%) if let [lhs, rhs] = trait_impl.args.as_slice() 3 ( 0.00%) && lhs == rhs 12 ( 0.00%) && let Some(ord_trait) = self.ord_trait 27 ( 0.00%) && implements_trait(cx, trait_impl.self_ty(), ord_trait, &[]) 29,327 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::implements_trait (3x) . && let Some((assoc, body, block)) = . assoc_fns.find(|(assoc, _, _)| assoc.ident.name == sym::partial_cmp) . { 5 ( 0.00%) check_partial_ord_on_ord(cx, assoc, item, body, block); 546 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/non_canonical_impls.rs:clippy_lints::non_canonical_impls::check_partial_ord_on_ord (1x) . } . }, . } . } 25,536 ( 0.00%) } . } . . fn is_deref_self(expr: &Expr<'_>) -> bool { 590 ( 0.00%) if let ExprKind::Unary(UnOp::Deref, deref) = expr.kind 708 ( 0.00%) && let ExprKind::Path(qpath) = deref.kind 236 ( 0.00%) && last_path_segment(&qpath).ident.name == kw::SelfLower 1,416 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::last_path_segment (118x) . { . return true; . } . false . } . . fn check_clone_on_copy(cx: &LateContext<'_>, impl_item: &ImplItem<'_>, body_expr: &Expr<'_>) { 472 ( 0.00%) if impl_item.ident.name == sym::clone { 472 ( 0.00%) if is_from_proc_macro(cx, impl_item) { 60,476 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::is_from_proc_macro:: (118x) . return; . } . 118 ( 0.00%) let add_return = match is_canonical_clone_body(body_expr) { . IsCanonical::WithReturn if is_lint_allowed(cx, IMPLICIT_RETURN, body_expr.hir_id) => false, . IsCanonical::WithReturn | IsCanonical::WithoutReturn => return, . IsCanonical::No => !is_lint_allowed(cx, IMPLICIT_RETURN, body_expr.hir_id), . }; . span_lint_and_sugg( . cx, . NON_CANONICAL_CLONE_IMPL, . body_expr.span, -- line 236 ---------------------------------------- -- line 256 ---------------------------------------- . . enum IsCanonical { . WithoutReturn, . WithReturn, . No, . } . . fn is_canonical_clone_body(body_expr: &Expr<'_>) -> IsCanonical { 236 ( 0.00%) let ExprKind::Block(block, ..) = body_expr.kind else { . return IsCanonical::No; . }; 472 ( 0.00%) let single_expr = match (block.stmts, block.expr) { 472 ( 0.00%) ([], Some(expr)) => Some(expr), . ( . [ . Stmt { . kind: StmtKind::Expr(expr) | StmtKind::Semi(expr), . .. . }, . ], . None, . ) => Some(*expr), . _ => None, . }; . let Some(expr) = single_expr else { . return IsCanonical::No; . }; . 354 ( 0.00%) match expr.kind { . ExprKind::Ret(Some(ret)) if is_deref_self(ret) => IsCanonical::WithReturn, . _ if is_deref_self(expr) => IsCanonical::WithoutReturn, . _ => IsCanonical::No, . } . } . 13 ( 0.00%) fn check_partial_ord_on_ord<'tcx>( . cx: &LateContext<'tcx>, . impl_item: &ImplItem<'_>, . item: &Item<'_>, . body: &Body<'_>, . block: &Block<'tcx>, . ) { . // If the `cmp` call likely needs to be fully qualified in the suggestion . // (like `std::cmp::Ord::cmp`). It's unfortunate we must put this here but we can't . // access `cmp_expr` in the suggestion without major changes, as we lint in `else`. . 1 ( 0.00%) let mut needs_fully_qualified = false; 1 ( 0.00%) if block.stmts.is_empty() . && let Some(expr) = block.expr . && expr_is_cmp(cx, expr, impl_item, &mut needs_fully_qualified) . { . return; . } . // Fix #12683, allow [`needless_return`] here . else if block.expr.is_none() . && let Some(stmt) = block.stmts.first() -- line 311 ---------------------------------------- -- line 352 ---------------------------------------- . (block.span, "{ Some(self.cmp(other)) }".to_owned()), . (other.pat.span, "other".to_owned()), . ], . }; . . diag.multipart_suggestion("change this to", suggs, Applicability::Unspecified); . }, . ); 8 ( 0.00%) } . . /// Return true if `expr_kind` is a `cmp` call. 10 ( 0.00%) fn expr_is_cmp<'tcx>( . cx: &LateContext<'tcx>, . expr: &'tcx Expr<'tcx>, . impl_item: &ImplItem<'_>, . needs_fully_qualified: &mut bool, . ) -> bool { 3 ( 0.00%) let typeck = cx.tcx.typeck(impl_item.owner_id.def_id); 98 ( 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/plumbing.rs:::typeck:: (1x) 11 ( 0.00%) match expr.kind { . ExprKind::Call( . Expr { 1 ( 0.00%) kind: ExprKind::Path(some_path), . hir_id: some_hir_id, . .. . }, 1 ( 0.00%) [cmp_expr], . ) => { 7 ( 0.00%) typeck.qpath_res(some_path, *some_hir_id).ctor_parent(cx).is_lang_item(cx, LangItem::OptionSome) 15 ( 0.00%) => ???:::qpath_res (1x) . // Fix #11178, allow `Self::cmp(self, ..)` 2 ( 0.00%) && self_cmp_call(cx, typeck, cmp_expr, needs_fully_qualified) . }, . ExprKind::MethodCall(_, recv, [], _) => { . typeck . .type_dependent_def(expr.hir_id) . .assoc_parent(cx) . .is_diag_item(cx, sym::Into) . && self_cmp_call(cx, typeck, recv, needs_fully_qualified) . }, . _ => false, . } 8 ( 0.00%) } . . /// Returns whether this is any of `self.cmp(..)`, `Self::cmp(self, ..)` or `Ord::cmp(self, ..)`. 5 ( 0.00%) fn self_cmp_call<'tcx>( . cx: &LateContext<'tcx>, . typeck: &TypeckResults<'tcx>, . cmp_expr: &'tcx Expr<'tcx>, . needs_fully_qualified: &mut bool, . ) -> bool { 3 ( 0.00%) match cmp_expr.kind { . ExprKind::Call(path, [_, _]) => path.res(typeck).is_diag_item(cx, sym::ord_cmp_method), 3 ( 0.00%) ExprKind::MethodCall(_, recv, [_], ..) => { 7 ( 0.00%) let ExprKind::Path(path) = recv.kind else { . return false; . }; 2 ( 0.00%) if last_path_segment(&path).ident.name != kw::SelfLower { 12 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::last_path_segment (1x) . return false; . } . . // We can set this to true here no matter what as if it's a `MethodCall` and goes to the . // `else` branch, it must be a method named `cmp` that isn't `Ord::cmp` 1 ( 0.00%) *needs_fully_qualified = true; . . typeck 4 ( 0.00%) .type_dependent_def_id(cmp_expr.hir_id) 51 ( 0.00%) => ???:::type_dependent_def_id (1x) 3 ( 0.00%) .is_some_and(|def_id| cx.tcx.is_diagnostic_item(sym::ord_cmp_method, def_id)) . }, . _ => false, . } 6 ( 0.00%) } 8,672 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/default.rs -------------------------------------------------------------------------------- Ir -- line 73 ---------------------------------------- . . #[derive(Default)] . pub struct Default { . // Spans linted by `field_reassign_with_default`. . reassigned_linted: FxHashSet, . } . . impl<'tcx> LateLintPass<'tcx> for Default { 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 81,582 ( 0.00%) if !expr.span.from_expansion() . // Avoid cases already linted by `field_reassign_with_default` 20,546 ( 0.00%) && !self.reassigned_linted.contains(&expr.span) 121 ( 0.00%) && let ExprKind::Call(path, []) = expr.kind 1,331 ( 0.00%) && !in_automatically_derived(cx.tcx, expr.hir_id) 69,498 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::in_automatically_derived (121x) 363 ( 0.00%) && let ExprKind::Path(ref qpath) = path.kind 605 ( 0.00%) && let Some(def_id) = cx.qpath_res(qpath, path.hir_id).opt_def_id() 8,723 ( 0.00%) => ???:::qpath_res (121x) 600 ( 0.00%) && cx.tcx.is_diagnostic_item(sym::default_fn, def_id) 8,188 ( 0.00%) => ???:::is_diagnostic_item (120x) 120 ( 0.00%) && !is_update_syntax_base(cx, expr) 2,598 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/default.rs:clippy_lints::default::is_update_syntax_base (24x) . // Detect and ignore ::default() because these calls do explicitly name the type. 58 ( 0.00%) && let QPath::Resolved(None, _path) = qpath 10 ( 0.00%) && let expr_ty = cx.typeck_results().expr_ty(expr) 200 ( 0.00%) => ???:::expr_ty (5x) 10 ( 0.00%) && let ty::Adt(def, ..) = expr_ty.kind() 15 ( 0.00%) && !is_from_proc_macro(cx, expr) 1,891 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/check_proc_macro.rs:clippy_utils::check_proc_macro::is_from_proc_macro:: (3x) . { 18 ( 0.00%) let replacement = with_forced_trimmed_paths!(format!("{}::default()", cx.tcx.def_path_str(def.did()))); 12 ( 0.00%) => ???:::new (3x) 39 ( 0.00%) span_lint_and_sugg( 4,624 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/diagnostics.rs:clippy_utils::diagnostics::span_lint_and_sugg:: (3x) . cx, . DEFAULT_TRAIT_ACCESS, 3 ( 0.00%) expr.span, 6 ( 0.00%) format!("calling `{replacement}` is more clear than this expression"), . "try", 12 ( 0.00%) replacement, . Applicability::Unspecified, // First resolve the TODO above . ); . } 217,552 ( 0.01%) } . . #[expect(clippy::too_many_lines)] 25,560 ( 0.00%) fn check_block(&mut self, cx: &LateContext<'tcx>, block: &Block<'tcx>) { . // start from the `let mut _ = _::default();` and look at all the following . // statements, see if they re-assign the fields of the binding . let stmts_head = match block.stmts { 11,360 ( 0.00%) [] | [_] => return, . // Skip the last statement since there cannot possibly be any following statements that re-assign fields. . [head @ .., _] => head, . }; . for (stmt_idx, stmt) in stmts_head.iter().enumerate() { . // find all binding statements like `let mut _ = T::default()` where `T::default()` is the . // `default` method of the `Default` trait, and store statement index in current block being . // checked and the name of the bound variable 2,443 ( 0.00%) let (local, variant, binding_name, binding_type, span) = if let StmtKind::Let(local) = stmt.kind . // only take `let ...` statements 1,539 ( 0.00%) && let Some(expr) = local.init 3,472 ( 0.00%) && !in_automatically_derived(cx.tcx, expr.hir_id) 284,920 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::in_automatically_derived (496x) 992 ( 0.00%) && !expr.span.from_expansion() . // only take bindings to identifiers 2,502 ( 0.00%) && let PatKind::Binding(_, binding_id, ident, _) = local.pat.kind . // only when assigning `... = Default::default()` 1,990 ( 0.00%) && is_expr_default(cx, expr) 7,741 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_expr_default (398x) . && let binding_type = cx.typeck_results().node_type(binding_id) . && let ty::Adt(adt, args) = *binding_type.kind() . && adt.is_struct() . && let variant = adt.non_enum_variant() . && !variant.field_list_has_applicable_non_exhaustive() . && let module_did = cx.tcx.parent_module(stmt.hir_id) . && variant . .fields -- line 139 ---------------------------------------- -- line 242 ---------------------------------------- . first_assign.unwrap().span, . "field assignment outside of initializer for an instance created with Default::default()", . Some(local.span), . format!("consider initializing the variable with `{sugg}` and removing relevant reassignments"), . ); . self.reassigned_linted.insert(span); . } . } 22,720 ( 0.00%) } . } . . /// Returns the reassigned field and the assigning expression (right-hand side of assign). . fn field_reassigned_by_stmt<'tcx>(this: &Stmt<'tcx>, binding_name: Symbol) -> Option<(Ident, &'tcx Expr<'tcx>)> { . if let StmtKind::Semi(later_expr) = this.kind . // only take assignments . && let ExprKind::Assign(assign_lhs, assign_rhs, _) = later_expr.kind . // only take assignments to fields where the left-hand side field is a field of -- line 258 ---------------------------------------- -- line 264 ---------------------------------------- . { . Some((field_ident, assign_rhs)) . } else { . None . } . } . . /// Returns whether `expr` is the update syntax base: `Foo { a: 1, .. base }` 48 ( 0.00%) fn is_update_syntax_base<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) -> bool { 72 ( 0.00%) if let Some(parent) = get_parent_expr(cx, expr) 2,376 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_parent_expr (24x) 30 ( 0.00%) && let ExprKind::Struct(_, _, StructTailExpr::Base(base)) = parent.kind . { . base.hir_id == expr.hir_id . } else { . false . } 48 ( 0.00%) } 5,687 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/methods/manual_c_str_literals.rs -------------------------------------------------------------------------------- Ir -- line 13 ---------------------------------------- . . /// Checks: . /// - `b"...".as_ptr()` . /// - `b"...".as_ptr().cast()` . /// - `"...".as_ptr()` . /// - `"...".as_ptr().cast()` . /// . /// Iff the parent call of `.cast()` isn't `CStr::from_ptr`, to avoid linting twice. 7 ( 0.00%) pub(super) fn check_as_ptr<'tcx>( . cx: &LateContext<'tcx>, . expr: &'tcx Expr<'tcx>, . receiver: &'tcx Expr<'tcx>, . msrv: Msrv, . ) { 2 ( 0.00%) if let ExprKind::Lit(lit) = receiver.kind . && let LitKind::ByteStr(_, StrStyle::Cooked) | LitKind::Str(_, StrStyle::Cooked) = lit.node . && cx.tcx.sess.edition() >= Edition2021 . && let casts_removed = peel_ptr_cast_ancestors(cx, expr) . && !get_parent_expr(cx, casts_removed).is_some_and( . |parent| matches!(parent.kind, ExprKind::Call(func, _) if is_c_str_function(cx, func).is_some()), . ) . && let Some(sugg) = rewrite_as_cstr(cx, lit.span, lit.node) . && msrv.meets(cx, msrvs::C_STR_LITERALS) -- line 35 ---------------------------------------- -- line 50 ---------------------------------------- . diag.note( . "an additional cast may be needed, since the type of `c\"\".as_ptr()` \ . and `b\"\".as_ptr()` can differ and is platform dependent", . ); . } . }, . ); . } 8 ( 0.00%) } . . /// Checks if the callee is a "relevant" `CStr` function considered by this lint. . /// Returns the function name. . fn is_c_str_function(cx: &LateContext<'_>, func: &Expr<'_>) -> Option { 5,856 ( 0.00%) if let ExprKind::Path(QPath::TypeRelative(cstr, fn_name)) = &func.kind 1,630 ( 0.00%) && let TyKind::Path(QPath::Resolved(_, ty_path)) = &cstr.kind 650 ( 0.00%) && cx.tcx.lang_items().c_str() == ty_path.res.opt_def_id() 9,750 ( 0.00%) => ???:::lang_items (325x) . { . Some(fn_name.ident.name) . } else { . None . } . } . . /// Checks calls to the `CStr` constructor functions: . /// - `CStr::from_bytes_with_nul(..)` . /// - `CStr::from_bytes_with_nul_unchecked(..)` . /// - `CStr::from_ptr(..)` 10,248 ( 0.00%) pub(super) fn check(cx: &LateContext<'_>, expr: &Expr<'_>, func: &Expr<'_>, args: &[Expr<'_>], msrv: Msrv) { . if let Some(fn_name) = is_c_str_function(cx, func) . && let [arg] = args . && cx.tcx.sess.edition() >= Edition2021 . && msrv.meets(cx, msrvs::C_STR_LITERALS) . { . match fn_name { . sym::from_bytes_with_nul | sym::from_bytes_with_nul_unchecked . if !arg.span.from_expansion() -- line 85 ---------------------------------------- -- line 87 ---------------------------------------- . && let LitKind::ByteStr(_, StrStyle::Cooked) | LitKind::Str(_, StrStyle::Cooked) = lit.node => . { . check_from_bytes(cx, expr, arg, lit.node, fn_name); . }, . sym::from_ptr => check_from_ptr(cx, expr, arg), . _ => {}, . } . } 11,712 ( 0.00%) } . . /// Checks `CStr::from_ptr(b"foo\0".as_ptr().cast())` . fn check_from_ptr(cx: &LateContext<'_>, expr: &Expr<'_>, arg: &Expr<'_>) { . if let ExprKind::MethodCall(method, lit, [], _) = peel_ptr_cast(arg).kind . && method.ident.name == sym::as_ptr . && !lit.span.from_expansion() . && let ExprKind::Lit(lit) = lit.kind . && let LitKind::ByteStr(_, StrStyle::Cooked) = lit.node -- line 103 ---------------------------------------- 2,600 ( 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 { 3 ( 0.00%) if let Some(body_id) = cx.enclosing_body 3 ( 0.00%) && !self.loaded_bodies.contains(&body_id) . { . self.loaded_bodies.push(body_id); . ExprUseVisitor::for_clippy( . cx, 5 ( 0.00%) cx.tcx.hir_body_owner_def_id(body_id), 104 ( 0.00%) => ???:::hir_body_owner_def_id (1x) . MovedVariablesCtxt { . consumed_locals: &mut self.consumed_locals, . }, . ) 5 ( 0.00%) .consume_body(cx.tcx.hir_body(body_id)) 989,791 ( 0.02%) => /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:>::consume_body (1x) 52 ( 0.00%) => ???:::hir_body (1x) . .into_ok(); . } . . &self.consumed_locals . } . } . . impl LateLintPass<'_> for ReplaceBox { . fn check_body_post(&mut self, _: &LateContext<'_>, body: &Body<'_>) { 3,963 ( 0.00%) if self.loaded_bodies.first().is_some_and(|&x| x == body.id()) { . self.consumed_locals.clear(); . self.loaded_bodies.clear(); . } . } . 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'_>, expr: &'_ Expr<'_>) { 54,388 ( 0.00%) if let ExprKind::Assign(lhs, rhs, _) = &expr.kind 489 ( 0.00%) && !lhs.span.from_expansion() 420 ( 0.00%) && !rhs.span.from_expansion() 280 ( 0.00%) && let lhs_ty = cx.typeck_results().expr_ty(lhs) 5,612 ( 0.00%) => ???:::expr_ty (140x) 560 ( 0.00%) && let Some(inner_ty) = lhs_ty.boxed_ty() 1,025 ( 0.00%) => ???:::boxed_ty (140x) . // 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 4 ( 0.00%) && local_base(lhs).is_none_or(|(base_id, _)| { 125 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/replace_box.rs:clippy_lints::replace_box::local_base (1x) . !self.get_consumed_locals(cx).contains(&base_id) . }) . { . if let Some(default_trait_id) = cx.tcx.get_diagnostic_item(sym::Default) . && implements_trait(cx, inner_ty, default_trait_id, &[]) . && is_default_call(cx, rhs) . { . span_lint_and_then( -- line 98 ---------------------------------------- -- line 132 ---------------------------------------- . expr.span, . "replace existing content with inner value instead", . suggestion, . app, . ); . }); . } . } 217,552 ( 0.01%) } . } . . 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 ---------------------------------------- -- line 157 ---------------------------------------- . } . . struct MovedVariablesCtxt<'a> { . consumed_locals: &'a mut FxHashSet, . } . . impl<'tcx> Delegate<'tcx> for MovedVariablesCtxt<'_> { . fn consume(&mut self, cmt: &PlaceWithHirId<'tcx>, _: HirId) { 968 ( 0.00%) if let PlaceBase::Local(id) = cmt.place.base . && let mut projections = cmt . .place . .projections . .iter() 17 ( 0.00%) .filter(|x| matches!(x.kind, ProjectionKind::Deref)) . // Either no deref or multiple derefs . && (projections.next().is_none() || projections.next().is_some()) . { 85 ( 0.00%) self.consumed_locals.insert(id); . } . } . . fn use_cloned(&mut self, _: &PlaceWithHirId<'tcx>, _: HirId) {} . . fn borrow(&mut self, _: &PlaceWithHirId<'tcx>, _: HirId, _: ty::BorrowKind) {} . . fn mutate(&mut self, _: &PlaceWithHirId<'tcx>, _: HirId) {} -- line 182 ---------------------------------------- -- line 183 ---------------------------------------- . . fn fake_read(&mut self, _: &PlaceWithHirId<'tcx>, _: FakeReadCause, _: HirId) {} . } . . /// A local place followed by optional fields . type IdFields = (HirId, Vec); . . /// If `expr` is a local variable with optional field accesses, return it. 10 ( 0.00%) fn local_base(expr: &Expr<'_>) -> Option { 8 ( 0.00%) match expr.kind { 1 ( 0.00%) ExprKind::Path(qpath) => qpath.res_local_id().map(|id| (id, Vec::new())), 4 ( 0.00%) ExprKind::Field(expr, field) => local_base(expr).map(|(id, mut fields)| { 26 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/replace_box.rs:clippy_lints::replace_box::local_base'2 (1x) . fields.push(field.name); 4 ( 0.00%) (id, fields) . }), . _ => None, . } 10 ( 0.00%) } 494 ( 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_lexer/src/lib.rs -------------------------------------------------------------------------------- Ir -- line 63 ---------------------------------------- . . impl Token { . fn new(kind: TokenKind, len: u32) -> Token { . Token { kind, len } . } . } . . /// Enum representing common lexeme types. 231,624 ( 0.01%) #[derive(Clone, Copy, Debug, PartialEq, Eq)] . pub enum TokenKind { . /// A line comment, e.g. `// comment`. . LineComment { . doc_style: Option, . }, . . /// A block comment, e.g. `/* block comment */`. . /// -- line 79 ---------------------------------------- -- line 325 ---------------------------------------- . /// . /// When tokenizing a slice of a document, be sure to disallow frontmatters with [`FrontmatterAllowed::No`] . pub fn tokenize( . input: &str, . frontmatter_allowed: FrontmatterAllowed, . ) -> impl Iterator { . let mut cursor = Cursor::new(input, frontmatter_allowed); . std::iter::from_fn(move || { 188,921 ( 0.00%) let token = cursor.advance_token(); 10,531 ( 0.00%) => ???:::advance_token (120x) 178,759 ( 0.00%) if token.kind != TokenKind::Eof { Some(token) } else { None } . }) . } . . /// True if `c` is considered a whitespace according to Rust language definition. . /// See [Rust language reference](https://doc.rust-lang.org/reference/whitespace.html) . /// for definitions of these classes. . pub fn is_whitespace(c: char) -> bool { . // This is Pattern_White_Space. . // . // Note that this set is stable (ie, it doesn't change with different . // Unicode versions), so it's ok to just hard-code the values. . 2,419 ( 0.00%) matches!( . c, . // End-of-line characters . | '\u{000A}' // line feed (\n) . | '\u{000B}' // vertical tab . | '\u{000C}' // form feed . | '\u{000D}' // carriage return (\r) . | '\u{0085}' // next line (from latin1) . | '\u{2028}' // LINE SEPARATOR -- line 355 ---------------------------------------- 2,233 ( 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) { 2,262 ( 0.00%) param.uses = Vec::new(); 3,016 ( 0.00%) let key = (param.fn_id, param.idx); . self.by_fn.remove(&key); . // FIXME(rust/#120456) - is `swap_remove` correct? 1,508 ( 0.00%) self.by_id.swap_remove(&id); 73,842 ( 0.00%) => /rust/deps/indexmap-2.14.0/src/map.rs:>::swap_remove:: (754x) . } . } . . fn get_by_id_mut(&mut self, id: HirId) -> Option<&mut Param> { 30,074 ( 0.00%) self.params.get_mut(*self.by_id.get(&id)?) 133,752 ( 0.00%) => /rust/deps/indexmap-2.14.0/src/map.rs:>::get:: (7,518x) . } . . 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 { 2,265 ( 0.00%) self.try_disable_lint_for_param(param, &mut eval_stack); 5,285 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/only_used_in_recursion.rs:::try_disable_lint_for_param (755x) . } . } . . // Use by calling `flag_for_linting`. . fn try_disable_lint_for_param(&self, param: &Param, eval_stack: &mut Vec) -> bool { 1,510 ( 0.00%) if !param.apply_lint.get() { . true 755 ( 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 . } 755 ( 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 { 15,840 ( 0.00%) fn check_body(&mut self, cx: &LateContext<'tcx>, body: &Body<'tcx>) { 5,940 ( 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. 16,258 ( 0.00%) let (fn_id, fn_kind, skip_params) = match cx.tcx.parent_hir_node(body.value.hir_id) { 97,084 ( 0.00%) => ???:::parent_hir_node (1,066x) 304 ( 0.00%) Node::Item(i) => (i.owner_id.to_def_id(), FnKind::Fn, 0), . Node::TraitItem(&TraitItem { . kind: TraitItemKind::Fn(ref sig, _), 12 ( 0.00%) owner_id, . .. . }) => ( . owner_id.to_def_id(), . FnKind::TraitFn, . usize::from(sig.decl.implicit_self().has_implicit_self()), 3 ( 0.00%) ), . Node::ImplItem(&ImplItem { . kind: ImplItemKind::Fn(ref sig, _), 643 ( 0.00%) owner_id, 643 ( 0.00%) impl_kind, . .. . }) => { 2,147 ( 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); 850 ( 0.00%) let trait_ref = cx.tcx.impl_trait_ref(impl_id).instantiate_identity().skip_norm_wip(); 17,935 ( 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:: (425x) . ( . 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,596 ( 0.00%) body.params . .iter() . .enumerate() . .skip(skip_params) 3,032 ( 0.00%) .filter_map(|(idx, p)| match p.pat.kind { 7,562 ( 0.00%) PatKind::Binding(_, id, ident, None) if !ident.as_str().starts_with('_') => { 24,256 ( 0.00%) => ???:::as_str (758x) . Some((id, Param::new(fn_id, fn_kind, idx, ident))) . }, . _ => None, . }) . .for_each(|(id, param)| self.params.insert(param, id)); 798 ( 0.00%) if self.entered_body.is_none() { 1,572 ( 0.00%) self.entered_body = Some(body.value.hir_id); . } 15,840 ( 0.00%) } . 190,358 ( 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(); 756 ( 0.00%) let span = e.span; . let mut e = e; . loop { 4,968 ( 0.00%) match get_expr_use_or_unification_node(cx.tcx, e) { 142,423 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::get_expr_use_or_unification_node (806x) . None | Some((Node::Stmt(_), _)) => return, 9,267 ( 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) 3,407 ( 0.00%) if callee.res(cx).opt_def_id().is_some_and(|id| { 1,135 ( 0.00%) id == param.fn_id && has_matching_args(param.fn_kind, typeck.node_args(callee.hir_id)) 1,989 ( 0.00%) => ???:::node_args (51x) 2,092 ( 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, _) 4,160 ( 0.00%) if typeck.type_dependent_def_id(parent.hir_id).is_some_and(|id| { 16,320 ( 0.00%) => ???:::type_dependent_def_id (320x) . 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. 8 ( 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) 168 ( 0.00%) if typeck.expr_ty(lhs).is_primitive() && typeck.expr_ty(rhs).is_primitive() => 1,680 ( 0.00%) => ???:::expr_ty (42x) . { . e = parent; . continue; . }, 60 ( 0.00%) ExprKind::Unary(_, arg) if typeck.expr_ty(arg).is_primitive() => { 480 ( 0.00%) => ???:::expr_ty (12x) . 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; . } . } 217,552 ( 0.01%) } . 13,860 ( 0.00%) fn check_body_post(&mut self, cx: &LateContext<'tcx>, body: &Body<'tcx>) { 884 ( 0.00%) if self.entered_body == Some(body.value.hir_id) { 786 ( 0.00%) self.entered_body = None; . self.params.flag_for_linting(); . for param in &self.params.params { 1,510 ( 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(); . } 15,840 ( 0.00%) } . } . . fn has_matching_args(kind: FnKind, args: GenericArgsRef<'_>) -> bool { 204 ( 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), . }), 102 ( 0.00%) FnKind::ImplTraitFn(expected_args) => std::ptr::from_ref(args) as usize == expected_args, . } . } 17,371 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/methods/clone_on_copy.rs -------------------------------------------------------------------------------- Ir -- line 13 ---------------------------------------- . . #[derive(Clone, Copy, Debug, PartialEq, Eq)] . enum ParentIsSuffixExpr { . Yes, . No, . Return, . } . 900 ( 0.00%) fn check_parent_is_suffix_expr(cx: &LateContext<'_>, expr: &Expr<'_>) -> ParentIsSuffixExpr { 1,170 ( 0.00%) match cx.tcx.parent_hir_node(expr.hir_id) { 9,180 ( 0.00%) => ???:::parent_hir_node (90x) 40 ( 0.00%) Node::Expr(parent) => match parent.kind { . // &*x is a nop, &x.clone() is not . ExprKind::AddrOf(..) => ParentIsSuffixExpr::Return, . // (*x).func() is useless, x.clone().func() can work in case func borrows self . ExprKind::MethodCall(_, self_arg, ..) . if expr.hir_id == self_arg.hir_id . && cx.typeck_results().expr_ty(expr) != cx.typeck_results().expr_ty_adjusted(expr) => . { . ParentIsSuffixExpr::Return . }, . // ? is a Call, makes sure not to rec *x?, but rather (*x)? 14 ( 0.00%) ExprKind::Call(hir_callee, [_]) => { 12 ( 0.00%) if matches!( . hir_callee.kind, . ExprKind::Path(qpath) 32 ( 0.00%) if cx.tcx.qpath_is_lang_item(qpath, rustc_hir::LangItem::TryTraitBranch) 408 ( 0.00%) => ???:::qpath_is_lang_item (4x) . ) { . ParentIsSuffixExpr::Yes . } else { . ParentIsSuffixExpr::No . } . }, . ExprKind::MethodCall(_, self_arg, ..) if expr.hir_id == self_arg.hir_id => ParentIsSuffixExpr::Yes, . ExprKind::Match(_, _, MatchSource::TryDesugar(_) | MatchSource::AwaitDesugar) -- line 46 ---------------------------------------- -- line 49 ---------------------------------------- . _ => ParentIsSuffixExpr::No, . }, . // local binding capturing a reference . Node::LetStmt(l) if matches!(l.pat.kind, PatKind::Binding(BindingMode(ByRef::Yes(..), _), ..)) => { . ParentIsSuffixExpr::Return . }, . _ => ParentIsSuffixExpr::No, . } 720 ( 0.00%) } . . /// Checks for the `CLONE_ON_COPY` lint. 2,443 ( 0.00%) pub(super) fn check(cx: &LateContext<'_>, expr: &Expr<'_>, receiver: &Expr<'_>) { . if cx . .typeck_results() 1,396 ( 0.00%) .type_dependent_def_id(expr.hir_id) 17,799 ( 0.00%) => ???:::type_dependent_def_id (349x) 2,443 ( 0.00%) .and_then(|id| cx.tcx.trait_of_assoc(id)) 85,505 ( 0.00%) => ???:::trait_of_assoc (349x) 698 ( 0.00%) .zip(cx.tcx.lang_items().clone_trait()) 10,470 ( 0.00%) => ???:::lang_items (349x) . .is_none_or(|(x, y)| x != y) . { . return; . } 1,047 ( 0.00%) let arg_adjustments = cx.typeck_results().expr_adjustments(receiver); 15,007 ( 0.00%) => ???:::expr_adjustments (349x) . let arg_ty = arg_adjustments . .last() . .map_or_else(|| cx.typeck_results().expr_ty(receiver), |a| a.target); . 1,396 ( 0.00%) let ty = cx.typeck_results().expr_ty(expr); 13,960 ( 0.00%) => ???:::expr_ty (349x) 698 ( 0.00%) if let ty::Ref(_, inner, _) = arg_ty.kind() 1,047 ( 0.00%) && let ty::Ref(..) = inner.kind() . { . return; // don't report clone_on_copy . } . 1,396 ( 0.00%) if !is_copy(cx, ty) { 124,623 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/ty/mod.rs:clippy_utils::ty::is_copy (349x) . return; . } 360 ( 0.00%) let check_res = check_parent_is_suffix_expr(cx, expr); 12,489 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/clone_on_copy.rs:clippy_lints::methods::clone_on_copy::check_parent_is_suffix_expr (90x) 180 ( 0.00%) if check_res == ParentIsSuffixExpr::Return { . return; . } . 90 ( 0.00%) let mut app = Applicability::MachineApplicable; 540 ( 0.00%) let snip = snippet_with_context(cx, receiver.span, expr.span.ctxt(), "_", &mut app).0; . . let deref_count = arg_adjustments . .iter() 95 ( 0.00%) .take_while(|adj| matches!(adj.kind, Adjust::Deref(_))) . .count(); 360 ( 0.00%) let (help, sugg) = if deref_count == 0 { 425 ( 0.00%) ("try removing the `clone` call", snip.into()) 10 ( 0.00%) } else if check_res == ParentIsSuffixExpr::Yes { . ("try dereferencing it", format!("({}{snip})", "*".repeat(deref_count))) . } else { 35 ( 0.00%) ("try dereferencing it", format!("{}{snip}", "*".repeat(deref_count))) . }; . 1,350 ( 0.00%) span_lint_and_sugg( 120,747 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/diagnostics.rs:clippy_utils::diagnostics::span_lint_and_sugg:: (90x) . cx, . CLONE_ON_COPY, . expr.span, 450 ( 0.00%) with_forced_trimmed_paths!(format!( 360 ( 0.00%) => ???:::new (90x) . "using `clone` on type `{ty}` which implements the `Copy` trait" . )), . help, . sugg, . app, . ); 2,972 ( 0.00%) } . 10,248 ( 0.00%) pub(super) fn check_function(cx: &LateContext<'_>, expr: &Expr<'_>) { 4,392 ( 0.00%) let ExprKind::Call(func, args) = expr.kind else { return }; . 8,784 ( 0.00%) if let ExprKind::Path(qpath) = func.kind 8,784 ( 0.00%) && let Some(def_id) = cx.typeck_results().qpath_res(&qpath, func.hir_id).opt_def_id() 38,936 ( 0.00%) => ???:::qpath_res (1,464x) 14,928 ( 0.00%) && cx.tcx.trait_of_assoc(def_id) == cx.tcx.lang_items().clone_trait() 152,424 ( 0.00%) => ???:::trait_of_assoc (1,450x) 43,500 ( 0.00%) => ???:::lang_items (1,450x) . && let [arg] = args . && let ty = cx.typeck_results().expr_ty(expr) . { . if !is_copy(cx, ty) { . return; . } . . let check_res = check_parent_is_suffix_expr(cx, expr); -- line 131 ---------------------------------------- -- line 166 ---------------------------------------- . with_forced_trimmed_paths!(format!( . "using `clone` on type `{ty}` which implements the `Copy` trait" . )), . help, . sugg, . app, . ); . } 11,712 ( 0.00%) } 7,797 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/derive/derive_ord_xor_partial_ord.rs -------------------------------------------------------------------------------- Ir -- line 3 ---------------------------------------- . use rustc_hir::{self as hir, HirId}; . use rustc_lint::LateContext; . use rustc_middle::ty::Ty; . use rustc_span::sym; . . use super::DERIVE_ORD_XOR_PARTIAL_ORD; . . /// Implementation of the `DERIVE_ORD_XOR_PARTIAL_ORD` lint. 19,500 ( 0.00%) pub(super) fn check<'tcx>( . cx: &LateContext<'tcx>, . item: &hir::Item<'_>, . trait_ref: &hir::TraitRef<'_>, . ty: Ty<'tcx>, . adt_hir_id: HirId, . ord_is_automatically_derived: bool, . ) { 7,800 ( 0.00%) if let Some(ord_trait_def_id) = cx.tcx.get_diagnostic_item(sym::Ord) 93,600 ( 0.00%) => ???:::get_diagnostic_item (1,300x) 5,200 ( 0.00%) && let Some(partial_ord_trait_def_id) = cx.tcx.lang_items().partial_ord_trait() 39,000 ( 0.00%) => ???:::lang_items (1,300x) 5,200 ( 0.00%) && let Some(def_id) = &trait_ref.trait_def_id() 16,900 ( 0.00%) => ???:::trait_def_id (1,300x) 1 ( 0.00%) && *def_id == ord_trait_def_id 4 ( 0.00%) && let item_hir_id = cx.tcx.local_def_id_to_hir_id(item.owner_id) 1 ( 0.00%) && !fulfill_or_allowed(cx, DERIVE_ORD_XOR_PARTIAL_ORD, [adt_hir_id]) . { . // Look for the PartialOrd implementations for `ty` 39 ( 0.00%) cx.tcx.for_each_relevant_impl(partial_ord_trait_def_id, ty, |impl_id| { 4,032 ( 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/trait_def.rs:::for_each_relevant_impl::<(), clippy_lints::derive::derive_ord_xor_partial_ord::check::{closure#0}> (1x) 8 ( 0.00%) let partial_ord_is_automatically_derived = cx.tcx.is_automatically_derived(impl_id); 3,617 ( 0.00%) => ???:::is_automatically_derived (2x) . 6 ( 0.00%) if partial_ord_is_automatically_derived == ord_is_automatically_derived { . return; . } . . let trait_ref = cx.tcx.impl_trait_ref(impl_id); . . // Only care about `impl PartialOrd for Foo` . // For `impl PartialOrd for A, input_types is [A, B] . if trait_ref.instantiate_identity().skip_norm_wip().args.type_at(1) == ty { -- line 38 ---------------------------------------- -- line 44 ---------------------------------------- . . span_lint_hir_and_then(cx, DERIVE_ORD_XOR_PARTIAL_ORD, item_hir_id, item.span, mess, |diag| { . if let Some(local_def_id) = impl_id.as_local() { . let hir_id = cx.tcx.local_def_id_to_hir_id(local_def_id); . diag.span_note(cx.tcx.hir_span(hir_id), "`PartialOrd` implemented here"); . } . }); . } 16 ( 0.00%) }); . } 10,400 ( 0.00%) } 5,201 ( 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 { 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'_>, expr: &Expr<'_>) { . // If the expression is a call (`Box::new(...)`) 63,325 ( 0.00%) if let ExprKind::Call(box_new, [arg]) = expr.kind . // And call is of the form `::something` . // Here, it would be `::new` 9,704 ( 0.00%) && let ExprKind::Path(QPath::TypeRelative(ty, seg)) = box_new.kind . // And that method is `new` 182 ( 0.00%) && seg.ident.name == sym::new . // And the call is that of a `Box` method 338 ( 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())` 112 ( 0.00%) && let ExprKind::Call(arg_path, _) = arg.kind . // And we are not in a foreign crate's macro 40 ( 0.00%) && !expr.span.in_external_macro(cx.sess().source_map()) 936 ( 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 (8x) . // And the argument expression has the same context as the outer call expression . // or that we are inside a `vec!` macro expansion 40 ( 0.00%) && (expr.span.eq_ctxt(arg.span) || is_local_vec_expn(cx, arg, expr)) 240 ( 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:::eq_ctxt (8x) . // And the argument is `Default::default()` or the type is specified 64 ( 0.00%) && (is_plain_default(cx, arg_path) || (given_type(cx, expr) && is_default_equivalent(cx, arg))) 968 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/box_default.rs:clippy_lints::box_default::given_type (8x) 164 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/box_default.rs:clippy_lints::box_default::is_plain_default (8x) . { . span_lint_and_sugg( . cx, . BOX_DEFAULT, . expr.span, . "`Box::new(_)` of default value", . "try", . "Box::default()".into(), . Applicability::MachineApplicable, . ); . } 217,552 ( 0.01%) } . } . 8 ( 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" 36 ( 0.00%) if let ExprKind::Path(QPath::Resolved(None, path)) = &arg_path.kind 10 ( 0.00%) && let Res::Def(_, def_id) = path.res . { . // avoid generic parameters 8 ( 0.00%) cx.tcx.is_diagnostic_item(sym::default_fn, def_id) && path.segments.iter().all(|seg| seg.args.is_none()) 88 ( 0.00%) => ???:::is_diagnostic_item (2x) . } else { . false . } 8 ( 0.00%) } . . fn is_local_vec_expn(cx: &LateContext<'_>, expr: &Expr<'_>, ref_expr: &Expr<'_>) -> bool { . macro_backtrace(expr.span) . .next() . .is_some_and(|call| cx.tcx.is_diagnostic_item(sym::vec_macro, call.def_id) && call.span.eq_ctxt(ref_expr.span)) . } . . #[derive(Default)] -- line 91 ---------------------------------------- -- line 100 ---------------------------------------- . fn visit_ty(&mut self, t: &Ty<'_, AmbigArg>) { . self.0 |= matches!(t.kind, TyKind::OpaqueDef(..) | TyKind::TraitObject(..)); . if !self.0 { . walk_ty(self, t); . } . } . } . 64 ( 0.00%) fn given_type(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool { 120 ( 0.00%) match cx.tcx.parent_hir_node(expr.hir_id) { 704 ( 0.00%) => ???:::parent_hir_node (8x) . Node::LetStmt(LetStmt { ty: Some(ty), .. }) => { . let mut v = InferVisitor::default(); . v.visit_ty_unambig(ty); . !v.0 . }, . Node::Expr(Expr { . kind: ExprKind::Call(path, args), . .. -- line 117 ---------------------------------------- -- line 118 ---------------------------------------- . }) . | Node::Block(Block { . expr: Some(Expr { . kind: ExprKind::Call(path, args), . .. . }), . .. . }) => { 1 ( 0.00%) if let Some(index) = args.iter().position(|arg| arg.hir_id == expr.hir_id) . && let Some(sig) = expr_sig(cx, path) . && let Some(input) = sig.input(index) . && let Some(input_ty) = input.no_bound_vars() . { . input_ty == cx.typeck_results().expr_ty_adjusted(expr) . } else { . false . } . }, . _ => false, . } 56 ( 0.00%) } 104 ( 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 { 271,940 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, e: &'tcx Expr<'_>) { 2,562 ( 0.00%) if let Some(macro_call) = root_macro_call_first_node(cx, e) 2,892 ( 0.00%) && let is_debug = match cx.tcx.get_diagnostic_name(macro_call.def_id) { 19,185 ( 0.00%) => ???:::get_diagnostic_name (366x) . Some(sym::debug_assert_macro) => true, . Some(sym::assert_macro) => false, . _ => return, . } 84 ( 0.00%) && let Some((condition, _)) = find_assert_args(cx, e, macro_call.expn) 13,774 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::find_assert_args (12x) . // 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`). 60 ( 0.00%) && is_const_evaluatable(cx.tcx, cx.typeck_results(), condition) 4,303 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/visitors.rs:clippy_utils::visitors::is_const_evaluatable (12x) . && let Some((Constant::Bool(assert_val), const_src)) = . ConstEvalCtxt::new(cx).eval_with_source(condition, macro_call.span.ctxt()) . && let in_const_context = is_inside_always_const_context(cx.tcx, e.hir_id) . && (const_src.is_local() || !in_const_context) . && !(is_debug && as_bool_lit(condition) == Some(false)) . { . let (msg, help) = if !const_src.is_local() { . let help = if self.msrv.meets(cx, msrvs::CONST_BLOCKS) { -- line 65 ---------------------------------------- -- 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); . } 217,552 ( 0.01%) } . } . . 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 ---------------------------------------- 768 ( 0.00%) -------------------------------------------------------------------------------- -- 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 { 217,552 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 114,172 ( 0.00%) let (id, span) = match &expr.kind { 99,597 ( 0.00%) ExprKind::Path(path) if let Res::Def(_, id) = cx.qpath_res(path, expr.hir_id) => (id, expr.span), 283,426 ( 0.01%) => ???:::qpath_res (10,899x) . 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. 4,948 ( 0.00%) if let Some(parent_ty) = cx.typeck_results().expr_ty_adjusted_opt(e) 59,940 ( 0.00%) => ???:::expr_ty_adjusted_opt (1,237x) 6,185 ( 0.00%) && let Some(field_def_id) = get_field_def_id_by_name(parent_ty, ident.name) 34,303 ( 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 (1,237x) . { 1,191 ( 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), . ); . } 163,164 ( 0.00%) } . 53,224 ( 0.00%) fn check_pat(&mut self, cx: &LateContext<'tcx>, pat: &'tcx Pat<'_>) { 17,126 ( 0.00%) let PatKind::Struct(struct_path, pat_fields, _) = pat.kind else { . return; . }; 16,226 ( 0.00%) match cx.typeck_results().qpath_res(&struct_path, pat.hir_id) { 14,325 ( 0.00%) => ???:::qpath_res (955x) 6 ( 0.00%) Res::Def(DefKind::Struct, struct_def_id) => { 3 ( 0.00%) 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 . } . }) && let Some(&(path, disallowed_path)) = self.disallowed.get(&def_id) -- line 122 ---------------------------------------- -- line 126 ---------------------------------------- . DISALLOWED_FIELDS, . field.span, . format!("use of a disallowed field `{path}`"), . disallowed_path.diag_amendment(field.span), . ); . } . } . }, 1,904 ( 0.00%) Res::Def(DefKind::Variant, variant_def_id) => { 2,856 ( 0.00%) let enum_def_id = cx.tcx.parent(variant_def_id); 3,808 ( 0.00%) let variant = cx.tcx.adt_def(enum_def_id).variant_with_id(variant_def_id); 13,804 ( 0.00%) => ???:::variant_with_id (952x) . . 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), . ); . } . } . }, . _ => {}, . } 53,224 ( 0.00%) } . } 3,826 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/blocks_in_conditions.rs -------------------------------------------------------------------------------- Ir -- line 47 ---------------------------------------- . "useless or complex blocks that can be eliminated in conditions" . } . . declare_lint_pass!(BlocksInConditions => [BLOCKS_IN_CONDITIONS]); . . const BRACED_EXPR_MESSAGE: &str = "omit braces around single expression condition"; . . impl<'tcx> LateLintPass<'tcx> for BlocksInConditions { 217,552 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 54,388 ( 0.00%) if expr.span.from_expansion() { . return; . } . 2,000 ( 0.00%) let Some((cond, keyword, desc)) = higher::If::hir(expr) . .map(|hif| (hif.cond, "if", "an `if` condition")) 1,243 ( 0.00%) .or(if let ExprKind::Match(match_ex, _, MatchSource::Normal) = expr.kind { . Some((match_ex, "match", "a `match` scrutinee")) . } else { . None . }) . else { . return; . }; 1,500 ( 0.00%) let complex_block_message = format!( . "in {desc}, avoid complex blocks or closures with blocks; \ . instead, move the block or closure higher and bind it with a `let`", . ); . 1,000 ( 0.00%) if let ExprKind::Block(block, _) = &cond.kind { 9 ( 0.00%) if !block.span.eq_ctxt(expr.span) { . // If the block comes from a macro, or as an argument to a macro, . // do not lint. . return; . } . if block.rules == BlockCheckMode::DefaultBlock { . if block.stmts.is_empty() { . if let Some(ex) = &block.expr { . // don't dig into the expression here, just suggest that they remove -- line 84 ---------------------------------------- -- line 129 ---------------------------------------- . "let res = {}; {keyword} res", . snippet_block_with_applicability(cx, block.span, "..", Some(expr.span), &mut applicability), . ), . applicability, . ); . } . } . } 217,552 ( 0.01%) } . } 1,616 ( 0.00%) -------------------------------------------------------------------------------- -- 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>) { 54,388 ( 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/infallible_try_from.rs -------------------------------------------------------------------------------- Ir -- line 39 ---------------------------------------- . pub INFALLIBLE_TRY_FROM, . suspicious, . "TryFrom with infallible Error type" . } . . declare_lint_pass!(InfallibleTryFrom => [INFALLIBLE_TRY_FROM]); . . impl<'tcx> LateLintPass<'tcx> for InfallibleTryFrom { 25,536 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'tcx>) { 7,789 ( 0.00%) let ItemKind::Impl(imp) = item.kind else { return }; 2,810 ( 0.00%) let Some(of_trait) = imp.of_trait else { return }; 4,050 ( 0.00%) let Some(trait_def_id) = of_trait.trait_ref.trait_def_id() else { 17,550 ( 0.00%) => ???:::trait_def_id (1,350x) . return; . }; 9,450 ( 0.00%) if !cx.tcx.is_diagnostic_item(sym::TryFrom, trait_def_id) { 90,358 ( 0.00%) => ???:::is_diagnostic_item (1,350x) . return; . } . for ii in cx . .tcx . .associated_items(item.owner_id.def_id) . .filter_by_name_unhygienic_and_kind(sym::Error, AssocTag::Type) . { . let ii_ty = cx.tcx.type_of(ii.def_id).instantiate_identity().skip_norm_wip(); -- line 61 ---------------------------------------- -- line 75 ---------------------------------------- . span_lint( . cx, . INFALLIBLE_TRY_FROM, . span, . "infallible TryFrom impl; consider implementing From instead", . ); . } . } 25,536 ( 0.00%) } . } 4,105 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/from_raw_with_void_ptr.rs -------------------------------------------------------------------------------- Ir -- line 34 ---------------------------------------- . pub FROM_RAW_WITH_VOID_PTR, . suspicious, . "creating a `Box` from a void raw pointer" . } . . declare_lint_pass!(FromRawWithVoidPtr => [FROM_RAW_WITH_VOID_PTR]); . . impl LateLintPass<'_> for FromRawWithVoidPtr { 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'_>, expr: &Expr<'_>) { 63,325 ( 0.00%) if let ExprKind::Call(box_from_raw, [arg]) = expr.kind 9,626 ( 0.00%) && let ExprKind::Path(QPath::TypeRelative(ty, seg)) = box_from_raw.kind 182 ( 0.00%) && seg.ident.name == sym::from_raw . && let Some(type_str) = ty.basic_res().opt_def_id().and_then(|id| def_id_matches_type(cx, id)) . && let arg_kind = cx.typeck_results().expr_ty(arg).kind() . && let ty::RawPtr(ty, _) = arg_kind . && is_c_void(cx, *ty) . { . let msg = format!("creating a `{type_str}` from a void raw pointer"); . span_lint_and_help( . cx, . FROM_RAW_WITH_VOID_PTR, . expr.span, . msg, . Some(arg.span), . "cast this to a pointer of the appropriate type", . ); . } 217,552 ( 0.01%) } . } . . /// Checks whether a `DefId` matches `Box`, `Rc`, `Arc`, or one of the `Weak` types. . /// Returns a static string slice with the name of the type, if one was found. . fn def_id_matches_type(cx: &LateContext<'_>, def_id: DefId) -> Option<&'static str> { . // Box . if Some(def_id) == cx.tcx.lang_items().owned_box() { . return Some("Box"); -- line 69 ---------------------------------------- -------------------------------------------------------------------------------- -- 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, . } . 15,840 ( 0.00%) pub(super) fn check<'a>(cx: &LateContext<'a>, body: &Body<'a>) { . let mut bindings: FxHashMap> = FxHashMap::default(); . 1,980 ( 0.00%) for_each_expr_without_closures(body.value, |expr| { 131,148 ( 0.00%) match expr.kind { 2,760 ( 0.00%) ExprKind::Block(block, _) => { 2,760 ( 0.00%) for stmt in block.stmts { 4,520 ( 0.00%) if let StmtKind::Let(let_stmt) = stmt.kind { 2,010 ( 0.00%) collect_binding_from_local(cx, let_stmt, &mut bindings); 204 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/casts/needless_type_cast.rs:clippy_lints::casts::needless_type_cast::collect_binding_from_local (3x) . } . } . }, 76 ( 0.00%) ExprKind::Let(let_expr) => { 228 ( 0.00%) collect_binding_from_let(cx, let_expr, &mut bindings); 1,368 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/casts/needless_type_cast.rs:clippy_lints::casts::needless_type_cast::collect_binding_from_let (76x) . }, . _ => {}, . } . ControlFlow::<()>::Continue(()) . }); . . #[allow(rustc::potential_query_instability)] 5,940 ( 0.00%) let mut binding_vec: Vec<_> = bindings.into_iter().collect(); . binding_vec.sort_by_key(|(_, info)| info.ty_span.lo()); . 1,980 ( 0.00%) for (hir_id, binding_info) in binding_vec { . check_binding_usages(cx, body, hir_id, &binding_info); . } 15,840 ( 0.00%) } . 532 ( 0.00%) fn collect_binding_from_let<'a>( . cx: &LateContext<'a>, . let_expr: &rustc_hir::LetExpr<'a>, . bindings: &mut FxHashMap>, . ) { 76 ( 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), . }, . ); . } . } 608 ( 0.00%) } . 4,690 ( 0.00%) fn collect_binding_from_local<'a>( . cx: &LateContext<'a>, . let_stmt: &LetStmt<'a>, . bindings: &mut FxHashMap>, . ) { 670 ( 0.00%) if let_stmt.ty.is_none() 140 ( 0.00%) || let_stmt.span.from_expansion() 196 ( 0.00%) || let_stmt . .init 340 ( 0.00%) .is_some_and(|init| has_generic_return_type(cx, init) || contains_unsafe(init)) 6,937 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/casts/needless_type_cast.rs:clippy_lints::casts::needless_type_cast::has_generic_return_type (68x) . { . return; . } . 195 ( 0.00%) if let PatKind::Binding(_, hir_id, _, _) = let_stmt.pat.kind . && let Some(ty_hir) = let_stmt.ty . { 65 ( 0.00%) let ty = cx.typeck_results().pat_ty(let_stmt.pat); 2,600 ( 0.00%) => ???:::pat_ty (65x) . if ty.is_numeric() { . bindings.insert( . hir_id, . BindingInfo { . source_ty: ty, . ty_span: ty_hir.span, . init: let_stmt.init, . }, . ); . } . } 5,360 ( 0.00%) } . . fn contains_unsafe(expr: &Expr<'_>) -> bool { . for_each_expr_without_closures(expr, |e| { 1,365 ( 0.00%) if let ExprKind::Block(block, _) = e.kind 5 ( 0.00%) && let BlockCheckMode::UnsafeBlock(UnsafeSource::UserProvided) = block.rules 1,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_expr::>'2 (1x) . { . return ControlFlow::Break(()); . } . ControlFlow::Continue(()) . }) . .is_some() . } . 1,950 ( 0.00%) fn has_generic_return_type(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool { 1,206 ( 0.00%) match &expr.kind { . ExprKind::Block(block, _) => { 8 ( 0.00%) if let Some(tail_expr) = block.expr { . return has_generic_return_type(cx, tail_expr); . } . false . }, . ExprKind::If(_, then_block, else_expr) => { 6 ( 0.00%) has_generic_return_type(cx, then_block) || else_expr.is_some_and(|e| has_generic_return_type(cx, e)) 82 ( 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 (1x) . }, 630 ( 0.00%) ExprKind::Match(_, arms, _) => arms.iter().any(|arm| has_generic_return_type(cx, arm.body)), 2,772 ( 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 (126x) . 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 152 ---------------------------------------- . } . }, . _ => {}, . } . ControlFlow::Continue(Descend::Yes) . }) . .is_some(), . ExprKind::MethodCall(..) => { 25 ( 0.00%) if let Some(def_id) = cx.typeck_results().type_dependent_def_id(expr.hir_id) { 255 ( 0.00%) => ???:::type_dependent_def_id (5x) 5 ( 0.00%) let sig = cx.tcx.fn_sig(def_id).instantiate_identity().skip_norm_wip(); . let ret_ty = sig.output().skip_binder(); . return ret_ty.has_param(); . } . false . }, . ExprKind::Call(callee, _) => { 4 ( 0.00%) if let ExprKind::Path(qpath) = &callee.kind { 5 ( 0.00%) let res = cx.qpath_res(qpath, callee.hir_id); 23 ( 0.00%) => ???:::qpath_res (1x) 12 ( 0.00%) if let Res::Def(DefKind::Fn | DefKind::AssocFn, def_id) = res { . let sig = cx.tcx.fn_sig(def_id).instantiate_identity().skip_norm_wip(); . let ret_ty = sig.output().skip_binder(); . return ret_ty.has_param(); . } . } . false . }, . _ => false, . } 1,365 ( 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 ---------------------------------------- 16,599 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/neg_multiply.rs -------------------------------------------------------------------------------- Ir -- line 43 ---------------------------------------- . } . } . . false . } . . impl<'tcx> LateLintPass<'tcx> for NegMultiply { . fn check_expr(&mut self, cx: &LateContext<'tcx>, e: &'tcx Expr<'_>) { 27,194 ( 0.00%) if let ExprKind::Binary(ref op, left, right) = e.kind 382 ( 0.00%) && BinOpKind::Mul == op.node . { 14 ( 0.00%) match (&left.kind, &right.kind) { . (&ExprKind::Unary(..), &ExprKind::Unary(..)) => {}, . (&ExprKind::Unary(UnOp::Neg, lit), _) => check_mul(cx, e, lit, right), . (_, &ExprKind::Unary(UnOp::Neg, lit)) => check_mul(cx, e, lit, left), . _ => {}, . } . } . } . } -- line 62 ---------------------------------------- 4 ( 0.00%) -------------------------------------------------------------------------------- -- 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; . } . 849 ( 0.00%) let mut cc = 1u64; 849 ( 0.00%) let mut returns = 0u64; 849 ( 0.00%) let mut prev_expr: Option<&ExprKind<'tcx>> = None; . let _: Option = for_each_expr_without_closures(expr, |e| { 196,598 ( 0.00%) match e.kind { . ExprKind::If(_, _, _) => { . cc += 1; . }, 1,272 ( 0.00%) ExprKind::Match(_, arms, _) => { 1,272 ( 0.00%) if arms.len() > 1 { 1,154 ( 0.00%) cc += 1; . } . cc += arms.iter().filter(|arm| arm.guard.is_some()).count() as u64; . }, 3,409 ( 0.00%) ExprKind::Ret(_) if !matches!(prev_expr, Some(ExprKind::Ret(_))) => { 487 ( 0.00%) returns += 1; . }, . _ => {}, . } 41,484 ( 0.00%) prev_expr = Some(&e.kind); . ControlFlow::Continue(()) . }); . 2,547 ( 0.00%) let ret_ty = cx.typeck_results().node_type(expr.hir_id); 34,857 ( 0.00%) => ???:::node_type (849x) 1,090 ( 0.00%) let ret_adjust = if ret_ty.is_diag_item(cx, sym::Result) { 213 ( 0.00%) returns . } else { . #[expect(clippy::integer_division)] 1,272 ( 0.00%) (returns / 2) . }; . . // prevent degenerate cases where unreachable code contains `return` statements 4,245 ( 0.00%) if cc >= ret_adjust { 1,698 ( 0.00%) cc -= ret_adjust; . } . 1,698 ( 0.00%) if cc > self.limit.limit() { 4 ( 0.00%) 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) . }) { . range.with_ctxt(header_span.ctxt()) -- line 115 ---------------------------------------- -- line 118 ---------------------------------------- . } . }, . }; . . span_lint_and_help( . cx, . COGNITIVE_COMPLEXITY, . fn_span, 14 ( 0.00%) format!( . "the function has a cognitive complexity of ({cc}/{})", . self.limit.limit() . ), 2 ( 0.00%) None, . "you could split it up into multiple smaller functions", . ); . } . } . } . . impl<'tcx> LateLintPass<'tcx> for CognitiveComplexity { 26,610 ( 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)] 1,774 ( 0.00%) if cx.tcx.get_attrs(def_id, sym::test).next().is_none() { 19,514 ( 0.00%) let expr = if kind.asyncness().is_async() { 18,314 ( 0.00%) => ???:::asyncness (1,774x) . match get_async_fn_body(cx.tcx, body) { . Some(b) => b, . None => { . return; . }, . } . } else { 1,774 ( 0.00%) body.value . }; . 8,870 ( 0.00%) self.check(cx, kind, decl, expr, span); . } 14,192 ( 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 ---------------------------------------- 29,695 ( 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 { 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, e: &'tcx Expr<'_>) { 54,388 ( 0.00%) if e.span.from_expansion() { . // Issue #11268 . return; . } . 85,162 ( 0.00%) match e.kind { 2,928 ( 0.00%) ExprKind::Call(fn_expr, arguments) => { 2,928 ( 0.00%) if let ExprKind::Path(ref path) = fn_expr.kind . && arguments.iter().any(is_mut_ref_arg) . { 90 ( 0.00%) check_arguments( . cx, . &mut arguments.iter(), 20 ( 0.00%) cx.typeck_results().expr_ty(fn_expr), 400 ( 0.00%) => ???:::expr_ty (10x) . #[allow(trivial_casts)] 20 ( 0.00%) &|| { . rustc_hir_pretty::qpath_to_string( . &(&cx.tcx as &dyn intravisit::HirTyCtxt<'_>) as &dyn PpAnn, . path, . ) . }, . "function", . ); . } . }, 2 ( 0.00%) ExprKind::MethodCall(path, receiver, arguments, _) 7,284 ( 0.00%) if iter::once(receiver).chain(arguments.iter()).any(is_mut_ref_arg) 9 ( 0.00%) && let Some(def_id) = cx.typeck_results().type_dependent_def_id(e.hir_id) => 51 ( 0.00%) => ???:::type_dependent_def_id (1x) . { 5 ( 0.00%) let args = cx.typeck_results().node_args(e.hir_id); 34 ( 0.00%) => ???:::node_args (1x) 1 ( 0.00%) let method_type = cx.tcx.type_of(def_id).instantiate(cx.tcx, args).skip_norm_wip(); 9 ( 0.00%) check_arguments( . cx, . &mut iter::once(receiver).chain(arguments.iter()), . method_type, 1 ( 0.00%) &|| path.ident.as_str().to_owned(), . "method", . ); . }, . _ => (), . } 217,552 ( 0.01%) } . } . . /// 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 { 11,138 ( 0.00%) matches!(argument.kind, ExprKind::AddrOf(BorrowKind::Ref, Mutability::Mut, _)) . } . 132 ( 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() { 30 ( 0.00%) let parameters = type_definition.fn_sig(cx.tcx).skip_binder().inputs(); 1,709 ( 0.00%) => ???:::fn_sig (10x) . for (argument, parameter) in iter::zip(arguments, parameters) { 202 ( 0.00%) if let ty::Ref(_, _, Mutability::Not) | ty::RawPtr(_, Mutability::Not) = parameter.kind() 14 ( 0.00%) && 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 . // we don't use `strip_prefix` here, because `argument` might be enclosed in parens, in -- line 111 ---------------------------------------- -- 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); . }, . ); . } . } . } 88 ( 0.00%) } 89 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/map_unit_fn.rs -------------------------------------------------------------------------------- Ir -- line 257 ---------------------------------------- . ); . diag.span_suggestion_verbose(stmt.span, SUGG_MSG, suggestion, Applicability::HasPlaceholders); . } . }); . } . } . . impl LateLintPass<'_> for MapUnit { 14,385 ( 0.00%) fn check_stmt(&mut self, cx: &LateContext<'_>, stmt: &hir::Stmt<'_>) { 5,159 ( 0.00%) if let hir::StmtKind::Semi(expr) = stmt.kind 2,098 ( 0.00%) && !stmt.span.from_expansion() 6,328 ( 0.00%) && let Some(arglists) = method_chain_args(expr, &[sym::map]) 111,525 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::method_chain_args (791x) . { . lint_map_unit_fn(cx, stmt, expr, arglists[0]); . } 16,440 ( 0.00%) } . } 2,098 ( 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 { 20 ( 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)) 96,820 ( 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. 288 ( 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) { 38 ( 0.00%) Entry::Occupied(e) => *e.get(), . Entry::Vacant(e) => { . let e = e.insert(IsFreeze::Yes); 30 ( 0.00%) if ty.is_freeze(tcx, typing_env) { 16,892 ( 0.00%) => ???:::is_freeze (5x) . 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 . }, . } 192 ( 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> { 22,344 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'_>) { 6,384 ( 0.00%) if let ItemKind::Const(ident, .., ct_rhs) = item.kind . && !ident.is_special() . && 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::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 -- line 726 ---------------------------------------- -- 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"); . } . }, . ); . } 25,536 ( 0.00%) } . 176 ( 0.00%) fn check_trait_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx TraitItem<'_>) { 44 ( 0.00%) if let TraitItemKind::Const(_, ct_rhs_opt) = item.kind 4 ( 0.00%) && let ty = cx.tcx.type_of(item.owner_id).instantiate_identity().skip_norm_wip() 14 ( 0.00%) && match self.is_ty_freeze(cx.tcx, cx.typing_env(), ty) { 59 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/non_copy_const.rs:::is_ty_freeze (1x) 21 ( 0.00%) => ???:::typing_env (1x) . 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 . }, . // FIXME: we just assume mgca rhs's are freeze . _ => const_item_rhs_to_expr(cx.tcx, ct_rhs).is_some_and(|e| { -- line 770 ---------------------------------------- -- line 784 ---------------------------------------- . { . span_lint( . cx, . DECLARE_INTERIOR_MUTABLE_CONST, . item.ident.span, . "named constant with interior mutability", . ); . } 176 ( 0.00%) } . 10,528 ( 0.00%) fn check_impl_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx ImplItem<'_>) { 3,008 ( 0.00%) if let ImplItemKind::Const(_, ct_rhs) = item.kind 9 ( 0.00%) && let ty = cx.tcx.type_of(item.owner_id).instantiate_identity().skip_norm_wip() 45 ( 0.00%) && match self.is_ty_freeze(cx.tcx, cx.typing_env(), ty) { 3,497 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/non_copy_const.rs:::is_ty_freeze (3x) 63 ( 0.00%) => ???:::typing_env (3x) . 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 . && let Some(of_trait) = impl_block.of_trait . && let Some(trait_id) = of_trait.trait_ref.trait_def_id() -- line 805 ---------------------------------------- -- line 843 ---------------------------------------- . { . span_lint( . cx, . DECLARE_INTERIOR_MUTABLE_CONST, . item.ident.span, . "named constant with interior mutability", . ); . } 12,032 ( 0.00%) } . 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, e: &'tcx Expr<'_>) { 65,287 ( 0.00%) if let ExprKind::Path(qpath) = &e.kind . && let typeck = cx.typeck_results() 161,219 ( 0.00%) && let Res::Def(DefKind::Const { .. } | DefKind::AssocConst { .. }, did) = typeck.qpath_res(qpath, e.hir_id) 194,449 ( 0.00%) => ???:::qpath_res (10,899x) . // As of `1.80` constant contexts can't borrow any type with interior mutability 80 ( 0.00%) && !is_in_const_context(cx) 5,360 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_in_const_context (20x) 300 ( 0.00%) && !self.is_ty_freeze(cx.tcx, cx.typing_env(), typeck.expr_ty(e)).is_freeze() 15,382 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/non_copy_const.rs:::is_ty_freeze (20x) 3,988 ( 0.00%) => ???:::typing_env (20x) 800 ( 0.00%) => ???:::expr_ty (20x) . && 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"); . }, . ); . } 217,552 ( 0.01%) } . } . . struct ReplaceAssocFolder<'tcx> { . tcx: TyCtxt<'tcx>, . trait_id: DefId, . self_ty: Ty<'tcx>, . } . impl<'tcx> TypeFolder> for ReplaceAssocFolder<'tcx> { -- line 900 ---------------------------------------- 10,956 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/redundant_field_names.rs -------------------------------------------------------------------------------- Ir -- line 44 ---------------------------------------- . impl RedundantFieldNames { . pub fn new(conf: &'static Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl EarlyLintPass for RedundantFieldNames { . fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { 44,536 ( 0.00%) if let ExprKind::Struct(ref se) = expr.kind 2,388 ( 0.00%) && self.msrv.meets(msrvs::FIELD_INIT_SHORTHAND) 14,328 ( 0.00%) => /rust/deps/smallvec-1.15.1/src/lib.rs:::meets (597x) . { 597 ( 0.00%) for field in &se.fields { 2,178 ( 0.00%) if !field.is_shorthand 2,758 ( 0.00%) && let ExprKind::Path(None, path) = &field.expr.kind 100 ( 0.00%) && let [segment] = path.segments.as_slice() 43 ( 0.00%) && segment.args.is_none() . && segment.ident == field.ident . && field.span.eq_ctxt(field.ident.span) . && !field.span.in_external_macro(cx.sess().source_map()) . { . span_lint_and_sugg( . cx, . REDUNDANT_FIELD_NAMES, . field.span, -- line 67 ---------------------------------------- -- line 68 ---------------------------------------- . "redundant field names in struct initialization", . "replace it with", . field.ident.to_string(), . Applicability::MachineApplicable, . ); . } . } . } 22,268 ( 0.00%) } . . extract_msrv_attr!(); . } 9,552 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/serde_api.rs -------------------------------------------------------------------------------- Ir -- line 19 ---------------------------------------- . pub SERDE_API_MISUSE, . correctness, . "various things that will negatively affect your serde experience" . } . . declare_lint_pass!(SerdeApi => [SERDE_API_MISUSE]); . . impl<'tcx> LateLintPass<'tcx> for SerdeApi { 22,344 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'_>) { 7,789 ( 0.00%) if let ItemKind::Impl(Impl { . of_trait: Some(of_trait), 2,700 ( 0.00%) items, . .. 2,810 ( 0.00%) }) = item.kind . { 2,700 ( 0.00%) let did = of_trait.trait_ref.path.res.def_id(); . if paths::SERDE_DE_VISITOR.matches(cx, did) { . let mut seen_str = None; . let mut seen_string = None; . for item in items { . match cx.tcx.item_name(item.owner_id) { . sym::visit_str => seen_str = Some(cx.tcx.def_span(item.owner_id)), . sym::visit_string => seen_string = Some(cx.tcx.def_span(item.owner_id)), . _ => {}, -- line 42 ---------------------------------------- -- line 49 ---------------------------------------- . cx, . SERDE_API_MISUSE, . span, . "you should not implement `visit_string` without also implementing `visit_str`", . ); . } . } . } 25,536 ( 0.00%) } . } 1,350 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/bool_assert_comparison.rs -------------------------------------------------------------------------------- Ir -- line 33 ---------------------------------------- . pub BOOL_ASSERT_COMPARISON, . style, . "Using a boolean as comparison value in an assert_* macro when there is no need" . } . . declare_lint_pass!(BoolAssertComparison => [BOOL_ASSERT_COMPARISON]); . . fn extract_bool_lit(e: &Expr<'_>) -> Option { 188 ( 0.00%) if let ExprKind::Lit(Lit { . node: LitKind::Bool(b), .. . }) = e.kind . && !e.span.from_expansion() . { . Some(b) . } else { . None . } -- line 49 ---------------------------------------- -- line 68 ---------------------------------------- . .tcx . .normalize_erasing_regions(cx.typing_env(), Unnormalized::new_wip(proj)); . . nty.is_bool() . }) . } . . impl<'tcx> LateLintPass<'tcx> for BoolAssertComparison { 244,746 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 2,196 ( 0.00%) let Some(macro_call) = root_macro_call_first_node(cx, expr) else { . return; . }; 5,355 ( 0.00%) let eq_macro = match cx.tcx.get_diagnostic_name(macro_call.def_id) { 19,185 ( 0.00%) => ???:::get_diagnostic_name (366x) . Some(sym::assert_eq_macro | sym::debug_assert_eq_macro) => true, . Some(sym::assert_ne_macro | sym::debug_assert_ne_macro) => false, . _ => return, . }; 240 ( 0.00%) let Some((a, b, _)) = find_assert_eq_args(cx, expr, macro_call.expn) else { 60,537 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/macros.rs:clippy_utils::macros::find_assert_eq_args (24x) . return; . }; . 96 ( 0.00%) let a_span = a.span.source_callsite(); 624 ( 0.00%) => ???:::source_callsite (24x) 72 ( 0.00%) let b_span = b.span.source_callsite(); 624 ( 0.00%) => ???:::source_callsite (24x) . 96 ( 0.00%) let (lit_span, bool_value, non_lit_expr) = match (extract_bool_lit(a), extract_bool_lit(b)) { . // assert_eq!(true/false, b) . // ^^^^^^^^^^^^ . (Some(bool_value), None) => (a_span.until(b_span), bool_value, b), . // assert_eq!(a, true/false) . // ^^^^^^^^^^^^ . (None, Some(bool_value)) => (b_span.with_lo(a_span.hi()), bool_value, a), . // If there are two boolean arguments, we definitely don't understand . // what's going on, so better leave things as is... -- line 100 ---------------------------------------- -- line 148 ---------------------------------------- . . diag.multipart_suggestion( . format!("replace it with `{non_eq_mac}!(..)`"), . suggestions, . applicability, . ); . }, . ); 217,552 ( 0.01%) } . } 24 ( 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/peekable.rs -------------------------------------------------------------------------------- Ir -- line 17 ---------------------------------------- . pub struct Peekable { . iter: I, . /// Remember a peeked value, even if it was None. . peeked: Option>, . } . . impl Peekable { . pub(in crate::iter) const fn new(iter: I) -> Peekable { 1,096 ( 0.00%) Peekable { iter, peeked: None } . } . } . . // Peekable must remember if a None has been seen in the `.peek()` method. . // It ensures that `.peek(); .peek();` or `.peek(); .next();` only advances the . // underlying iterator at most once. This does not by itself make the iterator . // fused. . #[stable(feature = "rust1", since = "1.0.0")] . impl Iterator for Peekable { . type Item = I::Item; . . #[inline] . fn next(&mut self) -> Option { 17,083 ( 0.00%) match self.peeked.take() { 2,265 ( 0.00%) Some(v) => v, 24,423 ( 0.00%) None => self.iter.next(), 1,965,581 ( 0.05%) => /rust/deps/pulldown-cmark-0.11.3/src/parse.rs: as core::iter::traits::iterator::Iterator>::next (8,141x) . } . } . . #[inline] . #[rustc_inherit_overflow_checks] . fn count(mut self) -> usize { . match self.peeked.take() { . Some(None) => 0, -- line 49 ---------------------------------------- -- line 210 ---------------------------------------- . /// // After the iterator is finished, so is `peek()` . /// assert_eq!(iter.peek(), None); . /// assert_eq!(iter.next(), None); . /// ``` . #[inline] . #[stable(feature = "rust1", since = "1.0.0")] . pub fn peek(&mut self) -> Option<&I::Item> { . let iter = &mut self.iter; 405 ( 0.00%) self.peeked.get_or_insert_with(|| iter.next()).as_ref() 100,703 ( 0.00%) => /rust/deps/pulldown-cmark-0.11.3/src/parse.rs: as core::iter::traits::iterator::Iterator>::next (151x) . } . . /// Returns a mutable reference to the next() value without advancing the iterator. . /// . /// Like [`next`], if there is a value, it is wrapped in a `Some(T)`. . /// But if the iteration is over, `None` is returned. . /// . /// Because `peek_mut()` returns a reference, and many iterators iterate over -- line 226 ---------------------------------------- 15,892 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/manual_strip.rs -------------------------------------------------------------------------------- Ir -- line 63 ---------------------------------------- . . #[derive(Clone, Copy, Debug, Eq, PartialEq)] . enum StripKind { . Prefix, . Suffix, . } . . impl<'tcx> LateLintPass<'tcx> for ManualStrip { 217,552 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { . if let Some(higher::If { cond, then, .. }) = higher::If::hir(expr) 1,163 ( 0.00%) && let ExprKind::MethodCall(_, target_arg, [pattern], _) = cond.kind 226 ( 0.00%) && let ExprKind::Path(target_path) = &target_arg.kind 565 ( 0.00%) && let Some(method_def_id) = cx.typeck_results().type_dependent_def_id(cond.hir_id) 5,763 ( 0.00%) => ???:::type_dependent_def_id (113x) . { 904 ( 0.00%) let strip_kind = match cx.tcx.get_diagnostic_name(method_def_id) { 4,859 ( 0.00%) => ???:::get_diagnostic_name (113x) . Some(sym::str_starts_with) => StripKind::Prefix, . Some(sym::str_ends_with) => StripKind::Suffix, . _ => return, . }; . let target_res = cx.qpath_res(target_path, target_arg.hir_id); . if target_res == Res::Err { . return; . } -- line 85 ---------------------------------------- -- line 144 ---------------------------------------- . ) . .collect(), . app, . ); . }, . ); . } . } 217,552 ( 0.01%) } . } . . // Returns `Some(arg)` if `expr` matches `arg.len()` and `None` otherwise. . fn len_arg<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) -> Option<&'tcx Expr<'tcx>> { . if let ExprKind::MethodCall(_, arg, [], _) = expr.kind . && let Some(method_def_id) = cx.typeck_results().type_dependent_def_id(expr.hir_id) . && cx.tcx.is_diagnostic_item(sym::str_len, method_def_id) . { -- line 160 ---------------------------------------- 226 ( 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. 3,224 ( 0.00%) pub fn method_call<'tcx>(recv: &'tcx Expr<'tcx>) -> Option<(Symbol, &'tcx Expr<'tcx>, &'tcx [Expr<'tcx>], Span, Span)> { 18,889 ( 0.00%) if let ExprKind::MethodCall(path, receiver, args, call_span) = recv.kind 5,575 ( 0.00%) && !args.iter().any(|e| e.range_span().unwrap_or(e.span).from_expansion()) 700 ( 0.00%) => ???:::range_span (10x) 9,568 ( 0.00%) && !receiver.range_span().unwrap_or(receiver.span).from_expansion() 4,180 ( 0.00%) => ???:::range_span (190x) . { 7,064 ( 0.00%) Some((path.ident.name, receiver, args, path.ident.span, call_span)) . } else { 213 ( 0.00%) None . } 3,224 ( 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%) } . 217,552 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 54,388 ( 0.00%) if expr.span.from_expansion() { . return; . } . 112,614 ( 0.00%) match expr.kind { 5,856 ( 0.00%) ExprKind::Call(func, args) => { 7,320 ( 0.00%) unnecessary_fallible_conversions::check_function(cx, expr, func); 267,503 ( 0.01%) => /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 (1,464x) 16,104 ( 0.00%) manual_c_str_literals::check(cx, expr, func, args, self.msrv); 44,697 ( 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 (1,464x) 11,712 ( 0.00%) useless_nonzero_new_unchecked::check(cx, expr, func, args, self.msrv); 28,867 ( 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 (1,464x) 11,712 ( 0.00%) io_other_error::check(cx, expr, func, args, self.msrv); 19,144 ( 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 (1,464x) 14,640 ( 0.00%) swap_with_temporary::check(cx, expr, func, args); 112,558 ( 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 (1,464x) 8,784 ( 0.00%) ip_constant::check(cx, expr, func, args); 44,923 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/ip_constant.rs:clippy_lints::methods::ip_constant::check (1,464x) 4,392 ( 0.00%) clone_on_copy::check_function(cx, expr); 321,602 ( 0.01%) => /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 (1,464x) 16,104 ( 0.00%) unwrap_expect_used::check_call( 123,812 ( 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 (1,464x) . cx, . expr, . func, . args, 1,464 ( 0.00%) self.allow_unwrap_in_tests, 1,464 ( 0.00%) self.allow_expect_in_tests, 1,464 ( 0.00%) self.allow_unwrap_in_consts, 1,464 ( 0.00%) self.allow_expect_in_consts, 1,464 ( 0.00%) &self.unwrap_allowed_ids, . &self.unwrap_allowed_aliases, . ); . }, . ExprKind::MethodCall(..) => { 21,852 ( 0.00%) self.check_methods(cx, expr); 3,018,203 ( 0.07%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:::check_methods (2,428x) . }, 1,760 ( 0.00%) ExprKind::Binary(op, lhs, rhs) if op.node == hir::BinOpKind::Eq || op.node == hir::BinOpKind::Ne => { 312 ( 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); . }, 186 ( 0.00%) ExprKind::Binary(op, lhs, rhs) if op.node == hir::BinOpKind::Or => { 1,116 ( 0.00%) manual_is_variant_and::check_or(cx, expr, lhs, rhs, self.msrv); 2,063 ( 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_or (93x) . }, . _ => (), . } 197,384 ( 0.00%) } . 15,040 ( 0.00%) fn check_impl_item(&mut self, cx: &LateContext<'tcx>, impl_item: &'tcx hir::ImplItem<'_>) { 4,512 ( 0.00%) if impl_item.span.in_external_macro(cx.sess().source_map()) { . return; . } . 7,322 ( 0.00%) if let hir::ImplItemKind::Fn(ref sig, id) = impl_item.kind { 7,190 ( 0.00%) let parent = cx.tcx.hir_get_parent_item(impl_item.hir_id()).def_id; 139,884 ( 0.00%) => ???:::hir_get_parent_item (1,438x) 5,752 ( 0.00%) let item = cx.tcx.hir_expect_item(parent); 77,132 ( 0.00%) => ???:::hir_expect_item (1,438x) 4,314 ( 0.00%) let self_ty = cx.tcx.type_of(item.owner_id).instantiate_identity().skip_norm_wip(); 5,752 ( 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(); 2,876 ( 0.00%) let method_sig = cx.tcx.instantiate_bound_regions_with_erased(method_sig); 1,450,888 ( 0.04%) => /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::> (1,438x) 1,438 ( 0.00%) let first_arg_ty_opt = method_sig.inputs().iter().next().copied(); 11,504 ( 0.00%) should_implement_trait::check_impl_item(cx, impl_item, self_ty, implements_trait, first_arg_ty_opt, sig); 41,383 ( 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 (1,438x) . 5,752 ( 0.00%) if sig.decl.implicit_self().has_implicit_self() 11,504 ( 0.00%) => ???:::implicit_self (1,438x) 1,522 ( 0.00%) && !(self.avoid_breaking_exported_api 3,805 ( 0.00%) && cx.effective_visibilities.is_exported(impl_item.owner_id.def_id)) 43,257 ( 0.00%) => ???:::is_exported (761x) 264 ( 0.00%) && let Some(first_arg) = iter_input_pats(sig.decl, cx.tcx.hir_body(id)).next() 3,553 ( 0.00%) => ???:::hir_body (66x) 132 ( 0.00%) && let Some(first_arg_ty) = first_arg_ty_opt . { 396 ( 0.00%) wrong_self_convention::check( 53,702 ( 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 (66x) . cx, 66 ( 0.00%) impl_item.ident.name, . self_ty, . first_arg_ty, 132 ( 0.00%) first_arg.pat.span, . implements_trait, . false, . ); . } . . new_ret_no_self::check_impl_item(cx, impl_item, self_ty, implements_trait); . } 12,032 ( 0.00%) } . 154 ( 0.00%) fn check_trait_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx TraitItem<'_>) { 44 ( 0.00%) if let TraitItemKind::Fn(ref sig, _) = item.kind 90 ( 0.00%) && !item.span.in_external_macro(cx.tcx.sess.source_map()) . { 72 ( 0.00%) if sig.decl.implicit_self().has_implicit_self() 144 ( 0.00%) => ???:::implicit_self (18x) . && let Some(first_arg_hir_ty) = sig.decl.inputs.first() 11 ( 0.00%) && let Some(&first_arg_ty) = cx . .tcx 22 ( 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(); 66 ( 0.00%) wrong_self_convention::check( 6,189 ( 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 (11x) . cx, 22 ( 0.00%) item.ident.name, . self_ty, . first_arg_ty, 11 ( 0.00%) first_arg_hir_ty.span, . false, . true, . ); . } . 54 ( 0.00%) new_ret_no_self::check_trait_item(cx, item); 306 ( 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 (18x) . } 176 ( 0.00%) } . } . . impl Methods { . #[expect(clippy::too_many_lines)] 16,996 ( 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) { 15,024 ( 0.00%) (sym::add | sym::sub | sym::wrapping_add | sym::wrapping_sub, [_arg]) => { 20 ( 0.00%) zst_offset::check(cx, expr, recv); 28,430 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/zst_offset.rs:clippy_lints::methods::zst_offset::check (10x) . }, . (sym::all, [arg]) => { 9 ( 0.00%) needless_character_iteration::check(cx, expr, recv, arg, true); 102 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/needless_character_iteration.rs:clippy_lints::methods::needless_character_iteration::check (1x) 8 ( 0.00%) match method_call(recv) { 89 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (1x) . Some((sym::cloned, recv2, [], _, _)) => { . iter_overeager_cloned::check( . cx, . expr, . recv, . recv2, . iter_overeager_cloned::Op::NeedlessMove(arg), . false, -- line 5284 ---------------------------------------- -- line 5289 ---------------------------------------- . }, . _ => {}, . } . }, . (name @ (sym::chunks_exact | sym::chunks_exact_mut), [arg]) => { . chunks_exact_to_as_chunks::check(cx, recv, arg, expr, call_span, name, self.msrv); . }, . (sym::and_then, [arg]) => { 10 ( 0.00%) manual_option_zip::check(cx, expr, recv, arg, self.msrv); 17 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/manual_option_zip.rs:clippy_lints::methods::manual_option_zip::check (1x) . let biom_option_linted = bind_instead_of_map::check_and_then_some(cx, expr, recv, arg); . let biom_result_linted = bind_instead_of_map::check_and_then_ok(cx, expr, recv, arg); 4 ( 0.00%) if !biom_option_linted && !biom_result_linted { 8 ( 0.00%) let ule_and_linted = unnecessary_lazy_eval::check(cx, expr, recv, arg, "and", true); 374 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/unnecessary_lazy_eval.rs:clippy_lints::methods::unnecessary_lazy_eval::check (1x) 2 ( 0.00%) if !ule_and_linted { 5 ( 0.00%) return_and_then::check(cx, expr, recv, arg); 557 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/return_and_then.rs:clippy_lints::methods::return_and_then::check (1x) . } . } . 6 ( 0.00%) manual_filter::check_and_then_method(cx, recv, arg, call_span, expr); 170 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/matches/manual_filter.rs:clippy_lints::matches::manual_filter::check_and_then_method (1x) . }, . (sym::any, [arg]) => { . needless_character_iteration::check(cx, expr, recv, arg, false); . match method_call(recv) { . Some((sym::cloned, recv2, [], _, _)) => iter_overeager_cloned::check( . cx, . expr, . recv, -- line 5315 ---------------------------------------- -- line 5331 ---------------------------------------- . manual_contains::check(cx, expr, iter_recv, arg); . }, . _ => {}, . } . }, . (sym::arg, [arg]) => { . suspicious_command_arg_space::check(cx, recv, arg, span); . }, 15,207 ( 0.00%) (sym::as_deref | sym::as_deref_mut, []) => { 4 ( 0.00%) needless_option_as_deref::check(cx, expr, recv, name); 428 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/needless_option_as_deref.rs:clippy_lints::methods::needless_option_as_deref::check (2x) . }, . (sym::as_bytes, []) => { 30 ( 0.00%) if let Some((sym::as_str, recv, [], as_str_span, _)) = method_call(recv) { 195 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (4x) . redundant_as_str::check(cx, expr, recv, as_str_span, span); . } 12 ( 0.00%) sliced_string_as_bytes::check(cx, expr, recv); 68 ( 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 (4x) . }, 18 ( 0.00%) (sym::as_mut | sym::as_ref, []) => useless_asref::check(cx, expr, name, recv), 7,333 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/useless_asref.rs:clippy_lints::methods::useless_asref::check (6x) 5 ( 0.00%) (sym::as_ptr, []) => manual_c_str_literals::check_as_ptr(cx, expr, recv, self.msrv), 17 ( 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_as_ptr (1x) . (sym::assume_init, []) => uninit_assumed_init::check(cx, expr, recv), 4 ( 0.00%) (sym::bytes, []) => unbuffered_bytes::check(cx, expr, recv), 584 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/unbuffered_bytes.rs:clippy_lints::methods::unbuffered_bytes::check (2x) . (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) . { . option_as_ref_cloned::check(cx, span, method, as_ref_recv, as_ref_ident_span); . } . }, 42 ( 0.00%) (sym::collect, []) if cx.ty_based_def(expr).opt_parent(cx).is_diag_item(cx, sym::Iterator) => { 348 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/res.rs: as clippy_utils::res::MaybeDef>::opt_parent:: (3x) 27 ( 0.00%) needless_collect::check(cx, span, expr, recv, call_span); 252,991 ( 0.01%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/needless_collect.rs:clippy_lints::methods::needless_collect::check (3x) 15 ( 0.00%) match method_call(recv) { 359 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (3x) 15 ( 0.00%) Some((name @ (sym::cloned | sym::copied), recv2, [], _, _)) => { . iter_cloned_collect::check(cx, name, expr, recv2); . }, 12 ( 0.00%) Some((sym::map, m_recv, [m_arg], m_ident_span, _)) => { 8 ( 0.00%) map_collect_result_unit::check(cx, expr, m_recv, m_arg); 232 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/map_collect_result_unit.rs:clippy_lints::methods::map_collect_result_unit::check (2x) 10 ( 0.00%) format_collect::check(cx, expr, m_arg, m_ident_span); 212 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/format_collect.rs:clippy_lints::methods::format_collect::check (2x) . }, . Some((sym::take, take_self_arg, [take_arg], _, _)) => { . if self.msrv.meets(cx, msrvs::STR_REPEAT) { . manual_str_repeat::check(cx, expr, recv, take_self_arg, take_arg); . } . }, . Some((sym::drain, recv, args, ..)) => match args { . [arg] => drain_collect::check(cx, Some(arg), expr, recv), -- line 5376 ---------------------------------------- -- line 5389 ---------------------------------------- . recv, . recv2, . iter_overeager_cloned::Op::RmCloned, . false, . ); . }, . Some((name2 @ (sym::into_iter | sym::iter | sym::iter_mut), recv2, [], _, _)) => { . iter_count::check(cx, expr, recv2, name2); 2 ( 0.00%) }, . Some((sym::map, _, [arg], _, _)) => suspicious_map::check(cx, expr, recv, arg), . 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); . }, 340 ( 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); . } . }, . (sym::ends_with, [arg]) => { . if let ExprKind::MethodCall(.., span) = expr.kind { 33 ( 0.00%) case_sensitive_file_extension_comparisons::check(cx, expr, span, recv, arg, self.msrv); 1,418 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/case_sensitive_file_extension_comparisons.rs:clippy_lints::methods::case_sensitive_file_extension_comparisons::check (3x) . } 21 ( 0.00%) path_ends_with_ext::check(cx, recv, arg, expr, self.msrv, &self.allowed_dotfiles); 450 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/path_ends_with_ext.rs:clippy_lints::methods::path_ends_with_ext::check (3x) . }, . (sym::expect, [_]) => { . match method_call(recv) { . 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); . }, . _ => {}, -- line 5429 ---------------------------------------- -- line 5430 ---------------------------------------- . } . 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, []) => { 4 ( 0.00%) unnecessary_literal_unwrap::check(cx, expr, recv, name, args); 89 ( 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 (1x) . }, . (sym::extend, [arg]) => { 48 ( 0.00%) string_extend_chars::check(cx, expr, recv, arg); 666 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/string_extend_chars.rs:clippy_lints::methods::string_extend_chars::check (6x) 30 ( 0.00%) extend_with_drain::check(cx, expr, recv, arg); 901 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/extend_with_drain.rs:clippy_lints::methods::extend_with_drain::check (6x) . }, . (sym::filter, [arg]) => { 9 ( 0.00%) if let Some((sym::cloned, recv2, [], _span2, _)) = method_call(recv) { 89 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (1x) . // if `arg` has side-effect, the semantic will change . iter_overeager_cloned::check( . cx, . expr, . recv, . recv2, . iter_overeager_cloned::Op::FixClosure(name, arg), . false, . ); . } 7 ( 0.00%) if self.msrv.meets(cx, msrvs::ITER_FLATTEN) { 27 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/msrvs.rs:::meets (1x) . // use the sourcemap to get the span of the closure 5 ( 0.00%) iter_filter::check(cx, expr, arg, span); 9,268 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/iter_filter.rs:clippy_lints::methods::iter_filter::check (1x) . } 6 ( 0.00%) some_filter::check(cx, expr, recv, arg, self.msrv); 28 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/some_filter.rs:clippy_lints::methods::some_filter::check (1x) . }, . (sym::find, [arg]) => { 7 ( 0.00%) if let Some((sym::cloned, recv2, [], _span2, _)) = method_call(recv) { 89 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (1x) . // if `arg` has side-effect, the semantic will change . iter_overeager_cloned::check( . cx, . expr, . recv, . recv2, . iter_overeager_cloned::Op::FixClosure(name, arg), . false, -- line 5471 ---------------------------------------- -- line 5531 ---------------------------------------- . recv, . recv2, . iter_overeager_cloned::Op::NeedlessMove(arg), . false, . ), . _ => {}, . }, . (sym::get, [arg]) => { 16 ( 0.00%) get_first::check(cx, expr, recv, arg); 918 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/get_first.rs:clippy_lints::methods::get_first::check (2x) 10 ( 0.00%) get_last_with_len::check(cx, expr, recv, arg); 34 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/get_last_with_len.rs:clippy_lints::methods::get_last_with_len::check (2x) . }, . (sym::get_or_insert_with, [arg]) => { 3 ( 0.00%) unnecessary_lazy_eval::check(cx, expr, recv, arg, "get_or_insert", false); . }, . (sym::hash, [arg]) => { 4 ( 0.00%) unit_hash::check(cx, expr, recv, arg); 1,368 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/unit_hash.rs:clippy_lints::methods::unit_hash::check (4x) . }, . (sym::is_empty, []) => { 373 ( 0.00%) match method_call(recv) { 1,129 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (53x) 6 ( 0.00%) 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); . }, . _ => {}, . } 212 ( 0.00%) is_empty::check(cx, expr, recv); 63,494 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/is_empty.rs:clippy_lints::methods::is_empty::check (53x) . }, . (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), 98 ( 0.00%) (sym::is_none, []) => check_is_some_is_none(cx, expr, recv, call_span, false, self.msrv), 322 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::check_is_some_is_none (14x) 230 ( 0.00%) (sym::is_some, []) => check_is_some_is_none(cx, expr, recv, call_span, true, self.msrv), 1,547 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::check_is_some_is_none (27x) . (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, []) => { 194 ( 0.00%) iter_on_single_or_empty_collections::check(cx, expr, name, recv); 2,791 ( 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 (47x) . }, . (sym::join, [join_arg]) => { 16 ( 0.00%) if let Some((sym::collect, _, _, span, _)) = method_call(recv) { 80 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (4x) . unnecessary_join::check(cx, expr, recv, join_arg, span); . } else { 20 ( 0.00%) join_absolute_paths::check(cx, recv, join_arg, expr.span); 486 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/join_absolute_paths.rs:clippy_lints::methods::join_absolute_paths::check (4x) . } . }, . (sym::last, []) => { 56 ( 0.00%) if let Some((sym::cloned, recv2, [], _span2, _)) = method_call(recv) { 160 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (8x) . iter_overeager_cloned::check( . cx, . expr, . recv, . recv2, . iter_overeager_cloned::Op::LaterCloned, . false, . ); . } 24 ( 0.00%) double_ended_iterator_last::check(cx, expr, recv, call_span); 7,666 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/double_ended_iterator_last.rs:clippy_lints::methods::double_ended_iterator_last::check (8x) . }, . (sym::len, []) => { 280 ( 0.00%) if let Some((prev_method @ (sym::as_bytes | sym::bytes), prev_recv, [], _, _)) = method_call(recv) { 1,400 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (70x) . needless_as_bytes::check(cx, prev_method, sym::len, prev_recv, expr.span); . } . }, . (sym::lock, []) => { . mut_mutex_lock::check(cx, expr, recv, span); . }, . (name @ (sym::map | sym::map_err), [m_arg]) => { . if name == sym::map { 648 ( 0.00%) map_clone::check(cx, expr, recv, m_arg, self.msrv); 56,511 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/map_clone.rs:clippy_lints::methods::map_clone::check (81x) 648 ( 0.00%) map_with_unused_argument_over_ranges::check(cx, expr, recv, m_arg, self.msrv, span); 5,947 ( 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 (81x) 405 ( 0.00%) manual_is_variant_and::check_map(cx, expr, self.msrv); 9,776 ( 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 (81x) 719 ( 0.00%) match method_call(recv) { 6,450 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (81x) 3 ( 0.00%) Some((map_name @ (sym::iter | sym::into_iter), recv2, _, _, _)) => { 18 ( 0.00%) iter_kv_map::check(cx, map_name, expr, recv2, m_arg, self.msrv, sym::map); 332 ( 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 (3x) . }, . Some((sym::cloned, recv2, [], _, _)) => iter_overeager_cloned::check( . cx, . expr, . recv, . recv2, . iter_overeager_cloned::Op::NeedlessMove(m_arg), . false, . ), . _ => {}, . } . } else { 20 ( 0.00%) map_err_ignore::check(cx, expr, m_arg); 2,560 ( 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 (4x) . } 571 ( 0.00%) if let Some((name, recv2, args, span2, _)) = method_call(recv) { 6,737 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (85x) . match (name, args) { 448 ( 0.00%) (sym::as_mut, []) => option_as_ref_deref::check(cx, expr, recv2, m_arg, true, self.msrv), 686 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/option_as_ref_deref.rs:clippy_lints::methods::option_as_ref_deref::check (2x) 18 ( 0.00%) (sym::as_ref, []) => option_as_ref_deref::check(cx, expr, recv2, m_arg, false, self.msrv), 686 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/option_as_ref_deref.rs:clippy_lints::methods::option_as_ref_deref::check (2x) . (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); . }, . _ => {}, . } . } 680 ( 0.00%) map_identity::check(cx, expr, recv, m_arg, name, span); 49,989 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/map_identity.rs:clippy_lints::methods::map_identity::check (85x) 595 ( 0.00%) manual_inspect::check(cx, expr, m_arg, name, span, self.msrv); 21,673 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/manual_inspect.rs:clippy_lints::methods::manual_inspect::check (85x) . }, 9 ( 0.00%) (sym::map_or, [def, map]) => { 24 ( 0.00%) option_map_or_none::check(cx, expr, recv, def, map); 1,027 ( 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 (3x) 21 ( 0.00%) manual_ok_or::check(cx, expr, recv, def, map); 1,695 ( 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 (3x) 27 ( 0.00%) unnecessary_map_or::check(cx, expr, recv, def, map, span, self.msrv); 786 ( 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 (3x) . }, 3 ( 0.00%) (sym::map_or_else, [def, map]) => { 8 ( 0.00%) result_map_or_else_none::check(cx, expr, recv, def, map); 167 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/result_map_or_else_none.rs:clippy_lints::methods::result_map_or_else_none::check (1x) 7 ( 0.00%) unnecessary_map_or_else::check(cx, expr, recv, def, map, call_span); 375 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/unnecessary_map_or_else.rs:clippy_lints::methods::unnecessary_map_or_else::check (1x) 7 ( 0.00%) }, . (sym::next, []) => { 164 ( 0.00%) if let Some((name2, recv2, args2, _, _)) = method_call(recv) { 1,056 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (39x) . match (name2, args2) { 32 ( 0.00%) (sym::cloned, []) => iter_overeager_cloned::check( . cx, . expr, . recv, . recv2, . iter_overeager_cloned::Op::LaterCloned, . false, . ), . (sym::filter, [arg]) => { . filter_next::check(cx, expr, recv2, arg, filter_next::Direction::Forward); . }, . (sym::filter_map, [arg]) => filter_map_next::check(cx, expr, recv2, arg, self.msrv), 30 ( 0.00%) (sym::iter | sym::iter_mut, []) => iter_next_slice::check(cx, expr, recv2, name2), 794 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/iter_next_slice.rs:clippy_lints::methods::iter_next_slice::check (2x) . (sym::skip, [arg]) => iter_skip_next::check(cx, expr, recv2, arg), . (sym::skip_while, [_]) => skip_while_next::check(cx, expr), . (sym::rev, []) => manual_next_back::check(cx, expr, recv, recv2), . _ => {}, . } . } . }, . (sym::next_back, []) => { 48 ( 0.00%) if let Some((name2, recv2, args2, _, _)) = method_call(recv) 378 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (12x) 4 ( 0.00%) && let (sym::filter, [arg]) = (name2, args2) . && self.msrv.meets(cx, msrvs::DOUBLE_ENDED_ITERATOR_RFIND) . { . filter_next::check(cx, expr, recv2, arg, filter_next::Direction::Backward); . } . }, . (sym::nth, [n_arg]) => match method_call(recv) { . Some((sym::bytes, recv2, [], _, _)) => bytes_nth::check(cx, expr, recv2, n_arg), . Some((sym::cloned, recv2, [], _, _)) => iter_overeager_cloned::check( -- line 5676 ---------------------------------------- -- line 5684 ---------------------------------------- . Some((iter_method @ (sym::iter | sym::iter_mut), iter_recv, [], iter_span, _)) => { . if !iter_nth::check(cx, expr, iter_recv, iter_method, iter_span, span) { . iter_nth_zero::check(cx, expr, recv, n_arg); . } . }, . _ => iter_nth_zero::check(cx, expr, recv, n_arg), . }, . (sym::offset | sym::wrapping_offset, [arg]) => { 35 ( 0.00%) zst_offset::check(cx, expr, recv); 1,831 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/zst_offset.rs:clippy_lints::methods::zst_offset::check (5x) . 40 ( 0.00%) ptr_offset_with_cast::check(cx, name, expr, recv, arg, self.msrv); 666 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/ptr_offset_with_cast.rs:clippy_lints::methods::ptr_offset_with_cast::check (5x) 25 ( 0.00%) ptr_offset_by_literal::check(cx, expr, self.msrv); 6,296 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/ptr_offset_by_literal.rs:clippy_lints::methods::ptr_offset_by_literal::check (5x) . }, . (sym::ok_or_else, [arg]) => { 14 ( 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]) => { 20 ( 0.00%) if !bind_instead_of_map::check_or_else_err(cx, expr, recv, arg) { 40 ( 0.00%) unnecessary_lazy_eval::check(cx, expr, recv, arg, "or", false); . } . }, . (sym::peek, []) => { . by_ref_peekable_peek::check(cx, expr, recv); . }, . (sym::push, [arg]) => { 42 ( 0.00%) path_buf_push_overwrite::check(cx, expr, arg); 10,593 ( 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 (21x) . }, . (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 5729 ---------------------------------------- . // Check for repeated `str::replace` calls to perform `collapsible_str_replace` lint . if self.msrv.meets(cx, msrvs::PATTERN_TRAIT_CHAR_ARRAY) . && name == sym::replace . && let Some((sym::replace, ..)) = method_call(recv) . { . collapsible_str_replace::check(cx, expr, arg1, arg2); . } . }, 3 ( 0.00%) (sym::resize, [count_arg, default_arg]) => { 2 ( 0.00%) vec_resize_to_zero::check(cx, expr, count_arg, default_arg, span); 565 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/vec_resize_to_zero.rs:clippy_lints::methods::vec_resize_to_zero::check (1x) . }, . (sym::seek, [arg]) => { . if self.msrv.meets(cx, msrvs::SEEK_FROM_CURRENT) { . seek_from_current::check(cx, expr, recv, arg); . } . if self.msrv.meets(cx, msrvs::SEEK_REWIND) { . seek_to_start_instead_of_rewind::check(cx, expr, recv, arg, span); . } -- line 5746 ---------------------------------------- -- line 5765 ---------------------------------------- . }, . (sym::sort_by, [arg]) => { . 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]) => { 1 ( 0.00%) str_split::check(cx, expr, recv, call_span, arg); 16 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/str_split.rs:clippy_lints::methods::str_split::check (1x) 4 ( 0.00%) }, 267 ( 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); . } . }, 8,556 ( 0.00%) (sym::step_by, [arg]) => iterator_step_by_zero::check(cx, expr, arg), 4 ( 0.00%) (sym::take, [arg]) => { . iter_out_of_bounds::check_take(cx, expr, recv, arg); 6 ( 0.00%) manual_repeat_n::check(cx, expr, recv, arg, self.msrv); 311 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/manual_repeat_n.rs:clippy_lints::methods::manual_repeat_n::check (1x) . if let Some((sym::cloned, recv2, [], _span2, _)) = method_call(recv) { . iter_overeager_cloned::check( . cx, . expr, . recv, . recv2, . iter_overeager_cloned::Op::LaterCloned, . false, . ); . } . }, 12 ( 0.00%) (sym::take, []) => needless_option_take::check(cx, expr, recv), 87 ( 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 (3x) . (sym::then, [arg]) => { . if !self.msrv.meets(cx, msrvs::BOOL_THEN_SOME) { . return; . } . unnecessary_lazy_eval::check(cx, expr, recv, arg, "then_some", true); 13 ( 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); . }, 18 ( 0.00%) (sym::to_owned, []) => { 36 ( 0.00%) if !suspicious_to_owned::check(cx, expr, span) { 3,882 ( 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 (9x) 43 ( 0.00%) implicit_clone::check(cx, name, expr, recv); . } . }, 11,704 ( 0.00%) (sym::to_os_string | sym::to_path_buf | sym::to_string | sym::to_vec, []) => { 16 ( 0.00%) implicit_clone::check(cx, name, expr, recv); . }, . (sym::type_id, []) => { . type_id_on_box::check(cx, recv, expr.span); . }, . (sym::unwrap, []) => { 396 ( 0.00%) match method_call(recv) { 2,431 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (33x) . 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); . }, . _ => {}, . } 231 ( 0.00%) unnecessary_literal_unwrap::check(cx, expr, recv, name, args); 3,448 ( 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 (33x) . }, 3,101 ( 0.00%) (sym::unwrap_or, [u_arg]) => { 35 ( 0.00%) match method_call(recv) { 1,379 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/methods/mod.rs:clippy_lints::methods::method_call (7x) 74 ( 0.00%) 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( . cx, -- line 5847 ---------------------------------------- -- line 5849 ---------------------------------------- . t_recv, . t_arg, . then_method, . obfuscated_if_else::Unwrap::Or(u_arg), . ); . }, . _ => {}, . } 42 ( 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, . ); . }, . _ => {}, . } 126 ( 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,464 ( 0.00%) (sym::zip, [arg]) => { 29 ( 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 { 2,428 ( 0.00%) let method_span = path.ident.span; . . // Those methods do their own method name checking as they deal with multiple methods. 36,420 ( 0.00%) or_fun_call::check(cx, expr, method_span, path.ident.name, recv, args, self.msrv); 34,325 ( 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 (2,428x) 21,852 ( 0.00%) unnecessary_to_owned::check(cx, expr, path.ident.name, recv, args, self.msrv); 1,028,050 ( 0.03%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/unnecessary_to_owned.rs:clippy_lints::methods::unnecessary_to_owned::check (2,428x) . 2,428 ( 0.00%) match (path.ident.name, args) { 23,324 ( 0.00%) (sym::clone, []) => { 2,094 ( 0.00%) clone_on_ref_ptr::check(cx, expr, recv); 49,550 ( 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 (349x) 1,745 ( 0.00%) clone_on_copy::check(cx, expr, recv); 629,606 ( 0.02%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/clone_on_copy.rs:clippy_lints::methods::clone_on_copy::check (349x) . }, . (sym::expect, [arg]) => { . unwrap_expect_used::check( . cx, . expr, . recv, . false, . self.allow_expect_in_consts, -- line 5936 ---------------------------------------- -- line 5952 ---------------------------------------- . &self.unwrap_allowed_ids, . &self.unwrap_allowed_aliases, . unwrap_expect_used::Variant::Expect, . ); . }, . (sym::insert_str | sym::push_str, _) => { . single_char_add_str::check(cx, expr, recv, args); . }, 36 ( 0.00%) (sym::into_iter, []) => { 18 ( 0.00%) into_iter_on_ref::check(cx, expr, method_span, recv); 1,542 ( 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 (18x) . }, 9 ( 0.00%) (sym::map_or, [def, map]) => { 3 ( 0.00%) map_or_identity::check(cx, expr, recv, call_span, def, map); 820 ( 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 (3x) 3 ( 0.00%) }, . 66 ( 0.00%) (sym::to_string, []) => { 16 ( 0.00%) inefficient_to_string::check(cx, expr, recv, self.msrv); 4,814 ( 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 (16x) . }, 4 ( 0.00%) (sym::truncate, [arg]) => { 2 ( 0.00%) manual_clear::check(cx, expr, recv, arg, method_span); 452 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/methods/manual_clear.rs:clippy_lints::methods::manual_clear::check (2x) 2 ( 0.00%) }, 66 ( 0.00%) (sym::unwrap, []) => { 264 ( 0.00%) unwrap_expect_used::check( . cx, . expr, . recv, . false, 33 ( 0.00%) self.allow_unwrap_in_consts, 33 ( 0.00%) self.allow_unwrap_in_tests, 33 ( 0.00%) &self.unwrap_allowed_ids, . &self.unwrap_allowed_aliases, . unwrap_expect_used::Variant::Unwrap, . ); . }, 2 ( 0.00%) (sym::unwrap_err, []) => { 4 ( 0.00%) unwrap_expect_used::check( . cx, . expr, . recv, . true, 1 ( 0.00%) self.allow_unwrap_in_consts, 1 ( 0.00%) self.allow_unwrap_in_tests, 1 ( 0.00%) &self.unwrap_allowed_ids, . &self.unwrap_allowed_aliases, . unwrap_expect_used::Variant::Unwrap, . ); . }, . _ => {}, . } . } 19,424 ( 0.00%) } . } . 533 ( 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) { 58 ( 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); . }, 42 ( 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); . }, . _ => {}, . } 328 ( 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) => { 624 ( 0.00%) if !$func($cx, $info) { . ::std::mem::swap(&mut $info.chain, &mut $info.other); 702 ( 0.00%) if $func($cx, $info) { 28,458 ( 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 (78x) . 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 ---------------------------------------- 43,367 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/partialeq_ne_impl.rs -------------------------------------------------------------------------------- Ir -- line 27 ---------------------------------------- . pub PARTIALEQ_NE_IMPL, . complexity, . "re-implementing `PartialEq::ne`" . } . . declare_lint_pass!(PartialEqNeImpl => [PARTIALEQ_NE_IMPL]); . . impl<'tcx> LateLintPass<'tcx> for PartialEqNeImpl { 22,344 ( 0.00%) fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'_>) { 7,789 ( 0.00%) if let ItemKind::Impl(Impl { . of_trait: Some(of_trait), 2,700 ( 0.00%) items: impl_items, . .. 2,810 ( 0.00%) }) = item.kind 9,450 ( 0.00%) && !cx.tcx.is_automatically_derived(item.owner_id.to_def_id()) 150,366 ( 0.00%) => ???:::is_automatically_derived (1,350x) 5,400 ( 0.00%) && let Some(eq_trait) = cx.tcx.lang_items().eq_trait() 40,500 ( 0.00%) => ???:::lang_items (1,350x) 2,705 ( 0.00%) && of_trait.trait_ref.path.res.def_id() == eq_trait . { . for impl_item in impl_items { 5 ( 0.00%) if cx.tcx.item_name(impl_item.owner_id) == sym::ne { . span_lint_hir( . cx, . PARTIALEQ_NE_IMPL, . impl_item.hir_id(), . cx.tcx.def_span(impl_item.owner_id), . "re-implementing `PartialEq::ne` is unnecessary", . ); . } . } . } 25,536 ( 0.00%) } . } 2,700 ( 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 { 3,933 ( 0.00%) ControlFlow::Continue(output) . } . . #[inline] . fn branch(self) -> ControlFlow { 82,842 ( 0.00%) match self { . ControlFlow::Continue(c) => ControlFlow::Continue(c), 192 ( 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 { 129,271 ( 0.00%) 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 { 431 ( 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, . { 36,512 ( 0.00%) match self { 4,124 ( 0.00%) ControlFlow::Continue(..) => None, 59,013 ( 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, . { 32 ( 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 442 ---------------------------------------- . #[inline] . #[rustc_const_unstable(feature = "const_control_flow", issue = "148739")] . pub(crate) const fn into_try(self) -> R . where . R: [const] ops::Try, . { . match self { . ControlFlow::Continue(v) => R::from_output(v), 1,428 ( 0.00%) ControlFlow::Break(v) => v, . } . } . } 53,127 ( 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 { 916 ( 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(); . 2,304 ( 0.00%) if let ExprKind::MethodCall(path, receiver, [closure_arg], _) = cond.kind 88 ( 0.00%) && 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) . && let Some(param) = body.params.first() -- line 216 ---------------------------------------- -- 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(); . 1,996 ( 0.00%) if let ExprKind::Let(let_expr) = cond.kind 1,668 ( 0.00%) && let PatKind::TupleStruct(qpath, [binding_pat], _) = let_expr.pat.kind . { 864 ( 0.00%) let res = cx.qpath_res(&qpath, let_expr.pat.hir_id); 3,312 ( 0.00%) => ???:::qpath_res (144x) . . if let Some(def_id) = res.opt_def_id() 576 ( 0.00%) && is_lang_item_or_ctor(cx, def_id, LangItem::OptionSome) 33,824 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_lang_item_or_ctor (144x) 208 ( 0.00%) && let PatKind::Binding(_, binding_id, binding_name, _) = binding_pat.kind 108 ( 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(); . 1,880 ( 0.00%) if let ExprKind::Binary(op, left, right) = cond.kind 200 ( 0.00%) && op.node == rustc_ast::BinOpKind::And 96 ( 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(); . 2,304 ( 0.00%) if let ExprKind::MethodCall(unwrap_path, receiver, [default_arg], _) = cond.kind 88 ( 0.00%) && 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 . && let body = cx.tcx.hir_body(closure.body) -- line 372 ---------------------------------------- -- line 455 ---------------------------------------- . ControlFlow::Break((collection_expr, span, false)) . } else { . ControlFlow::Continue(()) . } . }) . } . . impl<'tcx> LateLintPass<'tcx> for ManualPopIf { 217,552 ( 0.01%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 55,965 ( 0.00%) let ExprKind::If(cond, then_block, None) = expr.kind else { . return; . }; . 1,145 ( 0.00%) let in_else_clause = is_else_clause(cx.tcx, expr); 32,581 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_else_clause (229x) . 5,954 ( 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) 576 ( 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; . } . } 217,552 ( 0.01%) } . } 1,695 ( 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 { 247,528 ( 0.01%) 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 { 152,888 ( 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 988 ---------------------------------------- . /// Takes amortized *O*(1) time. If the vector's length would exceed its . /// 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 = "rust1", since = "1.0.0")] . #[rustc_confusables("push_back", "put", "append")] . pub fn push(&mut self, value: T) { 94 ( 0.00%) let _ = self.push_mut(value); 2,340 ( 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:>::push_mut (30x) . } . . /// Appends an element to the back of a collection, returning a reference to it. . /// . /// # Panics . /// . /// Panics if the new capacity exceeds `isize::MAX` _bytes_. . /// -- line 1004 ---------------------------------------- -- line 1019 ---------------------------------------- . /// . /// Takes amortized *O*(1) time. If the vector's length would exceed its . /// 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"] 160 ( 0.00%) pub fn push_mut(&mut self, value: T) -> &mut T { . // Inform codegen that the length does not change across grow_one(). 39,106 ( 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. 90,147 ( 0.00%) if len == self.buf.capacity() { 13,463 ( 0.00%) self.buf.grow_one(); 61,913 ( 0.00%) => ???:>::grow_one (12x) . } . unsafe { . let end = self.as_mut_ptr().add(len); . ptr::write(end, value); 85,091 ( 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 . } 128 ( 0.00%) } . } . . impl Vec { . /// Constructs a new, empty `Vec`. . /// . /// The vector will not allocate until elements are pushed onto it. . /// . /// # Examples -- line 1050 ---------------------------------------- -- 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,486 ( 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 1303 ---------------------------------------- . capacity: usize, . alloc: A, . ) -> Self { . ub_checks::assert_unsafe_precondition!( . check_library_ub, . "Vec::from_parts_in requires that length <= capacity", . (length: usize = length, capacity: usize = capacity) => length <= capacity . ); 87 ( 0.00%) unsafe { Vec { buf: RawVec::from_nonnull_in(ptr, capacity, alloc), len: length } } . } . . /// Decomposes a `Vec` into its raw components: `(pointer, length, capacity, allocator)`. . /// . /// Returns the raw pointer to the underlying data, the length of the vector (in elements), . /// the allocated capacity of the data (in elements), and the allocator. These are the same . /// arguments in the same order as the arguments to [`from_raw_parts_in`]. . /// -- line 1319 ---------------------------------------- -- 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) { 3,602 ( 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. 7,781 ( 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. 19,005 ( 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); 7,679 ( 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 390,105 ( 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 62,271 ( 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 . ); . 11,368 ( 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(); 372 ( 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(); 186 ( 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 2340 ---------------------------------------- . } . . let len = self.len(); . if index > len { . assert_failed(index, len); . } . . // space for the new element 4 ( 0.00%) if len == self.buf.capacity() { 2 ( 0.00%) self.buf.grow_one(); 604 ( 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 (2x) . } . . unsafe { . // infallible . // The spot to put the new value . let p = self.as_mut_ptr().add(index); . { 4 ( 0.00%) if index < len { . // Shift everything over to make space. (Duplicating the . // `index`th element into two consecutive places.) . ptr::copy(p, p.add(1), len - index); . } . // Write it in, overwriting the first copy of the `index`th . // element. . ptr::write(p, element); . } 2 ( 0.00%) self.set_len(len + 1); . &mut *p . } . } . . /// Removes and returns the element at position `index` within the vector, . /// shifting all elements after it to the left. . /// . /// Note: Because this shifts over the remaining elements, it has a -- line 2374 ---------------------------------------- -- line 2473 ---------------------------------------- . /// ``` . /// let mut vec = vec![1, 2, 3, 4, 5]; . /// let keep = [false, true, true, false, true]; . /// let mut iter = keep.iter(); . /// vec.retain(|_| *iter.next().unwrap()); . /// assert_eq!(vec, [2, 3, 5]); . /// ``` . #[stable(feature = "rust1", since = "1.0.0")] 9 ( 0.00%) pub fn retain(&mut self, mut f: F) . where . F: FnMut(&T) -> bool, . { 34 ( 0.00%) self.retain_mut(|elem| f(elem)); 22 ( 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(); . 278 ( 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) }; 65 ( 0.00%) if hint::unlikely(!f(cur)) { 761 ( 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:>::retain::<>::multipart_suggestion_with_style<&str>::{closure#0}>::{closure#0} (2x) . break; . } 22 ( 0.00%) read += 1; 48 ( 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)) }; . 178 ( 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) }; 75 ( 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); . } 75 ( 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 2614 ---------------------------------------- . /// ``` . #[stable(feature = "dedup_by", since = "1.16.0")] . #[inline] . pub fn dedup_by_key(&mut self, mut key: F) . where . F: FnMut(&mut T) -> K, . K: PartialEq, . { 15 ( 0.00%) self.dedup_by(|a, b| key(a) == key(b)) 525 ( 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:>::dedup_by::<>::dedup_by_key<::check_uninlined_args::{closure#2}, rustc_span::span_encoding::Span>::{closure#0}> (15x) . } . . /// Removes all but the first of consecutive elements in the vector that are . /// "equal" according to the given predicate function. . /// . /// The predicate `same_bucket(x, p)` is passed references to two elements. . /// If it returns `true`, the element `x` is removed from the vector. . /// -- line 2630 ---------------------------------------- -- line 2662 ---------------------------------------- . /// } else { . /// false . /// } . /// }); . /// . /// assert_eq!(ranges, [1..5, 8..9]); . /// ``` . #[stable(feature = "dedup_by", since = "1.16.0")] 105 ( 0.00%) pub fn dedup_by(&mut self, mut same_bucket: F) . where . F: FnMut(&mut T, &mut T) -> bool, . { . let len = self.len(); 30 ( 0.00%) if len <= 1 { . return; . } . . // Check if we ever want to remove anything. . // This allows to use copy_non_overlapping in next cycle. . // And avoids any memory writes if we don't need to remove anything. . let mut first_duplicate_idx: usize = 1; . let start = self.as_mut_ptr(); 165 ( 0.00%) while first_duplicate_idx != len { . let found_duplicate = unsafe { . // SAFETY: first_duplicate always in range [1..len) . // Note that we start iteration from 1 so we never overflow. . let prev = start.add(first_duplicate_idx.wrapping_sub(1)); . let current = start.add(first_duplicate_idx); . // We explicitly say in docs that references are reversed. 15 ( 0.00%) same_bucket(&mut *current, &mut *prev) . }; 15 ( 0.00%) if found_duplicate { . break; . } . first_duplicate_idx += 1; . } . // Don't need to remove anything. . // We cannot get bigger than len. . if first_duplicate_idx == len { . return; -- line 2701 ---------------------------------------- -- line 2788 ---------------------------------------- . } . . /* Technically we could let `gap` clean up with its Drop, but . * when `same_bucket` is guaranteed to not panic, this bloats a little . * the codegen, so we just do it manually */ . gap.vec.set_len(gap.write); . mem::forget(gap); . } 120 ( 0.00%) } . . /// Appends an element and returns a reference to it if there is sufficient spare capacity, . /// otherwise an error is returned with the element. . /// . /// Unlike [`push`] this method will not reallocate when there's insufficient capacity. . /// The caller should use [`reserve`] or [`try_reserve`] to ensure that there is enough capacity. . /// . /// [`push`]: Vec::push -- line 2804 ---------------------------------------- -- 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 { 39,076 ( 0.00%) if self.len == 0 { . None . } else { . unsafe { 26,437 ( 0.00%) self.len -= 1; . core::hint::assert_unchecked(self.len < self.capacity()); 179 ( 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 2893 ---------------------------------------- . /// . /// assert_eq!(vec.pop_if(pred), Some(4)); . /// assert_eq!(vec, [1, 2, 3]); . /// assert_eq!(vec.pop_if(pred), None); . /// ``` . #[stable(feature = "vec_pop_if", since = "1.86.0")] . pub fn pop_if(&mut self, predicate: impl FnOnce(&mut T) -> bool) -> Option { . let last = self.last_mut()?; 12 ( 0.00%) if predicate(last) { self.pop() } else { None } . } . . /// Returns a mutable reference to the last item in the vector, or . /// `None` if it is empty. . /// . /// # Examples . /// . /// Basic usage: -- line 2909 ---------------------------------------- -- 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(); 4,173 ( 0.00%) if count > 0 { . unsafe { . ptr::copy_nonoverlapping(other as *const T, self.as_mut_ptr().add(len), count) . }; . } 6,825 ( 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 { 2,200 ( 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 { 29,695 ( 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 { 26,004 ( 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. 6,162 ( 0.00%) fn clone(&self) -> Self { . let alloc = self.allocator().clone(); 29 ( 0.00%) <[T]>::to_vec_in(&**self, alloc) 7,878 ( 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) { 96 ( 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,221 ( 0.00%) >::from_iter(iter.into_iter()) 3,004 ( 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, alloc::vec::Vec<(&rustc_hir::hir::Lifetime, core::option::Option, rustc_span::span_encoding::Span)>, clippy_lints::ptr::mut_from_ref::get_lifetimes>, clippy_lints::ptr::mut_from_ref::check::{closure#0}>, clippy_lints::ptr::mut_from_ref::check::{closure#1}>, core::option::Option>>>::from_iter (6x) . } . } . . #[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()) 555 ( 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 4092 ---------------------------------------- . 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); . // } 32,050 ( 0.00%) while let Some(element) = iterator.next() { 1,433,858 ( 0.04%) => /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 (3,816x) . let len = self.len(); 10,027 ( 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,983 ( 0.00%) self.set_len(len + 1); . } . } . } . . // 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) { -- line 4119 ---------------------------------------- -- 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); 61 ( 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 . { 4,904 ( 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 11,880 ( 0.00%) self.as_mut_ptr().cast_slice(self.len).drop_in_place() . } . // RawVec handles deallocation 6,136 ( 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 ---------------------------------------- 124,480 ( 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; . 19,880 ( 0.00%) pub(super) fn check_block<'tcx>(cx: &LateContext<'tcx>, block: &'tcx Block<'_>) { . // we need both a let-binding stmt and an expr 8,520 ( 0.00%) if let Some(retexpr) = block.expr 2,545 ( 0.00%) && let Some(stmt) = block.stmts.last() 812 ( 0.00%) && let StmtKind::Let(local) = &stmt.kind 382 ( 0.00%) && local.ty.is_none() 178 ( 0.00%) && local.els.is_none() 1,246 ( 0.00%) && cx.tcx.hir_attrs(local.hir_id).is_empty() 10,476 ( 0.00%) => ???:::hir_attrs (178x) 704 ( 0.00%) && let Some(initexpr) = &local.init 498 ( 0.00%) && let PatKind::Binding(_, local_id, _, _) = local.pat.kind 1 ( 0.00%) && retexpr.res_local_id() == Some(local_id) 3 ( 0.00%) && (cx.sess().edition() >= Edition::Edition2024 || !last_statement_borrows(cx, initexpr)) 5 ( 0.00%) && !initexpr.span.in_external_macro(cx.sess().source_map()) 117 ( 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 (1x) 4 ( 0.00%) && !retexpr.span.in_external_macro(cx.sess().source_map()) 117 ( 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 (1x) 3 ( 0.00%) && !local.span.from_expansion() 6 ( 0.00%) && !span_contains_non_whitespace(cx, stmt.span.between(retexpr.span), false) 107 ( 0.00%) => ???:::between (1x) . { . span_lint_hir_and_then( . cx, . LET_AND_RETURN, . retexpr.hir_id, . retexpr.span, . "returning the result of a `let` binding from a block", . |err| { -- line 39 ---------------------------------------- -- line 60 ---------------------------------------- . err.multipart_suggestion( . "return the expression directly", . vec![(local.span, String::new()), (retexpr.span, sugg)], . app, . ); . }, . ); . } 19,880 ( 0.00%) } . fn last_statement_borrows<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) -> bool { . for_each_expr(cx.tcx, expr, |e| { 12 ( 0.00%) if let Some(def_id) = fn_def_id(cx, e) 112 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::fn_def_id (1x) 1 ( 0.00%) && cx . .tcx . .fn_sig(def_id) . .instantiate_identity() . .skip_norm_wip() . .skip_binder() . .output() 3 ( 0.00%) .walk() 7 ( 0.00%) => ???:::walk (1x) . .any(|arg| matches!(arg.kind(), GenericArgKind::Lifetime(re) if !re.is_static())) . { . ControlFlow::Break(()) . } else { . ControlFlow::Continue(()) . } . }) . .is_some() -- line 87 ---------------------------------------- 199 ( 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 { 652 ( 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<'_>) { 54,388 ( 0.00%) if let ExprKind::Assign(target, ..) = &expr.kind { . let mut base = target; 1,110 ( 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 ---------------------------------------- 326 ( 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/lock.rs -------------------------------------------------------------------------------- Ir -- line 48 ---------------------------------------- . } . } . . impl<'a, T: 'a> Drop for LockGuard<'a, T> { . #[inline] . fn drop(&mut self) { . // SAFETY (union access): We get `self.mode` from the lock operation so it is consistent . // with the `lock.mode` state. This means we access the right union fields. 113,602 ( 0.00%) match self.mode { . Mode::NoSync => { . let cell = unsafe { &self.lock.mode_union.no_sync }; . debug_assert!(cell.get()); . cell.set(false); 108 ( 0.00%) } . // SAFETY (unlock): We know that the lock is locked as this type is a proof of that. . Mode::Sync => unsafe { self.lock.mode_union.sync.unlock() }, . } . } . } . . union ModeUnion { . /// Indicates if the cell is locked. Only used if `Lock.mode` is `NoSync`. -- line 69 ---------------------------------------- -- line 143 ---------------------------------------- . #[cold] . fn lock_held() -> ! { . panic!("lock was already held") . } . . // SAFETY: This is safe since the union fields are used in accordance with `mode` . // which also must match `self.mode` due to the safety precondition. . unsafe { 204,788 ( 0.01%) match mode { . Mode::NoSync => { 216,792 ( 0.01%) if self.mode_union.no_sync.replace(LOCKED) == LOCKED { . hint::cold_path(); . lock_held() . } . } . Mode::Sync => self.mode_union.sync.lock(), . } . } . LockGuard { lock: self, marker: PhantomData, mode } . } . . #[inline(always)] . #[track_caller] . pub fn lock(&self) -> LockGuard<'_, T> { 102,394 ( 0.00%) unsafe { self.lock_assume(self.mode) } . } . } . . unsafe impl DynSend for Lock {} . unsafe impl DynSync for Lock {} . . impl Lock { . #[inline(always)] -- line 175 ---------------------------------------- 102,477 ( 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/mod.rs -------------------------------------------------------------------------------- Ir -- line 469 ---------------------------------------- . pub before_feature_tys: Ty<'tcx>, . /// Tuple containing the types of closure captures after the feature `capture_disjoint_fields` . pub after_feature_tys: Ty<'tcx>, . } . . impl TyCtxt<'_> { . #[inline] . pub fn opt_parent(self, id: DefId) -> Option { 77,389 ( 0.00%) self.def_key(id).parent.map(|index| DefId { index, ..id }) 8,500 ( 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/context.rs:::def_key:: (85x) . } . . #[inline] . #[track_caller] . pub fn parent(self, id: DefId) -> DefId { . match self.opt_parent(id) { . Some(id) => id, . // not `unwrap_or_else` to avoid breaking caller tracking -- line 485 ---------------------------------------- -- line 490 ---------------------------------------- . #[inline] . #[track_caller] . pub fn opt_local_parent(self, id: LocalDefId) -> Option { . self.opt_parent(id.to_def_id()).map(DefId::expect_local) . } . . #[inline] . #[track_caller] 1,000 ( 0.00%) pub fn local_parent(self, id: impl Into) -> LocalDefId { . self.parent(id.into().to_def_id()).expect_local() 375 ( 0.00%) } . . /// Compare def-ids based on their position in def-id tree, ancestor def-ids are considered . /// larger than descendant def-ids, and two different def-ids are considered unordered if . /// neither of them is an ancestor of the other. . fn def_id_partial_cmp(self, lhs: DefId, rhs: DefId) -> Option { . // Def-ids from different crates are always unordered. . if lhs.krate != rhs.krate { . return None; -- line 508 ---------------------------------------- -- line 536 ---------------------------------------- . self.def_id_partial_cmp(descendant.into(), ancestor.into()), . Some(Ordering::Less | Ordering::Equal) . ) . } . } . . impl Visibility { . pub fn is_public(self) -> bool { 818 ( 0.00%) matches!(self, Visibility::Public) . } . . pub fn map_id(self, f: impl FnOnce(Id) -> OutId) -> Visibility { . match self { . Visibility::Public => Visibility::Public, . Visibility::Restricted(id) => Visibility::Restricted(f(id)), . } . } -- line 552 ---------------------------------------- -- line 635 ---------------------------------------- . // the types of AST nodes. . #[derive(Copy, Clone, PartialEq, Eq, Hash)] . pub struct CReaderCacheKey { . pub cnum: Option, . pub pos: usize, . } . . /// Use this rather than `TyKind`, whenever possible. 208 ( 0.00%) #[derive(Copy, Clone, PartialEq, Eq, Hash, StableHash)] . #[rustc_diagnostic_item = "Ty"] . #[rustc_pass_by_value] . pub struct Ty<'tcx>(Interned<'tcx, WithCachedTypeInfo>>); . . impl<'tcx> rustc_type_ir::inherent::IntoKind for Ty<'tcx> { . type Kind = TyKind<'tcx>; . . fn kind(self) -> TyKind<'tcx> { 1,048 ( 0.00%) *self.kind() . } . } . . impl<'tcx> rustc_type_ir::Flags for Ty<'tcx> { . fn flags(&self) -> TypeFlags { 2,610 ( 0.00%) self.0.flags . } . . fn outer_exclusive_binder(&self) -> DebruijnIndex { . self.0.outer_exclusive_binder . } . } . . /// The crate outlives map is computed during typeck and contains the -- line 666 ---------------------------------------- -- line 771 ---------------------------------------- . res.pack() . } . } . . impl<'tcx> Term<'tcx> { . #[inline] . pub fn kind(self) -> TermKind<'tcx> { . let ptr = 14 ( 0.00%) unsafe { self.ptr.map_addr(|addr| NonZero::new_unchecked(addr.get() & !TAG_MASK)) }; . // SAFETY: use of `Interned::new_unchecked` here is ok because these . // pointers were originally created from `Interned` types in `pack()`, . // and this is just going in the other direction. . unsafe { 22 ( 0.00%) match self.ptr.addr().get() & TAG_MASK { . TYPE_TAG => TermKind::Ty(Ty(Interned::new_unchecked( . ptr.cast::>>().as_ref(), . ))), . CONST_TAG => TermKind::Const(ty::Const(Interned::new_unchecked( . ptr.cast::>>().as_ref(), . ))), . _ => core::intrinsics::unreachable(), . } -- line 792 ---------------------------------------- -- line 1211 ---------------------------------------- . /// Most of the time you only need to care about the `ParamEnv` . /// as the `TypingMode` is simply stored in the `InferCtxt`. . /// . /// However, there are some places which rely on trait solving . /// without using an `InferCtxt` themselves. For these to be . /// able to use the trait system they have to be able to initialize . /// such an `InferCtxt` with the right `typing_mode`, so they need . /// to track both. 666 ( 0.00%) #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, StableHash)] . #[derive(TypeVisitable, TypeFoldable)] . pub struct TypingEnv<'tcx> { . #[type_foldable(identity)] . #[type_visitable(ignore)] . typing_mode: TypingModeEqWrapper<'tcx>, . pub param_env: ParamEnv<'tcx>, . } . . impl<'tcx> TypingEnv<'tcx> { . pub fn new(param_env: ParamEnv<'tcx>, typing_mode: TypingMode<'tcx>) -> Self { 1,696 ( 0.00%) Self { typing_mode: TypingModeEqWrapper(typing_mode), param_env } . } . . pub fn typing_mode(&self) -> TypingMode<'tcx> { . self.typing_mode.0 . } . . /// Create a typing environment with no where-clauses in scope . /// where all opaque types and default associated items are revealed. -- line 1238 ---------------------------------------- -- line 1245 ---------------------------------------- . Self::new(ParamEnv::empty(), TypingMode::Codegen) . } . . /// Create a typing environment for use during analysis outside of a body. . /// . /// Using a typing environment inside of bodies is not supported as the body . /// may define opaque types. In this case the used functions have to be . /// converted to use proper canonical inputs instead. 4,636 ( 0.00%) pub fn non_body_analysis( . tcx: TyCtxt<'tcx>, . def_id: impl IntoQueryKey, . ) -> TypingEnv<'tcx> { . let def_id = def_id.into_query_key(); . Self::new(tcx.param_env(def_id), TypingMode::non_body_analysis()) 3,524 ( 0.00%) } . . /// Ideally we just use `TypingMode::PostTypeckUntilBorrowck`. . /// But that's not compatible with the old solver yet. . /// . /// FIXME: this should not be needed in the long term. . pub fn post_typeck_until_borrowck_for_mir_build( . tcx: TyCtxt<'tcx>, . def_id: LocalDefId, -- line 1267 ---------------------------------------- -- line 1333 ---------------------------------------- . // canonical queries in the trait solver, at which point we can readd this assert. . // . // As of writing this comment, this is only used when normalizing consts that mention . // params. . /* debug_assert!( . !value.has_placeholders(), . "{value:?} which has placeholder shouldn't be pseudo-canonicalized" . ); */ 760 ( 0.00%) PseudoCanonicalInput { typing_env: self, value } . } . } . . /// Similar to `CanonicalInput`, this carries the `typing_mode` and the environment . /// necessary to do any kind of trait solving inside of nested queries. . /// . /// Unlike proper canonicalization, this requires the `param_env` and the `value` to not . /// contain anything local to the `infcx` of the caller, so we don't actually canonicalize . /// anything. . /// . /// This should be created by using `infcx.pseudo_canonicalize_query(param_env, value)` . /// or by using `typing_env.as_query_input(value)`. . #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)] . #[derive(StableHash, TypeVisitable, TypeFoldable)] . pub struct PseudoCanonicalInput<'tcx, T> { 218 ( 0.00%) pub typing_env: TypingEnv<'tcx>, 94 ( 0.00%) pub value: T, . } . . #[derive(Copy, Clone, Debug, StableHash, Encodable, Decodable)] . pub struct Destructor { . /// The `DefId` of the destructor method . pub did: DefId, . } . -- line 1366 ---------------------------------------- -- line 1477 ---------------------------------------- . . #[inline] . pub fn ctor_kind(&self) -> Option { . self.ctor.map(|(kind, _)| kind) . } . . #[inline] . pub fn ctor_def_id(&self) -> Option { 134 ( 0.00%) self.ctor.map(|(_, def_id)| def_id) . } . . /// Returns the one field in this variant. . /// . /// `panic!`s if there are no fields or multiple fields. . #[inline] . pub fn single_field(&self) -> &FieldDef { . assert!(self.fields.len() == 1); -- line 1493 ---------------------------------------- -- line 1790 ---------------------------------------- . pack: min_pack, . flags, . field_shuffle_seed, . scalable: elt, . } . } . . /// Look up the name of a definition across crates. This does not look at HIR. 11,389 ( 0.00%) pub fn opt_item_name(self, def_id: impl IntoQueryKey) -> Option { . let def_id = def_id.into_query_key(); . if let Some(cnum) = def_id.as_crate_root() { . Some(self.crate_name(cnum)) . } else { 4,881 ( 0.00%) let def_key = self.def_key(def_id); 141,000 ( 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/context.rs:::def_key:: (1,627x) 9,762 ( 0.00%) match def_key.disambiguated_data.data { . // The name of a constructor is that of its parent. . rustc_hir::definitions::DefPathData::Ctor => self . .opt_item_name(DefId { krate: def_id.krate, index: def_key.parent.unwrap() }), . _ => def_key.get_opt_name(), . } . } 9,762 ( 0.00%) } . . /// Look up the name of a definition across crates. This does not look at HIR. . /// . /// This method will ICE if the corresponding item does not have a name. In these cases, use . /// [`opt_item_name`] instead. . /// . /// [`opt_item_name`]: Self::opt_item_name . pub fn item_name(self, id: impl IntoQueryKey) -> Symbol { . let id = id.into_query_key(); 5,845 ( 0.00%) self.opt_item_name(id).unwrap_or_else(|| { 290 ( 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:::opt_item_name:: (5x) . bug!("item_name: no name for {:?}", self.def_path(id)); . }) . } . . /// Look up the name and span of a definition. . /// . /// See [`item_name`][Self::item_name] for more information. . pub fn opt_item_ident(self, def_id: impl IntoQueryKey) -> Option { -- line 1829 ---------------------------------------- -- line 1987 ---------------------------------------- . /// Gets all attributes with the given name. . #[deprecated = "Though there are valid usecases for this method, especially when your attribute is not a parsed attribute, usually you want to call rustc_hir::find_attr! instead."] . pub fn get_attrs( . self, . did: impl Into, . attr: Symbol, . ) -> impl Iterator { . #[expect(deprecated)] 3,548 ( 0.00%) self.get_all_attrs(did).iter().filter(move |a: &&hir::Attribute| a.has_name(attr)) 176,466 ( 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:: (1,774x) . } . . /// Gets all attributes. . /// . /// To see if an item has a specific attribute, you should use . /// [`rustc_hir::find_attr!`] so you can use matching. . #[deprecated = "Though there are valid usecases for this method, especially when your attribute is not a parsed attribute, usually you want to call rustc_hir::find_attr! instead."] 18,369 ( 0.00%) pub fn get_all_attrs(self, did: impl Into) -> &'tcx [hir::Attribute] { . let did: DefId = did.into(); . if let Some(did) = did.as_local() { 6,114 ( 0.00%) self.hir_attrs(self.local_def_id_to_hir_id(did)) 87,600 ( 0.00%) => ???:::hir_attrs (1,774x) . } else { . self.attrs_for_def(did) . } 16,328 ( 0.00%) } . . pub fn get_attrs_by_path( . self, . did: DefId, . attr: &[Symbol], . ) -> impl Iterator { . let filter_fn = move |a: &&hir::Attribute| a.path_matches(attr); . if let Some(did) = did.as_local() { -- line 2018 ---------------------------------------- -- line 2148 ---------------------------------------- . let parent = self.parent(def_id); . let def_kind = self.def_kind(parent); . Some((parent, def_kind)) . } . . /// Returns the trait item that is implemented by the given item `DefId`. . pub fn trait_item_of(self, def_id: impl IntoQueryKey) -> Option { . let def_id = def_id.into_query_key(); 1,700 ( 0.00%) self.opt_associated_item(def_id)?.trait_item_def_id() 42,415 ( 0.00%) => ???:::opt_associated_item (425x) . } . . /// If the given `DefId` is an associated item of a trait, . /// returns the `DefId` of the trait; otherwise, returns `None`. . pub fn trait_of_assoc(self, def_id: DefId) -> Option { . match self.assoc_parent(def_id) { . Some((id, DefKind::Trait)) => Some(id), . _ => None, -- line 2164 ---------------------------------------- -- line 2201 ---------------------------------------- . } . . pub fn impl_polarity(self, def_id: impl IntoQueryKey) -> ty::ImplPolarity { . let def_id = def_id.into_query_key(); . self.impl_trait_header(def_id).polarity . } . . /// Given an `impl_id`, return the trait it implements. 23,868 ( 0.00%) pub fn impl_trait_ref( . self, . def_id: impl IntoQueryKey, . ) -> ty::EarlyBinder<'tcx, ty::TraitRef<'tcx>> { . let def_id = def_id.into_query_key(); 4,738 ( 0.00%) self.impl_trait_header(def_id).trait_ref 17,432 ( 0.00%) } . . /// Given an `impl_id`, return the trait it implements. . /// Returns `None` if it is an inherent impl. . pub fn impl_opt_trait_ref( . self, . def_id: impl IntoQueryKey, . ) -> Option>> { . let def_id = def_id.into_query_key(); . self.impl_is_of_trait(def_id).then(|| self.impl_trait_ref(def_id)) . } . . /// Given the `DefId` of an impl, returns the `DefId` of the trait it implements. . pub fn impl_trait_id(self, def_id: impl IntoQueryKey) -> DefId { . let def_id = def_id.into_query_key(); 4,827 ( 0.00%) self.impl_trait_ref(def_id).skip_binder().def_id 93,680 ( 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:: (1,609x) . } . . /// Given the `DefId` of an impl, returns the `DefId` of the trait it implements. . /// Returns `None` if it is an inherent impl. . pub fn impl_opt_trait_id(self, def_id: impl IntoQueryKey) -> Option { . let def_id = def_id.into_query_key(); . self.impl_is_of_trait(def_id).then(|| self.impl_trait_id(def_id)) . } -- line 2238 ---------------------------------------- -- line 2305 ---------------------------------------- . } . . /// Checks whether this is a `const fn`. Returns `false` for non-functions. . /// . /// Even if this returns `true`, constness may still be unstable! . #[inline] . pub fn is_const_fn(self, def_id: impl IntoQueryKey) -> bool { . let def_id = def_id.into_query_key(); 264 ( 0.00%) matches!( 132 ( 0.00%) self.def_kind(def_id), . DefKind::Fn | DefKind::AssocFn | DefKind::Ctor(_, CtorKind::Fn) | DefKind::Closure 66 ( 0.00%) ) && matches!(self.constness(def_id), hir::Constness::Const { .. }) . } . . /// Whether this item is conditionally constant for the purposes of the . /// effects implementation. . /// . /// This roughly corresponds to all const functions and other callable . /// items, along with const impls and traits, and associated types within . /// those impls and traits. -- line 2324 ---------------------------------------- 3,531 ( 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. 5,398 ( 0.00%) if matches!(kind, FnKind::Closure) || (span.from_expansion() && span.in_external_macro(cx.sess().source_map())) { . return; . } . 3,378 ( 0.00%) let mut line_count: u64 = 0; 1,689 ( 0.00%) let too_many = body.value.span.check_text(cx, |src| { . let mut in_comment = false; . let mut code_in_line; . 5,067 ( 0.00%) let function_lines = if matches!(body.value.kind, hir::ExprKind::Block(..)) 1,689 ( 0.00%) && src.as_bytes().first().copied() == Some(b'{') 1,689 ( 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(); 8,247 ( 0.00%) if line.is_empty() { . break; . } 16,028 ( 0.00%) if in_comment { 2 ( 0.00%) 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()); 48,078 ( 0.00%) code_in_line |= multi_idx > 0 && single_idx > 0; . // Implies multi_idx is below line.len() 16,026 ( 0.00%) if multi_idx < single_idx { . line = &line[multi_idx + 2..]; . in_comment = true; . continue; . } . } . break; . } 16,024 ( 0.00%) if code_in_line { 31,544 ( 0.00%) line_count += 1; . } . } 6,756 ( 0.00%) line_count > too_many_lines_threshold . }); . . if too_many { . span_lint( . cx, . TOO_MANY_LINES, . cx.tcx.def_span(def_id), 6 ( 0.00%) format!("this function has too many lines ({line_count}/{too_many_lines_threshold})"), . ); . } . } 88,124 ( 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 { 155,876 ( 0.00%) fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) { 44,536 ( 0.00%) if let ExprKind::FormatArgs(args) = &expr.kind { 322 ( 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()); . } 178,144 ( 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. 368 ( 0.00%) let arg_sp = if let Some(arg_sp) = walk_span_to_context(args.span, fmt_sp.ctxt) { 3,956 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/source.rs:clippy_utils::source::walk_span_to_context (46x) . 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. 449 ( 0.00%) while !fmt_sp.ctxt.is_root() { 1,666 ( 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) { 46 ( 0.00%) Some(call_sp) if call_sp.lo <= arg_sp.lo && arg_sp.hi <= call_sp.hi => { 92 ( 0.00%) fmt_sp = *call_sp; 184 ( 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(), . } . } . }; 230 ( 0.00%) if fmt_sp.ctxt.in_external_macro(sm) { 4,646 ( 0.00%) => ???:::in_external_macro (46x) . return true; . } 322 ( 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. 46 ( 0.00%) args.arguments 92 ( 0.00%) .explicit_args() 276 ( 0.00%) => ???:::explicit_args (46x) . .iter() 135 ( 0.00%) .try_fold(src.range.end, |start, arg| { 150 ( 0.00%) let expr_sp = walk_span_to_context(arg.expr.span, fmt_sp.ctxt)?.data(); 2,580 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/source.rs:clippy_utils::source::walk_span_to_context (30x) 90 ( 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 ---------------------------------------- 861 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/ptr/mod.rs -------------------------------------------------------------------------------- Ir -- line 134 ---------------------------------------- . style, . "use `std::ptr::eq` when comparing raw pointers" . } . . declare_lint_pass!(Ptr => [CMP_NULL, MUT_FROM_REF, PTR_ARG, PTR_EQ]); . . impl<'tcx> LateLintPass<'tcx> for Ptr { . fn check_trait_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx TraitItem<'_>) { 80 ( 0.00%) if let TraitItemKind::Fn(sig, trait_method) = &item.kind { . if matches!(trait_method, TraitFn::Provided(_)) { . // Handled by `check_body`. . return; . } . 60 ( 0.00%) mut_from_ref::check(cx, sig, None); 3,409 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/ptr/mut_from_ref.rs:clippy_lints::ptr::mut_from_ref::check (15x) 60 ( 0.00%) ptr_arg::check_trait_item(cx, item.owner_id, sig); 1,486 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/ptr/ptr_arg.rs:clippy_lints::ptr::ptr_arg::check_trait_item (15x) . } . } . 17,820 ( 0.00%) fn check_body(&mut self, cx: &LateContext<'tcx>, body: &Body<'tcx>) { 5,940 ( 0.00%) let mut parents = cx.tcx.hir_parent_iter(body.value.hir_id); 6,108 ( 0.00%) let (item_id, sig, is_trait_item) = match parents.next() { . Some((_, Node::Item(i))) => { 790 ( 0.00%) if let ItemKind::Fn { sig, .. } = &i.kind { . (i.owner_id, sig, false) . } else { . return; . } . }, . Some((_, Node::ImplItem(i))) => { 2,882 ( 0.00%) if !matches!(parents.next(), 4,323 ( 0.00%) Some((_, Node::Item(i))) if matches!(&i.kind, ItemKind::Impl(i) if i.of_trait.is_none()) . ) { . return; . } 448 ( 0.00%) if let ImplItemKind::Fn(sig, _) = &i.kind { . (i.owner_id, sig, false) . } else { . return; . } . }, . Some((_, Node::TraitItem(i))) => { 8 ( 0.00%) if let TraitItemKind::Fn(sig, _) = &i.kind { . (i.owner_id, sig, true) . } else { . return; . } . }, . _ => return, . }; . 1,888 ( 0.00%) mut_from_ref::check(cx, sig, Some(body)); 89,191 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/ptr/mut_from_ref.rs:clippy_lints::ptr::mut_from_ref::check (472x) 2,832 ( 0.00%) ptr_arg::check_body(cx, body, item_id, sig, is_trait_item); 188,037 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/ptr/ptr_arg.rs:clippy_lints::ptr::ptr_arg::check_body (472x) 16,312 ( 0.00%) } . . fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 1,528 ( 0.00%) if let ExprKind::Binary(op, l, r) = expr.kind 1,116 ( 0.00%) && (op.node == BinOpKind::Eq || op.node == BinOpKind::Ne) . { . #[expect( . clippy::collapsible_if, . reason = "the outer `if`s check the HIR, the inner ones run lints" . )] 918 ( 0.00%) if !cmp_null::check(cx, expr, op.node, l, r) { 203,002 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/ptr/cmp_null.rs:clippy_lints::ptr::cmp_null::check (102x) 612 ( 0.00%) ptr_eq::check(cx, op.node, l, r, expr.span); 19,858 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_lints/src/ptr/ptr_eq.rs:clippy_lints::ptr::ptr_eq::check (102x) . } . } . } . } 4,991 ( 0.00%) -------------------------------------------------------------------------------- -- Auto-annotated source: site/frontend/rust-clippy/clippy_lints/src/mem_replace.rs -------------------------------------------------------------------------------- Ir -- line 127 ---------------------------------------- . impl_lint_pass!(MemReplace => [ . MEM_REPLACE_OPTION_WITH_NONE, . MEM_REPLACE_OPTION_WITH_SOME, . MEM_REPLACE_WITH_DEFAULT, . MEM_REPLACE_WITH_UNINIT, . ]); . . fn check_replace_option_with_none(cx: &LateContext<'_>, src: &Expr<'_>, dest: &Expr<'_>, expr_span: Span) -> bool { 5 ( 0.00%) if is_none_expr(cx, src) { 22 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/res.rs:clippy_utils::is_none_expr (1x) . // Since this is a late pass (already type-checked), . // and we already know that the second argument is an . // `Option`, we do not need to check the first . // argument's type. All that's left is to get . // the replacee's expr after peeling off the `&mut` . let sugg_expr = peel_ref_operators(cx, dest); . let mut applicability = Applicability::MachineApplicable; . span_lint_and_sugg( -- line 143 ---------------------------------------- -- line 160 ---------------------------------------- . . fn check_replace_option_with_some( . cx: &LateContext<'_>, . src: &Expr<'_>, . dest: &Expr<'_>, . expr_span: Span, . msrv: Msrv, . ) -> bool { 5 ( 0.00%) if let Some(src_arg) = as_some_expr(cx, src) 4 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::as_some_expr (1x) . && msrv.meets(cx, msrvs::OPTION_REPLACE) . { . // We do not have to check for a `const` context here, because `core::mem::replace()` and . // `Option::replace()` have been const-stabilized simultaneously in version 1.83.0. . let sugg_expr = peel_ref_operators(cx, dest); . let mut applicability = Applicability::MachineApplicable; . span_lint_and_sugg( . cx, -- line 176 ---------------------------------------- -- line 186 ---------------------------------------- . applicability, . ); . true . } else { . false . } . } . 7 ( 0.00%) fn check_replace_with_uninit(cx: &LateContext<'_>, src: &Expr<'_>, dest: &Expr<'_>, expr_span: Span) { 8 ( 0.00%) if let Some(method_def_id) = cx.typeck_results().type_dependent_def_id(src.hir_id) 51 ( 0.00%) => ???:::type_dependent_def_id (1x) . // check if replacement is mem::MaybeUninit::uninit().assume_init() 7 ( 0.00%) && cx.tcx.is_diagnostic_item(sym::assume_init, method_def_id) 44 ( 0.00%) => ???:::is_diagnostic_item (1x) . { . let Some(top_crate) = std_or_core(cx) else { return }; . let mut applicability = Applicability::MachineApplicable; . span_lint_and_sugg( . cx, . MEM_REPLACE_WITH_UNINIT, . expr_span, . "replacing with `mem::MaybeUninit::uninit().assume_init()`", -- line 205 ---------------------------------------- -- line 208 ---------------------------------------- . "{top_crate}::ptr::read({})", . snippet_with_applicability(cx, dest.span, "", &mut applicability) . ), . applicability, . ); . return; . } . 2 ( 0.00%) if let ExprKind::Call(repl_func, []) = src.kind . && let ExprKind::Path(ref repl_func_qpath) = repl_func.kind . && let Some(repl_def_id) = cx.qpath_res(repl_func_qpath, repl_func.hir_id).opt_def_id() . { . let repl_name = cx.tcx.get_diagnostic_name(repl_def_id); . if repl_name == Some(sym::mem_uninitialized) { . let Some(top_crate) = std_or_core(cx) else { return }; . let mut applicability = Applicability::MachineApplicable; . span_lint_and_sugg( -- line 224 ---------------------------------------- -- line 239 ---------------------------------------- . MEM_REPLACE_WITH_UNINIT, . expr_span, . "replacing with `mem::zeroed()`", . None, . "consider using a default value or the `take_mut` crate instead", . ); . } . } 8 ( 0.00%) } . 13 ( 0.00%) fn check_replace_with_default( . cx: &LateContext<'_>, . src: &Expr<'_>, . dest: &Expr<'_>, . expr: &Expr<'_>, . msrv: Msrv, . ) -> bool { 6 ( 0.00%) if is_expr_used_or_unified(cx.tcx, expr) 190 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_expr_used_or_unified (1x) . // disable lint for primitives 2 ( 0.00%) && let expr_type = cx.typeck_results().expr_ty_adjusted(src) 69 ( 0.00%) => ???:::expr_ty_adjusted (1x) . && !is_non_aggregate_primitive_type(expr_type) 5 ( 0.00%) && is_default_equivalent(cx, src) 119 ( 0.00%) => /home/moon/git/rustc-perf/site/frontend/rust-clippy/clippy_utils/src/lib.rs:clippy_utils::is_default_equivalent (1x) . && !expr.span.in_external_macro(cx.tcx.sess.source_map()) . && let Some(top_crate) = std_or_core(cx) . && msrv.meets(cx, msrvs::MEM_TAKE) . { . span_lint_and_then( . cx, . MEM_REPLACE_WITH_DEFAULT, . expr.span, -- line 268 ---------------------------------------- -- line 279 ---------------------------------------- . applicability, . ); . }, . ); . true . } else { . false . } 8 ( 0.00%) } . . pub struct MemReplace { . msrv: Msrv, . } . . impl MemReplace { . pub fn new(conf: &'static Conf) -> Self { . Self { msrv: conf.msrv.into() } . } . } . . impl<'tcx> LateLintPass<'tcx> for MemReplace { 190,358 ( 0.00%) fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { 61,431 ( 0.00%) if let ExprKind::Call(func, [dest, src]) = expr.kind . // Check that `expr` is a call to `mem::replace()` 1,401 ( 0.00%) && let ExprKind::Path(ref func_qpath) = func.kind 1,868 ( 0.00%) && let Some(def_id) = cx.qpath_res(func_qpath, func.hir_id).opt_def_id() 16,351 ( 0.00%) => ???:::qpath_res (467x) 2,802 ( 0.00%) && cx.tcx.is_diagnostic_item(sym::mem_replace, def_id) 22,719 ( 0.00%) => ???:::is_diagnostic_item (467x) . // Check that second argument is `Option::None` 1 ( 0.00%) && !check_replace_option_with_none(cx, src, dest, expr.span) 1 ( 0.00%) && !check_replace_option_with_some(cx, src, dest, expr.span, self.msrv) 8 ( 0.00%) && !check_replace_with_default(cx, src, dest, expr, self.msrv) 418 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/mem_replace.rs:clippy_lints::mem_replace::check_replace_with_default (1x) . { 6 ( 0.00%) check_replace_with_uninit(cx, src, dest, expr.span); 135 ( 0.00%) => site/frontend/rust-clippy/clippy_lints/src/mem_replace.rs:clippy_lints::mem_replace::check_replace_with_uninit (1x) . } 217,552 ( 0.01%) } . } 1,872 ( 0.00%) -------------------------------------------------------------------------------- The following files chosen for auto-annotation could not be found: -------------------------------------------------------------------------------- /rust/deps/hashbrown-0.17.0/src/raw.rs /rust/deps/hashbrown-0.17.0/src/table.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.rs /rust/deps/indexmap-2.14.0/src/inner/entry.rs /rust/deps/indexmap-2.14.0/src/map.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/large.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 -------------------------------------------------------------------------------- 216,442,016 ( 5.32%) events annotated