From 2b03887add1ca379893ea11d649eab442706f514 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Fabian=20Gr=C3=BCnbichler?= Date: Sun, 23 Apr 2023 19:45:23 +0200 Subject: [PATCH] New upstream version 1.66.0+dfsg1 --- COPYRIGHT | 432 +- Cargo.lock | 344 +- RELEASES.md | 96 +- compiler/rustc/src/main.rs | 4 +- compiler/rustc_ast/Cargo.toml | 1 - compiler/rustc_ast/src/ast.rs | 43 +- compiler/rustc_ast/src/lib.rs | 2 - compiler/rustc_ast/src/mut_visit.rs | 17 +- compiler/rustc_ast/src/token.rs | 49 +- compiler/rustc_ast/src/tokenstream.rs | 150 +- compiler/rustc_ast/src/util/parser.rs | 4 +- compiler/rustc_ast/src/visit.rs | 24 +- compiler/rustc_ast_lowering/src/asm.rs | 23 +- compiler/rustc_ast_lowering/src/errors.rs | 236 +- compiler/rustc_ast_lowering/src/expr.rs | 87 +- compiler/rustc_ast_lowering/src/index.rs | 22 +- compiler/rustc_ast_lowering/src/item.rs | 99 +- compiler/rustc_ast_lowering/src/lib.rs | 158 +- compiler/rustc_ast_lowering/src/pat.rs | 2 +- compiler/rustc_ast_lowering/src/path.rs | 10 +- .../rustc_ast_passes/src/ast_validation.rs | 127 +- compiler/rustc_ast_passes/src/errors.rs | 127 +- compiler/rustc_ast_passes/src/feature_gate.rs | 291 +- compiler/rustc_ast_passes/src/lib.rs | 1 - compiler/rustc_ast_pretty/Cargo.toml | 1 - .../rustc_ast_pretty/src/pprust/state/expr.rs | 14 +- .../rustc_ast_pretty/src/pprust/state/item.rs | 2 +- compiler/rustc_attr/Cargo.toml | 1 - compiler/rustc_attr/src/lib.rs | 1 - .../rustc_attr/src/session_diagnostics.rs | 161 +- compiler/rustc_borrowck/Cargo.toml | 1 - .../src/constraint_generation.rs | 12 +- compiler/rustc_borrowck/src/consumers.rs | 9 +- .../src/diagnostics/bound_region_errors.rs | 152 +- .../src/diagnostics/conflict_errors.rs | 148 +- .../src/diagnostics/explain_borrow.rs | 156 +- .../rustc_borrowck/src/diagnostics/mod.rs | 16 +- .../src/diagnostics/move_errors.rs | 2 +- .../src/diagnostics/mutability_errors.rs | 5 +- .../src/diagnostics/region_errors.rs | 12 +- .../src/diagnostics/region_name.rs | 109 +- compiler/rustc_borrowck/src/lib.rs | 22 +- compiler/rustc_borrowck/src/nll.rs | 14 +- .../rustc_borrowck/src/places_conflict.rs | 13 + compiler/rustc_borrowck/src/prefixes.rs | 1 + .../rustc_borrowck/src/region_infer/mod.rs | 41 +- .../src/region_infer/opaque_types.rs | 374 +- compiler/rustc_borrowck/src/renumber.rs | 32 +- .../rustc_borrowck/src/session_diagnostics.rs | 71 +- .../src/type_check/canonical.rs | 17 +- .../src/type_check/constraint_conversion.rs | 4 +- .../src/type_check/free_region_relations.rs | 17 +- .../src/type_check/input_output.rs | 39 +- compiler/rustc_borrowck/src/type_check/mod.rs | 156 +- .../src/type_check/relate_tys.rs | 19 +- .../rustc_borrowck/src/universal_regions.rs | 10 +- .../src/assert/context.rs | 24 +- compiler/rustc_builtin_macros/src/cfg.rs | 10 +- compiler/rustc_builtin_macros/src/cfg_eval.rs | 73 +- .../src/deriving/bounds.rs | 1 + .../src/deriving/clone.rs | 1 + .../src/deriving/cmp/eq.rs | 1 + .../src/deriving/cmp/ord.rs | 1 + .../src/deriving/cmp/partial_eq.rs | 1 + .../src/deriving/cmp/partial_ord.rs | 1 + .../src/deriving/debug.rs | 1 + .../src/deriving/decodable.rs | 1 + .../src/deriving/default.rs | 20 + .../src/deriving/encodable.rs | 1 + .../src/deriving/generic/mod.rs | 13 +- .../rustc_builtin_macros/src/deriving/hash.rs | 1 + .../rustc_builtin_macros/src/deriving/mod.rs | 16 +- compiler/rustc_builtin_macros/src/format.rs | 1949 +- .../rustc_builtin_macros/src/format/ast.rs | 240 + .../rustc_builtin_macros/src/format/expand.rs | 353 + compiler/rustc_builtin_macros/src/lib.rs | 2 +- compiler/rustc_builtin_macros/src/test.rs | 39 +- .../rustc_builtin_macros/src/test_harness.rs | 15 +- .../.github/workflows/main.yml | 99 +- .../.vscode/settings.json | 6 +- compiler/rustc_codegen_cranelift/Cargo.lock | 62 +- compiler/rustc_codegen_cranelift/Cargo.toml | 14 +- .../build_sysroot/Cargo.lock | 38 +- .../build_system/abi_cafe.rs | 52 + .../build_system/abi_checker.rs | 60 - .../build_system/build_backend.rs | 16 +- .../build_system/build_sysroot.rs | 13 +- .../build_system/config.rs | 3 +- .../build_system/mod.rs | 21 +- .../build_system/prepare.rs | 186 +- .../build_system/rustc_info.rs | 2 +- .../build_system/tests.rs | 179 +- .../build_system/utils.rs | 46 + compiler/rustc_codegen_cranelift/clean_all.sh | 6 +- compiler/rustc_codegen_cranelift/config.txt | 2 +- .../example/issue-91827-extern-types.rs | 1 - .../example/mini_core.rs | 6 + .../example/mini_core_hello_world.rs | 1 + .../example/std_example.rs | 2 +- ...e-some-test-on-x86_64-pc-windows-gnu.patch | 29 + ...01-abi-checker-Disable-failing-tests.patch | 36 - ...table-simd-Disable-unsupported-tests.patch | 96 +- ...003-rand-Disable-rand-tests-on-mingw.patch | 47 + .../rustc_codegen_cranelift/rust-toolchain | 2 +- .../scripts/setup_rust_fork.sh | 6 + .../scripts/test_rustc_tests.sh | 8 +- .../rustc_codegen_cranelift/src/abi/mod.rs | 53 +- .../src/abi/pass_mode.rs | 2 +- .../rustc_codegen_cranelift/src/allocator.rs | 4 +- .../rustc_codegen_cranelift/src/archive.rs | 2 + compiler/rustc_codegen_cranelift/src/base.rs | 26 +- .../src/concurrency_limiter.rs | 17 +- .../rustc_codegen_cranelift/src/constant.rs | 112 +- .../rustc_codegen_cranelift/src/driver/aot.rs | 2 +- .../rustc_codegen_cranelift/src/driver/jit.rs | 51 +- .../rustc_codegen_cranelift/src/inline_asm.rs | 22 +- .../src/intrinsics/llvm.rs | 7 +- .../src/intrinsics/mod.rs | 62 +- .../src/intrinsics/simd.rs | 128 +- compiler/rustc_codegen_cranelift/src/lib.rs | 14 +- .../rustc_codegen_cranelift/src/main_shim.rs | 2 +- compiler/rustc_codegen_cranelift/src/num.rs | 61 +- .../rustc_codegen_cranelift/src/unsize.rs | 40 +- .../src/value_and_place.rs | 56 + .../rustc_codegen_cranelift/src/vtable.rs | 26 +- compiler/rustc_codegen_gcc/src/abi.rs | 4 - compiler/rustc_codegen_gcc/src/archive.rs | 4 +- compiler/rustc_codegen_gcc/src/asm.rs | 5 +- compiler/rustc_codegen_gcc/src/builder.rs | 37 +- compiler/rustc_codegen_gcc/src/consts.rs | 6 +- compiler/rustc_codegen_gcc/src/context.rs | 24 +- compiler/rustc_codegen_gcc/src/errors.rs | 242 + .../rustc_codegen_gcc/src/intrinsic/mod.rs | 19 +- .../rustc_codegen_gcc/src/intrinsic/simd.rs | 204 +- compiler/rustc_codegen_gcc/src/lib.rs | 17 +- compiler/rustc_codegen_gcc/tests/run/asm.rs | 9 +- compiler/rustc_codegen_gcc/tests/run/int.rs | 2 +- compiler/rustc_codegen_llvm/Cargo.toml | 3 +- compiler/rustc_codegen_llvm/src/abi.rs | 4 - compiler/rustc_codegen_llvm/src/asm.rs | 8 +- .../rustc_codegen_llvm/src/back/archive.rs | 67 +- compiler/rustc_codegen_llvm/src/back/lto.rs | 99 +- compiler/rustc_codegen_llvm/src/back/write.rs | 261 +- compiler/rustc_codegen_llvm/src/base.rs | 13 +- compiler/rustc_codegen_llvm/src/builder.rs | 56 +- compiler/rustc_codegen_llvm/src/callee.rs | 3 +- compiler/rustc_codegen_llvm/src/consts.rs | 7 +- compiler/rustc_codegen_llvm/src/context.rs | 26 +- .../src/coverageinfo/mapgen.rs | 2 +- compiler/rustc_codegen_llvm/src/declare.rs | 12 +- compiler/rustc_codegen_llvm/src/intrinsic.rs | 52 +- compiler/rustc_codegen_llvm/src/lib.rs | 8 - compiler/rustc_codegen_llvm/src/llvm/ffi.rs | 110 +- compiler/rustc_codegen_llvm/src/llvm_util.rs | 36 +- compiler/rustc_codegen_ssa/src/back/link.rs | 241 +- compiler/rustc_codegen_ssa/src/back/linker.rs | 151 +- .../src/back/symbol_export.rs | 13 +- compiler/rustc_codegen_ssa/src/back/write.rs | 63 +- compiler/rustc_codegen_ssa/src/base.rs | 112 +- compiler/rustc_codegen_ssa/src/common.rs | 5 +- .../src/debuginfo/type_names.rs | 6 +- compiler/rustc_codegen_ssa/src/errors.rs | 356 + compiler/rustc_codegen_ssa/src/lib.rs | 3 +- compiler/rustc_codegen_ssa/src/mir/block.rs | 104 +- compiler/rustc_codegen_ssa/src/mir/mod.rs | 20 +- compiler/rustc_codegen_ssa/src/mir/operand.rs | 2 +- compiler/rustc_codegen_ssa/src/mir/place.rs | 16 + compiler/rustc_codegen_ssa/src/mir/rvalue.rs | 28 +- .../rustc_codegen_ssa/src/target_features.rs | 208 +- compiler/rustc_codegen_ssa/src/traits/abi.rs | 3 - .../rustc_codegen_ssa/src/traits/backend.rs | 2 - .../rustc_codegen_ssa/src/traits/builder.rs | 6 +- .../rustc_codegen_ssa/src/traits/intrinsic.rs | 2 +- compiler/rustc_codegen_ssa/src/traits/misc.rs | 4 - .../rustc_codegen_ssa/src/traits/type_.rs | 7 +- .../rustc_codegen_ssa/src/traits/write.rs | 1 - compiler/rustc_const_eval/Cargo.toml | 1 - .../rustc_const_eval/src/const_eval/error.rs | 78 +- .../src/const_eval/eval_queries.rs | 52 +- .../src/const_eval/machine.rs | 16 +- .../rustc_const_eval/src/const_eval/mod.rs | 8 +- .../src/const_eval/valtrees.rs | 4 +- compiler/rustc_const_eval/src/errors.rs | 104 +- .../rustc_const_eval/src/interpret/cast.rs | 108 +- .../src/interpret/eval_context.rs | 25 +- .../rustc_const_eval/src/interpret/intern.rs | 14 +- .../interpret/intrinsics/caller_location.rs | 1 - .../src/interpret/intrinsics/type_name.rs | 6 +- .../rustc_const_eval/src/interpret/machine.rs | 2 +- .../rustc_const_eval/src/interpret/memory.rs | 2 +- .../rustc_const_eval/src/interpret/operand.rs | 75 +- .../rustc_const_eval/src/interpret/place.rs | 25 +- .../src/interpret/projection.rs | 10 + .../src/interpret/terminator.rs | 1 - .../src/interpret/validity.rs | 9 +- compiler/rustc_const_eval/src/lib.rs | 10 +- .../src/might_permit_raw_init.rs | 44 - .../src/transform/check_consts/check.rs | 81 +- .../src/transform/check_consts/ops.rs | 20 +- .../check_consts/post_drop_elaboration.rs | 12 +- .../src/transform/check_consts/qualifs.rs | 64 +- .../src/transform/check_consts/resolver.rs | 6 +- .../src/transform/promote_consts.rs | 9 +- .../src/transform/validate.rs | 45 +- .../src/util/might_permit_raw_init.rs | 151 + compiler/rustc_const_eval/src/util/mod.rs | 2 + compiler/rustc_data_structures/Cargo.toml | 1 - .../rustc_data_structures/src/flock/linux.rs | 7 +- .../src/graph/vec_graph/mod.rs | 4 +- compiler/rustc_data_structures/src/lib.rs | 3 +- .../src/obligation_forest/mod.rs | 37 +- .../src/obligation_forest/tests.rs | 8 +- .../rustc_data_structures/src/profiling.rs | 64 +- .../rustc_data_structures/src/sorted_map.rs | 17 + compiler/rustc_data_structures/src/sso/set.rs | 2 +- .../src/transitive_relation.rs | 12 +- compiler/rustc_data_structures/src/unord.rs | 382 + compiler/rustc_driver/Cargo.toml | 2 +- compiler/rustc_driver/src/lib.rs | 61 +- compiler/rustc_driver/src/pretty.rs | 4 +- .../rustc_driver/src/session_diagnostics.rs | 30 +- compiler/rustc_error_codes/src/error_codes.rs | 2 +- .../src/error_codes/E0045.md | 4 +- .../src/error_codes/E0092.md | 2 +- .../src/error_codes/E0094.md | 2 + .../src/error_codes/E0161.md | 7 +- .../src/error_codes/E0210.md | 2 - .../src/error_codes/E0211.md | 2 + .../src/error_codes/E0311.md | 42 + .../src/error_codes/E0579.md | 4 +- .../src/error_codes/E0591.md | 4 +- .../src/error_codes/E0622.md | 2 +- .../src/error_codes/E0732.md | 4 - .../src/error_codes/E0743.md | 2 - compiler/rustc_error_messages/Cargo.toml | 1 - .../locales/en-US/ast_lowering.ftl | 4 +- .../locales/en-US/codegen_gcc.ftl | 68 + .../locales/en-US/codegen_ssa.ftl | 121 + .../locales/en-US/compiletest.ftl | 5 + .../locales/en-US/errors.ftl | 13 + .../en-US/{typeck.ftl => hir_analysis.ftl} | 83 +- .../locales/en-US/infer.ftl | 4 +- .../locales/en-US/lint.ftl | 7 +- .../locales/en-US/metadata.ftl | 2 + .../locales/en-US/middle.ftl | 12 + .../locales/en-US/parser.ftl | 217 +- .../locales/en-US/passes.ftl | 563 +- .../locales/en-US/privacy.ftl | 2 +- .../locales/en-US/query_system.ftl | 5 + .../locales/en-US/session.ftl | 20 +- compiler/rustc_error_messages/src/lib.rs | 77 +- compiler/rustc_errors/Cargo.toml | 3 +- .../src/annotate_snippet_emitter_writer.rs | 4 +- compiler/rustc_errors/src/diagnostic.rs | 262 +- .../rustc_errors/src/diagnostic_builder.rs | 99 +- compiler/rustc_errors/src/diagnostic_impls.rs | 222 + compiler/rustc_errors/src/emitter.rs | 4 +- compiler/rustc_errors/src/json.rs | 4 +- compiler/rustc_errors/src/lib.rs | 81 +- compiler/rustc_errors/src/translation.rs | 34 +- compiler/rustc_expand/src/base.rs | 59 +- compiler/rustc_expand/src/build.rs | 4 + compiler/rustc_expand/src/config.rs | 10 +- compiler/rustc_expand/src/errors.rs | 26 +- compiler/rustc_expand/src/expand.rs | 72 +- compiler/rustc_expand/src/lib.rs | 1 - compiler/rustc_expand/src/mbe/macro_rules.rs | 26 +- compiler/rustc_expand/src/placeholders.rs | 8 + .../rustc_expand/src/proc_macro_server.rs | 146 +- .../rustc_expand/src/tokenstream/tests.rs | 18 +- compiler/rustc_feature/Cargo.toml | 1 - compiler/rustc_feature/src/accepted.rs | 6 + compiler/rustc_feature/src/active.rs | 10 +- compiler/rustc_feature/src/builtin_attrs.rs | 43 +- compiler/rustc_hir/Cargo.toml | 1 - compiler/rustc_hir/src/def.rs | 125 +- compiler/rustc_hir/src/hir.rs | 97 +- compiler/rustc_hir/src/hir_id.rs | 60 +- compiler/rustc_hir/src/intravisit.rs | 20 +- compiler/rustc_hir/src/lib.rs | 3 +- compiler/rustc_hir/src/stable_hash_impls.rs | 10 +- .../Cargo.toml | 3 +- .../README.md | 0 .../src/astconv/errors.rs | 0 .../src/astconv/generics.rs | 15 +- .../src/astconv/mod.rs | 214 +- .../src/bounds.rs | 0 .../src/check/check.rs | 588 +- .../src/check/compare_method.rs | 1099 +- .../src/check/dropck.rs | 12 +- .../src/check/intrinsic.rs | 32 +- .../src/check/intrinsicck.rs | 112 +- .../src/check/mod.rs | 504 +- .../src/check/region.rs | 8 +- .../src/check/wfcheck.rs | 195 +- .../src/check_unused.rs | 31 +- .../src/coherence/builtin.rs | 572 + .../src/coherence/inherent_impls.rs | 18 +- .../src/coherence/inherent_impls_overlap.rs | 58 +- .../src/coherence/mod.rs | 0 .../src/coherence/orphan.rs | 38 +- .../src/coherence/unsafety.rs | 32 +- .../src/collect.rs | 1302 +- .../src/collect/generics_of.rs | 481 + .../src/collect/item_bounds.rs | 0 .../src/collect}/lifetimes.rs | 139 +- .../src/collect/predicates_of.rs | 707 + .../src/collect/type_of.rs | 128 +- .../src/constrained_generic_params.rs | 10 +- .../src/errors.rs | 233 +- .../src/hir_wf_check.rs | 58 +- .../src/impl_wf_check.rs | 43 +- .../src/impl_wf_check/min_specialization.rs | 98 +- .../src/lib.rs | 81 +- .../src/outlives/explicit.rs | 0 .../src/outlives/implicit_infer.rs | 4 +- .../src/outlives/mod.rs | 0 .../src/outlives/test.rs | 6 +- .../src/outlives/utils.rs | 17 + .../src/structured_errors.rs | 0 .../missing_cast_for_variadic_arg.rs | 0 .../structured_errors/sized_unsized_cast.rs | 0 .../wrong_number_of_generic_args.rs | 0 .../src/variance/constraints.rs | 0 .../src/variance/mod.rs | 0 .../src/variance/solve.rs | 0 .../src/variance/terms.rs | 0 .../src/variance/test.rs | 7 +- .../src/variance/xform.rs | 0 compiler/rustc_hir_pretty/Cargo.toml | 1 - compiler/rustc_hir_pretty/src/lib.rs | 8 +- compiler/rustc_hir_typeck/Cargo.toml | 28 + .../check => rustc_hir_typeck/src}/_match.rs | 19 +- .../src}/autoderef.rs | 0 .../check => rustc_hir_typeck/src}/callee.rs | 401 +- .../check => rustc_hir_typeck/src}/cast.rs | 174 +- compiler/rustc_hir_typeck/src/check.rs | 324 + .../check => rustc_hir_typeck/src}/closure.rs | 37 +- .../src}/coercion.rs | 83 +- .../check => rustc_hir_typeck/src}/demand.rs | 135 +- .../src}/diverges.rs | 0 compiler/rustc_hir_typeck/src/errors.rs | 126 + .../src}/expectation.rs | 0 .../check => rustc_hir_typeck/src}/expr.rs | 118 +- .../src/expr_use_visitor.rs | 15 +- .../src}/fallback.rs | 4 +- .../src}/fn_ctxt/_impl.rs | 116 +- .../src}/fn_ctxt/arg_matrix.rs | 0 .../src}/fn_ctxt/checks.rs | 72 +- .../src}/fn_ctxt/mod.rs | 26 +- .../src}/fn_ctxt/suggestions.rs | 199 +- .../src}/gather_locals.rs | 3 +- .../drop_ranges/cfg_build.rs | 2 +- .../drop_ranges/cfg_propagate.rs | 0 .../drop_ranges/cfg_visualize.rs | 0 .../generator_interior/drop_ranges/mod.rs} | 2 +- .../drop_ranges/record_consumed_borrow.rs | 15 +- .../src/generator_interior/mod.rs} | 49 +- .../src}/inherited.rs | 38 +- compiler/rustc_hir_typeck/src/intrinsicck.rs | 108 + compiler/rustc_hir_typeck/src/lib.rs | 507 + .../src/mem_categorization.rs | 24 +- .../src}/method/confirm.rs | 6 +- .../src}/method/mod.rs | 5 +- .../src}/method/prelude2021.rs | 121 +- .../src}/method/probe.rs | 163 +- .../src}/method/suggest.rs | 388 +- .../src/check => rustc_hir_typeck/src}/op.rs | 15 +- .../src/check => rustc_hir_typeck/src}/pat.rs | 10 +- .../src}/place_op.rs | 4 +- .../src}/rvalue_scopes.rs | 0 .../check => rustc_hir_typeck/src}/upvar.rs | 28 +- .../src}/writeback.rs | 79 +- compiler/rustc_incremental/Cargo.toml | 1 - compiler/rustc_incremental/src/lib.rs | 1 - .../src/persist/dirty_clean.rs | 10 +- compiler/rustc_index/Cargo.toml | 1 - compiler/rustc_index/src/lib.rs | 2 - compiler/rustc_infer/src/errors/mod.rs | 178 +- .../src/errors/note_and_explain.rs | 15 +- compiler/rustc_infer/src/infer/at.rs | 7 +- .../src/infer/canonical/canonicalizer.rs | 6 +- .../rustc_infer/src/infer/canonical/mod.rs | 2 +- .../src/infer/canonical/query_response.rs | 20 +- compiler/rustc_infer/src/infer/combine.rs | 57 +- compiler/rustc_infer/src/infer/equate.rs | 19 + .../src/infer/error_reporting/mod.rs | 304 +- .../infer/error_reporting/need_type_info.rs | 88 +- .../nice_region_error/different_lifetimes.rs | 2 +- .../mismatched_static_lifetime.rs | 18 +- .../error_reporting/nice_region_error/mod.rs | 18 +- .../nice_region_error/placeholder_error.rs | 4 +- .../nice_region_error/static_impl_trait.rs | 31 +- .../trait_impl_difference.rs | 7 +- .../error_reporting/nice_region_error/util.rs | 2 +- .../src/infer/error_reporting/note.rs | 31 +- compiler/rustc_infer/src/infer/freshen.rs | 4 +- compiler/rustc_infer/src/infer/fudge.rs | 4 +- compiler/rustc_infer/src/infer/glb.rs | 2 +- .../src/infer/higher_ranked/mod.rs | 4 +- compiler/rustc_infer/src/infer/lattice.rs | 2 +- compiler/rustc_infer/src/infer/lub.rs | 2 +- compiler/rustc_infer/src/infer/mod.rs | 300 +- .../rustc_infer/src/infer/nll_relate/mod.rs | 27 +- .../rustc_infer/src/infer/opaque_types.rs | 53 +- .../src/infer/outlives/components.rs | 17 +- .../rustc_infer/src/infer/outlives/env.rs | 12 +- .../src/infer/outlives/obligations.rs | 150 +- .../rustc_infer/src/infer/outlives/verify.rs | 111 +- compiler/rustc_infer/src/infer/projection.rs | 2 +- .../infer/region_constraints/leak_check.rs | 2 +- .../src/infer/region_constraints/mod.rs | 10 + compiler/rustc_infer/src/infer/resolve.rs | 25 +- compiler/rustc_infer/src/infer/sub.rs | 61 +- compiler/rustc_infer/src/lib.rs | 5 +- compiler/rustc_infer/src/traits/engine.rs | 15 +- .../src/traits/error_reporting/mod.rs | 2 +- compiler/rustc_infer/src/traits/mod.rs | 10 + .../src/traits/structural_impls.rs | 1 + compiler/rustc_infer/src/traits/util.rs | 12 +- compiler/rustc_interface/Cargo.toml | 4 +- compiler/rustc_interface/src/errors.rs | 58 +- compiler/rustc_interface/src/interface.rs | 109 +- compiler/rustc_interface/src/lib.rs | 1 - compiler/rustc_interface/src/passes.rs | 23 +- .../rustc_interface/src/proc_macro_decls.rs | 5 +- compiler/rustc_interface/src/queries.rs | 4 + compiler/rustc_interface/src/tests.rs | 43 +- compiler/rustc_interface/src/util.rs | 122 +- compiler/rustc_lexer/Cargo.toml | 1 - compiler/rustc_lexer/src/cursor.rs | 16 +- compiler/rustc_lexer/src/lib.rs | 76 +- compiler/rustc_lexer/src/unescape.rs | 27 +- compiler/rustc_lint/Cargo.toml | 2 +- compiler/rustc_lint/src/array_into_iter.rs | 62 +- compiler/rustc_lint/src/builtin.rs | 896 +- compiler/rustc_lint/src/context.rs | 91 +- compiler/rustc_lint/src/early.rs | 8 +- .../src/enum_intrinsics_non_enums.rs | 26 +- compiler/rustc_lint/src/errors.rs | 90 +- compiler/rustc_lint/src/expect.rs | 14 +- .../src/for_loops_over_fallibles.rs | 183 + .../src/hidden_unicode_codepoints.rs | 94 +- compiler/rustc_lint/src/internal.rs | 215 +- compiler/rustc_lint/src/late.rs | 25 +- compiler/rustc_lint/src/let_underscore.rs | 67 +- compiler/rustc_lint/src/levels.rs | 957 +- compiler/rustc_lint/src/lib.rs | 15 +- compiler/rustc_lint/src/methods.rs | 19 +- compiler/rustc_lint/src/non_ascii_idents.rs | 68 +- compiler/rustc_lint/src/non_fmt_panic.rs | 113 +- compiler/rustc_lint/src/nonstandard_style.rs | 111 +- compiler/rustc_lint/src/noop_method_call.rs | 27 +- .../src/opaque_hidden_inferred_bound.rs | 163 + compiler/rustc_lint/src/pass_by_value.rs | 18 +- .../rustc_lint/src/redundant_semicolon.rs | 19 +- compiler/rustc_lint/src/traits.rs | 36 +- compiler/rustc_lint/src/types.rs | 389 +- compiler/rustc_lint/src/unused.rs | 169 +- compiler/rustc_lint_defs/src/builtin.rs | 37 +- compiler/rustc_lint_defs/src/lib.rs | 34 +- .../rustc_llvm/llvm-wrapper/PassWrapper.cpp | 260 +- .../rustc_llvm/llvm-wrapper/RustWrapper.cpp | 47 +- .../src/diagnostics/diagnostic.rs | 197 +- .../src/diagnostics/diagnostic_builder.rs | 743 +- .../rustc_macros/src/diagnostics/fluent.rs | 65 +- compiler/rustc_macros/src/diagnostics/mod.rs | 36 +- .../src/diagnostics/subdiagnostic.rs | 492 +- .../rustc_macros/src/diagnostics/utils.rs | 421 +- compiler/rustc_macros/src/lib.rs | 5 +- compiler/rustc_macros/src/query.rs | 52 +- compiler/rustc_metadata/Cargo.toml | 1 - compiler/rustc_metadata/src/errors.rs | 384 +- .../rustc_metadata/src/foreign_modules.rs | 6 +- compiler/rustc_metadata/src/lib.rs | 2 - compiler/rustc_metadata/src/native_libs.rs | 41 +- compiler/rustc_metadata/src/rmeta/decoder.rs | 79 +- .../src/rmeta/decoder/cstore_impl.rs | 27 +- compiler/rustc_metadata/src/rmeta/encoder.rs | 518 +- compiler/rustc_metadata/src/rmeta/mod.rs | 10 +- compiler/rustc_middle/Cargo.toml | 2 - compiler/rustc_middle/benches/lib.rs | 54 - compiler/rustc_middle/src/arena.rs | 5 +- .../rustc_middle/src/dep_graph/dep_node.rs | 152 +- compiler/rustc_middle/src/dep_graph/mod.rs | 52 +- compiler/rustc_middle/src/error.rs | 27 +- compiler/rustc_middle/src/hir/map/mod.rs | 129 +- compiler/rustc_middle/src/hir/mod.rs | 36 +- compiler/rustc_middle/src/infer/unify_key.rs | 2 +- compiler/rustc_middle/src/lib.rs | 6 +- compiler/rustc_middle/src/lint.rs | 329 +- compiler/rustc_middle/src/macros.rs | 13 +- compiler/rustc_middle/src/middle/limits.rs | 2 +- compiler/rustc_middle/src/middle/privacy.rs | 214 +- .../src/middle/resolve_lifetime.rs | 15 +- compiler/rustc_middle/src/middle/stability.rs | 11 +- .../rustc_middle/src/mir/interpret/error.rs | 19 +- .../rustc_middle/src/mir/interpret/pointer.rs | 2 +- .../rustc_middle/src/mir/interpret/queries.rs | 42 +- compiler/rustc_middle/src/mir/mod.rs | 114 +- compiler/rustc_middle/src/mir/mono.rs | 6 +- compiler/rustc_middle/src/mir/pretty.rs | 3 +- compiler/rustc_middle/src/mir/query.rs | 9 +- compiler/rustc_middle/src/mir/syntax.rs | 26 +- compiler/rustc_middle/src/mir/tcx.rs | 5 +- .../rustc_middle/src/mir/type_foldable.rs | 28 +- .../rustc_middle/src/mir/type_visitable.rs | 19 - compiler/rustc_middle/src/mir/visit.rs | 7 +- compiler/rustc_middle/src/query/mod.rs | 302 +- compiler/rustc_middle/src/thir.rs | 9 +- compiler/rustc_middle/src/traits/mod.rs | 16 +- compiler/rustc_middle/src/traits/query.rs | 4 +- compiler/rustc_middle/src/traits/select.rs | 12 +- .../src/traits/structural_impls.rs | 2 - .../rustc_middle/src/ty/abstract_const.rs | 12 +- compiler/rustc_middle/src/ty/adjustment.rs | 3 + compiler/rustc_middle/src/ty/adt.rs | 27 +- compiler/rustc_middle/src/ty/cast.rs | 28 +- compiler/rustc_middle/src/ty/codec.rs | 1 + compiler/rustc_middle/src/ty/consts.rs | 52 +- compiler/rustc_middle/src/ty/consts/kind.rs | 52 +- compiler/rustc_middle/src/ty/context.rs | 176 +- compiler/rustc_middle/src/ty/diagnostics.rs | 8 + compiler/rustc_middle/src/ty/erase_regions.rs | 5 - compiler/rustc_middle/src/ty/error.rs | 8 +- compiler/rustc_middle/src/ty/fast_reject.rs | 11 +- compiler/rustc_middle/src/ty/flags.rs | 18 +- compiler/rustc_middle/src/ty/fold.rs | 40 +- compiler/rustc_middle/src/ty/generics.rs | 3 +- .../src/ty/inhabitedness/def_id_forest.rs | 145 - .../ty/inhabitedness/inhabited_predicate.rs | 204 + .../rustc_middle/src/ty/inhabitedness/mod.rs | 258 +- compiler/rustc_middle/src/ty/instance.rs | 6 +- compiler/rustc_middle/src/ty/layout.rs | 2581 +-- compiler/rustc_middle/src/ty/mod.rs | 141 +- .../src/ty/normalize_erasing_regions.rs | 24 +- compiler/rustc_middle/src/ty/opaque_types.rs | 218 + compiler/rustc_middle/src/ty/parameterized.rs | 7 + compiler/rustc_middle/src/ty/print/mod.rs | 13 +- compiler/rustc_middle/src/ty/print/pretty.rs | 230 +- compiler/rustc_middle/src/ty/query.rs | 24 +- compiler/rustc_middle/src/ty/relate.rs | 14 +- compiler/rustc_middle/src/ty/rvalue_scopes.rs | 2 +- .../rustc_middle/src/ty/structural_impls.rs | 55 +- compiler/rustc_middle/src/ty/sty.rs | 150 +- compiler/rustc_middle/src/ty/subst.rs | 134 +- compiler/rustc_middle/src/ty/util.rs | 41 +- compiler/rustc_middle/src/ty/visit.rs | 32 +- compiler/rustc_middle/src/ty/walk.rs | 16 + compiler/rustc_middle/src/values.rs | 180 +- compiler/rustc_mir_build/Cargo.toml | 1 - compiler/rustc_mir_build/src/build/block.rs | 37 +- .../src/build/expr/as_constant.rs | 7 +- .../src/build/expr/as_operand.rs | 5 +- .../src/build/expr/as_place.rs | 76 +- .../src/build/expr/as_rvalue.rs | 24 +- .../rustc_mir_build/src/build/expr/as_temp.rs | 5 +- .../rustc_mir_build/src/build/expr/into.rs | 5 +- .../rustc_mir_build/src/build/matches/mod.rs | 96 +- .../src/build/matches/simplify.rs | 35 +- .../rustc_mir_build/src/build/matches/test.rs | 25 +- .../rustc_mir_build/src/build/matches/util.rs | 51 +- compiler/rustc_mir_build/src/build/mod.rs | 132 +- compiler/rustc_mir_build/src/build/scope.rs | 4 +- .../rustc_mir_build/src/check_unsafety.rs | 30 +- compiler/rustc_mir_build/src/lib.rs | 2 +- compiler/rustc_mir_build/src/lints.rs | 24 +- compiler/rustc_mir_build/src/thir/cx/expr.rs | 7 +- compiler/rustc_mir_build/src/thir/cx/mod.rs | 2 +- .../src/thir/pattern/check_match.rs | 117 +- .../src/thir/pattern/const_to_pat.rs | 57 +- .../src/thir/pattern/deconstruct_pat.rs | 20 +- .../rustc_mir_build/src/thir/pattern/mod.rs | 8 +- .../src/thir/pattern/usefulness.rs | 19 +- compiler/rustc_mir_dataflow/Cargo.toml | 1 - .../rustc_mir_dataflow/src/elaborate_drops.rs | 5 +- compiler/rustc_mir_dataflow/src/errors.rs | 42 +- compiler/rustc_mir_dataflow/src/lib.rs | 1 - .../src/move_paths/abs_domain.rs | 1 + compiler/rustc_mir_transform/Cargo.toml | 1 - .../src/check_const_item_mutation.rs | 18 +- .../src/check_packed_ref.rs | 40 +- .../rustc_mir_transform/src/check_unsafety.rs | 24 +- .../rustc_mir_transform/src/const_prop.rs | 6 +- .../src/const_prop_lint.rs | 47 +- .../src/coverage/test_macros/Cargo.toml | 1 - .../src/deduce_param_attrs.rs | 248 + .../src/elaborate_box_derefs.rs | 1 - .../src/ffi_unwind_calls.rs | 14 +- .../src/function_item_references.rs | 22 +- compiler/rustc_mir_transform/src/generator.rs | 3 +- compiler/rustc_mir_transform/src/inline.rs | 47 +- compiler/rustc_mir_transform/src/lib.rs | 24 +- compiler/rustc_mir_transform/src/marker.rs | 20 - .../rustc_mir_transform/src/pass_manager.rs | 89 +- compiler/rustc_mir_transform/src/shim.rs | 8 +- compiler/rustc_monomorphize/Cargo.toml | 1 - compiler/rustc_monomorphize/src/collector.rs | 34 +- compiler/rustc_monomorphize/src/errors.rs | 37 +- compiler/rustc_monomorphize/src/lib.rs | 1 - .../src/partitioning/default.rs | 6 +- .../rustc_monomorphize/src/polymorphize.rs | 53 +- compiler/rustc_parse/Cargo.toml | 1 - compiler/rustc_parse/src/errors.rs | 1237 ++ compiler/rustc_parse/src/lexer/mod.rs | 397 +- compiler/rustc_parse/src/lexer/tokentrees.rs | 428 +- .../src/lexer/unescape_error_reporting.rs | 19 +- compiler/rustc_parse/src/lib.rs | 6 +- compiler/rustc_parse/src/parser/attr.rs | 159 +- .../rustc_parse/src/parser/attr_wrapper.rs | 33 +- .../rustc_parse/src/parser/diagnostics.rs | 946 +- compiler/rustc_parse/src/parser/expr.rs | 509 +- compiler/rustc_parse/src/parser/generics.rs | 36 +- compiler/rustc_parse/src/parser/item.rs | 163 +- compiler/rustc_parse/src/parser/mod.rs | 151 +- compiler/rustc_parse/src/parser/pat.rs | 26 +- compiler/rustc_parse/src/parser/stmt.rs | 169 +- compiler/rustc_parse/src/parser/ty.rs | 11 +- compiler/rustc_parse_format/src/lib.rs | 30 +- compiler/rustc_parse_format/src/tests.rs | 15 + compiler/rustc_passes/src/check_attr.rs | 277 +- compiler/rustc_passes/src/check_const.rs | 17 +- compiler/rustc_passes/src/dead.rs | 136 +- .../rustc_passes/src/debugger_visualizer.rs | 15 +- compiler/rustc_passes/src/diagnostic_items.rs | 45 +- compiler/rustc_passes/src/entry.rs | 157 +- compiler/rustc_passes/src/errors.rs | 1095 +- compiler/rustc_passes/src/hir_id_validator.rs | 23 +- compiler/rustc_passes/src/hir_stats.rs | 4 +- compiler/rustc_passes/src/lang_items.rs | 211 +- compiler/rustc_passes/src/layout_test.rs | 77 +- compiler/rustc_passes/src/lib.rs | 3 +- compiler/rustc_passes/src/lib_features.rs | 34 +- compiler/rustc_passes/src/liveness.rs | 65 +- compiler/rustc_passes/src/loops.rs | 161 +- compiler/rustc_passes/src/naked_functions.rs | 88 +- compiler/rustc_passes/src/reachable.rs | 53 +- compiler/rustc_passes/src/stability.rs | 230 +- compiler/rustc_passes/src/weak_lang_items.rs | 31 +- compiler/rustc_plugin_impl/Cargo.toml | 1 - compiler/rustc_plugin_impl/src/errors.rs | 10 +- compiler/rustc_privacy/Cargo.toml | 2 +- compiler/rustc_privacy/src/errors.rs | 42 +- compiler/rustc_privacy/src/lib.rs | 342 +- compiler/rustc_query_impl/src/keys.rs | 42 +- compiler/rustc_query_impl/src/lib.rs | 13 +- .../rustc_query_impl/src/on_disk_cache.rs | 13 +- compiler/rustc_query_impl/src/plumbing.rs | 188 +- .../rustc_query_impl/src/profiling_support.rs | 25 +- compiler/rustc_query_system/Cargo.toml | 1 - .../src/dep_graph/dep_node.rs | 73 + .../rustc_query_system/src/dep_graph/mod.rs | 45 +- compiler/rustc_query_system/src/error.rs | 73 +- compiler/rustc_query_system/src/ich/hcx.rs | 11 +- compiler/rustc_query_system/src/lib.rs | 5 +- .../rustc_query_system/src/query/config.rs | 2 - compiler/rustc_query_system/src/query/job.rs | 33 +- compiler/rustc_query_system/src/query/mod.rs | 15 +- .../rustc_query_system/src/query/plumbing.rs | 11 +- compiler/rustc_query_system/src/values.rs | 5 +- compiler/rustc_resolve/Cargo.toml | 1 - compiler/rustc_resolve/src/access_levels.rs | 185 - .../rustc_resolve/src/build_reduced_graph.rs | 7 +- compiler/rustc_resolve/src/check_unused.rs | 2 +- compiler/rustc_resolve/src/def_collector.rs | 27 +- compiler/rustc_resolve/src/diagnostics.rs | 139 +- .../src/effective_visibilities.rs | 188 + compiler/rustc_resolve/src/ident.rs | 22 +- compiler/rustc_resolve/src/imports.rs | 32 +- compiler/rustc_resolve/src/late.rs | 366 +- .../rustc_resolve/src/late/diagnostics.rs | 859 +- compiler/rustc_resolve/src/lib.rs | 82 +- compiler/rustc_resolve/src/macros.rs | 25 +- .../rustc_save_analysis/src/dump_visitor.rs | 83 +- compiler/rustc_save_analysis/src/errors.rs | 6 +- compiler/rustc_save_analysis/src/lib.rs | 32 +- compiler/rustc_save_analysis/src/sig.rs | 12 +- compiler/rustc_serialize/src/lib.rs | 1 - compiler/rustc_serialize/src/opaque.rs | 4 +- compiler/rustc_session/src/config.rs | 6 +- compiler/rustc_session/src/config/sigpipe.rs | 13 +- compiler/rustc_session/src/errors.rs | 198 +- compiler/rustc_session/src/lib.rs | 1 - compiler/rustc_session/src/options.rs | 123 +- compiler/rustc_session/src/parse.rs | 46 +- compiler/rustc_session/src/session.rs | 191 +- compiler/rustc_session/src/utils.rs | 11 + compiler/rustc_span/Cargo.toml | 1 - compiler/rustc_span/src/def_id.rs | 20 +- compiler/rustc_span/src/lib.rs | 14 +- compiler/rustc_span/src/source_map.rs | 44 +- compiler/rustc_span/src/source_map/tests.rs | 45 + compiler/rustc_span/src/span_encoding.rs | 42 +- compiler/rustc_span/src/symbol.rs | 35 +- compiler/rustc_symbol_mangling/Cargo.toml | 1 - compiler/rustc_symbol_mangling/src/errors.rs | 6 +- compiler/rustc_symbol_mangling/src/test.rs | 8 +- .../src/typeid/typeid_itanium_cxx_abi.rs | 2 +- compiler/rustc_symbol_mangling/src/v0.rs | 4 +- compiler/rustc_target/Cargo.toml | 3 +- compiler/rustc_target/src/abi/call/mod.rs | 5 +- compiler/rustc_target/src/abi/mod.rs | 70 +- compiler/rustc_target/src/lib.rs | 1 - .../src/spec/aarch64_apple_ios_macabi.rs | 4 +- .../aarch64_nintendo_switch_freestanding.rs | 4 +- .../src/spec/aarch64_unknown_none.rs | 4 +- .../spec/aarch64_unknown_none_softfloat.rs | 4 +- .../src/spec/aarch64_unknown_uefi.rs | 4 +- compiler/rustc_target/src/spec/abi.rs | 138 + .../rustc_target/src/spec/android_base.rs | 4 +- compiler/rustc_target/src/spec/apple_base.rs | 22 +- .../src/spec/armebv7r_none_eabi.rs | 5 +- .../src/spec/armebv7r_none_eabihf.rs | 5 +- .../rustc_target/src/spec/armv4t_none_eabi.rs | 4 +- .../src/spec/armv5te_none_eabi.rs | 41 + .../src/spec/armv6k_nintendo_3ds.rs | 5 +- .../src/spec/armv7_linux_androideabi.rs | 4 +- .../rustc_target/src/spec/armv7a_none_eabi.rs | 4 +- .../src/spec/armv7a_none_eabihf.rs | 4 +- .../rustc_target/src/spec/armv7r_none_eabi.rs | 5 +- .../src/spec/armv7r_none_eabihf.rs | 5 +- .../rustc_target/src/spec/avr_gnu_base.rs | 9 +- .../rustc_target/src/spec/fuchsia_base.rs | 6 +- compiler/rustc_target/src/spec/hermit_base.rs | 6 +- .../src/spec/hexagon_unknown_linux_musl.rs | 4 +- .../rustc_target/src/spec/i386_apple_ios.rs | 3 +- .../src/spec/i686_apple_darwin.rs | 7 +- .../src/spec/i686_linux_android.rs | 3 +- .../src/spec/i686_pc_windows_gnu.rs | 9 +- .../src/spec/i686_pc_windows_msvc.rs | 4 +- .../src/spec/i686_unknown_freebsd.rs | 7 +- .../src/spec/i686_unknown_haiku.rs | 7 +- .../src/spec/i686_unknown_linux_gnu.rs | 8 +- .../src/spec/i686_unknown_linux_musl.rs | 7 +- .../src/spec/i686_unknown_netbsd.rs | 7 +- .../src/spec/i686_unknown_openbsd.rs | 7 +- .../src/spec/i686_uwp_windows_gnu.rs | 9 +- .../rustc_target/src/spec/i686_wrs_vxworks.rs | 7 +- .../rustc_target/src/spec/illumos_base.rs | 6 +- compiler/rustc_target/src/spec/l4re_base.rs | 5 +- .../src/spec/linux_kernel_base.rs | 3 +- .../rustc_target/src/spec/mipsel_sony_psp.rs | 10 +- .../src/spec/mipsel_unknown_none.rs | 5 +- compiler/rustc_target/src/spec/mod.rs | 244 +- .../rustc_target/src/spec/msp430_none_elf.rs | 4 +- compiler/rustc_target/src/spec/msvc_base.rs | 8 +- .../src/spec/nvptx64_nvidia_cuda.rs | 1 - .../src/spec/powerpc64_unknown_freebsd.rs | 5 +- .../src/spec/powerpc64_unknown_linux_gnu.rs | 9 +- .../src/spec/powerpc64_unknown_linux_musl.rs | 5 +- .../src/spec/powerpc64_unknown_openbsd.rs | 5 +- .../src/spec/powerpc64_wrs_vxworks.rs | 5 +- .../src/spec/powerpc64le_unknown_freebsd.rs | 5 +- .../src/spec/powerpc64le_unknown_linux_gnu.rs | 5 +- .../spec/powerpc64le_unknown_linux_musl.rs | 5 +- .../src/spec/powerpc_unknown_freebsd.rs | 8 +- .../src/spec/powerpc_unknown_linux_gnu.rs | 5 +- .../src/spec/powerpc_unknown_linux_gnuspe.rs | 5 +- .../src/spec/powerpc_unknown_linux_musl.rs | 5 +- .../src/spec/powerpc_unknown_netbsd.rs | 5 +- .../src/spec/powerpc_unknown_openbsd.rs | 3 +- .../src/spec/powerpc_wrs_vxworks.rs | 5 +- .../src/spec/powerpc_wrs_vxworks_spe.rs | 5 +- .../src/spec/riscv32i_unknown_none_elf.rs | 5 +- .../src/spec/riscv32im_unknown_none_elf.rs | 5 +- .../src/spec/riscv32imac_unknown_none_elf.rs | 5 +- .../src/spec/riscv32imac_unknown_xous_elf.rs | 5 +- .../src/spec/riscv32imc_esp_espidf.rs | 4 +- .../src/spec/riscv32imc_unknown_none_elf.rs | 5 +- .../src/spec/riscv64gc_unknown_none_elf.rs | 6 +- .../src/spec/riscv64imac_unknown_none_elf.rs | 6 +- .../src/spec/s390x_unknown_linux_gnu.rs | 11 +- .../src/spec/s390x_unknown_linux_musl.rs | 11 +- .../rustc_target/src/spec/solaris_base.rs | 4 +- .../src/spec/sparc64_unknown_netbsd.rs | 4 +- .../src/spec/sparc64_unknown_openbsd.rs | 4 +- .../src/spec/sparc_unknown_linux_gnu.rs | 4 +- .../src/spec/sparcv9_sun_solaris.rs | 4 +- .../rustc_target/src/spec/tests/tests_impl.rs | 85 +- compiler/rustc_target/src/spec/thumb_base.rs | 5 +- .../src/spec/thumbv4t_none_eabi.rs | 7 +- .../src/spec/thumbv5te_none_eabi.rs | 41 + .../src/spec/thumbv7a_pc_windows_msvc.rs | 4 +- .../src/spec/thumbv7neon_linux_androideabi.rs | 4 +- .../rustc_target/src/spec/uefi_msvc_base.rs | 7 +- .../src/spec/wasm32_unknown_unknown.rs | 8 +- compiler/rustc_target/src/spec/wasm32_wasi.rs | 6 +- .../src/spec/wasm64_unknown_unknown.rs | 8 +- compiler/rustc_target/src/spec/wasm_base.rs | 9 +- .../rustc_target/src/spec/windows_gnu_base.rs | 28 +- .../src/spec/windows_gnullvm_base.rs | 10 +- .../src/spec/windows_uwp_gnu_base.rs | 7 +- .../src/spec/windows_uwp_msvc_base.rs | 4 +- .../src/spec/x86_64_apple_darwin.rs | 9 +- .../rustc_target/src/spec/x86_64_apple_ios.rs | 3 +- .../src/spec/x86_64_apple_ios_macabi.rs | 7 +- .../src/spec/x86_64_apple_tvos.rs | 3 +- .../src/spec/x86_64_apple_watchos_sim.rs | 3 +- .../src/spec/x86_64_fortanix_unknown_sgx.rs | 8 +- .../rustc_target/src/spec/x86_64_fuchsia.rs | 3 +- .../src/spec/x86_64_linux_android.rs | 7 +- .../src/spec/x86_64_pc_solaris.rs | 7 +- .../src/spec/x86_64_pc_windows_gnu.rs | 9 +- .../src/spec/x86_64_pc_windows_gnullvm.rs | 4 +- .../src/spec/x86_64_sun_solaris.rs | 7 +- .../src/spec/x86_64_unknown_dragonfly.rs | 7 +- .../src/spec/x86_64_unknown_freebsd.rs | 7 +- .../src/spec/x86_64_unknown_haiku.rs | 7 +- .../src/spec/x86_64_unknown_hermit.rs | 3 +- .../src/spec/x86_64_unknown_illumos.rs | 4 +- .../src/spec/x86_64_unknown_linux_gnu.rs | 7 +- .../src/spec/x86_64_unknown_linux_gnux32.rs | 7 +- .../src/spec/x86_64_unknown_linux_musl.rs | 7 +- .../src/spec/x86_64_unknown_netbsd.rs | 7 +- .../src/spec/x86_64_unknown_none.rs | 7 +- .../spec/x86_64_unknown_none_linuxkernel.rs | 4 +- .../src/spec/x86_64_unknown_openbsd.rs | 7 +- .../src/spec/x86_64_unknown_redox.rs | 7 +- .../src/spec/x86_64_uwp_windows_gnu.rs | 9 +- .../src/spec/x86_64_wrs_vxworks.rs | 7 +- compiler/rustc_trait_selection/Cargo.toml | 1 - .../rustc_trait_selection/src/autoderef.rs | 4 +- compiler/rustc_trait_selection/src/errors.rs | 46 +- compiler/rustc_trait_selection/src/infer.rs | 26 +- compiler/rustc_trait_selection/src/lib.rs | 2 - .../src/traits/auto_trait.rs | 234 +- .../src/traits/chalk_fulfill.rs | 11 +- .../src/traits/codegen.rs | 89 +- .../src/traits/coherence.rs | 102 +- .../src/traits/const_evaluatable.rs | 63 +- .../src/traits/engine.rs | 6 +- .../src/traits/error_reporting/mod.rs | 871 +- .../error_reporting/on_unimplemented.rs | 12 +- .../src/traits/error_reporting/suggestions.rs | 370 +- .../src/traits/fulfill.rs | 84 +- .../rustc_trait_selection/src/traits/misc.rs | 111 +- .../rustc_trait_selection/src/traits/mod.rs | 175 +- .../src/traits/object_safety.rs | 176 +- .../src/traits/outlives_bounds.rs | 2 +- .../src/traits/project.rs | 142 +- .../src/traits/query/evaluate_obligation.rs | 2 +- .../src/traits/query/normalize.rs | 54 +- .../src/traits/query/type_op/custom.rs | 8 +- .../src/traits/query/type_op/mod.rs | 6 +- .../src/traits/relationships.rs | 2 +- .../src/traits/select/candidate_assembly.rs | 29 +- .../src/traits/select/confirmation.rs | 72 +- .../src/traits/select/mod.rs | 149 +- .../src/traits/specialize/mod.rs | 83 +- .../traits/specialize/specialization_graph.rs | 48 +- .../src/traits/structural_match.rs | 9 +- .../rustc_trait_selection/src/traits/util.rs | 14 +- .../rustc_trait_selection/src/traits/wf.rs | 46 +- compiler/rustc_traits/src/chalk/db.rs | 2 +- compiler/rustc_traits/src/dropck_outlives.rs | 220 +- .../rustc_traits/src/evaluate_obligation.rs | 20 +- .../src/implied_outlives_bounds.rs | 7 +- compiler/rustc_traits/src/lib.rs | 1 - .../src/normalize_erasing_regions.rs | 46 +- compiler/rustc_traits/src/type_op.rs | 10 +- compiler/rustc_transmute/src/layout/tree.rs | 22 +- compiler/rustc_transmute/src/lib.rs | 19 +- compiler/rustc_ty_utils/Cargo.toml | 2 + compiler/rustc_ty_utils/src/abi.rs | 551 + compiler/rustc_ty_utils/src/assoc.rs | 18 +- compiler/rustc_ty_utils/src/common_traits.rs | 11 +- compiler/rustc_ty_utils/src/consts.rs | 15 +- compiler/rustc_ty_utils/src/errors.rs | 56 +- compiler/rustc_ty_utils/src/instance.rs | 75 +- compiler/rustc_ty_utils/src/layout.rs | 1803 ++ .../src}/layout_sanity_check.rs | 2 +- compiler/rustc_ty_utils/src/lib.rs | 10 +- compiler/rustc_ty_utils/src/needs_drop.rs | 5 +- .../rustc_ty_utils/src/representability.rs | 451 +- compiler/rustc_ty_utils/src/ty.rs | 20 +- compiler/rustc_type_ir/Cargo.toml | 1 - compiler/rustc_type_ir/src/lib.rs | 6 +- compiler/rustc_type_ir/src/sty.rs | 4 +- .../rustc_typeck/src/coherence/builtin.rs | 594 - config.toml.example | 15 + git-commit-hash | 2 +- git-commit-info | 3 + library/alloc/benches/lib.rs | 1 - library/alloc/src/alloc.rs | 12 +- library/alloc/src/borrow.rs | 1 - library/alloc/src/boxed.rs | 68 +- library/alloc/src/boxed/thin.rs | 2 - library/alloc/src/collections/btree/map.rs | 41 +- .../alloc/src/collections/btree/map/entry.rs | 1 - library/alloc/src/collections/btree/node.rs | 6 +- library/alloc/src/collections/btree/set.rs | 26 +- library/alloc/src/collections/linked_list.rs | 2 +- library/alloc/src/collections/mod.rs | 1 - .../alloc/src/collections/vec_deque/mod.rs | 14 +- library/alloc/src/ffi/c_str.rs | 3 - library/alloc/src/fmt.rs | 2 +- library/alloc/src/lib.rs | 22 +- library/alloc/src/raw_vec.rs | 12 +- library/alloc/src/rc.rs | 12 +- library/alloc/src/slice.rs | 8 +- library/alloc/src/string.rs | 34 +- library/alloc/src/sync.rs | 61 +- library/alloc/src/task.rs | 6 + library/alloc/src/vec/drain.rs | 4 +- library/alloc/src/vec/in_place_collect.rs | 18 +- library/alloc/src/vec/in_place_drop.rs | 15 + library/alloc/src/vec/into_iter.rs | 27 +- library/alloc/src/vec/is_zero.rs | 22 + library/alloc/src/vec/mod.rs | 144 +- library/alloc/tests/autotraits.rs | 293 + library/alloc/tests/lib.rs | 7 +- library/alloc/tests/vec.rs | 65 +- library/core/benches/iter.rs | 27 + library/core/benches/lib.rs | 1 + library/core/src/alloc/layout.rs | 5 +- library/core/src/alloc/mod.rs | 3 +- library/core/src/array/iter.rs | 59 +- library/core/src/array/mod.rs | 59 +- library/core/src/bool.rs | 23 + library/core/src/borrow.rs | 2 + library/core/src/cell.rs | 74 +- library/core/src/char/decode.rs | 2 - library/core/src/char/methods.rs | 37 + library/core/src/char/mod.rs | 2 - library/core/src/cmp.rs | 91 +- library/core/src/const_closure.rs | 77 + library/core/src/convert/mod.rs | 217 +- library/core/src/default.rs | 1 + library/core/src/error.rs | 4 +- library/core/src/ffi/c_str.rs | 76 +- library/core/src/fmt/mod.rs | 9 +- library/core/src/fmt/num.rs | 92 +- library/core/src/future/ready.rs | 24 + library/core/src/hint.rs | 7 +- library/core/src/intrinsics.rs | 146 +- .../core/src/iter/adapters/array_chunks.rs | 18 +- .../core/src/iter/adapters/by_ref_sized.rs | 19 +- library/core/src/iter/adapters/copied.rs | 74 + library/core/src/iter/adapters/map_while.rs | 14 +- library/core/src/iter/adapters/mod.rs | 10 +- library/core/src/iter/adapters/scan.rs | 14 +- library/core/src/iter/adapters/skip.rs | 12 +- library/core/src/iter/adapters/take.rs | 14 +- library/core/src/iter/adapters/take_while.rs | 14 +- library/core/src/iter/mod.rs | 23 + library/core/src/iter/range.rs | 28 +- library/core/src/iter/traits/collect.rs | 3 +- library/core/src/iter/traits/iterator.rs | 170 +- library/core/src/lazy.rs | 1 - library/core/src/lib.rs | 17 +- library/core/src/marker.rs | 125 +- library/core/src/mem/maybe_uninit.rs | 44 +- library/core/src/mem/mod.rs | 85 +- library/core/src/mem/transmutability.rs | 4 +- library/core/src/num/dec2flt/lemire.rs | 4 +- library/core/src/num/error.rs | 3 - .../core/src/num/flt2dec/strategy/grisu.rs | 4 - library/core/src/num/int_log10.rs | 2 +- library/core/src/num/int_macros.rs | 102 +- library/core/src/num/mod.rs | 66 +- library/core/src/num/nonzero.rs | 159 +- library/core/src/num/uint_macros.rs | 153 +- library/core/src/ops/arith.rs | 50 +- library/core/src/ops/bit.rs | 11 + library/core/src/ops/control_flow.rs | 9 +- library/core/src/ops/deref.rs | 2 + library/core/src/ops/drop.rs | 1 + library/core/src/ops/function.rs | 3 + library/core/src/ops/generator.rs | 1 - library/core/src/ops/index.rs | 2 + library/core/src/ops/index_range.rs | 171 + library/core/src/ops/mod.rs | 3 + library/core/src/ops/try_trait.rs | 106 +- library/core/src/option.rs | 46 +- library/core/src/panic/location.rs | 9 +- library/core/src/panicking.rs | 126 +- library/core/src/primitive_docs.rs | 23 +- .../{mem/valid_align.rs => ptr/alignment.rs} | 175 +- library/core/src/ptr/const_ptr.rs | 10 +- library/core/src/ptr/metadata.rs | 14 +- library/core/src/ptr/mod.rs | 122 +- library/core/src/ptr/mut_ptr.rs | 11 +- library/core/src/ptr/non_null.rs | 6 +- library/core/src/result.rs | 34 +- library/core/src/slice/index.rs | 104 +- library/core/src/slice/iter.rs | 21 +- library/core/src/slice/iter/macros.rs | 8 +- library/core/src/slice/memchr.rs | 4 +- library/core/src/slice/mod.rs | 132 +- library/core/src/slice/raw.rs | 42 +- library/core/src/slice/rotate.rs | 4 +- library/core/src/slice/sort.rs | 6 +- library/core/src/str/error.rs | 3 - library/core/src/str/mod.rs | 1 - library/core/src/str/pattern.rs | 2 +- library/core/src/str/traits.rs | 18 +- library/core/src/sync/atomic.rs | 54 +- library/core/src/sync/exclusive.rs | 9 +- library/core/src/task/wake.rs | 9 +- library/core/src/time.rs | 176 +- library/core/src/tuple.rs | 3 +- library/core/src/unicode/printable.rs | 131 +- library/core/src/unicode/unicode_data.rs | 232 +- library/core/tests/ascii.rs | 18 + library/core/tests/lib.rs | 9 +- library/core/tests/mem.rs | 12 +- library/core/tests/num/int_log.rs | 30 + library/core/tests/num/mod.rs | 2 +- library/core/tests/num/wrapping.rs | 2 - library/core/tests/option.rs | 1 + library/core/tests/panic.rs | 1 + library/core/tests/panic/location.rs | 31 + library/core/tests/slice.rs | 1 - library/core/tests/task.rs | 17 +- library/core/tests/time.rs | 32 +- library/panic_unwind/src/emcc.rs | 40 +- library/panic_unwind/src/gcc.rs | 30 +- library/panic_unwind/src/lib.rs | 3 +- library/panic_unwind/src/seh.rs | 20 +- library/proc_macro/src/bridge/client.rs | 4 +- library/proc_macro/src/lib.rs | 4 +- library/std/Cargo.toml | 4 +- library/std/src/backtrace.rs | 12 +- library/std/src/collections/hash/map.rs | 7 +- library/std/src/collections/hash/map/tests.rs | 6 + library/std/src/collections/hash/set.rs | 5 +- library/std/src/collections/hash/set/tests.rs | 6 + library/std/src/env.rs | 2 +- library/std/src/error.rs | 1023 - library/std/src/fs.rs | 67 +- library/std/src/io/error.rs | 7 +- library/std/src/io/error/tests.rs | 2 +- library/std/src/io/mod.rs | 7 +- library/std/src/io/readbuf.rs | 9 +- library/std/src/io/stdio.rs | 57 +- library/std/src/keyword_docs.rs | 151 +- library/std/src/lazy.rs | 1 - library/std/src/lib.rs | 24 +- library/std/src/os/fd/mod.rs | 13 +- library/std/src/os/fd/owned.rs | 75 +- library/std/src/os/fd/raw.rs | 18 +- library/std/src/os/mod.rs | 4 +- library/std/src/os/unix/io/fd.rs | 8 - library/std/src/os/unix/io/mod.rs | 11 +- library/std/src/os/unix/io/raw.rs | 6 - library/std/src/os/unix/io/{fd => }/tests.rs | 0 library/std/src/os/unix/mod.rs | 2 + library/std/src/os/wasi/io/fd.rs | 3 +- library/std/src/os/wasi/io/mod.rs | 12 +- library/std/src/os/wasi/io/raw.rs | 18 +- library/std/src/os/watchos/fs.rs | 142 + library/std/src/os/watchos/mod.rs | 6 + library/std/src/os/watchos/raw.rs | 83 + library/std/src/os/windows/io/handle.rs | 17 + library/std/src/panicking.rs | 160 +- library/std/src/path.rs | 4 +- library/std/src/personality/dwarf/eh.rs | 5 +- library/std/src/primitive_docs.rs | 23 +- library/std/src/process.rs | 18 +- library/std/src/rt.rs | 7 +- library/std/src/sync/mpsc/stream.rs | 2 +- library/std/src/sync/once.rs | 312 +- library/std/src/sync/rwlock.rs | 64 +- library/std/src/sys/common/mod.rs | 4 + library/std/src/sys/common/small_c_string.rs | 58 + library/std/src/sys/common/tests.rs | 66 + library/std/src/sys/hermit/args.rs | 74 +- library/std/src/sys/hermit/fs.rs | 13 +- library/std/src/sys/hermit/mod.rs | 4 +- library/std/src/sys/mod.rs | 2 +- library/std/src/sys/sgx/abi/tls/mod.rs | 1 + .../std/src/sys/sgx/abi/usercalls/alloc.rs | 28 +- library/std/src/sys/sgx/thread_local_key.rs | 5 - library/std/src/sys/solid/fs.rs | 20 +- library/std/src/sys/solid/os.rs | 44 +- library/std/src/sys/solid/thread_local_key.rs | 5 - library/std/src/sys/unix/fs.rs | 483 +- library/std/src/sys/unix/io.rs | 6 + library/std/src/sys/unix/kernel_copy.rs | 2 +- library/std/src/sys/unix/locks/mod.rs | 6 +- library/std/src/sys/unix/mod.rs | 42 +- library/std/src/sys/unix/os.rs | 59 +- .../src/sys/unix/process/process_common.rs | 2 + .../sys/unix/process/process_common/tests.rs | 79 +- .../src/sys/unix/process/process_fuchsia.rs | 2 +- .../std/src/sys/unix/process/process_unix.rs | 76 +- library/std/src/sys/unix/stdio.rs | 50 +- library/std/src/sys/unix/thread.rs | 29 +- library/std/src/sys/unix/thread_local_dtor.rs | 1 + library/std/src/sys/unix/thread_local_key.rs | 5 - .../std/src/sys/unix/thread_parker/darwin.rs | 131 + library/std/src/sys/unix/thread_parker/mod.rs | 13 +- library/std/src/sys/unix/time.rs | 34 +- library/std/src/sys/unsupported/io.rs | 4 + .../std/src/sys/unsupported/locks/condvar.rs | 1 + library/std/src/sys/unsupported/locks/mod.rs | 2 +- .../std/src/sys/unsupported/locks/mutex.rs | 1 + .../std/src/sys/unsupported/locks/rwlock.rs | 1 + .../src/sys/unsupported/thread_local_dtor.rs | 1 + .../src/sys/unsupported/thread_local_key.rs | 5 - library/std/src/sys/wasi/fs.rs | 105 +- library/std/src/sys/wasi/io.rs | 6 + library/std/src/sys/wasi/mod.rs | 3 + library/std/src/sys/wasi/os.rs | 81 +- library/std/src/sys/wasi/stdio.rs | 23 +- library/std/src/sys/wasi/time.rs | 4 +- library/std/src/sys/wasm/mod.rs | 2 +- library/std/src/sys/windows/c.rs | 34 +- library/std/src/sys/windows/fs.rs | 41 +- library/std/src/sys/windows/io.rs | 76 +- library/std/src/sys/windows/locks/mod.rs | 2 +- library/std/src/sys/windows/process.rs | 6 +- library/std/src/sys/windows/rand.rs | 76 +- .../std/src/sys/windows/thread_local_key.rs | 196 +- .../src/sys/windows/thread_local_key/tests.rs | 53 + library/std/src/sys_common/backtrace.rs | 9 +- library/std/src/sys_common/condvar.rs | 1 + library/std/src/sys_common/condvar/check.rs | 1 + library/std/src/sys_common/mod.rs | 10 +- library/std/src/sys_common/mutex.rs | 45 +- library/std/src/sys_common/net.rs | 20 +- library/std/src/sys_common/once/futex.rs | 134 + library/std/src/sys_common/once/generic.rs | 282 + library/std/src/sys_common/once/mod.rs | 43 + library/std/src/sys_common/rwlock.rs | 61 +- .../std/src/sys_common/thread_local_key.rs | 24 +- library/std/src/thread/local.rs | 8 +- library/std/src/thread/mod.rs | 114 +- library/std/src/thread/tests.rs | 22 + library/std/src/time.rs | 6 +- library/std/tests/run-time-detect.rs | 86 +- library/stdarch/ci/android-install-sdk.sh | 4 +- .../docker/aarch64-linux-android/Dockerfile | 11 +- .../docker/arm-linux-androideabi/Dockerfile | 11 +- .../ci/docker/x86_64-linux-android/Dockerfile | 4 +- .../core_arch/src/arm_shared/neon/mod.rs | 24 +- library/stdarch/crates/core_arch/src/lib.rs | 5 +- .../stdarch/crates/core_arch/src/macros.rs | 24 +- library/stdarch/crates/core_arch/src/mod.rs | 7 +- .../crates/core_arch/src/riscv_shared/mod.rs | 83 +- .../crates/core_arch/src/riscv_shared/p.rs | 1061 + .../stdarch/crates/core_arch/src/simd_llvm.rs | 8 +- .../stdarch/crates/core_arch/src/x86/avx2.rs | 4 +- .../stdarch/crates/core_arch/src/x86/cpuid.rs | 28 +- .../stdarch/crates/core_arch/src/x86/mod.rs | 4 +- .../stdarch/crates/core_arch/src/x86/sse2.rs | 4 +- .../stdarch/crates/core_arch/src/x86/sse3.rs | 6 +- library/stdarch/crates/std_detect/Cargo.toml | 2 +- .../std_detect/src/detect/os/linux/aarch64.rs | 227 +- .../std_detect/src/detect/os/linux/auxvec.rs | 61 +- .../test_data/linux-artificial-aarch64.auxv | Bin 0 -> 336 bytes .../test_data/linux-empty-hwcap2-aarch64.auxv | Bin 0 -> 336 bytes .../test_data/linux-hwcap2-aarch64.auxv | Bin 0 -> 336 bytes .../test_data/linux-no-hwcap2-aarch64.auxv | Bin 0 -> 320 bytes .../detect/test_data/linux-x64-i7-6850k.auxv | Bin 304 -> 0 bytes .../stdarch/crates/stdarch-test/Cargo.toml | 2 +- .../stdarch/crates/stdarch-test/src/lib.rs | 1 - library/test/src/bench.rs | 21 +- library/test/src/cli.rs | 4 +- library/test/src/console.rs | 2 +- library/test/src/helpers/isatty.rs | 32 - library/test/src/helpers/mod.rs | 1 - library/test/src/lib.rs | 105 +- library/test/src/term.rs | 2 +- library/test/src/term/win.rs | 7 +- library/test/src/tests.rs | 117 +- library/test/src/types.rs | 15 +- src/README.md | 2 +- src/bootstrap/CHANGELOG.md | 2 + src/bootstrap/Cargo.lock | 8 +- src/bootstrap/README.md | 64 +- src/bootstrap/bin/rustc.rs | 2 +- src/bootstrap/bolt.rs | 71 + src/bootstrap/bootstrap.py | 18 +- src/bootstrap/build.rs | 36 - src/bootstrap/builder.rs | 24 +- src/bootstrap/builder/tests.rs | 4 +- src/bootstrap/channel.rs | 68 +- src/bootstrap/check.rs | 2 + src/bootstrap/compile.rs | 67 +- src/bootstrap/config.rs | 153 +- src/bootstrap/dist.rs | 200 +- src/bootstrap/doc.rs | 285 +- src/bootstrap/download-ci-llvm-stamp | 2 +- src/bootstrap/flags.rs | 26 +- src/bootstrap/install.rs | 11 +- src/bootstrap/lib.rs | 66 +- src/bootstrap/native.rs | 116 +- src/bootstrap/sanity.rs | 2 +- src/bootstrap/tarball.rs | 6 +- src/bootstrap/test.rs | 237 +- src/bootstrap/tool.rs | 42 +- src/bootstrap/toolstate.rs | 1 - src/ci/docker/README.md | 106 + .../disabled/dist-x86_64-haiku/Dockerfile | 2 + .../dist-i586-gnu-i586-i686-musl/Dockerfile | 35 +- .../build-i586-gnu-toolchain.sh | 26 + .../i586-linux-gnu.config | 726 + .../host-x86_64/dist-mips-linux/Dockerfile | 43 +- .../dist-mips-linux/build-mips-toolchain.sh | 26 + .../dist-mips-linux/mips-linux-gnu.config | 740 + ...wrong-vfork-aliases-in-libpthread.so.patch | 44 + ...fixes-to-the-vfork-aliases-in-libpth.patch | 63 + .../host-x86_64/dist-mips64-linux/Dockerfile | 44 +- .../build-mips64-toolchain.sh | 26 + .../dist-mips64-linux/mips64-linux-gnu.config | 741 + .../dist-mips64el-linux/Dockerfile | 43 +- .../build-mips64el-toolchain.sh | 26 + .../mips64el-linux-gnu.config | 741 + .../host-x86_64/dist-mipsel-linux/Dockerfile | 44 +- .../build-mipsel-toolchain.sh | 26 + .../dist-mipsel-linux/mipsel-linux-gnu.config | 740 + .../host-x86_64/dist-various-2/Dockerfile | 2 + .../host-x86_64/dist-x86_64-linux/Dockerfile | 5 +- .../dist-x86_64-linux/build-clang.sh | 4 +- .../x86_64-gnu-llvm-13-stage1/Dockerfile | 1 + .../host-x86_64/x86_64-gnu-llvm-13/Dockerfile | 1 + .../x86_64-gnu-tools/browser-ui-test.version | 2 +- .../x86_64-gnu-tools/checktools.sh | 11 +- src/ci/github-actions/ci.yml | 39 +- src/ci/pgo.sh | 39 +- src/ci/run.sh | 5 + src/ci/scripts/select-xcode.sh | 13 + src/ci/scripts/should-skip-this.sh | 8 +- src/doc/book/ADMIN_TASKS.md | 7 +- src/doc/book/TODO.md | 17 + src/doc/book/ci/dictionary.txt | 1 + .../listing-02-02/Cargo.lock | 40 +- .../listing-02-02/Cargo.toml | 2 +- .../listing-02-03/Cargo.lock | 16 +- .../listing-02-03/Cargo.toml | 2 +- .../listing-02-04/Cargo.lock | 16 +- .../listing-02-04/Cargo.toml | 2 +- .../listing-02-04/output.txt | 2 +- .../listing-02-05/Cargo.lock | 16 +- .../listing-02-05/Cargo.toml | 2 +- .../listing-02-06/Cargo.lock | 16 +- .../listing-02-06/Cargo.toml | 2 +- .../Cargo.lock | 16 +- .../Cargo.toml | 2 +- .../no-listing-04-looping/Cargo.lock | 16 +- .../no-listing-04-looping/Cargo.toml | 2 +- .../no-listing-05-quitting/Cargo.lock | 16 +- .../no-listing-05-quitting/Cargo.toml | 2 +- .../src/main.rs | 2 +- .../listing-07-18/Cargo.lock | 16 +- .../listing-07-18/Cargo.toml | 2 +- .../no-listing-01-use-std-unnested/Cargo.lock | 16 +- .../no-listing-01-use-std-unnested/Cargo.toml | 2 +- .../listing-08-04/src/main.rs | 4 +- .../listing-08-06/src/main.rs | 2 +- .../listing-08-07/src/main.rs | 2 +- .../listing-08-16/src/main.rs | 2 +- .../no-listing-02-format/src/main.rs | 2 +- .../src/main.rs | 2 +- .../listing-09-07/src/main.rs | 3 +- .../listing-09-08/src/main.rs | 3 +- .../listing-09-13/Cargo.lock | 16 +- .../listing-09-13/Cargo.toml | 2 +- .../Cargo.lock | 16 +- .../Cargo.toml | 2 +- .../listing-11-01/Cargo.lock | 3 +- .../listing-11-01/Cargo.toml | 2 + .../add/Cargo.lock | 16 +- .../add/add_one/Cargo.toml | 2 +- .../output-only-03-use-rand/add/Cargo.lock | 16 +- .../add/add_one/Cargo.toml | 2 +- .../listing-18-14/src/main.rs | 8 +- .../listing-18-15/src/main.rs | 12 +- .../listing-18-16/src/main.rs | 10 +- src/doc/book/nostarch/acknowledgments.md | 2 - src/doc/book/nostarch/appendix.md | 452 +- src/doc/book/nostarch/appendix_a.md | 142 + src/doc/book/nostarch/appendix_b.md | 241 + src/doc/book/nostarch/appendix_c.md | 184 + src/doc/book/nostarch/appendix_d.md | 175 + src/doc/book/nostarch/appendix_e.md | 66 + src/doc/book/nostarch/bio.md | 7 +- src/doc/book/nostarch/chapter01.md | 161 +- src/doc/book/nostarch/chapter02.md | 509 +- src/doc/book/nostarch/chapter03.md | 528 +- src/doc/book/nostarch/chapter04.md | 520 +- src/doc/book/nostarch/chapter05.md | 486 +- src/doc/book/nostarch/chapter06.md | 362 +- src/doc/book/nostarch/chapter07.md | 595 +- src/doc/book/nostarch/chapter08.md | 497 +- src/doc/book/nostarch/chapter09.md | 646 +- src/doc/book/nostarch/chapter10.md | 577 +- src/doc/book/nostarch/chapter11.md | 476 +- src/doc/book/nostarch/chapter12.md | 454 +- src/doc/book/nostarch/chapter13.md | 404 +- src/doc/book/nostarch/chapter14.md | 343 +- src/doc/book/nostarch/chapter15.md | 675 +- src/doc/book/nostarch/chapter16.md | 436 +- src/doc/book/nostarch/chapter17.md | 407 +- src/doc/book/nostarch/chapter18.md | 366 +- src/doc/book/nostarch/chapter19.md | 684 +- src/doc/book/nostarch/chapter20.md | 731 +- src/doc/book/nostarch/frontmatter.md | 292 + src/doc/book/nostarch/introduction.md | 13 +- src/doc/book/nostarch/preface.md | 24 +- .../appendix-04-useful-development-tools.md | 15 +- src/doc/book/src/appendix-06-translation.md | 1 - src/doc/book/src/ch00-00-introduction.md | 47 +- src/doc/book/src/ch01-01-installation.md | 58 +- src/doc/book/src/ch01-02-hello-world.md | 20 +- src/doc/book/src/ch01-03-hello-cargo.md | 24 +- .../src/ch02-00-guessing-game-tutorial.md | 246 +- .../ch03-00-common-programming-concepts.md | 6 +- .../src/ch03-01-variables-and-mutability.md | 55 +- src/doc/book/src/ch03-02-data-types.md | 82 +- .../book/src/ch03-03-how-functions-work.md | 22 +- src/doc/book/src/ch03-04-comments.md | 5 +- src/doc/book/src/ch03-05-control-flow.md | 84 +- src/doc/book/src/ch04-01-what-is-ownership.md | 88 +- .../src/ch04-02-references-and-borrowing.md | 36 +- src/doc/book/src/ch04-03-slices.md | 50 +- src/doc/book/src/ch05-02-example-structs.md | 2 +- src/doc/book/src/ch08-02-strings.md | 4 +- ...ch09-01-unrecoverable-errors-with-panic.md | 18 +- .../ch09-02-recoverable-errors-with-result.md | 8 +- src/doc/book/src/ch13-02-iterators.md | 2 +- .../src/ch14-02-publishing-to-crates-io.md | 9 +- src/doc/book/src/ch14-03-cargo-workspaces.md | 13 +- .../book/src/ch14-04-installing-binaries.md | 8 +- src/doc/book/src/ch15-00-smart-pointers.md | 6 +- src/doc/book/src/ch15-01-box.md | 6 +- src/doc/book/src/ch15-02-deref.md | 11 +- src/doc/book/src/ch15-03-drop.md | 2 +- .../book/src/ch15-05-interior-mutability.md | 8 +- src/doc/book/src/ch15-06-reference-cycles.md | 2 +- src/doc/book/src/ch16-01-threads.md | 4 +- src/doc/book/src/ch16-03-shared-state.md | 6 +- src/doc/book/tools/doc-to-md.sh | 13 +- src/doc/book/tools/docx-to-md.xsl | 262 +- src/doc/embedded-book/CITATION.bib | 7 + src/doc/embedded-book/src/start/registers.md | 2 +- src/doc/index.md | 6 + src/doc/nomicon/src/subtyping.md | 2 +- src/doc/nomicon/src/transmutes.md | 2 +- src/doc/reference/book.toml | 2 + src/doc/reference/src/SUMMARY.md | 3 +- src/doc/reference/src/attributes.md | 3 + src/doc/reference/src/attributes/codegen.md | 2 +- src/doc/reference/src/attributes/derive.md | 4 - .../reference/src/attributes/diagnostics.md | 2 +- .../reference/src/conditional-compilation.md | 19 + src/doc/reference/src/destructors.md | 2 +- src/doc/reference/src/expressions.md | 139 +- .../reference/src/expressions/block-expr.md | 9 +- .../reference/src/expressions/closure-expr.md | 2 +- .../reference/src/expressions/grouped-expr.md | 4 +- .../reference/src/expressions/loop-expr.md | 34 +- src/doc/reference/src/identifiers.md | 6 +- src/doc/reference/src/inline-assembly.md | 7 +- .../reference/src/items/associated-items.md | 145 +- .../reference/src/items/external-blocks.md | 58 +- src/doc/reference/src/items/functions.md | 4 +- src/doc/reference/src/items/traits.md | 1 + src/doc/reference/src/items/type-aliases.md | 18 +- src/doc/reference/src/patterns.md | 324 +- .../src/statements-and-expressions.md | 12 +- src/doc/reference/src/statements.md | 86 +- src/doc/reference/src/tokens.md | 2 +- src/doc/reference/src/type-layout.md | 30 +- .../reference/src/types/function-pointer.md | 2 +- src/doc/reference/src/types/pointer.md | 6 +- src/doc/reference/src/unsafe-blocks.md | 22 - src/doc/reference/src/unsafe-functions.md | 5 - src/doc/reference/src/unsafe-keyword.md | 58 + .../rust-by-example/src/cargo/conventions.md | 6 +- src/doc/rust-by-example/src/cargo/deps.md | 21 +- .../src/conversion/from_into.md | 2 +- .../rust-by-example/src/error/iter_result.md | 2 +- .../src/error/option_unwrap/defaults.md | 6 +- .../match/destructuring/destructure_slice.md | 2 +- .../src/flow_control/match/guard.md | 6 +- src/doc/rust-by-example/src/macros.md | 2 +- .../src/mod/struct_visibility.md | 3 +- .../rust-by-example/src/primitives/array.md | 2 +- src/doc/rust-by-example/src/std/box.md | 6 +- src/doc/rust-by-example/src/std/str.md | 2 +- src/doc/rust-by-example/src/std_misc/path.md | 6 +- .../src/testing/doc_testing.md | 11 +- src/doc/rust-by-example/src/types/cast.md | 20 +- src/doc/rust-by-example/src/unsafe/asm.md | 4 +- .../rustc-dev-guide/.github/workflows/ci.yml | 21 +- .../.github/workflows/date-check.yml | 2 +- src/doc/rustc-dev-guide/book.toml | 1 + src/doc/rustc-dev-guide/src/SUMMARY.md | 2 +- .../rustc-dev-guide/src/about-this-guide.md | 4 +- .../rustc-dev-guide/src/appendix/glossary.md | 3 +- .../rustc-dev-guide/src/backend/codegen.md | 2 +- .../rustc-dev-guide/src/backend/debugging.md | 2 +- .../src/building/bootstrapping.md | 86 +- .../src/building/how-to-build-and-run.md | 14 +- .../src/building/new-target.md | 8 +- .../src/building/prerequisites.md | 7 +- .../rustc-dev-guide/src/building/suggested.md | 4 + src/doc/rustc-dev-guide/src/closure.md | 16 +- src/doc/rustc-dev-guide/src/const-eval.md | 62 +- .../src/{miri.md => const-eval/interpret.md} | 31 +- src/doc/rustc-dev-guide/src/contributing.md | 115 +- src/doc/rustc-dev-guide/src/diagnostics.md | 12 +- .../src/diagnostics/diagnostic-structs.md | 147 +- .../src/diagnostics/translation.md | 22 +- src/doc/rustc-dev-guide/src/feature-gates.md | 4 +- src/doc/rustc-dev-guide/src/generics.md | 4 +- src/doc/rustc-dev-guide/src/git.md | 29 +- .../rustc-dev-guide/src/img/rustc_stages.svg | 3 - .../src/implementing_new_features.md | 12 +- src/doc/rustc-dev-guide/src/method-lookup.md | 4 +- .../rustc-dev-guide/src/name-resolution.md | 2 +- .../src/opaque-types-impl-trait-inference.md | 6 +- src/doc/rustc-dev-guide/src/overview.md | 4 +- .../src/panic-implementation.md | 2 +- src/doc/rustc-dev-guide/src/rustc-driver.md | 2 +- src/doc/rustc-dev-guide/src/rustdoc.md | 2 +- src/doc/rustc-dev-guide/src/stability.md | 6 +- src/doc/rustc-dev-guide/src/tests/ci.md | 3 +- src/doc/rustc-dev-guide/src/tests/intro.md | 2 +- src/doc/rustc-dev-guide/src/tests/running.md | 12 +- .../rustc-dev-guide/src/traits/resolution.md | 117 +- src/doc/rustc-dev-guide/src/ty.md | 2 +- src/doc/rustc/src/SUMMARY.md | 3 + src/doc/rustc/src/command-line-arguments.md | 15 +- src/doc/rustc/src/platform-support.md | 18 +- src/doc/rustc/src/platform-support/android.md | 45 + .../armeb-unknown-linux-gnueabi.md | 2 +- .../src/platform-support/armv5te-none-eabi.md | 66 + .../x86_64-fortanix-unknown-sgx.md | 72 + src/doc/rustdoc/book.toml | 4 - src/doc/rustdoc/src/unstable-features.md | 39 + src/doc/style-guide/book.toml | 8 + src/doc/style-guide/src/README.md | 190 + src/doc/style-guide/src/SUMMARY.md | 11 + src/doc/style-guide/src/advice.md | 34 + src/doc/style-guide/src/cargo.md | 78 + src/doc/style-guide/src/expressions.md | 850 + src/doc/style-guide/src/items.md | 565 + src/doc/style-guide/src/principles.md | 51 + src/doc/style-guide/src/statements.md | 150 + src/doc/style-guide/src/types.md | 58 + .../src/compiler-flags/dylib-lto.md | 4 + .../src/compiler-flags/self-profile-events.md | 2 +- .../arbitrary-enum-discriminant.md | 37 - .../src/language-features/asm-sym.md | 13 - .../half-open-range-patterns-in-slices.md | 30 + .../half-open-range-patterns.md | 27 - .../src/language-features/unix-sigpipe.md | 10 +- src/etc/cat-and-grep.sh | 10 +- src/etc/natvis/libcore.natvis | 4 +- src/etc/rust-gdbgui | 3 +- src/librustdoc/clean/auto_trait.rs | 15 +- src/librustdoc/clean/blanket_impl.rs | 209 +- src/librustdoc/clean/inline.rs | 53 +- src/librustdoc/clean/mod.rs | 339 +- src/librustdoc/clean/simplify.rs | 60 +- src/librustdoc/clean/types.rs | 56 +- src/librustdoc/clean/utils.rs | 19 +- src/librustdoc/config.rs | 80 +- src/librustdoc/core.rs | 48 +- src/librustdoc/doctest.rs | 18 +- src/librustdoc/fold.rs | 2 +- src/librustdoc/formats/cache.rs | 29 +- src/librustdoc/formats/renderer.rs | 4 +- src/librustdoc/html/format.rs | 33 +- src/librustdoc/html/highlight.rs | 13 +- src/librustdoc/html/markdown.rs | 34 +- src/librustdoc/html/markdown/tests.rs | 48 +- src/librustdoc/html/render/context.rs | 65 +- src/librustdoc/html/render/mod.rs | 210 +- src/librustdoc/html/render/print_item.rs | 46 +- src/librustdoc/html/render/write_shared.rs | 6 +- src/librustdoc/html/sources.rs | 2 +- src/librustdoc/html/static/css/noscript.css | 6 +- src/librustdoc/html/static/css/rustdoc.css | 683 +- src/librustdoc/html/static/css/settings.css | 22 +- src/librustdoc/html/static/css/themes/ayu.css | 117 +- .../html/static/css/themes/dark.css | 116 +- .../html/static/css/themes/light.css | 109 +- src/librustdoc/html/static/js/main.js | 264 +- .../html/static/js/scrape-examples.js | 2 +- src/librustdoc/html/static/js/settings.js | 11 +- .../html/static/js/source-script.js | 37 +- src/librustdoc/html/static/js/storage.js | 4 +- src/librustdoc/html/templates/page.html | 54 +- src/librustdoc/html/templates/print_item.html | 24 +- src/librustdoc/json/conversions.rs | 12 +- src/librustdoc/json/mod.rs | 8 +- src/librustdoc/lib.rs | 87 +- src/librustdoc/lint.rs | 2 +- src/librustdoc/markdown.rs | 7 +- src/librustdoc/passes/bare_urls.rs | 6 +- .../passes/check_code_block_syntax.rs | 95 +- .../passes/check_doc_test_visibility.rs | 14 +- .../passes/collect_intra_doc_links.rs | 28 +- .../passes/collect_intra_doc_links/early.rs | 44 +- src/librustdoc/passes/html_tags.rs | 72 +- src/librustdoc/passes/propagate_doc_cfg.rs | 2 +- src/librustdoc/passes/strip_private.rs | 2 +- src/librustdoc/passes/stripper.rs | 44 +- src/librustdoc/scrape_examples.rs | 11 +- src/librustdoc/visit.rs | 2 +- src/librustdoc/visit_ast.rs | 20 +- src/librustdoc/visit_lib.rs | 32 +- src/rustdoc-json-types/lib.rs | 15 +- src/stage0.json | 568 +- src/test/assembly/asm/aarch64-types.rs | 2 +- src/test/assembly/asm/arm-types.rs | 2 +- src/test/assembly/asm/avr-types.rs | 2 +- src/test/assembly/asm/bpf-types.rs | 2 +- src/test/assembly/asm/global_asm.rs | 6 +- src/test/assembly/asm/hexagon-types.rs | 2 +- src/test/assembly/asm/mips-types.rs | 2 +- src/test/assembly/asm/msp430-types.rs | 2 +- src/test/assembly/asm/nvptx-types.rs | 2 +- src/test/assembly/asm/powerpc-types.rs | 2 +- src/test/assembly/asm/riscv-types.rs | 2 +- src/test/assembly/asm/s390x-types.rs | 2 +- src/test/assembly/asm/wasm-types.rs | 2 +- src/test/assembly/asm/x86-types.rs | 2 +- src/test/assembly/x86-stack-probes.rs | 42 + .../codegen-units/item-collection/asm-sym.rs | 20 + .../item-collection/generic-impl.rs | 6 +- .../codegen/abi-main-signature-32bit-c-int.rs | 2 +- .../binary-search-index-no-bound-check.rs | 20 + src/test/codegen/deduced-param-attrs.rs | 60 + src/test/codegen/function-arguments.rs | 2 +- src/test/codegen/mem-replace-direct-memcpy.rs | 1 + src/test/codegen/sanitizer_scs_attr_check.rs | 6 +- src/test/codegen/slice-iter-len-eq-zero.rs | 14 + src/test/codegen/slice_as_from_ptr_range.rs | 23 + src/test/codegen/stack-probes-call.rs | 24 + src/test/codegen/stack-probes-inline.rs | 32 + src/test/codegen/stack-probes.rs | 22 - src/test/codegen/vec-calloc.rs | 19 +- src/test/codegen/vec-in-place.rs | 2 +- .../incremental/hashes/function_interfaces.rs | 2 +- src/test/incremental/issue-61323.rs | 3 +- .../incremental/spans_significant_w_panic.rs | 1 - ...primitives.{impl#0}-clone.InstCombine.diff | 6 +- ...motion_extern_static.BAR.PromoteTemps.diff | 2 +- ...motion_extern_static.FOO.PromoteTemps.diff | 2 +- .../const_prop/cast.main.ConstProp.diff | 4 +- .../const_prop/indirect.main.ConstProp.diff | 2 +- ..._line_doc_comment_2.DeduplicateBlocks.diff | 2 +- .../derefer_complex_case.main.Derefer.diff | 12 +- .../simple.nrvo.DestinationPropagation.diff | 4 +- ...ness.no_downcast.EarlyOtherwiseBranch.diff | 6 +- src/test/mir-opt/enum_cast.bar.mir_map.0.mir | 2 +- src/test/mir-opt/enum_cast.boo.mir_map.0.mir | 2 +- .../mir-opt/enum_cast.droppy.mir_map.0.mir | 2 +- src/test/mir-opt/enum_cast.foo.mir_map.0.mir | 2 +- ...float_to_exponential_common.ConstProp.diff | 24 +- ...comparison.SimplifyComparisonIntegral.diff | 4 +- src/test/mir-opt/inline/asm-unwind.rs | 22 + .../inline/asm_unwind.main.Inline.diff | 45 + src/test/mir-opt/inline/cycle.f.Inline.diff | 2 +- .../inline/dyn_trait.get_query.Inline.diff | 6 +- .../inline/dyn_trait.mk_cycle.Inline.diff | 2 +- .../dyn_trait.try_execute_query.Inline.diff | 4 +- .../inline/inline_diverging.g.Inline.diff | 2 +- .../inline/inline_generator.main.Inline.diff | 2 +- .../inline/inline_retag.bar.Inline.after.mir | 6 +- .../inline/inline_shims.clone.Inline.diff | 2 +- .../inline_trait_method.test.Inline.after.mir | 2 +- ...line_trait_method_2.test2.Inline.after.mir | 2 +- .../inline/issue_78442.bar.Inline.diff | 2 +- .../inline/issue_78442.bar.RevealAll.diff | 4 +- src/test/mir-opt/issue-101867.rs | 2 - .../mir-opt/issue_101867.main.mir_map.0.mir | 4 +- .../mir-opt/issue_101973.inner.ConstProp.diff | 4 +- .../issue_73223.main.SimplifyArmIdentity.diff | 4 +- .../mir-opt/issue_91633.bar.mir_map.0.mir | 2 +- .../mir-opt/issue_91633.foo.mir_map.0.mir | 2 +- .../mir-opt/issue_91633.hey.mir_map.0.mir | 2 +- .../mir-opt/issue_99325.main.mir_map.0.mir | 18 +- ...trinsics.discriminant.LowerIntrinsics.diff | 8 +- ...f_copy_nonoverlapping.LowerIntrinsics.diff | 4 +- ...er_slice_len.bound.LowerSliceLenCalls.diff | 2 +- ..._after_call.main.ElaborateDrops.before.mir | 2 +- .../nrvo_simple.nrvo.RenameReturnPlace.diff | 4 +- src/test/mir-opt/remove-never-const.rs | 1 - ...age_markers.main.RemoveStorageMarkers.diff | 2 +- ...asts.SimplifyCfg-elaborate-drops.after.mir | 4 +- ...place.Test.SimplifyCfg-make_shim.after.mir | 2 +- ...main.SimplifyCfg-elaborate-drops.after.mir | 10 +- ...[String].AddMovesForPackedDrops.before.mir | 2 +- ...Vec_i32_.AddMovesForPackedDrops.before.mir | 2 +- src/test/pretty/issue-4264.pp | 8 +- src/test/pretty/issue-85089.pp | 20 + src/test/pretty/issue-85089.rs | 16 + src/test/pretty/raw-str-nonexpr.rs | 1 + src/test/pretty/tests-are-sorted.pp | 69 + src/test/pretty/tests-are-sorted.rs | 13 + .../run-make-fulldeps/alloc-no-rc/Makefile | 4 + .../run-make-fulldeps/alloc-no-sync/Makefile | 4 + .../foreign-rust-exceptions/Makefile | 11 + .../foreign-rust-exceptions/bar.rs | 7 + .../foreign-rust-exceptions/foo.rs | 13 + .../intrinsic-unreachable/Makefile | 1 + src/test/run-make-fulldeps/issue-19371/foo.rs | 2 - .../obtain-borrowck/driver.rs | 12 +- .../print-calling-conventions/Makefile | 4 + .../rustdoc-scrape-examples-macros/src/lib.rs | 8 +- src/test/run-make/coverage-reports/Makefile | 11 +- src/test/run-make/issue-36710/Makefile | 6 +- src/test/run-make/macos-fat-archive/Makefile | 10 + src/test/run-make/macos-fat-archive/lib.rs | 3 + .../macos-fat-archive/native-library.c | 1 + .../Makefile | 15 + .../local_native_dep.rs | 4 + .../main.rs | 9 + .../Makefile | 12 + .../rust_dep.rs | 9 + .../upstream_native_dep.rs | 4 + .../Makefile | 22 - .../rlib-format-packed-bundled-libs-2/main.rs | 5 - .../native_dep.rs | 4 - .../rust_dep.rs | 11 - .../rlib-format-packed-bundled-libs/Makefile | 34 - .../rlib-format-packed-bundled-libs/main.rs | 4 - .../native_dep_1.c | 1 - .../native_dep_2.c | 1 - .../native_dep_3.c | 1 - .../rust_dep_local.rs | 13 - .../rust_dep_up.rs | 13 - src/test/rustdoc-gui/anchor-navigable.goml | 4 +- src/test/rustdoc-gui/anchors.goml | 247 +- .../auto-hide-trait-implementations.goml | 2 +- src/test/rustdoc-gui/basic-code.goml | 4 +- src/test/rustdoc-gui/basic.goml | 4 +- .../rustdoc-gui/check-code-blocks-margin.goml | 6 +- .../rustdoc-gui/check-stab-in-docblock.goml | 27 + .../rustdoc-gui/check_info_sign_position.goml | 4 +- .../rustdoc-gui/code-blocks-overflow.goml | 4 +- src/test/rustdoc-gui/code-color.goml | 38 +- src/test/rustdoc-gui/code-sidebar-toggle.goml | 2 +- src/test/rustdoc-gui/code-tags.goml | 10 +- src/test/rustdoc-gui/codeblock-tooltip.goml | 170 +- src/test/rustdoc-gui/default-settings.goml | 2 +- .../rustdoc-gui/docblock-big-code-mobile.goml | 2 +- .../docblock-code-block-line-number.goml | 27 +- src/test/rustdoc-gui/docblock-details.goml | 15 +- .../rustdoc-gui/docblock-table-overflow.goml | 6 +- src/test/rustdoc-gui/docblock-table.goml | 2 +- .../rustdoc-gui/duplicate-macro-reexport.goml | 2 +- src/test/rustdoc-gui/escape-key.goml | 2 +- src/test/rustdoc-gui/font-weight.goml | 20 +- src/test/rustdoc-gui/hash-item-expansion.goml | 2 +- src/test/rustdoc-gui/headers-color.goml | 173 +- src/test/rustdoc-gui/headings.goml | 198 +- src/test/rustdoc-gui/help-page.goml | 24 + src/test/rustdoc-gui/highlight-colors.goml | 94 + .../huge-collection-of-constants.goml | 2 +- .../rustdoc-gui/impl-default-expansion.goml | 2 +- src/test/rustdoc-gui/implementors.goml | 16 +- src/test/rustdoc-gui/item-decl-colors.goml | 74 + src/test/rustdoc-gui/item-info-alignment.goml | 2 +- src/test/rustdoc-gui/item-info-overflow.goml | 10 +- src/test/rustdoc-gui/item-info.goml | 8 +- src/test/rustdoc-gui/item-summary-table.goml | 2 +- src/test/rustdoc-gui/javascript-disabled.goml | 2 +- .../rustdoc-gui/jump-to-def-background.goml | 57 +- .../rustdoc-gui/label-next-to-symbol.goml | 2 +- src/test/rustdoc-gui/links-color.goml | 2 +- src/test/rustdoc-gui/list_code_block.goml | 4 +- src/test/rustdoc-gui/mobile.goml | 6 +- src/test/rustdoc-gui/module-items-font.goml | 2 +- src/test/rustdoc-gui/no-docblock.goml | 8 + src/test/rustdoc-gui/notable-trait.goml | 128 + .../overflow-tooltip-information.goml | 2 +- src/test/rustdoc-gui/pocket-menu.goml | 2 +- src/test/rustdoc-gui/run-on-hover.goml | 2 +- src/test/rustdoc-gui/rust-logo.goml | 100 +- src/test/rustdoc-gui/search-filter.goml | 4 +- .../rustdoc-gui/search-form-elements.goml | 44 +- src/test/rustdoc-gui/search-input-mobile.goml | 2 +- src/test/rustdoc-gui/search-reexport.goml | 2 +- src/test/rustdoc-gui/search-result-color.goml | 410 +- .../search-result-description.goml | 2 +- .../rustdoc-gui/search-result-display.goml | 4 +- .../search-result-go-to-first.goml | 12 +- .../rustdoc-gui/search-result-keyword.goml | 2 +- .../search-tab-change-title-fn-sig.goml | 10 +- src/test/rustdoc-gui/settings.goml | 15 +- src/test/rustdoc-gui/shortcuts.goml | 20 +- src/test/rustdoc-gui/sidebar-links-color.goml | 233 + .../rustdoc-gui/sidebar-macro-reexport.goml | 4 +- .../rustdoc-gui/sidebar-mobile-scroll.goml | 10 +- src/test/rustdoc-gui/sidebar-mobile.goml | 18 +- .../sidebar-source-code-display.goml | 25 +- src/test/rustdoc-gui/sidebar-source-code.goml | 6 +- src/test/rustdoc-gui/sidebar.goml | 73 +- .../rustdoc-gui/source-anchor-scroll.goml | 4 +- src/test/rustdoc-gui/source-code-page.goml | 90 +- src/test/rustdoc-gui/src-font-size.goml | 10 +- src/test/rustdoc-gui/src/test_docs/lib.rs | 91 + src/test/rustdoc-gui/theme-change.goml | 4 +- src/test/rustdoc-gui/theme-in-history.goml | 4 +- .../rustdoc-gui/toggle-click-deadspace.goml | 4 +- src/test/rustdoc-gui/toggle-docs-mobile.goml | 2 +- src/test/rustdoc-gui/toggle-docs.goml | 4 +- src/test/rustdoc-gui/toggle-implementors.goml | 2 +- .../toggled-open-implementations.goml | 2 +- .../rustdoc-gui/trait-sidebar-item-order.goml | 2 +- .../rustdoc-gui/type-declation-overflow.goml | 20 +- src/test/rustdoc-gui/unsafe-fn.goml | 28 + src/test/rustdoc-gui/where-whitespace.goml | 4 +- src/test/rustdoc-js-std/asrawfd.js | 6 +- .../primitives/primitive_impls.rs | 34 + .../{ => primitives}/primitive_overloading.rs | 0 .../primitive_type.rs} | 0 .../use_primitive.rs} | 2 +- .../reexport_method_from_private_module.rs | 28 + src/test/rustdoc-ui/bare-urls.stderr | 2 +- src/test/rustdoc-ui/check-attr-test.stderr | 2 +- src/test/rustdoc-ui/check-attr.stderr | 2 +- src/test/rustdoc-ui/check-cfg-test.stderr | 2 +- src/test/rustdoc-ui/check-fail.stderr | 2 +- src/test/rustdoc-ui/check.stderr | 4 +- .../deny-intra-link-resolution-failure.stderr | 2 +- src/test/rustdoc-ui/diagnostic-width.rs | 2 +- src/test/rustdoc-ui/diagnostic-width.stderr | 2 +- src/test/rustdoc-ui/doc-attr.stderr | 4 +- .../rustdoc-ui/doc-include-suggestion.stderr | 2 +- src/test/rustdoc-ui/doc-spotlight.stderr | 8 +- src/test/rustdoc-ui/doc-test-attr.stderr | 4 +- src/test/rustdoc-ui/doc_cfg_hide.rs | 11 + src/test/rustdoc-ui/doc_cfg_hide.stderr | 40 + src/test/rustdoc-ui/doctest-edition.stderr | 2 +- ...e-rustdoc_missing_doc_code_examples.stderr | 6 +- src/test/rustdoc-ui/ignore-block-help.stderr | 2 +- ...finite-recursive-type-impl-trait-return.rs | 3 +- ...te-recursive-type-impl-trait-return.stderr | 17 - .../infinite-recursive-type-impl-trait.rs | 4 +- .../infinite-recursive-type-impl-trait.stderr | 17 - .../rustdoc-ui/infinite-recursive-type.stderr | 4 +- .../html-as-generics-intra-doc.stderr | 2 +- .../intra-doc/macro-rules-error.stderr | 2 +- .../intra-doc/malformed-generics.rs | 9 + .../intra-doc/malformed-generics.stderr | 82 +- .../intra-doc/non-path-primitives.stderr | 2 +- .../intra-doc/private-from-crate-level.stderr | 2 +- .../intra-doc/private.private.stderr | 2 +- .../intra-doc/private.public.stderr | 2 +- .../intra-doc/span-ice-55723.stderr | 2 +- .../intra-doc/through-proc-macro.stderr | 2 +- .../intra-doc/unknown-disambiguator.stderr | 12 +- .../intra-doc/unused-extern-crate.stderr | 2 +- .../rustdoc-ui/intra-doc/warning-crlf.stderr | 2 +- src/test/rustdoc-ui/invalid-doc-attr.stderr | 6 +- .../invalid-html-self-closing-tag.rs | 70 + .../invalid-html-self-closing-tag.stderr | 80 + src/test/rustdoc-ui/invalid-syntax.rs | 6 + src/test/rustdoc-ui/invalid-syntax.stderr | 19 +- src/test/rustdoc-ui/issue-102986.rs | 4 + src/test/rustdoc-ui/issue-102986.stderr | 14 + .../rustdoc-ui/issue-74134.private.stderr | 2 +- src/test/rustdoc-ui/issue-74134.public.stderr | 2 +- src/test/rustdoc-ui/lint-group.stderr | 2 +- src/test/rustdoc-ui/macro-docs.stderr | 2 +- .../rustdoc-ui/no-crate-level-doc-lint.stderr | 4 +- src/test/rustdoc-ui/normalize-cycle.rs | 1 + src/test/rustdoc-ui/normalize-overflow.rs | 2 + src/test/rustdoc-ui/pub-export-lint.stderr | 2 +- .../reference-link-reports-error-once.stderr | 2 +- .../renamed-lint-still-applies.stderr | 4 +- .../suggestions/html-as-generics.fixed | 10 + .../suggestions/html-as-generics.rs | 10 + .../suggestions/html-as-generics.stderr | 24 +- src/test/rustdoc-ui/z-help.stdout | 47 +- src/test/rustdoc/anchors.no_const_anchor.html | 2 +- .../anchors.no_trait_method_anchor.html | 2 +- .../rustdoc/anchors.no_tymethod_anchor.html | 2 +- src/test/rustdoc/anchors.no_type_anchor.html | 2 +- src/test/rustdoc/anonymous-lifetime.rs | 2 +- .../rustdoc/array-links.link_box_generic.html | 1 + .../rustdoc/array-links.link_box_u32.html | 1 + .../array-links.link_slice_generic.html | 1 + .../rustdoc/array-links.link_slice_u32.html | 1 + src/test/rustdoc/array-links.rs | 28 + src/test/rustdoc/assoc-consts.rs | 4 +- src/test/rustdoc/associated-consts.rs | 8 +- src/test/rustdoc/async-trait.rs | 16 + src/test/rustdoc/attribute-rendering.rs | 2 +- src/test/rustdoc/attributes.rs | 2 +- src/test/rustdoc/auxiliary/async-trait-dep.rs | 9 + .../rustdoc/auxiliary/reexport-doc-aux.rs | 5 + src/test/rustdoc/blanket-reexport-item.rs | 2 +- src/test/rustdoc/const-generics/add-impl.rs | 2 +- .../const-generics/const-generics-docs.rs | 12 +- src/test/rustdoc/const-generics/const-impl.rs | 10 +- .../const-equate-pred.rs | 2 +- src/test/rustdoc/const-value-display.rs | 4 +- src/test/rustdoc/decl-trailing-whitespace.rs | 2 +- src/test/rustdoc/deref-recursive-pathbuf.rs | 4 +- src/test/rustdoc/deref-recursive.rs | 4 +- src/test/rustdoc/deref-typedef.rs | 2 +- ...oc-notable_trait_box_is_not_an_iterator.rs | 38 + .../rustdoc/duplicate_impls/issue-33054.rs | 6 +- src/test/rustdoc/empty-impl-block.rs | 2 +- src/test/rustdoc/escape-deref-methods.rs | 2 +- src/test/rustdoc/extern-impl.rs | 6 +- src/test/rustdoc/fn-bound.rs | 2 +- src/test/rustdoc/generic-impl.rs | 2 +- .../rustdoc/higher-ranked-trait-bounds.rs | 2 +- src/test/rustdoc/impl-disambiguation.rs | 10 +- src/test/rustdoc/impl-parts.rs | 4 +- src/test/rustdoc/index-page.rs | 6 +- .../assoc_item_trait_bounds.out0.html | 1 + .../assoc_item_trait_bounds.out2.html | 1 + .../assoc_item_trait_bounds.out9.html | 1 + .../inline_cross/assoc_item_trait_bounds.rs | 40 + .../auxiliary/assoc_item_trait_bounds.rs | 46 + .../inline_cross/auxiliary/impl_trait_aux.rs | 13 + .../inline_cross/auxiliary/issue-24183.rs | 14 + src/test/rustdoc/inline_cross/impl_trait.rs | 7 + ...ssue-24183.method_no_where_self_sized.html | 1 + src/test/rustdoc/inline_cross/issue-24183.rs | 18 + .../rustdoc/inline_cross/issue-31948-1.rs | 20 +- .../rustdoc/inline_cross/issue-31948-2.rs | 12 +- src/test/rustdoc/inline_cross/issue-31948.rs | 20 +- src/test/rustdoc/inline_cross/issue-32881.rs | 4 +- src/test/rustdoc/inline_cross/issue-33113.rs | 4 +- src/test/rustdoc/inline_cross/trait-vis.rs | 2 +- src/test/rustdoc/inline_local/trait-vis.rs | 4 +- .../intra-doc/auxiliary/issue-103463-aux.rs | 4 + .../extern-crate-only-used-in-link.rs | 2 +- src/test/rustdoc/intra-doc/issue-103463.rs | 8 + src/test/rustdoc/intra-doc/issue-104145.rs | 14 + .../rustdoc/intra-doc/no-doc-primitive.rs | 15 + src/test/rustdoc/issue-100241.rs | 12 + src/test/rustdoc/issue-29503.rs | 2 +- src/test/rustdoc/issue-33592.rs | 4 +- src/test/rustdoc/issue-46727.rs | 2 +- src/test/rustdoc/issue-50159.rs | 4 +- src/test/rustdoc/issue-51236.rs | 2 +- src/test/rustdoc/issue-54705.rs | 4 +- src/test/rustdoc/issue-55321.rs | 8 +- src/test/rustdoc/issue-56822.rs | 2 +- src/test/rustdoc/issue-60726.rs | 4 +- src/test/rustdoc/issue-75588.rs | 4 +- .../issue-80233-normalize-auto-trait.rs | 2 +- .../issue-82465-asref-for-and-of-local.rs | 4 +- src/test/rustdoc/issue-98697.rs | 4 +- src/test/rustdoc/keyword.rs | 2 +- src/test/rustdoc/logo-class-default.rs | 2 +- src/test/rustdoc/logo-class.rs | 4 +- .../rustdoc/macro-higher-kinded-function.rs | 4 +- src/test/rustdoc/negative-impl-sidebar.rs | 2 +- src/test/rustdoc/negative-impl.rs | 4 +- src/test/rustdoc/normalize-assoc-item.rs | 13 + .../rustdoc/not-wf-ambiguous-normalization.rs | 24 + src/test/rustdoc/primitive-reference.rs | 4 +- .../rustdoc/primitive-slice-auto-trait.rs | 2 +- .../rustdoc/primitive-tuple-auto-trait.rs | 2 +- src/test/rustdoc/primitive-unit-auto-trait.rs | 2 +- src/test/rustdoc/primitive.rs | 2 +- .../primitive/primitive-generic-impl.rs | 2 +- src/test/rustdoc/recursive-deref.rs | 18 +- src/test/rustdoc/reexport-dep-foreign-fn.rs | 2 +- src/test/rustdoc/reexport-doc.rs | 8 + src/test/rustdoc/reexports-priv.rs | 32 +- src/test/rustdoc/reexports.rs | 16 +- src/test/rustdoc/rfc-2632-const-trait-impl.rs | 16 +- src/test/rustdoc/safe-intrinsic.rs | 2 + src/test/rustdoc/sidebar-all-page.rs | 35 + src/test/rustdoc/sidebar-items.rs | 18 +- .../rustdoc/sidebar-links-to-foreign-impl.rs | 6 +- src/test/rustdoc/sized_trait.rs | 2 +- src/test/rustdoc/src-links-auto-impls.rs | 6 +- .../strip-enum-variant.no-not-shown.html | 2 +- src/test/rustdoc/strip-enum-variant.rs | 2 +- src/test/rustdoc/synthetic_auto/basic.rs | 4 +- src/test/rustdoc/synthetic_auto/complex.rs | 2 +- .../rustdoc/synthetic_auto/crate-local.rs | 6 +- src/test/rustdoc/synthetic_auto/lifetimes.rs | 4 +- src/test/rustdoc/synthetic_auto/manual.rs | 4 +- src/test/rustdoc/synthetic_auto/negative.rs | 4 +- src/test/rustdoc/synthetic_auto/nested.rs | 4 +- .../rustdoc/synthetic_auto/no-redundancy.rs | 2 +- src/test/rustdoc/synthetic_auto/overflow.rs | 2 +- src/test/rustdoc/synthetic_auto/project.rs | 4 +- .../synthetic_auto/self-referential.rs | 2 +- .../rustdoc/synthetic_auto/static-region.rs | 2 +- src/test/rustdoc/toggle-item-contents.rs | 2 +- src/test/rustdoc/toggle-trait-fn.rs | 12 +- src/test/rustdoc/trait_alias.rs | 6 +- src/test/rustdoc/traits-in-bodies.rs | 6 +- src/test/rustdoc/tuple-struct-fields-doc.rs | 2 +- src/test/rustdoc/typedef.rs | 4 +- .../rustdoc/where.SWhere_Simd_item-decl.html | 2 +- .../where.SWhere_TraitWhere_item-decl.html | 2 +- src/test/rustdoc/where.rs | 14 +- .../whitespace-after-where-clause.enum.html | 4 +- .../whitespace-after-where-clause.enum2.html | 4 +- .../rustdoc/whitespace-after-where-clause.rs | 16 +- .../whitespace-after-where-clause.struct.html | 4 +- ...whitespace-after-where-clause.struct2.html | 4 +- .../whitespace-after-where-clause.trait.html | 4 +- .../whitespace-after-where-clause.trait2.html | 4 +- .../whitespace-after-where-clause.union.html | 4 +- .../whitespace-after-where-clause.union2.html | 4 +- .../auxiliary/issue-40001-plugin.rs | 10 +- .../ui-fulldeps/auxiliary/lint-for-crate.rs | 8 +- .../auxiliary/lint-group-plugin-test.rs | 10 +- .../ui-fulldeps/auxiliary/lint-plugin-test.rs | 4 +- .../ui-fulldeps/auxiliary/lint-tool-test.rs | 8 +- src/test/ui-fulldeps/fluent-messages/test.rs | 5 +- .../ui-fulldeps/fluent-messages/test.stderr | 29 +- .../internal-lints/default_hash_types.stderr | 2 +- .../ui-fulldeps/internal-lints/diagnostics.rs | 52 +- .../internal-lints/diagnostics.stderr | 14 +- .../existing_doc_keyword.stderr | 2 +- .../lint_pass_impl_without_macro.stderr | 2 +- .../internal-lints/query_stability.stderr | 2 +- src/test/ui-fulldeps/pprust-expr-roundtrip.rs | 4 +- .../session-diagnostic/diagnostic-derive.rs | 605 +- .../diagnostic-derive.stderr | 552 +- .../subdiagnostic-derive.rs | 321 +- .../subdiagnostic-derive.stderr | 256 +- src/test/ui/abi/abi-sysv64-register-usage.rs | 26 +- src/test/ui/abi/abi-typo-unstable.rs | 6 + src/test/ui/abi/abi-typo-unstable.stderr | 11 + src/test/ui/abi/segfault-no-out-of-stack.rs | 1 + src/test/ui/abi/stack-probes-lto.rs | 3 +- src/test/ui/abi/stack-probes.rs | 30 +- src/test/ui/abi/unsupported.aarch64.stderr | 2 +- src/test/ui/abi/unsupported.arm.stderr | 2 +- src/test/ui/abi/unsupported.x64.stderr | 2 +- src/test/ui/abi/x86stdcall.rs | 26 +- src/test/ui/abi/x86stdcall2.rs | 12 +- .../alloc-error/default-alloc-error-hook.rs | 11 +- .../anon-params/anon-params-deprecated.stderr | 4 +- .../anonymous-higher-ranked-lifetime.stderr | 20 +- .../ui/array-slice-vec/array_const_index-0.rs | 3 +- .../array_const_index-0.stderr | 20 +- .../ui/array-slice-vec/array_const_index-1.rs | 3 +- .../array_const_index-1.stderr | 20 +- src/test/ui/asm/aarch64/bad-reg.rs | 2 +- src/test/ui/asm/aarch64/may_unwind.rs | 2 +- src/test/ui/asm/aarch64/sym.rs | 2 +- src/test/ui/asm/aarch64/type-check-2-2.rs | 2 +- src/test/ui/asm/aarch64/type-check-2-2.stderr | 10 + src/test/ui/asm/aarch64/type-check-2.rs | 2 +- src/test/ui/asm/aarch64/type-check-3.stderr | 2 +- .../bad-template.aarch64_mirunsafeck.stderr | 2 +- .../bad-template.aarch64_thirunsafeck.stderr | 2 +- .../bad-template.x86_64_mirunsafeck.stderr | 2 +- .../bad-template.x86_64_thirunsafeck.stderr | 2 +- src/test/ui/asm/generic-const.rs | 2 +- src/test/ui/asm/naked-functions-ffi.stderr | 2 +- src/test/ui/asm/naked-functions.rs | 2 +- src/test/ui/asm/named-asm-labels.stderr | 6 +- src/test/ui/asm/type-check-1.rs | 2 +- src/test/ui/asm/unpretty-expanded.rs | 1 + src/test/ui/asm/unpretty-expanded.stdout | 1 + src/test/ui/asm/x86_64/bad-reg.rs | 2 +- src/test/ui/asm/x86_64/issue-96797.rs | 2 - src/test/ui/asm/x86_64/may_unwind.rs | 2 +- .../ui/asm/x86_64/multiple-clobber-abi.rs | 2 - src/test/ui/asm/x86_64/sym.rs | 2 +- src/test/ui/asm/x86_64/type-check-2.rs | 2 +- src/test/ui/asm/x86_64/type-check-3.stderr | 2 +- src/test/ui/asm/x86_64/type-check-4.rs | 5 +- src/test/ui/asm/x86_64/type-check-4.stderr | 6 +- src/test/ui/asm/x86_64/type-check-5.rs | 2 +- src/test/ui/asm/x86_64/type-check-5.stderr | 10 + ...ssociated-const-impl-wrong-lifetime.stderr | 2 +- .../defaults-not-assumed-fail.rs | 4 +- .../defaults-not-assumed-fail.stderr | 39 +- .../associated-consts/mismatched_impl_ty_1.rs | 18 + .../associated-consts/mismatched_impl_ty_2.rs | 11 + .../associated-consts/mismatched_impl_ty_3.rs | 11 + .../associated-item-duplicate-names-2.stderr | 8 +- .../associated-item-duplicate-names-3.rs | 1 + .../associated-item-duplicate-names-3.stderr | 18 +- .../associated-item-duplicate-names.stderr | 14 +- .../impl-duplicate-methods.rs | 2 +- .../impl-duplicate-methods.stderr | 11 + .../ui/associated-type-bounds/inside-adt.rs | 4 +- .../associated-type-bounds/inside-adt.stderr | 10 +- .../project-fn-ret-invariant.oneuse.stderr | 10 +- .../cache/project-fn-ret-invariant.rs | 2 +- .../defaults-specialization.stderr | 2 +- src/test/ui/associated-types/issue-85103.rs | 2 +- .../ui/associated-types/issue-85103.stderr | 2 +- src/test/ui/associated-types/issue-87261.rs | 6 +- .../ui/associated-types/issue-87261.stderr | 18 +- .../ui/async-await/async-fn-nonsend.stderr | 2 +- .../async-await/async-fn-size-moved-locals.rs | 2 +- .../async-fn-size-uninit-locals.rs | 5 +- src/test/ui/async-await/async-trait-fn.rs | 3 - src/test/ui/async-await/async-trait-fn.stderr | 62 +- ...015-edition-error-various-positions.stderr | 4 +- .../await-keyword/2015-edition-warning.stderr | 4 +- ...edition-error-in-non-macro-position.stderr | 4 +- .../edition-deny-async-fns-2015.rs | 1 - .../edition-deny-async-fns-2015.stderr | 28 +- .../feature-gate-async_fn_in_trait.rs | 25 + .../feature-gate-async_fn_in_trait.stderr | 42 + .../in-trait/async-associated-types.rs | 24 + .../in-trait/async-associated-types.stderr | 57 + .../in-trait/async-associated-types2.rs | 30 + .../async-example-desugared-boxed-in-trait.rs | 21 + ...nc-example-desugared-boxed-in-trait.stderr | 17 + .../in-trait/async-example-desugared-boxed.rs | 24 + .../async-example-desugared-in-trait.rs | 21 + .../in-trait/async-example-desugared.rs | 23 + .../ui/async-await/in-trait/async-example.rs | 32 + .../in-trait/async-generics-and-bounds.rs | 21 + .../in-trait/async-generics-and-bounds.stderr | 37 + .../ui/async-await/in-trait/async-generics.rs | 18 + .../in-trait/async-generics.stderr | 37 + .../in-trait/async-lifetimes-and-bounds.rs | 20 + .../async-lifetimes-and-bounds.stderr | 23 + .../async-await/in-trait/async-lifetimes.rs | 18 + .../in-trait/async-lifetimes.stderr | 23 + .../in-trait/async-recursive-generic.rs | 21 + .../in-trait/async-recursive-generic.stderr | 12 + .../async-await/in-trait/async-recursive.rs | 21 + .../in-trait/async-recursive.stderr | 12 + .../async-await/in-trait/fn-not-async-err.rs | 17 + .../in-trait/fn-not-async-err.stderr | 17 + .../async-await/in-trait/fn-not-async-err2.rs | 21 + .../in-trait/fn-not-async-err2.stderr | 12 + .../ui/async-await/in-trait/issue-102138.rs | 46 + .../ui/async-await/in-trait/issue-102219.rs | 10 + .../ui/async-await/in-trait/issue-102310.rs | 15 + src/test/ui/async-await/issue-64130-1-sync.rs | 2 +- src/test/ui/async-await/issue-64130-2-send.rs | 2 +- .../ui/async-await/issue-64130-3-other.rs | 2 +- .../issue-66387-if-without-else.stderr | 2 +- ...e-70935-complex-spans.drop_tracking.stderr | 2 +- .../{issues => async-await}/issue-73541-3.rs | 0 .../issue-73541-3.stderr | 0 .../ui/{issues => async-await}/issue-73541.rs | 0 .../issue-73541.stderr | 0 src/test/ui/async-await/issue-98634.rs | 50 + src/test/ui/async-await/issue-98634.stderr | 60 + ...issue-65419-async-fn-resume-after-panic.rs | 1 - .../ui/async-await/issues/issue-95307.stderr | 2 +- .../async-await/large_moves.attribute.stderr | 2 +- .../ui/async-await/large_moves.option.stderr | 2 +- .../ret-impl-trait-one.stderr | 2 +- src/test/ui/async-await/no-const-async.stderr | 2 +- src/test/ui/attr-from-macro.rs | 20 + src/test/ui/attributes/doc-attr.stderr | 4 +- .../ui/attributes/invalid-doc-attr.stderr | 6 +- .../unix_sigpipe/auxiliary/sigpipe-utils.rs | 6 +- .../auto-traits/suspicious-impls-lint.stderr | 10 +- src/test/ui/auxiliary/attr-from-macro.rs | 15 + src/test/ui/backtrace.rs | 1 + .../fn-arg-incomplete-pattern-drop-order.rs | 1 - .../binding/issue-53114-safety-checks.stderr | 10 +- src/test/ui/binop/issue-77910-1.rs | 2 +- src/test/ui/binop/issue-77910-1.stderr | 12 +- src/test/ui/binop/issue-77910-2.stderr | 4 +- .../consider-removing-last-semi.stderr | 6 +- src/test/ui/block-result/issue-11714.stderr | 2 +- src/test/ui/block-result/issue-13428.stderr | 2 +- .../ui/borrowck/anonymous-region-in-apit.rs | 12 + .../borrowck/anonymous-region-in-apit.stderr | 16 + .../ui/borrowck/borrowck-block-unint.stderr | 5 + .../borrowck/borrowck-break-uninit-2.stderr | 4 + .../ui/borrowck/borrowck-break-uninit.stderr | 4 + .../borrowck-init-in-called-fn-expr.stderr | 5 + .../borrowck/borrowck-init-in-fn-expr.stderr | 5 + .../ui/borrowck/borrowck-init-in-fru.stderr | 5 + .../ui/borrowck/borrowck-init-op-equal.stderr | 5 + .../borrowck/borrowck-init-plus-equal.stderr | 5 + .../borrowck-mut-borrow-linear-errors.stderr | 5 +- src/test/ui/borrowck/borrowck-return.stderr | 5 + .../ui/borrowck/borrowck-storage-dead.stderr | 5 + .../borrowck-uninit-after-item.stderr | 5 + .../borrowck-uninit-field-access.stderr | 5 + .../borrowck-uninit-in-assignop.stderr | 50 + .../borrowck/borrowck-uninit-ref-chain.stderr | 15 + src/test/ui/borrowck/borrowck-uninit.stderr | 5 + .../borrowck-use-in-index-lvalue.stderr | 10 + ...wck-use-uninitialized-in-cast-trait.stderr | 5 + .../borrowck-use-uninitialized-in-cast.stderr | 5 + .../ui/borrowck/borrowck-while-cond.stderr | 5 + src/test/ui/borrowck/issue-102209.rs | 28 + src/test/ui/borrowck/issue-102209.stderr | 22 + src/test/ui/borrowck/issue-103250.rs | 37 + src/test/ui/borrowck/issue-103250.stderr | 17 + src/test/ui/borrowck/issue-103624.rs | 31 + src/test/ui/borrowck/issue-103624.stderr | 35 + .../issue-17718-static-move.rs | 0 .../issue-17718-static-move.stderr | 0 ...ssue-23338-params-outlive-temps-of-body.rs | 0 .../ui/borrowck/issue-24267-flow-exit.stderr | 8 + .../issue-62107-match-arm-scopes.stderr | 5 + src/test/ui/borrowck/issue-81899.rs | 3 +- src/test/ui/borrowck/issue-81899.stderr | 23 +- .../borrowck/issue-88434-minimal-example.rs | 3 +- .../issue-88434-minimal-example.stderr | 23 +- ...ssue-88434-removal-index-should-be-less.rs | 3 +- ...-88434-removal-index-should-be-less.stderr | 23 +- .../reborrow-sugg-move-then-borrow.rs | 26 + .../reborrow-sugg-move-then-borrow.stderr | 24 + src/test/ui/borrowck/suggest-assign-rvalue.rs | 57 + .../ui/borrowck/suggest-assign-rvalue.stderr | 138 + .../ui/borrowck/two-phase-across-loop.stderr | 5 +- src/test/ui/box/issue-95036.rs | 2 +- src/test/ui/builtin-clone-unwind.rs | 1 - src/test/ui/cast/cast-rfc0401.rs | 6 +- src/test/ui/cast/issue-88621.rs | 2 - src/test/ui/cast/issue-88621.stderr | 2 +- src/test/ui/catch-unwind-bang.rs | 1 - src/test/ui/cenum_impl_drop_cast.stderr | 8 +- src/test/ui/cfg/cfg-method-receiver-ok.rs | 14 + src/test/ui/cfg/cfg-method-receiver.rs | 11 + src/test/ui/cfg/cfg-method-receiver.stderr | 24 + src/test/ui/cfg/cfg-panic.rs | 3 - ...pat-crate-attributes-using-cfg_attr.stderr | 2 +- src/test/ui/check-cfg/compact-values.stderr | 2 +- src/test/ui/check-cfg/empty-values.stderr | 2 +- .../ui/check-cfg/invalid-cfg-value.stderr | 2 +- src/test/ui/check-cfg/no-values.stderr | 2 +- .../ui/check-cfg/well-known-values.stderr | 2 +- .../ui/check-static-values-constraints.rs | 2 +- .../ui/check-static-values-constraints.stderr | 4 +- .../expect-fn-supply-fn.stderr | 6 +- .../diagnostics/liveness.stderr | 4 +- .../liveness_unintentional_copy.stderr | 4 +- .../diagnostics/repr_packed.stderr | 4 +- .../issue-88118-2.stderr | 2 +- .../2229_closure_analysis/issue-90465.stderr | 2 +- .../match/issue-87097.stderr | 2 +- .../match/pattern-matching-should-fail.stderr | 5 + .../migrations/auto_traits.stderr | 2 +- .../closure-body-macro-fragment.stderr | 2 +- .../insignificant_drop_attr_migrations.stderr | 2 +- .../migrations/issue-78720.stderr | 2 +- .../migrations/macro.stderr | 2 +- .../migrations/migrations_rustfix.stderr | 2 +- .../migrations/mir_calls_to_shims.fixed | 1 - .../migrations/mir_calls_to_shims.rs | 1 - .../migrations/mir_calls_to_shims.stderr | 4 +- .../migrations/multi_diagnostics.stderr | 2 +- .../migrations/precise.stderr | 2 +- .../migrations/significant_drop.stderr | 2 +- .../ui/closures/closure-bounds-subtype.stderr | 4 + .../ui/closures/closure-reform-bad.stderr | 2 +- .../closure-return-type-must-be-sized.rs | 74 + .../closure-return-type-must-be-sized.stderr | 99 + src/test/ui/closures/closure_promotion.rs | 2 - src/test/ui/closures/issue-101696.rs | 36 + .../issue-102089-multiple-opaque-cast.rs | 17 + src/test/ui/closures/issue-97607.rs | 12 + src/test/ui/closures/multiple-fn-bounds.rs | 15 + .../ui/closures/multiple-fn-bounds.stderr | 24 + ...-closure-expression-remove-semicolon.fixed | 2 +- ...old-closure-expression-remove-semicolon.rs | 2 +- ...closure-expression-remove-semicolon.stderr | 2 +- .../ui/codemap_tests/unicode.normal.stderr | 2 +- ...coercion-missing-tail-expected-type.stderr | 4 +- src/test/ui/coercion/issue-36007.rs | 20 + .../coherence-default-trait-impl.stderr | 12 + ...erence-fn-covariant-bound-vs-static.stderr | 4 +- .../coherence-fn-implied-bounds.stderr | 6 +- .../coherence-free-vs-bound-region.stderr | 6 +- ...erence-inherited-assoc-ty-cycle-err.stderr | 2 +- .../coherence-negative-impls-copy-bad.rs | 11 + .../coherence-negative-impls-copy-bad.stderr | 36 + .../coherence-negative-impls-copy.rs | 29 + .../ui/coherence/coherence-subtyping.stderr | 2 +- .../coherence/coherence-wasm-bindgen.stderr | 8 +- .../ui/coherence/deep-bad-copy-reason.stderr | 4 +- src/test/ui/command/command-current-dir.rs | 1 + src/test/ui/command/command-exec.rs | 1 + src/test/ui/command/command-pre-exec.rs | 1 + src/test/ui/command/command-uid-gid.rs | 1 + src/test/ui/compare-method/issue-90444.stderr | 6 +- src/test/ui/conflicting-repr-hints.stderr | 2 +- ...const-generic-default-wont-borrowck.stderr | 5 + .../const_trait_fn-issue-88433.rs | 1 + .../generic_const_exprs/closures.stderr | 4 +- .../dependence_lint.full.stderr | 10 +- .../dependence_lint.gce.stderr | 8 +- .../generic_const_exprs/dependence_lint.rs | 1 + .../generic_const_exprs/eval-try-unify.stderr | 2 +- .../generic_const_exprs/function-call.rs | 1 + .../generic_const_exprs/function-call.stderr | 4 +- .../generic_const_exprs/issue-102074.rs | 23 + .../generic_const_exprs/issue-102768.rs | 14 + .../generic_const_exprs/issue-102768.stderr | 33 + .../issue-97047-ice-1.stderr | 2 +- .../issue-97047-ice-2.stderr | 2 +- .../object-safety-err-where-bounds.stderr | 10 +- src/test/ui/const-generics/invariant.stderr | 2 +- src/test/ui/const-generics/issue-102124.rs | 20 + src/test/ui/const-generics/issue-103243.rs | 37 - src/test/ui/const-generics/issue-80471.stderr | 2 +- src/test/ui/const-generics/issue-93647.rs | 2 +- .../const-generics/issues/issue-83466.stderr | 2 +- .../const-generics/issues/issue-83765.stderr | 8 +- .../ui/const-generics/issues/issue-88119.rs | 1 + .../ui/const-generics/issues/issue-98629.rs | 1 + .../const-generics/issues/issue-98629.stderr | 2 +- .../min_const_generics/complex-expression.rs | 1 + .../complex-expression.stderr | 18 +- .../const-evaluatable-unchecked.rs | 1 + .../const-evaluatable-unchecked.stderr | 8 +- .../occurs-check/unify-fixpoint.stderr | 2 +- .../occurs-check/unused-substs-2.rs | 2 +- .../occurs-check/unused-substs-3.rs | 2 +- .../const-ptr/forbidden_slices.32bit.stderr | 16 +- .../const-ptr/forbidden_slices.64bit.stderr | 16 +- src/test/ui/const_prop/issue-102553.rs | 24 + src/test/ui/consts/array-literal-index-oob.rs | 2 +- .../ui/consts/array-literal-index-oob.stderr | 6 +- src/test/ui/consts/assert-type-intrinsics.rs | 7 +- .../ui/consts/assert-type-intrinsics.stderr | 70 +- .../ui/consts/assoc_const_generic_impl.rs | 7 +- .../ui/consts/assoc_const_generic_impl.stderr | 40 +- .../ui/consts/cast-discriminant-zst-enum.rs | 1 - src/test/ui/consts/const-err-early.rs | 17 +- src/test/ui/consts/const-err-early.stderr | 126 +- src/test/ui/consts/const-err-late.rs | 22 + src/test/ui/consts/const-err-late.stderr | 27 + src/test/ui/consts/const-err-multi.rs | 14 +- src/test/ui/consts/const-err-multi.stderr | 102 +- src/test/ui/consts/const-err-rpass.rs | 2 - src/test/ui/consts/const-err.rs | 19 - src/test/ui/consts/const-err.stderr | 44 - .../const-eval/conditional_array_execution.rs | 10 +- .../conditional_array_execution.stderr | 63 +- .../const-eval/const-eval-overflow-2.rs | 4 +- .../const-eval/const-eval-overflow-2.stderr | 24 +- .../const-eval/const-eval-overflow-3b.stderr | 4 +- .../const-eval/const-eval-overflow-4b.stderr | 4 +- .../consts/const-eval/const-eval-overflow2.rs | 26 +- .../const-eval/const-eval-overflow2.stderr | 226 +- .../const-eval/const-eval-overflow2b.rs | 26 +- .../const-eval/const-eval-overflow2b.stderr | 226 +- .../const-eval/const-eval-overflow2c.rs | 26 +- .../const-eval/const-eval-overflow2c.stderr | 226 +- .../const-eval/const-eval-query-stack.rs | 10 +- .../const-eval/const-eval-query-stack.stderr | 64 +- ...inter-values-in-various-types.64bit.stderr | 570 +- .../const-pointer-values-in-various-types.rs | 81 +- .../consts/const-eval/const_fn_ptr_fail2.rs | 7 +- .../const-eval/const_fn_ptr_fail2.stderr | 92 +- src/test/ui/consts/const-eval/const_let.rs | 8 +- .../ui/consts/const-eval/const_let.stderr | 16 +- .../const_panic_stability.e2018.stderr | 2 +- .../const-eval/const_raw_ptr_ops.stderr | 20 - .../ui/consts/const-eval/erroneous-const.rs | 6 +- .../consts/const-eval/erroneous-const.stderr | 45 +- .../ui/consts/const-eval/erroneous-const2.rs | 6 +- .../consts/const-eval/erroneous-const2.stderr | 41 +- src/test/ui/consts/const-eval/format.rs | 4 - src/test/ui/consts/const-eval/format.stderr | 78 +- .../index-out-of-bounds-never-type.rs | 6 +- .../index-out-of-bounds-never-type.stderr | 38 +- .../ui/consts/const-eval/infinite_loop.rs | 2 +- .../ui/consts/const-eval/infinite_loop.stderr | 6 +- src/test/ui/consts/const-eval/issue-100878.rs | 8 + src/test/ui/consts/const-eval/issue-43197.rs | 16 +- .../ui/consts/const-eval/issue-43197.stderr | 119 +- src/test/ui/consts/const-eval/issue-44578.rs | 5 +- .../ui/consts/const-eval/issue-44578.stderr | 43 +- .../ui/consts/const-eval/issue-50814-2.rs | 3 +- .../ui/consts/const-eval/issue-50814-2.stderr | 23 +- src/test/ui/consts/const-eval/issue-50814.rs | 3 +- .../ui/consts/const-eval/issue-50814.stderr | 23 +- src/test/ui/consts/const-eval/issue-65394.rs | 2 +- .../ui/consts/const-eval/issue-65394.stderr | 4 +- src/test/ui/consts/const-eval/livedrop.rs | 2 +- src/test/ui/consts/const-eval/livedrop.stderr | 4 +- .../const-eval/panic-assoc-never-type.rs | 1 - .../const-eval/panic-assoc-never-type.stderr | 6 +- .../ui/consts/const-eval/panic-never-type.rs | 1 - .../consts/const-eval/panic-never-type.stderr | 4 +- .../const-eval/partial_ptr_overwrite.rs | 3 +- .../const-eval/partial_ptr_overwrite.stderr | 25 +- .../const-eval/promoted_const_fn_fail.rs | 2 - .../const-eval/promoted_const_fn_fail.stderr | 2 +- .../promoted_const_fn_fail_deny_const_err.rs | 2 - ...omoted_const_fn_fail_deny_const_err.stderr | 2 +- .../const-eval/promoted_errors.noopt.stderr | 93 +- .../const-eval/promoted_errors.opt.stderr | 95 +- ...ted_errors.opt_with_overflow_checks.stderr | 93 +- .../ui/consts/const-eval/promoted_errors.rs | 25 +- .../ui/consts/const-eval/pub_const_err.rs | 10 - .../ui/consts/const-eval/pub_const_err.stderr | 31 - .../ui/consts/const-eval/pub_const_err_bin.rs | 10 - .../const-eval/pub_const_err_bin.stderr | 31 - .../const-eval/ref_to_int_match.32bit.stderr | 21 +- .../const-eval/ref_to_int_match.64bit.stderr | 21 +- .../ui/consts/const-eval/ref_to_int_match.rs | 3 +- .../ui/consts/const-eval/ub-enum.32bit.stderr | 110 +- .../ui/consts/const-eval/ub-enum.64bit.stderr | 110 +- src/test/ui/consts/const-eval/ub-enum.rs | 16 +- .../const-eval/ub-int-array.32bit.stderr | 6 +- .../const-eval/ub-int-array.64bit.stderr | 6 +- src/test/ui/consts/const-eval/ub-int-array.rs | 1 - .../consts/const-eval/ub-nonnull.32bit.stderr | 12 +- .../consts/const-eval/ub-nonnull.64bit.stderr | 12 +- src/test/ui/consts/const-eval/ub-nonnull.rs | 3 +- .../consts/const-eval/ub-ref-ptr.32bit.stderr | 114 +- .../consts/const-eval/ub-ref-ptr.64bit.stderr | 114 +- src/test/ui/consts/const-eval/ub-ref-ptr.rs | 15 +- .../const-eval/ub-uninhabit.32bit.stderr | 6 +- .../const-eval/ub-uninhabit.64bit.stderr | 6 +- src/test/ui/consts/const-eval/ub-uninhabit.rs | 1 - src/test/ui/consts/const-eval/ub-upvars.rs | 2 +- .../const-eval/ub-wide-ptr.32bit.stderr | 187 +- .../const-eval/ub-wide-ptr.64bit.stderr | 187 +- src/test/ui/consts/const-eval/ub-wide-ptr.rs | 24 +- .../consts/const-eval/union-ub.32bit.stderr | 4 +- .../consts/const-eval/union-ub.64bit.stderr | 4 +- src/test/ui/consts/const-eval/union-ub.rs | 1 - .../ui/consts/const-eval/union_promotion.rs | 2 - .../consts/const-eval/union_promotion.stderr | 2 +- .../consts/const-eval/unused-broken-const.rs | 3 +- .../const-eval/unused-broken-const.stderr | 20 +- src/test/ui/consts/const-eval/valid-const.rs | 1 - .../validate_uninhabited_zsts.32bit.stderr | 16 +- .../validate_uninhabited_zsts.64bit.stderr | 16 +- .../const-eval/validate_uninhabited_zsts.rs | 2 - .../consts/const-external-macro-const-err.rs | 3 +- .../const-external-macro-const-err.stderr | 18 +- .../ui/consts/const-float-bits-reject-conv.rs | 24 +- .../const-float-bits-reject-conv.stderr | 199 +- src/test/ui/consts/const-fn-error.rs | 6 +- src/test/ui/consts/const-fn-error.stderr | 4 +- src/test/ui/consts/const-for.rs | 4 +- src/test/ui/consts/const-for.stderr | 4 +- .../consts/const-int-arithmetic-overflow.rs | 1 - .../const-len-underflow-separate-spans.rs | 3 +- .../const-len-underflow-separate-spans.stderr | 21 +- src/test/ui/consts/const-negation.rs | 2 - .../consts/const-prop-read-static-in-const.rs | 3 +- .../const-prop-read-static-in-const.stderr | 20 +- ...st-size_of_val-align_of_val-extern-type.rs | 6 +- ...ize_of_val-align_of_val-extern-type.stderr | 40 +- src/test/ui/consts/const-slice-oob.rs | 5 +- src/test/ui/consts/const-slice-oob.stderr | 22 +- src/test/ui/consts/const_discriminant.rs | 1 - .../custom-eq-branch-warn.stderr | 2 +- .../const_in_pattern/incomplete-slice.stderr | 2 +- .../const_in_pattern/issue-44333.stderr | 4 +- .../reject_non_structural.stderr | 4 +- .../const_in_pattern/warn_corner_cases.stderr | 2 +- .../const_limit/const_eval_limit_reached.rs | 3 +- .../const_eval_limit_reached.stderr | 24 +- .../consts/const_unsafe_unreachable_ub.stderr | 10 +- .../constifconst-call-in-const-position.rs | 22 + ...constifconst-call-in-const-position.stderr | 18 + .../control-flow/drop-fail.precise.stderr | 8 +- src/test/ui/consts/control-flow/drop-fail.rs | 8 +- .../control-flow/drop-fail.stock.stderr | 16 +- .../ui/consts/control-flow/issue-50577.stderr | 2 +- src/test/ui/consts/dangling-alloc-id-ice.rs | 1 - .../ui/consts/dangling-alloc-id-ice.stderr | 2 +- src/test/ui/consts/drop_box.rs | 2 +- src/test/ui/consts/drop_box.stderr | 4 +- src/test/ui/consts/drop_zst.stderr | 4 +- .../consts/extra-const-ub/detect-extra-ub.rs | 9 +- .../detect-extra-ub.with_flag.stderr | 75 +- src/test/ui/consts/invalid-union.32bit.stderr | 17 +- src/test/ui/consts/invalid-union.64bit.stderr | 17 +- src/test/ui/consts/invalid-union.rs | 1 - src/test/ui/consts/issue-102117.rs | 30 + src/test/ui/consts/issue-102117.stderr | 37 + src/test/ui/consts/issue-104155.rs | 5 + .../issue-17718-constants-not-static.rs | 0 .../issue-17718-constants-not-static.stderr | 0 src/test/ui/consts/issue-25826.stderr | 4 - src/test/ui/consts/issue-46553.rs | 1 - src/test/ui/consts/issue-56164.rs | 5 +- src/test/ui/consts/issue-56164.stderr | 22 +- src/test/ui/consts/issue-66693.rs | 3 +- src/test/ui/consts/issue-66693.stderr | 18 +- src/test/ui/consts/issue-78655.stderr | 5 + src/test/ui/consts/issue-88071.rs | 2 - src/test/ui/consts/issue-94675.rs | 5 +- src/test/ui/consts/issue-94675.stderr | 31 +- src/test/ui/consts/issue-miri-1910.stderr | 42 +- .../ui/consts/min_const_fn/min_const_fn.rs | 6 +- .../consts/min_const_fn/min_const_fn.stderr | 20 +- .../ui/consts/miri_unleashed/abi-mismatch.rs | 1 - .../consts/miri_unleashed/abi-mismatch.stderr | 8 +- .../ui/consts/miri_unleashed/assoc_const.rs | 2 - .../consts/miri_unleashed/assoc_const.stderr | 46 +- .../ui/consts/miri_unleashed/assoc_const_2.rs | 4 +- .../miri_unleashed/assoc_const_2.stderr | 25 +- src/test/ui/consts/miri_unleashed/box.rs | 1 - src/test/ui/consts/miri_unleashed/box.stderr | 10 +- .../const_refers_to_static.32bit.stderr | 81 + .../const_refers_to_static.64bit.stderr | 81 + .../miri_unleashed/const_refers_to_static.rs | 34 +- .../const_refers_to_static.stderr | 100 - .../const_refers_to_static2.32bit.stderr | 38 - .../const_refers_to_static2.64bit.stderr | 38 - .../miri_unleashed/const_refers_to_static2.rs | 24 - ..._refers_to_static_cross_crate.32bit.stderr | 104 +- ..._refers_to_static_cross_crate.64bit.stderr | 104 +- .../const_refers_to_static_cross_crate.rs | 14 +- src/test/ui/consts/miri_unleashed/drop.rs | 1 - src/test/ui/consts/miri_unleashed/drop.stderr | 6 +- ...ure-gate-unleash_the_miri_inside_of_you.rs | 4 +- ...gate-unleash_the_miri_inside_of_you.stderr | 6 +- .../ui/consts/miri_unleashed/inline_asm.rs | 1 - .../consts/miri_unleashed/inline_asm.stderr | 4 +- .../miri_unleashed/mutable_references.rs | 1 - .../miri_unleashed/mutable_references.stderr | 12 +- .../mutable_references_err.32bit.stderr | 12 +- .../mutable_references_err.64bit.stderr | 12 +- .../miri_unleashed/mutable_references_err.rs | 2 - .../consts/miri_unleashed/mutating_global.rs | 1 - .../miri_unleashed/mutating_global.stderr | 2 +- .../ui/consts/miri_unleashed/non_const_fn.rs | 2 - .../consts/miri_unleashed/non_const_fn.stderr | 4 +- .../ui/consts/miri_unleashed/ptr_arith.rs | 1 - .../ui/consts/miri_unleashed/ptr_arith.stderr | 6 +- .../miri_unleashed/raw_mutable_const.rs | 2 - .../miri_unleashed/raw_mutable_const.stderr | 4 +- src/test/ui/consts/miri_unleashed/tls.rs | 1 - src/test/ui/consts/miri_unleashed/tls.stderr | 8 +- src/test/ui/consts/promote-not.rs | 2 +- src/test/ui/consts/ptr_comparisons.rs | 6 +- src/test/ui/consts/ptr_comparisons.stderr | 41 +- .../consts/qualif-indirect-mutation-fail.rs | 18 +- .../qualif-indirect-mutation-fail.stderr | 36 +- src/test/ui/consts/raw-ptr-const.rs | 2 - src/test/ui/consts/raw-ptr-const.stderr | 2 +- src/test/ui/consts/recursive.rs | 3 +- src/test/ui/consts/recursive.stderr | 31 +- .../refs_check_const_eq-issue-88384.stderr | 2 +- .../stable-precise-live-drops-in-libcore.rs | 2 +- ...table-precise-live-drops-in-libcore.stderr | 4 +- .../ui/consts/trait_specialization.stderr | 2 +- .../consts/uninhabited-const-issue-61744.rs | 3 +- .../uninhabited-const-issue-61744.stderr | 285 +- .../ui/consts/unstable-const-fn-in-libcore.rs | 10 +- .../unstable-const-fn-in-libcore.stderr | 33 +- .../ui/consts/write_to_static_via_mut_ref.rs | 1 - .../consts/write_to_static_via_mut_ref.stderr | 4 +- src/test/ui/deprecation/deprecation-lint.rs | 2 +- .../ui/derive-uninhabited-enum-38885.stderr | 2 +- ...-debug-dead-code-in-the-same-struct.stderr | 2 +- .../derives/deriving-with-repr-packed.stderr | 20 +- .../ui/deriving/deriving-all-codegen.stdout | 72 +- src/test/ui/deriving/deriving-default-enum.rs | 10 + src/test/ui/deriving/deriving-hash.rs | 20 + .../warn-unused-duplication.stderr | 2 +- src/test/ui/did_you_mean/bad-assoc-ty.stderr | 2 +- src/test/ui/did_you_mean/issue-31424.stderr | 2 +- ...41679-tilde-bitwise-negation-attempt.fixed | 5 + ...ue-41679-tilde-bitwise-negation-attempt.rs | 5 + ...1679-tilde-bitwise-negation-attempt.stderr | 34 +- ...issue-43871-enum-instead-of-variant.stderr | 16 +- ...-identifier-not-instead-of-negation.stderr | 10 +- ...de-confusable-in-float-literal-expt.stderr | 4 +- ...sue-54109-and_instead_of_ampersands.stderr | 16 +- .../issue-54109-without-witness.stderr | 16 +- src/test/ui/drop/drop_order.rs | 64 + src/test/ui/drop/dropck_legal_cycles.rs | 14 +- src/test/ui/drop/dynamic-drop-async.rs | 1 - src/test/ui/drop/dynamic-drop.rs | 1 - src/test/ui/drop/issue-100276.rs | 12 + .../issue-17718-const-destructors.rs | 0 .../issue-23338-ensure-param-drop-order.rs | 0 src/test/ui/{issues => drop}/issue-48962.rs | 0 src/test/ui/drop/repeat-drop-2.rs | 2 +- src/test/ui/drop/repeat-drop-2.stderr | 9 +- src/test/ui/drop/repeat-drop.rs | 3 - ...dropck-eyepatch-implies-unsafe-impl.stderr | 12 + .../issue-24805-dropck-itemless.rs | 0 ...dyn-2015-edition-keyword-ident-lint.stderr | 4 +- .../dyn-keyword/dyn-2018-edition-lint.stderr | 4 +- .../ui/dyn-keyword/dyn-angle-brackets.stderr | 4 +- .../ui/dyn-star/auxiliary/dyn-star-foreign.rs | 10 + src/test/ui/dyn-star/box.rs | 17 + src/test/ui/dyn-star/const.rs | 2 +- src/test/ui/dyn-star/drop.rs | 2 +- src/test/ui/dyn-star/error.rs | 2 +- src/test/ui/dyn-star/error.stderr | 2 +- src/test/ui/dyn-star/make-dyn-star.rs | 5 + src/test/ui/dyn-star/method.rs | 3 +- .../ui/dyn-star/no-explicit-dyn-star-cast.rs | 13 + .../dyn-star/no-explicit-dyn-star-cast.stderr | 28 + src/test/ui/dyn-star/no-explicit-dyn-star.rs | 8 + .../ui/dyn-star/no-explicit-dyn-star.stderr | 9 + src/test/ui/dyn-star/no-implicit-dyn-star.rs | 8 + .../ui/dyn-star/no-implicit-dyn-star.stderr | 19 + src/test/ui/dyn-star/upcast.rs | 33 + .../edition-raw-pointer-method-2015.stderr | 4 +- src/test/ui/empty/empty-attributes.stderr | 2 +- .../ui/empty/empty-struct-braces-expr.stderr | 46 +- src/test/ui/empty_global_asm.rs | 15 +- .../arbitrary_enum_discriminant-no-repr.rs | 1 - ...arbitrary_enum_discriminant-no-repr.stderr | 2 +- .../arbitrary_enum_discriminant.rs | 2 +- .../discriminant_size.stderr | 2 +- .../enum-discriminant/discriminant_value.rs | 2 +- ...eature-gate-arbitrary_enum_discriminant.rs | 10 - ...re-gate-arbitrary_enum_discriminant.stderr | 36 - .../ui/enum-discriminant/issue-43398.stderr | 2 +- .../issue-70453-generics-in-discr-ice-2.rs | 2 +- .../issue-70453-polymorphic-ctfe.rs | 2 +- .../issue-70509-partial_eq.rs | 2 +- .../issue-70509-partial_eq.stderr | 4 +- src/test/ui/enum-discriminant/repr128.stderr | 2 +- .../ui/enum/enum-discrim-too-small2.stderr | 4 +- src/test/ui/error-codes/E0017.stderr | 2 +- src/test/ui/error-codes/E0094.rs | 2 + src/test/ui/error-codes/E0094.stderr | 2 +- src/test/ui/error-codes/E0199.stderr | 6 + src/test/ui/error-codes/E0200.stderr | 6 + src/test/ui/error-codes/E0201.rs | 2 +- src/test/ui/error-codes/E0201.stderr | 33 +- src/test/ui/error-codes/E0283.stderr | 4 +- src/test/ui/error-codes/E0308.rs | 2 + src/test/ui/error-codes/E0308.stderr | 2 +- src/test/ui/error-codes/E0311.rs | 9 + src/test/ui/error-codes/E0311.stderr | 24 + src/test/ui/error-codes/E0388.stderr | 2 +- src/test/ui/error-codes/E0423.stderr | 22 +- src/test/ui/error-codes/E0520.stderr | 2 +- src/test/ui/error-codes/E0585.stderr | 2 +- src/test/ui/error-codes/E0771.stderr | 2 +- src/test/ui/error-codes/E0790.stderr | 20 +- ...89280-emitter-overflow-splice-lines.stderr | 2 +- src/test/ui/explain.stdout | 4 +- .../ui/expr/if/bad-if-let-suggestion.stderr | 5 + src/test/ui/expr/if/if-let.stderr | 2 +- src/test/ui/expr/if/if-without-else-result.rs | 2 +- .../ui/expr/if/if-without-else-result.stderr | 2 +- src/test/ui/expr/if/issue-4201.rs | 2 +- src/test/ui/expr/if/issue-4201.stderr | 2 +- .../ruby_style_closure.stderr | 2 +- src/test/ui/extenv/issue-55897.rs | 2 +- src/test/ui/extenv/issue-55897.stderr | 7 +- src/test/ui/extern-flag/empty-extern-arg.rs | 2 +- src/test/ui/extern/extern-no-mangle.stderr | 2 +- src/test/ui/extern/extern-with-type-bounds.rs | 2 + .../ui/extern/extern-with-type-bounds.stderr | 2 +- ...llow-unwind-when-calling-panic-directly.rs | 1 - ...sue-64655-extern-rust-must-allow-unwind.rs | 1 - src/test/ui/feature-gates/bench.stderr | 2 +- .../ui/feature-gates/feature-gate-asm_sym.rs | 19 - .../feature-gates/feature-gate-asm_sym.stderr | 21 - ...ate-default_type_parameter_fallback.stderr | 2 +- ...on_exhaustive_omitted_patterns_lint.stderr | 2 +- .../feature-gate-repr-simd.stderr | 2 +- ...ate-return_position_impl_trait_in_trait.rs | 13 + ...return_position_impl_trait_in_trait.stderr | 22 +- .../feature-gate-strict_provenance.stderr | 2 +- .../feature-gate-test_unstable_lint.stderr | 2 +- ...43106-gating-of-builtin-attrs-error.stderr | 2 +- .../fmt/auxiliary/format-string-proc-macro.rs | 28 + .../fmt/format-args-capture-issue-102057.rs | 19 + .../format-args-capture-issue-102057.stderr | 45 + .../ui/fmt/format-args-capture-issue-93378.rs | 4 +- .../format-args-capture-issue-93378.stderr | 17 +- .../fmt/format-args-capture-macro-hygiene.rs | 18 + .../format-args-capture-macro-hygiene.stderr | 37 +- src/test/ui/fmt/format-concat-span.stderr | 11 - ...ncat-span.rs => format-expanded-string.rs} | 9 + src/test/ui/fmt/format-expanded-string.stderr | 19 + src/test/ui/fmt/ifmt-bad-arg.rs | 8 +- src/test/ui/fmt/ifmt-bad-arg.stderr | 98 +- src/test/ui/for-loop-while/while-let-2.stderr | 2 +- .../fully-qualified-type-name2.stderr | 12 + src/test/ui/function-pointer/issue-102289.rs | 54 + .../function-pointer/sized-ret-with-binder.rs | 15 + src/test/ui/function-pointer/unsized-ret.rs | 14 + .../ui/function-pointer/unsized-ret.stderr | 35 + .../ui/future-incompatible-lint-group.stderr | 8 +- src/test/ui/generator/issue-102645.rs | 23 + src/test/ui/generator/issue-102645.stderr | 19 + src/test/ui/generator/issue-52398.stderr | 2 +- src/test/ui/generator/issue-57084.stderr | 2 +- src/test/ui/generator/match-bindings.stderr | 2 +- src/test/ui/generator/panic-drops-resume.rs | 2 - src/test/ui/generator/panic-drops.rs | 1 - src/test/ui/generator/panic-safe.rs | 1 - .../print/generator-print-verbose-1.stderr | 8 +- .../ui/generator/reborrow-mut-upvar.stderr | 2 +- src/test/ui/generator/resume-after-return.rs | 1 - src/test/ui/generator/size-moved-locals.rs | 1 + .../too-live-local-in-immovable-gen.stderr | 2 +- .../ui/generator/yield-in-args-rev.stderr | 2 +- src/test/ui/generator/yield-in-box.stderr | 2 +- .../ui/generator/yield-in-initializer.stderr | 2 +- src/test/ui/generator/yield-subtype.stderr | 2 +- .../bugs/issue-86218.stderr | 23 - .../bugs/issue-88382.stderr | 4 +- .../bugs/issue-89008.stderr | 19 - .../bugs/issue-91762.rs | 2 +- .../generic-associated-types/issue-102114.rs | 16 + .../issue-102114.stderr | 12 + .../generic-associated-types/issue-86218-2.rs | 23 + .../{bugs => }/issue-86218.rs | 8 +- .../issue-87258_a.stderr | 2 +- .../issue-87429-specialization.stderr | 2 +- .../{bugs => }/issue-89008.rs | 28 +- src/test/ui/generics/issue-94923.rs | 49 + ...xclusive_range_pattern_syntax_collision.rs | 2 +- ...clusive_range_pattern_syntax_collision2.rs | 2 +- ...clusive_range_pattern_syntax_collision3.rs | 1 - ...ive_range_pattern_syntax_collision3.stderr | 6 +- ...gate-half-open-range-patterns-in-slices.rs | 7 + ...-half-open-range-patterns-in-slices.stderr | 12 + .../feature-gate-half-open-range-patterns.rs | 18 - ...ature-gate-half-open-range-patterns.stderr | 53 - .../half-open-range-pats-bad-types.rs | 1 - .../half-open-range-pats-bad-types.stderr | 6 +- .../half-open-range-pats-exhaustive-fail.rs | 1 - ...alf-open-range-pats-exhaustive-fail.stderr | 136 +- .../half-open-range-pats-exhaustive-pass.rs | 1 - ...nge-pats-inclusive-dotdotdot-bad-syntax.rs | 2 - ...pats-inclusive-dotdotdot-bad-syntax.stderr | 10 +- .../half-open-range-pats-inclusive-no-end.rs | 2 - ...lf-open-range-pats-inclusive-no-end.stderr | 12 +- ...lf-open-range-pats-ref-ambiguous-interp.rs | 2 - ...pen-range-pats-ref-ambiguous-interp.stderr | 16 +- .../half-open-range-pats-semantics.rs | 1 - .../half-open-range-pats-syntactic-pass.rs | 1 - .../half-open-range-pats-thir-lower-empty.rs | 1 - ...lf-open-range-pats-thir-lower-empty.stderr | 52 +- .../half-open-range-patterns/pat-tuple-4.rs | 1 - .../half-open-range-patterns/pat-tuple-5.rs | 1 - .../pat-tuple-5.stderr | 2 +- .../range_pat_interactions0.rs | 1 - .../range_pat_interactions3.rs | 3 +- .../range_pat_interactions3.stderr | 11 +- .../slice_pattern_syntax_problem0.rs | 2 +- .../slice_pattern_syntax_problem1.rs | 1 - .../slice_pattern_syntax_problem1.stderr | 13 +- .../hrtb-perfect-forwarding.stderr | 2 +- .../higher-rank-trait-bounds/issue-100689.rs | 29 + .../higher-rank-trait-bounds/issue-102899.rs | 32 + .../issue-30786.stderr | 10 +- .../issue-46989.stderr | 2 +- .../higher-rank-trait-bounds/issue-95034.rs | 20 +- .../issue-95034.stderr | 1 - .../normalize-under-binder/issue-71955.stderr | 16 +- .../normalize-under-binder/issue-85455.rs | 2 +- .../normalize-under-binder/issue-85455.stderr | 6 +- src/test/ui/hygiene/globs.stderr | 18 +- src/test/ui/hygiene/impl_items-2.rs | 26 + src/test/ui/hygiene/impl_items-2.stderr | 15 + src/test/ui/hygiene/impl_items.rs | 2 +- src/test/ui/hygiene/impl_items.stderr | 2 +- .../hygiene/rustc-macro-transparency.stderr | 8 +- src/test/ui/impl-duplicate-methods.stderr | 11 - src/test/ui/impl-trait/auto-trait-leak.stderr | 8 +- src/test/ui/impl-trait/equality-rpass.stderr | 2 +- src/test/ui/impl-trait/equality.stderr | 2 +- src/test/ui/impl-trait/equality2.stderr | 2 +- ...plicit-hrtb-without-dyn.edition2015.stderr | 4 +- ...plicit-hrtb-without-dyn.edition2021.stderr | 4 +- .../generic-with-implicit-hrtb-without-dyn.rs | 2 +- .../ui/impl-trait/hidden-lifetimes.stderr | 8 +- .../impl-trait/in-trait/auxiliary/rpitit.rs | 11 + .../in-trait/default-body-type-err-2.rs | 13 + .../in-trait/default-body-type-err-2.stderr | 11 + .../in-trait/default-body-type-err.rs | 13 + .../in-trait/default-body-type-err.stderr | 12 + .../in-trait/default-body-with-rpit.rs | 21 + .../ui/impl-trait/in-trait/default-body.rs | 21 + src/test/ui/impl-trait/in-trait/early.rs | 23 + src/test/ui/impl-trait/in-trait/foreign.rs | 9 + .../ui/impl-trait/in-trait/issue-102140.rs | 30 + .../impl-trait/in-trait/issue-102140.stderr | 29 + .../ui/impl-trait/in-trait/issue-102301.rs | 18 + .../ui/impl-trait/in-trait/issue-102571.rs | 24 + .../impl-trait/in-trait/issue-102571.stderr | 14 + .../impl-trait/in-trait/signature-mismatch.rs | 21 + .../in-trait/signature-mismatch.stderr | 16 + src/test/ui/impl-trait/issue-100075-2.stderr | 2 +- src/test/ui/impl-trait/issue-102605.rs | 15 + src/test/ui/impl-trait/issue-102605.stderr | 41 + src/test/ui/impl-trait/issue-103181-1.rs | 85 + src/test/ui/impl-trait/issue-103181-1.stderr | 12 + src/test/ui/impl-trait/issue-103181-2.rs | 29 + src/test/ui/impl-trait/issue-103181-2.stderr | 9 + src/test/ui/impl-trait/issue-103599.stderr | 2 +- src/test/ui/impl-trait/issue-86465.rs | 6 +- src/test/ui/impl-trait/issue-86465.stderr | 2 +- src/test/ui/impl-trait/issue-87450.stderr | 2 +- src/test/ui/impl-trait/issues/issue-78722.rs | 2 +- .../ui/impl-trait/issues/issue-78722.stderr | 4 +- .../ui/impl-trait/issues/issue-86800.stderr | 15 +- .../ordinary-bounds-unrelated.stderr | 2 +- .../ordinary-bounds-unsuited.stderr | 2 +- .../must_outlive_least_region_or_bound.stderr | 14 +- .../ui/impl-trait/nested-return-type2-tait.rs | 1 + .../nested-return-type2-tait.stderr | 17 + src/test/ui/impl-trait/nested-return-type2.rs | 1 + .../ui/impl-trait/nested-return-type2.stderr | 17 + .../ui/impl-trait/nested-return-type3-tait.rs | 1 + .../nested-return-type3-tait.stderr | 17 + .../impl-trait/nested-return-type3-tait2.rs | 1 + .../nested-return-type3-tait2.stderr | 17 + .../impl-trait/nested-return-type3-tait3.rs | 1 + .../nested-return-type3-tait3.stderr | 17 + src/test/ui/impl-trait/nested-return-type3.rs | 1 + .../ui/impl-trait/nested-return-type3.stderr | 17 + .../ui/impl-trait/normalize-tait-in-const.rs | 39 + .../impl-trait/normalize-tait-in-const.stderr | 8 + .../impl-trait/region-escape-via-bound.stderr | 2 +- .../static-return-lifetime-infered.stderr | 8 +- .../impl-trait/unactionable_diagnostic.fixed | 25 + .../ui/impl-trait/unactionable_diagnostic.rs | 25 + .../impl-trait/unactionable_diagnostic.stderr | 14 + src/test/ui/impl-trait/where-allowed.stderr | 2 +- src/test/ui/imports/issue-56125.stderr | 12 + src/test/ui/imports/issue-57015.stderr | 5 + .../local-modularized-tricky-fail-2.stderr | 2 +- .../ui/inference/char-as-str-single.fixed | 1 + src/test/ui/inference/char-as-str-single.rs | 1 + .../ui/inference/char-as-str-single.stderr | 15 +- ...ference-variable-behind-raw-pointer.stderr | 2 +- .../ui/inference/inference_unstable.stderr | 2 +- .../ui/{issues => inference}/issue-36053.rs | 0 .../need_type_info/concrete-impl.stderr | 9 - ...suggest-generic-arguments-for-turbofish.rs | 11 + ...est-generic-arguments-for-turbofish.stderr | 9 + .../inference/need_type_info/issue-103053.rs | 18 + .../need_type_info/issue-103053.stderr | 14 + src/test/ui/inference/str-as-char.fixed | 4 +- src/test/ui/inference/str-as-char.rs | 4 +- src/test/ui/inference/str-as-char.stderr | 24 +- src/test/ui/infinite/infinite-struct.rs | 7 + src/test/ui/infinite/infinite-struct.stderr | 19 +- .../infinite-tag-type-recursion.stderr | 4 +- .../ui/inline-const/const-match-pat-range.rs | 3 +- .../const-eval-select-backtrace-std.rs | 1 + ...const-eval-select-backtrace-std.run.stderr | 2 +- .../intrinsics/const-eval-select-backtrace.rs | 1 + .../const-eval-select-backtrace.run.stderr | 2 +- src/test/ui/intrinsics/intrinsic-alignment.rs | 1 + .../intrinsic-raw_eq-const-padding.rs | 1 - .../intrinsic-raw_eq-const-padding.stderr | 2 +- .../ui/intrinsics/intrinsic-raw_eq-const.rs | 1 - src/test/ui/intrinsics/intrinsics-integer.rs | 6 + .../intrinsics/panic-uninitialized-zeroed.rs | 253 +- .../ui/intrinsics/safe-intrinsic-mismatch.rs | 11 + .../intrinsics/safe-intrinsic-mismatch.stderr | 14 + src/test/ui/invalid/invalid-inline.rs | 9 +- src/test/ui/invalid/invalid-inline.stderr | 15 +- src/test/ui/invalid/invalid-llvm-passes.rs | 2 +- src/test/ui/issues/issue-102964.rs | 10 + src/test/ui/issues/issue-102964.stderr | 19 + src/test/ui/issues/issue-11958.stderr | 4 +- src/test/ui/issues/issue-1460.stderr | 2 +- src/test/ui/issues/issue-14875.rs | 1 - src/test/ui/issues/issue-16250.stderr | 12 +- src/test/ui/issues/issue-16256.stderr | 2 +- src/test/ui/issues/issue-17431-1.stderr | 10 +- src/test/ui/issues/issue-17431-2.rs | 3 +- src/test/ui/issues/issue-17431-2.stderr | 31 +- src/test/ui/issues/issue-17431-3.stderr | 10 +- src/test/ui/issues/issue-17431-4.stderr | 10 +- src/test/ui/issues/issue-17431-5.stderr | 4 +- src/test/ui/issues/issue-17431-6.stderr | 10 +- src/test/ui/issues/issue-17431-7.stderr | 10 +- src/test/ui/issues/issue-18919.stderr | 4 +- src/test/ui/issues/issue-19991.rs | 2 +- src/test/ui/issues/issue-19991.stderr | 2 +- src/test/ui/issues/issue-21174.stderr | 4 +- src/test/ui/issues/issue-22644.rs | 2 +- src/test/ui/issues/issue-22644.stderr | 2 +- src/test/ui/issues/issue-23122-2.rs | 1 + src/test/ui/issues/issue-23122-2.stderr | 9 +- src/test/ui/issues/issue-24013.stderr | 5 - src/test/ui/issues/issue-24322.stderr | 4 +- src/test/ui/issues/issue-25901.rs | 2 +- src/test/ui/issues/issue-25901.stderr | 22 +- src/test/ui/issues/issue-28344.stderr | 2 +- src/test/ui/issues/issue-29746.rs | 2 +- src/test/ui/issues/issue-29948.rs | 1 - src/test/ui/issues/issue-3008-1.stderr | 4 +- src/test/ui/issues/issue-3008-2.stderr | 4 +- src/test/ui/issues/issue-3008-3.stderr | 4 +- src/test/ui/issues/issue-30371.rs | 1 + src/test/ui/issues/issue-30490.rs | 1 + src/test/ui/issues/issue-32326.stderr | 12 +- src/test/ui/issues/issue-35241.stderr | 2 +- src/test/ui/issues/issue-3563-2.rs | 14 - src/test/ui/issues/issue-3779.stderr | 6 +- src/test/ui/issues/issue-40000.stderr | 4 +- src/test/ui/issues/issue-4265.stderr | 8 +- src/test/ui/issues/issue-43853.rs | 1 - src/test/ui/issues/issue-46519.rs | 1 - src/test/ui/issues/issue-47094.stderr | 2 +- src/test/ui/issues/issue-47486.stderr | 5 - src/test/ui/issues/issue-47725.stderr | 2 +- src/test/ui/issues/issue-50582.stderr | 4 +- src/test/ui/issues/issue-50781.stderr | 10 +- src/test/ui/issues/issue-54044.stderr | 2 +- src/test/ui/issues/issue-55380.stderr | 2 +- src/test/ui/issues/issue-57271.rs | 4 +- src/test/ui/issues/issue-57271.stderr | 28 +- src/test/ui/issues/issue-57362-2.stderr | 6 +- src/test/ui/issues/issue-58022.stderr | 12 +- src/test/ui/issues/issue-58734.stderr | 2 +- src/test/ui/issues/issue-59488.stderr | 4 +- src/test/ui/issues/issue-60622.stderr | 4 +- src/test/ui/issues/issue-6458-3.stderr | 6 +- src/test/ui/issues/issue-6458-4.stderr | 2 +- ...70724-add_type_neq_err_label-unwrap.stderr | 2 +- src/test/ui/issues/issue-72278.stderr | 2 +- src/test/ui/issues/issue-72554.rs | 1 - src/test/ui/issues/issue-72554.stderr | 24 +- src/test/ui/issues/issue-75307.rs | 2 +- src/test/ui/issues/issue-75307.stderr | 8 +- src/test/ui/issues/issue-75907.rs | 2 +- src/test/ui/issues/issue-75907_b.rs | 2 +- src/test/ui/issues/issue-77993-1.rs | 12 - src/test/ui/issues/issue-77993-1.stderr | 16 - src/test/ui/issues/issue-78957.stderr | 2 +- src/test/ui/issues/issue-86756.stderr | 2 +- src/test/ui/issues/issue-8727.stderr | 2 +- src/test/ui/issues/issue-87707.rs | 1 + src/test/ui/issues/issue-87707.run.stderr | 4 +- src/test/ui/issues/issue-99838.rs | 2 +- .../iterators/into-iter-on-arrays-2018.stderr | 2 +- .../iterators/into-iter-on-arrays-lint.stderr | 2 +- .../ui/iterators/iter-count-overflow-debug.rs | 1 - .../iterators/iter-position-overflow-debug.rs | 1 - .../ui/iterators/iter-step-overflow-debug.rs | 1 - .../ui/iterators/iter-sum-overflow-debug.rs | 1 - .../iter-sum-overflow-overflow-checks.rs | 1 - .../keyword/keyword-self-as-type-param.stderr | 4 +- src/test/ui/lang-items/issue-83471.stderr | 14 +- src/test/ui/let-else/const-fn.rs | 1 - .../let-else-brace-before-else.stderr | 8 +- .../ui/let-else/let-else-irrefutable.stderr | 2 +- .../ui/let-else/let-else-non-diverging.rs | 11 + .../ui/let-else/let-else-non-diverging.stderr | 13 +- src/test/ui/let-else/let-else-then-diverge.rs | 4 +- .../ui/let-else/let-else-then-diverge.stderr | 4 +- src/test/ui/lexer/lex-emoji-identifiers.rs | 17 + .../ui/lexer/lex-emoji-identifiers.stderr | 52 + src/test/ui/lexical-scopes.stderr | 2 + .../lifetimes/elided-lifetime-in-param-pat.rs | 11 + src/test/ui/lifetimes/issue-79187-2.stderr | 2 +- src/test/ui/lifetimes/issue-79187.stderr | 2 +- .../lifetime-errors/issue_74400.stderr | 2 +- src/test/ui/lifetimes/nested-binder-print.rs | 10 + .../ui/lifetimes/nested-binder-print.stderr | 14 + .../ui/lifetimes/re-empty-in-error.stderr | 2 +- ...oducing-and-adding-missing-lifetime.stderr | 1 + .../ui/lifetimes/unusual-rib-combinations.rs | 28 + .../lifetimes/unusual-rib-combinations.stderr | 61 + src/test/ui/limits/issue-55878.stderr | 17 +- .../link-attr-validation-early.stderr | 2 +- .../ui/lint/auxiliary/trivial-cast-ice.rs | 7 + .../ui/lint/bare-trait-objects-path.stderr | 2 +- src/test/ui/lint/clashing-extern-fn.stderr | 6 +- .../lint/cli-lint-override.forbid_warn.stderr | 2 +- .../cli-lint-override.force_warn_deny.stderr | 2 +- .../lint/cli-lint-override.warn_deny.stderr | 2 +- .../ui/lint/dead-code/issue-85071-2.stderr | 10 +- src/test/ui/lint/dead-code/issue-85071.stderr | 10 +- .../ui/lint/dead-code/unused-variant.stderr | 2 +- .../ui/lint/deny-overflowing-literals.stderr | 2 +- src/test/ui/lint/expansion-time.stderr | 8 +- src/test/ui/lint/fn_must_use.stderr | 2 +- src/test/ui/lint/for_loop_over_fallibles.rs | 43 + .../ui/lint/for_loop_over_fallibles.stderr | 101 + src/test/ui/lint/forbid-group-group-2.stderr | 4 +- src/test/ui/lint/forbid-group-member.stderr | 2 +- .../allowed-cli-deny-by-default-lint.rs | 12 +- .../allowed-cli-deny-by-default-lint.stderr | 23 +- .../allowed-deny-by-default-lint.rs | 14 +- .../allowed-deny-by-default-lint.stderr | 23 +- .../allowed-group-warn-by-default-lint.stderr | 2 +- .../ui/lint/force-warn/cap-lints-allow.stderr | 2 +- ...s-warn-allowed-warn-by-default-lint.stderr | 2 +- .../lint/force-warn/deny-by-default-lint.rs | 12 +- .../force-warn/deny-by-default-lint.stderr | 23 +- ...up-allowed-cli-warn-by-default-lint.stderr | 2 +- .../lint-group-allowed-lint-group.stderr | 2 +- ...-group-allowed-warn-by-default-lint.stderr | 2 +- .../inclusive-range-pattern-syntax.stderr | 4 +- src/test/ui/lint/inert-attr-macro.stderr | 10 +- .../inline-trait-and-foreign-items.stderr | 6 +- ...initialized-zeroed.rs => invalid_value.rs} | 40 +- ...zed-zeroed.stderr => invalid_value.stderr} | 242 +- src/test/ui/lint/issue-102705.rs | 22 + src/test/ui/lint/issue-14309.stderr | 10 +- src/test/ui/lint/issue-1866.stderr | 4 +- src/test/ui/lint/issue-63364.stderr | 2 +- ...-dont-override-forbid-in-same-scope.stderr | 4 +- src/test/ui/lint/issue-79744.stderr | 2 +- src/test/ui/lint/issue-80988.stderr | 2 +- src/test/ui/lint/issue-83477.stderr | 2 +- .../ui/lint/issue-86600-lint-twice.stderr | 2 +- .../ui/lint/lint-attr-everywhere-early.stderr | 4 +- .../ui/lint/lint-attr-everywhere-late.stderr | 120 +- .../ui/lint/lint-const-item-mutation.stderr | 2 +- src/test/ui/lint/lint-ctypes-73249-2.stderr | 2 +- src/test/ui/lint/lint-ctypes-73249-3.stderr | 2 +- src/test/ui/lint/lint-ctypes-73249-5.stderr | 2 +- src/test/ui/lint/lint-ctypes-73251-1.stderr | 2 +- src/test/ui/lint/lint-ctypes-73251-2.stderr | 2 +- src/test/ui/lint/lint-ctypes-enum.stderr | 10 +- src/test/ui/lint/lint-ctypes-fn.stderr | 4 +- src/test/ui/lint/lint-ctypes.stderr | 10 +- .../lint-enum-intrinsics-non-enums.stderr | 2 +- .../lint-exceeding-bitshifts.noopt.stderr | 2 +- .../lint/lint-exceeding-bitshifts.opt.stderr | 2 +- ...-bitshifts.opt_with_overflow_checks.stderr | 2 +- src/test/ui/lint/lint-exceeding-bitshifts.rs | 2 +- .../lint-incoherent-auto-trait-objects.stderr | 44 +- .../lint-invalid-atomic-ordering-bool.stderr | 2 +- ...valid-atomic-ordering-exchange-weak.stderr | 2 +- ...nt-invalid-atomic-ordering-exchange.stderr | 2 +- .../lint-invalid-atomic-ordering-fence.stderr | 2 +- ...nvalid-atomic-ordering-fetch-update.stderr | 2 +- .../lint-invalid-atomic-ordering-int.stderr | 2 +- .../lint-invalid-atomic-ordering-ptr.stderr | 2 +- .../lint-invalid-atomic-ordering-uint.stderr | 2 +- .../lint/lint-non-snake-case-crate-2.stderr | 2 +- src/test/ui/lint/lint-output-format.rs | 1 + src/test/ui/lint/lint-output-format.stderr | 12 +- .../lint-pre-expansion-extern-module.stderr | 2 +- src/test/ui/lint/lint-stability-deprecated.rs | 2 +- .../lint-strict-provenance-fuzzy-casts.stderr | 2 +- .../lint-strict-provenance-lossy-casts.stderr | 2 +- .../lint-temporary-cstring-as-param.stderr | 4 +- .../lint/lint-temporary-cstring-as-ptr.stderr | 4 +- src/test/ui/lint/lint-type-limits2.stderr | 4 +- src/test/ui/lint/lint-type-limits3.stderr | 4 +- src/test/ui/lint/lint-type-overflow.stderr | 2 +- src/test/ui/lint/lint-type-overflow2.rs | 1 - src/test/ui/lint/lint-type-overflow2.stderr | 14 +- .../lint/lint-unconditional-recursion.stderr | 2 +- src/test/ui/lint/lint-unsafe-code.stderr | 2 +- .../ui/lint/must_not_suspend/boxed.stderr | 10 +- .../ui/lint/must_not_suspend/dedup.stderr | 10 +- .../ui/lint/must_not_suspend/gated.stderr | 2 +- .../ui/lint/must_not_suspend/mutex.stderr | 10 +- .../must_not_suspend/ref-drop-tracking.stderr | 10 +- .../must_not_suspend/ref.drop_tracking.stderr | 10 +- .../ref.no_drop_tracking.stderr | 10 +- .../ui/lint/must_not_suspend/trait.stderr | 10 +- src/test/ui/lint/must_not_suspend/unit.stderr | 10 +- src/test/ui/lint/must_not_suspend/warn.stderr | 10 +- src/test/ui/lint/no-coverage.stderr | 2 +- src/test/ui/lint/noop-method-call.rs | 1 + src/test/ui/lint/noop-method-call.stderr | 14 +- src/test/ui/lint/opaque-ty-ffi-unsafe.stderr | 2 +- src/test/ui/lint/outer-forbid.stderr | 4 +- .../redundant-semi-proc-macro.stderr | 2 +- .../expect_nested_lint_levels.stderr | 2 +- .../expect_unfulfilled_expectation.stderr | 2 +- .../expect_with_reason.stderr | 2 +- ...force_warn_expected_lints_fulfilled.stderr | 16 +- .../lint-attribute-only-with-reason.stderr | 2 +- .../lint-mixed-script-confusables.stderr | 4 +- ...emicolon-in-expressions-from-macros.stderr | 8 +- ...emicolon-in-expressions-from-macros.stderr | 2 +- src/test/ui/lint/trivial-cast-ice.rs | 12 + ...ial-casts-featuring-type-ascription.stderr | 4 +- src/test/ui/lint/trivial-casts.stderr | 4 +- src/test/ui/lint/trivial_casts.stderr | 4 +- src/test/ui/lint/type-overflow.stderr | 4 +- src/test/ui/lint/unaligned_references.stderr | 80 +- ...unaligned_references_external_macro.stderr | 16 +- src/test/ui/lint/unreachable_pub.stderr | 2 +- ...0-unused-variable-in-struct-pattern.stderr | 2 +- .../lint/unused/must-use-box-from-raw.stderr | 2 +- .../unused/must_use-in-stdlib-traits.stderr | 2 +- src/test/ui/lint/unused/must_use-tuple.stderr | 2 +- .../lint/unused/unused-attr-duplicate.stderr | 10 +- src/test/ui/lint/unused/unused-closure.stderr | 2 +- .../unused-doc-comments-edge-cases.stderr | 2 +- .../unused-doc-comments-for-macros.stderr | 2 +- src/test/ui/lint/unused/unused-supertrait.rs | 11 + .../ui/lint/unused/unused-supertrait.stderr | 15 + .../unused/unused_attributes-must_use.stderr | 10 +- .../ui/lint/unused/useless-comment.stderr | 2 +- src/test/ui/liveness/liveness-asm.stderr | 2 +- src/test/ui/liveness/liveness-consts.stderr | 4 +- src/test/ui/liveness/liveness-dead.stderr | 2 +- .../liveness-return-last-stmt-semi.rs | 1 - .../liveness-return-last-stmt-semi.stderr | 10 +- src/test/ui/liveness/liveness-unused.stderr | 2 +- src/test/ui/liveness/liveness-upvars.stderr | 4 +- src/test/ui/loops/loop-proper-liveness.stderr | 4 + src/test/ui/macros/format-parse-errors.stderr | 2 +- src/test/ui/macros/issue-102878.rs | 10 + src/test/ui/macros/issue-102878.stderr | 60 + src/test/ui/macros/issue-39404.stderr | 2 +- .../macros/issue-84195-lint-anon-const.stderr | 4 +- src/test/ui/macros/issue-99265.stderr | 278 +- src/test/ui/macros/issue-99907.stderr | 4 +- .../ui/macros/lint-trailing-macro-call.stderr | 2 +- .../ui/macros/macro-comma-behavior-rpass.rs | 1 - src/test/ui/macros/macro-context.stderr | 4 +- .../macros/macro-in-expression-context.stderr | 2 +- .../ui/macros/macro-match-nonterminal.stderr | 2 +- ...acro-missing-fragment-deduplication.stderr | 2 +- .../ui/macros/macro-missing-fragment.stderr | 4 +- .../macro-or-patterns-back-compat.stderr | 4 +- .../ui/macros/macro-use-all-and-none.stderr | 2 +- .../macro_rules-unmatchable-literals.rs | 14 + .../macro_rules-unmatchable-literals.stderr | 14 + src/test/ui/macros/macros-nonfatal-errors.rs | 23 +- .../ui/macros/macros-nonfatal-errors.stderr | 12 +- .../ui/macros/must-use-in-macro-55516.stderr | 2 +- .../all-expr-kinds.rs | 1 + .../all-not-available-cases.rs | 1 + ...ptures-does-not-create-unnecessary-code.rs | 1 + .../syntax-errors.stderr | 44 +- src/test/ui/macros/stringify.rs | 1 - src/test/ui/macros/syntax-error-recovery.rs | 18 + .../ui/macros/syntax-error-recovery.stderr | 30 + .../ui/malformed/malformed-regressions.stderr | 2 +- ...doesnt-conflict-with-specialization.stderr | 2 +- ...erlap-marker-trait-with-static-lifetime.rs | 10 + ...p-marker-trait-with-underscore-lifetime.rs | 9 + ...rker-trait-with-underscore-lifetime.stderr | 31 + .../marker_trait_attr/overlap-marker-trait.rs | 3 +- .../overlap-marker-trait.stderr | 4 +- ...p-permitted-for-annotated-marker-traits.rs | 3 +- src/test/ui/match/expr_before_ident_pat.rs | 2 - .../ui/match/expr_before_ident_pat.stderr | 4 +- src/test/ui/match/issue-41255.rs | 1 - src/test/ui/match/issue-41255.stderr | 30 +- src/test/ui/match/issue-92100.rs | 2 +- src/test/ui/methods/issues/issue-90315.rs | 79 +- src/test/ui/methods/issues/issue-90315.stderr | 198 +- ...method-call-lifetime-args-lint-fail.stderr | 4 +- .../method-call-lifetime-args-lint.stderr | 4 +- ...ethod-call-lifetime-args-unresolved.stderr | 2 +- ...e-trait-object-with-separate-params.stderr | 2 +- .../ui/methods/method-macro-backtrace.stderr | 8 +- .../drop-elaboration-after-borrowck-error.rs | 8 +- ...op-elaboration-after-borrowck-error.stderr | 21 +- src/test/ui/mir/mir_calls_to_shims.rs | 1 - .../mir/mir_codegen_calls_diverging_drops.rs | 1 - src/test/ui/mir/mir_drop_order.rs | 1 - src/test/ui/mir/mir_drop_panics.rs | 1 - src/test/ui/mir/mir_let_chains_drop_order.rs | 9 +- src/test/ui/mir/thir-constparam-temp.stderr | 2 +- .../closure-arg-type-mismatch.stderr | 2 +- .../mismatched_types/closure-mismatch.stderr | 2 +- .../ui/mismatched_types/fn-variance-1.stderr | 4 +- .../ui/mismatched_types/issue-36053-2.stderr | 4 +- src/test/ui/mismatched_types/show_module.rs | 18 + .../ui/mismatched_types/show_module.stderr | 23 + src/test/ui/mismatched_types/similar_paths.rs | 11 + .../ui/mismatched_types/similar_paths.stderr | 23 + .../similar_paths_primitive.rs | 10 + .../similar_paths_primitive.stderr | 24 + .../ui/modules/special_module_name.stderr | 2 +- .../moves/issue-72649-uninit-in-loop.stderr | 10 + .../ui/moves/move-into-dead-array-1.stderr | 5 + src/test/ui/moves/move-of-addr-of-mut.stderr | 4 + src/test/ui/moves/move-out-of-slice-2.stderr | 2 +- ...ed-enum-glob-import-no-impls-xcrate.stderr | 24 +- ...amespaced-enum-glob-import-no-impls.stderr | 24 +- .../suggest-libname-only-1.rs | 9 + .../suggest-libname-only-1.stderr | 6 + .../suggest-libname-only-2.rs | 9 + .../suggest-libname-only-2.stderr | 6 + src/test/ui/never_type/issue-52443.rs | 4 +- src/test/ui/never_type/issue-52443.stderr | 4 +- .../ui/{issues => never_type}/issue-5500-1.rs | 0 ...malformed-projection-input-issue-102800.rs | 31 + ...ormed-projection-input-issue-102800.stderr | 104 + .../escape-argument-callee.stderr | 2 +- .../escape-argument.stderr | 2 +- ...pagate-approximated-fail-no-postdom.stderr | 2 +- .../propagate-approximated-ref.stderr | 2 +- ...er-to-static-comparing-against-free.stderr | 4 +- ...oximated-shorter-to-static-no-bound.stderr | 2 +- ...mated-shorter-to-static-wrong-bound.stderr | 2 +- .../propagate-approximated-val.stderr | 2 +- .../propagate-despite-same-free-region.stderr | 2 +- ...ail-to-approximate-longer-no-bounds.stderr | 2 +- ...-to-approximate-longer-wrong-bounds.stderr | 2 +- .../return-wrong-bound-region.stderr | 2 +- src/test/ui/nll/closures-in-loops.stderr | 16 +- src/test/ui/nll/issue-48623-generator.stderr | 2 +- src/test/ui/nll/issue-51191.stderr | 2 +- .../issue-57642-higher-ranked-subtype.stderr | 10 +- src/test/ui/nll/issue-97997.stderr | 4 +- src/test/ui/nll/match-cfg-fake-edges.stderr | 5 + src/test/ui/nll/match-on-borrowed.stderr | 5 + .../impl-fn-ignore-binder-via-bottom.stderr | 6 +- .../nll/relate_tys/universe-violation.stderr | 2 +- .../ui/nll/trait-associated-constant.stderr | 2 +- .../ty-outlives/impl-trait-captures.stderr | 8 +- ...ram-closure-approximate-lower-bound.stderr | 4 +- src/test/ui/no-patterns-in-args-2.stderr | 4 +- src/test/ui/non-fmt-panic.stderr | 2 +- .../float-int-invalid-const-cast.rs | 2 - .../issue-8460-const.noopt.stderr | 48 +- .../issue-8460-const.opt.stderr | 48 +- ...8460-const.opt_with_overflow_checks.stderr | 48 +- .../ui/numbers-arithmetic/issue-8460-const.rs | 2 - .../next-power-of-two-overflow-debug.rs | 1 - .../numbers-arithmetic/overflowing-lsh-1.rs | 2 +- .../overflowing-lsh-1.stderr | 2 +- .../numbers-arithmetic/overflowing-lsh-2.rs | 2 +- .../overflowing-lsh-2.stderr | 2 +- .../numbers-arithmetic/overflowing-lsh-3.rs | 2 +- .../overflowing-lsh-3.stderr | 2 +- .../numbers-arithmetic/overflowing-lsh-4.rs | 2 +- .../overflowing-lsh-4.stderr | 2 +- .../numbers-arithmetic/overflowing-rsh-1.rs | 2 +- .../overflowing-rsh-1.stderr | 2 +- .../numbers-arithmetic/overflowing-rsh-2.rs | 2 +- .../overflowing-rsh-2.stderr | 2 +- .../numbers-arithmetic/overflowing-rsh-3.rs | 2 +- .../overflowing-rsh-3.stderr | 2 +- .../numbers-arithmetic/overflowing-rsh-4.rs | 2 +- .../overflowing-rsh-4.stderr | 2 +- .../numbers-arithmetic/overflowing-rsh-5.rs | 2 +- .../overflowing-rsh-5.stderr | 2 +- .../numbers-arithmetic/overflowing-rsh-6.rs | 2 +- .../overflowing-rsh-6.stderr | 2 +- .../promoted_overflow_opt.rs | 1 - src/test/ui/object-safety/issue-102762.rs | 26 + src/test/ui/object-safety/issue-102762.stderr | 20 + src/test/ui/object-safety/issue-102933.rs | 25 + .../object-safety-supertrait-mentions-GAT.rs | 15 + ...ject-safety-supertrait-mentions-GAT.stderr | 43 + src/test/ui/oom_unwind.rs | 2 - src/test/ui/opt-in-copy.stderr | 8 +- src/test/ui/packed/issue-27060-rpass.stderr | 32 +- src/test/ui/packed/issue-27060.stderr | 10 +- .../packed-struct-borrow-element-64bit.stderr | 16 +- .../packed-struct-borrow-element.stderr | 24 +- src/test/ui/panic-handler/weak-lang-item.rs | 2 +- .../ui/panic-runtime/need-abort-got-unwind.rs | 1 - .../panic-runtime/transitive-link-a-bunch.rs | 1 - .../ui/panic-runtime/want-unwind-got-abort.rs | 1 - .../panic-runtime/want-unwind-got-abort2.rs | 1 - src/test/ui/panic-while-printing.rs | 1 - ...e-47429-short-backtraces.legacy.run.stderr | 2 +- .../ui/panics/issue-47429-short-backtraces.rs | 1 + ...issue-47429-short-backtraces.v0.run.stderr | 2 +- .../panics/runtime-switch.legacy.run.stderr | 2 +- src/test/ui/panics/runtime-switch.rs | 1 + .../ui/panics/runtime-switch.v0.run.stderr | 2 +- .../parser/assoc-static-semantic-fail.stderr | 2 +- src/test/ui/parser/attr-stmt-expr-attr-bad.rs | 2 - .../ui/parser/attr-stmt-expr-attr-bad.stderr | 106 +- src/test/ui/parser/bad-let-as-field.rs | 6 + src/test/ui/parser/bad-let-as-field.stderr | 15 + src/test/ui/parser/bad-lit-suffixes.rs | 16 +- src/test/ui/parser/bad-lit-suffixes.stderr | 16 +- src/test/ui/parser/bad-pointer-type.rs | 2 +- src/test/ui/parser/bad-pointer-type.stderr | 11 +- src/test/ui/parser/default.stderr | 2 +- src/test/ui/parser/doc-after-struct-field.rs | 4 +- .../ui/parser/doc-after-struct-field.stderr | 4 +- .../ui/parser/doc-before-extern-rbrace.stderr | 2 +- src/test/ui/parser/doc-before-fn-rbrace.rs | 2 +- .../ui/parser/doc-before-fn-rbrace.stderr | 2 +- src/test/ui/parser/doc-before-rbrace.rs | 2 +- src/test/ui/parser/doc-before-rbrace.stderr | 2 +- src/test/ui/parser/doc-before-semi.rs | 2 +- src/test/ui/parser/doc-before-semi.stderr | 2 +- .../ui/parser/doc-before-struct-rbrace-1.rs | 2 +- .../parser/doc-before-struct-rbrace-1.stderr | 5 +- .../ui/parser/doc-before-struct-rbrace-2.rs | 2 +- .../parser/doc-before-struct-rbrace-2.stderr | 2 +- .../ui/parser/doc-inside-trait-item.stderr | 2 +- src/test/ui/parser/double-pointer.rs | 7 + src/test/ui/parser/double-pointer.stderr | 15 + src/test/ui/parser/emoji-identifiers.stderr | 18 +- src/test/ui/parser/empty-impl-semicolon.rs | 5 +- .../ui/parser/empty-impl-semicolon.stderr | 8 +- src/test/ui/parser/expr-as-stmt-2.stderr | 5 - src/test/ui/parser/expr-as-stmt.stderr | 9 - .../ui/parser/fn-field-parse-error-ice.rs | 2 +- .../ui/parser/fn-field-parse-error-ice.stderr | 12 +- .../ui/parser/fn-header-semantic-fail.stderr | 14 +- .../inner-attr-after-doc-comment.stderr | 2 +- src/test/ui/parser/issue-103143.rs | 5 + src/test/ui/parser/issue-103143.stderr | 20 + src/test/ui/parser/issue-103425.rs | 15 + src/test/ui/parser/issue-103425.stderr | 29 + .../issue-17718-parse-const.rs | 0 src/test/ui/parser/issues/issue-101540.rs | 7 + src/test/ui/parser/issues/issue-101540.stderr | 12 + .../issues/issue-102182-impl-trait-recover.rs | 3 + .../issue-102182-impl-trait-recover.stderr | 14 + src/test/ui/parser/issues/issue-17383.rs | 7 - src/test/ui/parser/issues/issue-17383.stderr | 15 - .../ui/parser/issues/issue-34222-1.stderr | 2 +- src/test/ui/parser/issues/issue-48636.stderr | 4 +- .../issue-63115-range-pat-interpolated.rs | 1 - ...0-unicode-ident-after-missing-comma.stderr | 2 + src/test/ui/parser/issues/issue-8537.stderr | 2 +- src/test/ui/parser/issues/issue-93282.rs | 1 + src/test/ui/parser/issues/issue-93282.stderr | 27 +- src/test/ui/parser/item-needs-block.rs | 10 + src/test/ui/parser/item-needs-block.stderr | 26 + src/test/ui/parser/label-after-block-like.rs | 43 + .../ui/parser/label-after-block-like.stderr | 176 + src/test/ui/parser/label-is-actually-char.rs | 16 + .../ui/parser/label-is-actually-char.stderr | 46 + src/test/ui/parser/macro/issue-33569.stderr | 2 +- src/test/ui/parser/macro/issue-37113.stderr | 2 + .../missing-close-brace-in-struct.stderr | 3 + ...osing-angle-bracket-struct-field-ty.stderr | 3 + src/test/ui/parser/numeric-lifetime.stderr | 16 +- src/test/ui/parser/parser-recovery-1.stderr | 12 +- src/test/ui/parser/parser-recovery-2.stderr | 12 +- src/test/ui/parser/recover-enum2.stderr | 2 + src/test/ui/parser/recover-field-semi.stderr | 8 +- src/test/ui/parser/recover-range-pats.rs | 1 - src/test/ui/parser/recover-range-pats.stderr | 126 +- src/test/ui/parser/recover-struct.stderr | 2 + .../ui/parser/recovered-struct-variant.stderr | 4 +- .../parser/removed-syntax-enum-newtype.stderr | 4 +- .../ui/parser/removed-syntax-field-let-2.rs | 12 + .../parser/removed-syntax-field-let-2.stderr | 33 + .../ui/parser/removed-syntax-field-let.stderr | 8 +- .../removed-syntax-field-semicolon.stderr | 2 + .../require-parens-for-chained-comparison.rs | 2 + ...quire-parens-for-chained-comparison.stderr | 16 +- .../ui/parser/semi-after-closure-in-macro.rs | 14 + .../ui/parser/tag-variant-disr-non-nullary.rs | 12 - .../tag-variant-disr-non-nullary.stderr | 25 - ...item-with-defaultness-fail-semantic.stderr | 2 +- .../parser/trait-object-trait-parens.stderr | 2 +- .../ui/parser/type-alias-where-fixable.stderr | 2 +- .../parser/unicode-control-codepoints.stderr | 4 +- src/test/ui/parser/unmatched-langle-1.stderr | 12 +- .../issue-17718-patterns.rs | 0 .../issue-17718-patterns.stderr | 0 ...ue-66270-pat-struct-parser-recovery.stderr | 2 + .../pattern/usefulness/consts-opaque.stderr | 2 +- .../deny-irrefutable-let-patterns.stderr | 4 +- .../overlapping_range_endpoints.stderr | 2 +- .../const_parameters/closures.stderr | 2 +- .../const_parameters/functions.stderr | 2 +- .../ui/polymorphization/generators.stderr | 2 +- .../ui/polymorphization/predicates.stderr | 2 +- .../promoted-function-2.stderr | 2 +- src/test/ui/privacy/access_levels.rs | 49 - src/test/ui/privacy/access_levels.stderr | 125 - .../associated-item-privacy-inherent.rs | 6 +- .../associated-item-privacy-inherent.stderr | 6 +- .../privacy/associated-item-privacy-trait.rs | 6 +- .../associated-item-privacy-trait.stderr | 6 +- .../auxiliary/issue-17718-const-privacy.rs | 0 src/test/ui/privacy/effective_visibilities.rs | 75 + .../ui/privacy/effective_visibilities.stderr | 134 + .../issue-17718-const-privacy.rs | 0 .../issue-17718-const-privacy.stderr | 0 src/test/ui/privacy/issue-30079.stderr | 2 +- .../privacy/private-in-public-assoc-ty.stderr | 2 +- .../private-in-public-non-principal.stderr | 2 +- .../ui/privacy/private-in-public-warn.stderr | 4 +- .../ui/privacy/private-inferred-type-3.rs | 2 +- .../ui/privacy/private-inferred-type-3.stderr | 2 +- src/test/ui/privacy/private-inferred-type.rs | 2 +- .../ui/privacy/private-inferred-type.stderr | 2 +- .../ui/privacy/reachable-unnameable-items.rs | 1 - src/test/ui/privacy/where-priv-type.stderr | 2 +- src/test/ui/proc-macro/attr-complex-fn.stdout | 4 +- src/test/ui/proc-macro/call-deprecated.rs | 2 +- .../capture-macro-rules-invoke.stdout | 12 +- .../proc-macro/debug/dump-debug-span-debug.rs | 7 +- .../debug/dump-debug-span-debug.stderr | 127 +- .../ui/proc-macro/debug/dump-debug.stderr | 6 +- src/test/ui/proc-macro/derive-bad.stderr | 5 +- .../proc-macro/derive-helper-shadowing.stderr | 2 +- .../dollar-crate-issue-57089.stdout | 8 +- .../dollar-crate-issue-62325.stdout | 8 +- src/test/ui/proc-macro/dollar-crate.stdout | 24 +- src/test/ui/proc-macro/expand-with-a-macro.rs | 1 - .../proc-macro/gen-macro-rules-hygiene.stderr | 4 +- src/test/ui/proc-macro/generate-mod.stderr | 18 +- ...helper-attr-blocked-by-import-ambig.stderr | 2 +- .../inner-attr-non-inline-mod.stderr | 2 +- src/test/ui/proc-macro/inner-attrs.stdout | 4 +- .../issue-73933-procedural-masquerade.rs | 9 +- .../issue-73933-procedural-masquerade.stderr | 91 - .../issue-73933-procedural-masquerade.stdout | 11 +- .../proc-macro/issue-75930-derive-cfg.stderr | 2 +- .../proc-macro/issue-75930-derive-cfg.stdout | 20 +- .../issue-76182-leading-vert-pat.stdout | 4 +- .../ui/proc-macro/keep-expr-tokens.stderr | 12 +- src/test/ui/proc-macro/meta-macro-hygiene.rs | 4 +- .../ui/proc-macro/meta-macro-hygiene.stdout | 6 +- src/test/ui/proc-macro/mixed-site-span.stderr | 4 +- .../ui/proc-macro/pretty-print-hack-hide.rs | 12 + .../proc-macro/pretty-print-hack-hide.stdout | 21 + .../ui/proc-macro/pretty-print-hack-show.rs | 17 + .../proc-macro/pretty-print-hack-show.stderr | 179 + .../proc-macro/pretty-print-hack-show.stdout | 44 + .../allsorts-rental-0.5.6/src/lib.rs | 14 + .../pretty-print-hack/rental-0.5.5/src/lib.rs | 14 + .../pretty-print-hack/rental-0.5.6/src/lib.rs | 14 + .../proc-macro/proc-macro-attributes.stderr | 2 +- .../ui/proc-macro/proc-macro-gates.stderr | 2 +- src/test/ui/proc-macro/three-equals.stderr | 6 +- .../ui/process/process-panic-after-fork.rs | 45 +- .../ui/process/process-spawn-nonexistent.rs | 1 + .../process-spawn-with-unicode-params.rs | 1 + src/test/ui/process/signal-exit-status.rs | 1 + .../pub/pub-reexport-priv-extern-crate.stderr | 2 +- src/test/ui/pub/pub-restricted-error.stderr | 2 + src/test/ui/query-system/query_depth.rs | 31 + src/test/ui/query-system/query_depth.stderr | 11 + src/test/ui/query-visibility.rs | 9 + .../range-inclusive-pattern-precedence.stderr | 4 +- ...range-inclusive-pattern-precedence2.stderr | 4 +- src/test/ui/recursion/issue-83150.stderr | 6 +- src/test/ui/recursion/issue-95134.rs | 4 +- src/test/ui/recursion/issue-95134.stderr | 7 - src/test/ui/recursion/recursive-enum.stderr | 4 +- ...recursive-types-are-not-uninhabited.stderr | 4 +- src/test/ui/regions/issue-101280.rs | 10 + src/test/ui/regions/issue-101280.stderr | 14 + src/test/ui/regions/issue-102374.rs | 20 + src/test/ui/regions/issue-102374.stderr | 14 + src/test/ui/regions/issue-102392.rs | 6 + src/test/ui/regions/issue-102392.stderr | 14 + ...gion-bound-on-closure-outlives-call.stderr | 2 +- ...lifetime-bounds-on-fns-where-clause.stderr | 4 +- ...lifetime-bounds-on-fns-where-clause.stderr | 4 +- ...ons-fn-subtyping-return-static-fail.stderr | 2 +- .../regions-lifetime-bounds-on-fns.stderr | 4 +- .../repr/repr-transparent-issue-87496.stderr | 2 +- .../repr/repr-transparent-non-exhaustive.rs | 24 +- .../repr-transparent-non-exhaustive.stderr | 30 +- src/test/ui/resolve/bad-env-capture.stderr | 12 +- src/test/ui/resolve/bad-env-capture2.stderr | 12 +- src/test/ui/resolve/bad-env-capture3.stderr | 12 +- src/test/ui/resolve/bad-expr-path.stderr | 12 +- src/test/ui/resolve/bad-expr-path2.stderr | 12 +- src/test/ui/resolve/issue-102946.rs | 7 + src/test/ui/resolve/issue-102946.stderr | 26 + src/test/ui/resolve/issue-103202.rs | 7 + src/test/ui/resolve/issue-103202.stderr | 9 + src/test/ui/resolve/issue-14254.stderr | 127 +- src/test/ui/resolve/issue-23305.rs | 2 +- src/test/ui/resolve/issue-23305.stderr | 16 +- src/test/ui/resolve/issue-2356.stderr | 90 +- src/test/ui/resolve/issue-42944.stderr | 24 +- ...0736-async-fn-no-body-def-collector.stderr | 4 +- src/test/ui/resolve/issue-73427.stderr | 40 +- src/test/ui/resolve/levenshtein.stderr | 18 +- .../resolve/name-collision-in-trait-fn-sig.rs | 11 + ...pe-parameter-shadowing-another-type.stderr | 13 +- src/test/ui/resolve/privacy-enum-ctor.stderr | 6 +- .../resolve/resolve-assoc-suggestions.stderr | 2 +- src/test/ui/resolve/resolve-hint-macro.stderr | 22 +- src/test/ui/resolve/resolve-self-in-impl.rs | 9 +- .../ui/resolve/resolve-self-in-impl.stderr | 74 +- .../resolve-speculative-adjustment.stderr | 12 +- src/test/ui/resolve/tuple-struct-alias.stderr | 16 +- ...e-with-name-similar-to-struct-field.stderr | 38 +- src/test/ui/{issues => return}/issue-64620.rs | 0 .../ui/{issues => return}/issue-64620.stderr | 0 ...ide-behind-doubly-indirect-embedded.stderr | 4 +- ...t-hide-behind-doubly-indirect-param.stderr | 4 +- ...ide-behind-indirect-struct-embedded.stderr | 4 +- ...t-hide-behind-indirect-struct-param.stderr | 4 +- ...-match-ref-ref-forbidden-without-eq.stderr | 4 +- .../issue-63479-match-fnptr.stderr | 4 +- .../issue-6804.stderr | 4 +- .../match-forbidden-without-eq.stderr | 2 +- .../issue-103052-1.rs | 11 + .../issue-103052-1.stderr | 17 + .../issue-103052-2.rs | 18 + .../issue-103052-2.stderr | 15 + .../termination-trait-in-test.rs | 1 - .../termination-trait-test-wrong-type.stderr | 7 +- .../extern_crate_improper.stderr | 2 +- .../omitted-patterns.stderr | 48 +- .../stable-omitted-patterns.stderr | 8 +- .../ui/rfc-2008-non-exhaustive/struct.stderr | 12 +- .../std-panic-locations.rs | 1 - .../not-allowed.stderr | 7 + .../ui/rfc-2294-if-let-guard/warns.stderr | 4 +- .../disallowed-positions.stderr | 4 +- .../irrefutable-lets.disallowed.stderr | 26 +- .../irrefutable-lets.rs | 15 +- .../assoc-type-const-bound-usage.rs | 14 + .../rfc-2632-const-trait-impl/assoc-type.rs | 2 + .../assoc-type.stderr | 10 +- .../auxiliary/staged-api.rs | 1 + .../call-const-trait-method-fail.rs | 2 +- .../call-const-trait-method-fail.stderr | 21 +- .../call-const-trait-method-pass.rs | 1 + .../call-generic-in-impl.rs | 1 + .../call-generic-method-fail.stderr | 1 - .../call-generic-method-nonconst.rs | 9 +- .../call-generic-method-nonconst.stderr | 21 +- .../const-check-fns-in-const-impl.rs | 1 + .../const-check-fns-in-const-impl.stderr | 2 +- .../const-default-method-bodies.stderr | 4 - .../const-drop-fail.precise.stderr | 77 +- .../const-drop-fail.rs | 15 +- .../const-drop-fail.stock.stderr | 77 +- .../rfc-2632-const-trait-impl/const-drop.rs | 3 +- .../const-impl-recovery.rs | 2 + .../const-impl-recovery.stderr | 4 +- .../const-impl-requires-const-trait.rs | 9 + .../const-impl-requires-const-trait.stderr | 14 + .../cross-crate.gatednc.stderr | 4 - .../cross-crate.stocknc.stderr | 4 - ...ault-method-body-is-const-body-checking.rs | 1 + ...-method-body-is-const-body-checking.stderr | 10 +- ...-method-body-is-const-same-trait-ck.stderr | 4 - .../feature-gate.gated.stderr | 2 +- .../rfc-2632-const-trait-impl/feature-gate.rs | 1 + .../feature-gate.stock.stderr | 13 +- .../hir-const-check.rs | 1 + .../hir-const-check.stderr | 2 +- .../inherent-impl-const-bounds.rs | 2 + .../rfc-2632-const-trait-impl/issue-100222.rs | 10 + .../rfc-2632-const-trait-impl/issue-102156.rs | 15 + .../issue-102156.stderr | 19 + .../rfc-2632-const-trait-impl/issue-102985.rs | 12 + .../issue-102985.stderr | 41 + .../rfc-2632-const-trait-impl/issue-103677.rs | 5 + .../rfc-2632-const-trait-impl/issue-90052.rs | 9 + .../issue-90052.stderr | 14 + .../issue-92230-wf-super-trait-env.rs | 2 + .../nested-closure.rs | 12 + .../non-const-op-in-closure-in-const.rs | 1 + .../specializing-constness-2.rs | 31 + .../specializing-constness-2.stderr | 19 + .../specializing-constness.rs | 26 + .../specializing-constness.stderr | 8 + .../static-const-trait-bound.rs | 18 + .../super-traits-fail-2.nn.stderr | 8 + .../super-traits-fail-2.ny.stderr | 8 + .../super-traits-fail-2.rs | 9 +- .../super-traits-fail-2.stderr | 24 - .../super-traits-fail-2.yn.stderr | 21 + .../super-traits-fail-2.yy.stderr | 21 + .../super-traits-fail-3.nn.stderr | 14 + .../super-traits-fail-3.ny.stderr | 8 + .../super-traits-fail-3.rs | 20 + .../super-traits-fail-3.yn.stderr | 8 + .../super-traits-fail.rs | 2 + .../super-traits-fail.stderr | 10 +- .../rfc-2632-const-trait-impl/super-traits.rs | 3 + .../tilde-const-and-const-params.rs | 34 + .../tilde-const-and-const-params.stderr | 14 + .../tilde-const-invalid-places.rs | 7 +- .../tilde-const-invalid-places.stderr | 36 +- .../tilde_const_on_impl_bound.rs | 17 + .../trait-where-clause-const.rs | 31 + .../trait-where-clause-const.stderr | 35 + .../trait-where-clause-run.rs | 1 + .../trait-where-clause-self-referential.rs | 1 + .../trait-where-clause.rs | 19 +- .../trait-where-clause.stderr | 56 +- src/test/ui/rfc1623-2.stderr | 2 +- src/test/ui/rfcs/rfc1857-drop-order.rs | 1 - src/test/ui/runtime/backtrace-debuginfo.rs | 1 + src/test/ui/runtime/out-of-stack.rs | 1 + .../ui/runtime/rt-explody-panic-payloads.rs | 14 +- .../ui/rust-2018/async-ident-allowed.stderr | 4 +- src/test/ui/rust-2018/async-ident.stderr | 4 +- src/test/ui/rust-2018/dyn-keyword.stderr | 4 +- .../edition-lint-fully-qualified-paths.stderr | 4 +- .../edition-lint-nested-empty-paths.stderr | 4 +- .../edition-lint-nested-paths.stderr | 4 +- .../ui/rust-2018/edition-lint-paths.stderr | 4 +- .../ui/rust-2018/extern-crate-rename.stderr | 4 +- .../ui/rust-2018/extern-crate-submod.stderr | 4 +- src/test/ui/rust-2018/try-ident.stderr | 4 +- src/test/ui/rust-2018/try-macro.stderr | 4 +- .../array-into-iter-ambiguous.stderr | 4 +- ...ure-prelude-collision-generic-trait.stderr | 4 +- .../future-prelude-collision-generic.stderr | 4 +- .../future-prelude-collision-imported.stderr | 4 +- .../future-prelude-collision-macros.stderr | 4 +- .../future-prelude-collision-turbofish.stderr | 4 +- .../rust-2021/future-prelude-collision.stderr | 4 +- .../rust-2021/generic-type-collision.stderr | 4 +- .../rust-2021/inherent-dyn-collision.stderr | 4 +- .../reserved-prefixes-migration.stderr | 4 +- .../ui/rustdoc/deny-invalid-doc-attrs.stderr | 4 +- src/test/ui/rustdoc/doc-test-attr.stderr | 4 +- .../rustdoc/feature-gate-doc_primitive.stderr | 2 +- src/test/ui/sanitize/address.rs | 4 +- src/test/ui/sanitize/hwaddress.rs | 2 - src/test/ui/sanitize/inline-always.stderr | 2 +- src/test/ui/sanitize/leak.rs | 2 - src/test/ui/sanitize/memory-eager.rs | 1 - src/test/ui/sanitize/memory.rs | 1 - .../new-llvm-pass-manager-thin-lto.rs | 2 +- src/test/ui/save-analysis/issue-68621.stderr | 2 +- ...types_pin_lifetime_impl_trait-async.stderr | 2 +- ..._self_types_pin_lifetime_impl_trait.stderr | 2 +- .../portable-intrinsics-arent-exposed.stderr | 5 + src/test/ui/simd/target-feature-mixup.rs | 1 + src/test/ui/single-use-lifetime/derive-eq.rs | 11 + src/test/ui/sized-cycle-note.rs | 11 +- src/test/ui/sized-cycle-note.stderr | 32 +- src/test/ui/span/E0072.stderr | 6 +- src/test/ui/span/E0204.stderr | 8 +- src/test/ui/span/E0493.rs | 2 +- src/test/ui/span/E0493.stderr | 4 +- src/test/ui/span/E0535.stderr | 2 + ...021-incompatible-closure-captures-93117.rs | 1 - ...incompatible-closure-captures-93117.stderr | 38 +- src/test/ui/span/issue-7575.rs | 75 - src/test/ui/span/issue-7575.stderr | 82 - src/test/ui/span/multiline-span-E0072.stderr | 6 +- src/test/ui/span/recursive-type-field.rs | 4 +- src/test/ui/span/recursive-type-field.stderr | 38 +- .../assoc-ty-graph-cycle.stderr | 2 +- .../ui/specialization/const_trait_impl.rs | 55 + .../cross-crate-defaults.stderr | 2 +- .../default-associated-type-bound-1.stderr | 2 +- .../default-associated-type-bound-2.stderr | 2 +- ...fault-generic-associated-type-bound.stderr | 2 +- .../defaultimpl/allowed-cross-crate.stderr | 2 +- .../defaultimpl/out-of-order.stderr | 2 +- .../defaultimpl/overlap-projection.stderr | 2 +- .../defaultimpl/projection.stderr | 2 +- .../specialization-no-default.stderr | 2 +- ...on-trait-item-not-implemented-rpass.stderr | 2 +- ...lization-trait-item-not-implemented.stderr | 2 +- ...pecialization-trait-not-implemented.stderr | 2 +- .../defaultimpl/specialization-wfcheck.stderr | 2 +- .../defaultimpl/validation.stderr | 2 +- src/test/ui/specialization/issue-35376.stderr | 2 +- src/test/ui/specialization/issue-36804.stderr | 2 +- .../ui/specialization/issue-38091-2.stderr | 4 +- src/test/ui/specialization/issue-38091.stderr | 2 +- src/test/ui/specialization/issue-39448.stderr | 2 +- src/test/ui/specialization/issue-39618.stderr | 2 +- .../ui/specialization/issue-50452-fail.stderr | 2 +- src/test/ui/specialization/issue-50452.stderr | 2 +- src/test/ui/specialization/issue-52050.stderr | 2 +- .../issue-63716-parse-async.stderr | 2 +- src/test/ui/specialization/issue-70442.stderr | 2 +- .../non-defaulted-item-fail.stderr | 2 +- .../specialization-allowed-cross-crate.stderr | 2 +- .../specialization-assoc-fns.stderr | 2 +- .../specialization-basics.stderr | 2 +- .../specialization-cross-crate.stderr | 2 +- .../specialization-default-methods.stderr | 2 +- .../specialization-default-projection.stderr | 2 +- .../specialization-default-types.stderr | 2 +- .../specialization-no-default.stderr | 2 +- .../specialization-on-projection.stderr | 2 +- .../specialization-out-of-order.stderr | 2 +- .../specialization-overlap-negative.stderr | 2 +- .../specialization-overlap-projection.stderr | 2 +- .../specialization-overlap.stderr | 2 +- .../specialization-polarity.stderr | 2 +- .../specialization-projection-alias.stderr | 2 +- .../specialization-projection.stderr | 2 +- .../specialization-supertraits.stderr | 2 +- ...ranslate-projections-with-lifetimes.stderr | 2 +- ...n-translate-projections-with-params.stderr | 2 +- ...pecialization-translate-projections.stderr | 2 +- .../transmute-specialization.stderr | 2 +- .../missing-const-stability.rs | 1 + .../missing-const-stability.stderr | 2 +- .../stability-attribute-trait-impl.rs | 16 +- .../stability-attribute-trait-impl.stderr | 16 +- .../stability-attribute/stable-in-unstable.rs | 8 + .../stable-in-unstable.stderr | 20 +- src/test/ui/static/static-drop-scope.rs | 16 +- src/test/ui/static/static-drop-scope.stderr | 32 +- .../issue-17718-static-sync.rs | 0 .../issue-17718-static-sync.stderr | 0 .../issue-17718-static-unsafe-interior.rs | 0 src/test/ui/statics/uninhabited-static.stderr | 18 +- src/test/ui/stats/hir-stats.rs | 1 - src/test/ui/stats/hir-stats.stderr | 96 +- src/test/ui/std-backtrace.rs | 1 + .../{issues => structs-enums}/issue-2718-a.rs | 0 .../issue-2718-a.stderr | 4 +- src/test/ui/structs-enums/rec-align-u32.rs | 1 + src/test/ui/structs-enums/rec-align-u64.rs | 1 + .../struct-rec/issue-74224.stderr | 4 +- .../struct-rec/issue-84611.stderr | 4 +- .../struct-rec/mutual-struct-recursion.rs | 6 +- .../struct-rec/mutual-struct-recursion.stderr | 62 +- .../incomplete-fn-in-struct-definition.rs | 5 + .../incomplete-fn-in-struct-definition.stderr | 15 + .../ui/structs/struct-fn-in-definition.stderr | 9 + .../ui/structs/struct-path-associated-type.rs | 4 +- .../struct-path-associated-type.stderr | 30 +- src/test/ui/suggestions/abi-typo.fixed | 6 + src/test/ui/suggestions/abi-typo.rs | 6 + src/test/ui/suggestions/abi-typo.stderr | 14 + .../suggestions/assoc_fn_without_self.stderr | 12 +- ...rg-where-it-should-have-been-called.stderr | 9 +- .../ui/suggestions/boxed-variant-field.rs | 1 - .../ui/suggestions/boxed-variant-field.stderr | 4 - .../suggestions/call-on-unimplemented-ctor.rs | 17 + .../call-on-unimplemented-ctor.stderr | 21 + .../call-on-unimplemented-fn-ptr.rs | 15 + .../call-on-unimplemented-fn-ptr.stderr | 21 + ...rg-where-it-should-have-been-called.stderr | 9 +- .../fn-or-tuple-struct-without-args.stderr | 14 +- src/test/ui/suggestions/fn-to-method.rs | 19 + src/test/ui/suggestions/fn-to-method.stderr | 38 + src/test/ui/suggestions/format-borrow.stderr | 16 + .../impl-trait-missing-lifetime-gated.stderr | 12 +- src/test/ui/suggestions/inner_type.fixed | 40 + src/test/ui/suggestions/inner_type.rs | 40 + src/test/ui/suggestions/inner_type.stderr | 83 + src/test/ui/suggestions/inner_type2.rs | 26 + src/test/ui/suggestions/inner_type2.stderr | 29 + src/test/ui/suggestions/into-convert.rs | 26 + src/test/ui/suggestions/into-convert.stderr | 44 + src/test/ui/suggestions/issue-101065.fixed | 14 + src/test/ui/suggestions/issue-101065.rs | 14 + src/test/ui/suggestions/issue-101065.stderr | 23 + src/test/ui/suggestions/issue-101623.rs | 25 + src/test/ui/suggestions/issue-101623.stderr | 14 + src/test/ui/suggestions/issue-101984.stderr | 4 +- src/test/ui/suggestions/issue-102354.rs | 10 + src/test/ui/suggestions/issue-102354.stderr | 24 + src/test/ui/suggestions/issue-102892.rs | 25 + src/test/ui/suggestions/issue-102892.stderr | 57 + src/test/ui/suggestions/issue-103112.rs | 4 + src/test/ui/suggestions/issue-103112.stderr | 15 + src/test/ui/suggestions/issue-61963.stderr | 4 +- .../missing-lifetimes-in-signature-2.stderr | 1 + .../missing-lifetimes-in-signature.stderr | 4 +- .../trait-object-nested-in-impl-trait.stderr | 4 +- ...t-arm-types-as-stmt-instead-of-expr.stderr | 2 +- ...missing-bound-in-manual-copy-impl-2.stderr | 4 +- .../missing-bound-in-manual-copy-impl.stderr | 4 +- ...eld-present-in-subfield-recursion-limit.rs | 2 +- .../ui/suggestions/return-closures.stderr | 2 +- ...t-field-type-including-single-colon.stderr | 4 + .../suggestions/sugg-else-for-closure.fixed | 8 + .../ui/suggestions/sugg-else-for-closure.rs | 8 + .../suggestions/sugg-else-for-closure.stderr | 23 + .../suggest-let-for-assignment.fixed | 17 + .../suggestions/suggest-let-for-assignment.rs | 17 + .../suggest-let-for-assignment.stderr | 60 + .../suggest-swapping-self-ty-and-trait.stderr | 2 +- src/test/ui/symbol-names/impl1.legacy.stderr | 2 +- src/test/ui/symbol-names/impl1.rs | 4 +- src/test/ui/symbol-names/impl1.v0.stderr | 2 +- .../inaccessible-test-modules.stderr | 14 +- ...e-verification-for-explicit-return-type.rs | 1 + src/test/ui/test-attrs/test-on-not-fn.stderr | 24 +- .../test-attrs/test-panic-while-printing.rs | 1 - .../test-should-fail-good-message.rs | 1 - src/test/ui/test-attrs/test-thread-capture.rs | 1 + .../test-attrs/test-thread-capture.run.stdout | 2 +- .../ui/test-attrs/test-thread-nocapture.rs | 1 + .../test-thread-nocapture.run.stderr | 2 +- src/test/ui/thir-tree.stdout | 4 +- src/test/ui/threads-sendsync/issue-43733-2.rs | 2 +- src/test/ui/threads-sendsync/issue-43733.rs | 2 +- .../ui/threads-sendsync/sync-send-in-std.rs | 1 + .../check-trait-object-bounds-2.stderr | 2 +- .../ui/traits/bound/not-on-bare-trait.stderr | 2 +- .../traits/copy-impl-cannot-normalize.stderr | 4 +- src/test/ui/traits/issue-102989.rs | 16 + src/test/ui/traits/issue-102989.stderr | 59 + .../traits/issue-33140-hack-boundaries.stderr | 17 + .../issue-43784-supertrait.rs | 0 .../issue-43784-supertrait.stderr | 0 src/test/ui/traits/issue-8153.stderr | 7 +- .../issue-91949-hangs-on-recursion.stderr | 2 +- .../negative-default-impls.stderr | 2 +- .../negative-specializes-negative.stderr | 2 +- .../negative-specializes-positive-item.stderr | 2 +- .../negative-specializes-positive.stderr | 2 +- .../positive-specializes-negative.stderr | 2 +- .../issue-33140-traitobject-crate.stderr | 57 +- .../ui/traits/safety-trait-impl-cc.stderr | 6 + src/test/ui/traits/safety-trait-impl.stderr | 12 + .../static-method-generic-inference.stderr | 4 +- .../trait-upcasting/migrate-lint-deny.stderr | 4 +- ...rs => multiple-occurrence-ambiguousity.rs} | 0 ...> multiple-occurrence-ambiguousity.stderr} | 2 +- .../unspecified-self-in-trait-ref.stderr | 2 +- .../enums/should_order_correctly.rs | 1 - .../enums/should_respect_endianness.rs | 1 - .../enums/should_respect_endianness.stderr | 4 +- src/test/ui/transmutability/issue-101739-1.rs | 21 + .../ui/transmutability/issue-101739-1.stderr | 16 + src/test/ui/transmutability/issue-101739-2.rs | 37 + .../ui/transmutability/issue-101739-2.stderr | 20 + .../wrong-type-assume.rs | 4 - .../wrong-type-assume.stderr | 37 +- src/test/ui/transmute-equal-assoc-types.rs | 4 +- .../ui/transmute-equal-assoc-types.stderr | 11 - src/test/ui/transmute/lifetimes.rs | 23 + src/test/ui/transmute/main.rs | 2 +- src/test/ui/transmute/main.stderr | 10 +- .../ui/treat-err-as-bug/delay_span_bug.rs | 2 +- .../ui/treat-err-as-bug/delay_span_bug.stderr | 2 +- .../ui/try-trait/bad-interconversion.stderr | 2 +- ...ity-lint-ambiguous_associated_items.stderr | 2 +- .../closure_parent_substs.rs | 65 + .../closure_wf_outlives.rs | 65 + .../closure_wf_outlives.stderr | 64 + .../cross_inference_pattern_bug.rs | 3 +- .../cross_inference_pattern_bug.stderr | 10 - .../cross_inference_pattern_bug_no_type.rs | 6 +- ...cross_inference_pattern_bug_no_type.stderr | 10 - .../different_defining_uses_never_type.rs | 4 +- .../different_defining_uses_never_type.stderr | 14 + .../different_defining_uses_never_type3.rs | 12 + ...different_defining_uses_never_type3.stderr | 14 + .../different_lifetimes_defining_uses.rs | 6 +- .../different_lifetimes_defining_uses.stderr | 4 +- .../generic_duplicate_lifetime_param.rs | 5 +- .../generic_duplicate_lifetime_param.stderr | 6 +- .../generic_duplicate_param_use.rs | 7 +- .../generic_duplicate_param_use.stderr | 12 +- .../generic_lifetime_param.rs | 5 +- .../type-alias-impl-trait/implied_bounds.rs | 51 + .../implied_bounds.stderr | 16 + .../type-alias-impl-trait/implied_bounds2.rs | 10 + .../type-alias-impl-trait/implied_bounds3.rs | 18 + .../implied_bounds_closure.rs | 31 + .../implied_bounds_closure.stderr | 11 + .../implied_bounds_from_types.rs | 51 + .../implied_bounds_from_types.stderr | 16 + .../implied_lifetime_wf_check.rs | 27 + .../implied_lifetime_wf_check3.rs | 43 + .../implied_lifetime_wf_check3.stderr | 58 + .../implied_lifetime_wf_check4_static.rs | 11 + .../implied_lifetime_wf_check4_static.stderr | 14 + .../ui/type-alias-impl-trait/issue-101750.rs | 37 + .../issue-53398-cyclic-types.stderr | 3 +- .../issue-57611-trait-alias.stderr | 2 +- .../issue-58662-generator-with-lifetime.rs | 2 +- .../issue-58662-simplified.rs | 20 + .../ui/type-alias-impl-trait/issue-89686.rs | 2 +- .../type-alias-impl-trait/issue-89686.stderr | 2 +- .../issue-96572-unconstrained-mismatch.rs | 10 + .../issue-96572-unconstrained-mismatch.stderr | 15 + .../issue-96572-unconstrained.rs | 92 + .../missing_lifetime_bound.rs | 7 + .../missing_lifetime_bound.stderr | 8 + .../multiple-def-uses-in-one-fn-lifetimes.rs | 6 +- ...ltiple-def-uses-in-one-fn-lifetimes.stderr | 2 +- .../multiple-def-uses-in-one-fn-pass.rs | 6 +- .../unbounded_opaque_type.rs | 14 + src/test/ui/type/issue-101866.rs | 15 + src/test/ui/type/issue-101866.stderr | 18 + .../ui/type/issue-94187-verbose-type-name.rs | 13 + .../assignment-expected-bool.stderr | 22 +- .../ui/type/type-check/assignment-in-if.rs | 19 + .../type/type-check/assignment-in-if.stderr | 71 +- .../type/type-mismatch-same-crate-name.stderr | 11 + .../type/type-recursive-box-shadowed.stderr | 4 +- src/test/ui/type/type-recursive.stderr | 42 +- ...on-invalid-type-node-after-recovery.stderr | 4 +- .../issue-87181/empty-tuple-method.stderr | 2 +- .../ui/typeck/issue-87181/enum-variant.stderr | 2 +- .../ui/typeck/issue-87181/tuple-field.stderr | 2 +- src/test/ui/typeck/slow-lhs-suggestion.rs | 26 + src/test/ui/typeck/slow-lhs-suggestion.stderr | 187 + .../unboxed-closures-counter-not-moved.stderr | 2 +- .../unboxed-closures-move-mutable.stderr | 2 +- .../unboxed-closures-unsafe-extern-fn.stderr | 12 +- .../unboxed-closures-wrong-abi.stderr | 18 +- ...d-closures-wrong-arg-type-extern-fn.stderr | 6 +- .../privately-uninhabited-mir-call.stderr | 5 + src/test/ui/union/union-copy.stderr | 4 +- .../ui/union/union-nonrepresentable.stderr | 10 +- src/test/ui/union/union-repr-c.stderr | 10 +- .../deny-unstable-lint-command-line.stderr | 2 +- .../deny-unstable-lint-inline.stderr | 4 +- ...-unknown-unstable-lint-command-line.stderr | 2 +- .../warn-unknown-unstable-lint-inline.stderr | 4 +- .../ui/unresolved/unresolved-candidates.rs | 13 + .../unresolved/unresolved-candidates.stderr | 26 + ...rfc-2585-unsafe_op_in_unsafe_fn.mir.stderr | 4 +- ...fc-2585-unsafe_op_in_unsafe_fn.thir.stderr | 4 +- .../unsized-locals/borrow-after-move.stderr | 2 +- .../by-value-trait-object-safety.stderr | 2 +- src/test/ui/unsized-locals/double-move.stderr | 2 +- .../issue-30276-feature-flagged.stderr | 2 +- .../issue-50940-with-feature.stderr | 2 +- .../unwind-abis/feature-gate-c-unwind.stderr | 2 +- .../ui/unwind-abis/ffi-unwind-calls-lint.rs | 1 - .../unwind-abis/ffi-unwind-calls-lint.stderr | 6 +- src/test/ui/unwind-no-uwtable.rs | 1 - .../variance-regions-unused-indirect.rs | 1 + .../variance-regions-unused-indirect.stderr | 30 +- src/test/ui/wf/issue-103573.rs | 22 + src/test/ui/wf/issue-103573.stderr | 14 + .../higher-ranked-fn-type.quiet.stderr | 18 + .../ui/where-clauses/higher-ranked-fn-type.rs | 25 + .../higher-ranked-fn-type.verbose.stderr | 18 + src/tools/build-manifest/src/main.rs | 55 +- src/tools/build-manifest/src/versions.rs | 19 +- src/tools/cargotest/main.rs | 6 +- src/tools/clippy/.github/workflows/clippy.yml | 1 + .../clippy/.github/workflows/clippy_bors.yml | 1 + .../clippy/.github/workflows/clippy_dev.yml | 2 + src/tools/clippy/CHANGELOG.md | 166 +- src/tools/clippy/CONTRIBUTING.md | 27 +- src/tools/clippy/Cargo.toml | 8 +- src/tools/clippy/README.md | 46 +- .../book/src/development/adding_lints.md | 24 +- .../clippy/book/src/development/basics.md | 7 +- .../development/common_tools_writing_lints.md | 15 +- src/tools/clippy/clippy_dev/src/fmt.rs | 6 +- src/tools/clippy/clippy_dev/src/lib.rs | 1 - src/tools/clippy/clippy_dev/src/main.rs | 2 +- src/tools/clippy/clippy_dev/src/new_lint.rs | 166 +- src/tools/clippy/clippy_dev/src/serve.rs | 6 +- .../clippy/clippy_dev/src/setup/git_hook.rs | 7 +- .../clippy/clippy_dev/src/setup/intellij.rs | 42 +- .../clippy/clippy_dev/src/setup/vscode.rs | 19 +- .../clippy/clippy_dev/src/update_lints.rs | 111 +- src/tools/clippy/clippy_lints/Cargo.toml | 2 +- .../src/almost_complete_letter_range.rs | 2 + .../clippy/clippy_lints/src/approx_const.rs | 4 +- .../clippy/clippy_lints/src/asm_syntax.rs | 6 +- .../src/assertions_on_constants.rs | 4 +- .../src/assertions_on_result_states.rs | 16 +- src/tools/clippy/clippy_lints/src/attrs.rs | 10 +- .../clippy_lints/src/await_holding_invalid.rs | 42 +- .../src/blocks_in_if_conditions.rs | 68 +- .../src/bool_assert_comparison.rs | 4 +- .../clippy_lints/src/bool_to_int_with_if.rs | 54 +- src/tools/clippy/clippy_lints/src/booleans.rs | 13 +- .../clippy/clippy_lints/src/box_default.rs | 129 + .../clippy_lints/src/cargo/common_metadata.rs | 2 +- .../clippy_lints/src/cargo/feature_name.rs | 4 +- .../clippy/clippy_lints/src/cargo/mod.rs | 4 +- .../src/cargo/multiple_crate_versions.rs | 2 +- .../clippy_lints/src/casts/as_ptr_cast_mut.rs | 38 + .../clippy_lints/src/casts/borrow_as_ptr.rs | 2 +- .../clippy_lints/src/casts/cast_lossless.rs | 12 +- .../clippy_lints/src/casts/cast_nan_to_int.rs | 28 + .../src/casts/cast_possible_truncation.rs | 16 +- .../src/casts/cast_possible_wrap.rs | 5 +- .../src/casts/cast_ptr_alignment.rs | 4 +- .../clippy_lints/src/casts/cast_sign_loss.rs | 5 +- .../src/casts/cast_slice_different_sizes.rs | 4 +- .../clippy_lints/src/casts/char_lit_as_u8.rs | 2 +- .../src/casts/fn_to_numeric_cast.rs | 4 +- .../src/casts/fn_to_numeric_cast_any.rs | 4 +- .../fn_to_numeric_cast_with_truncation.rs | 7 +- .../clippy/clippy_lints/src/casts/mod.rs | 57 +- .../clippy_lints/src/casts/ptr_as_ptr.rs | 6 +- .../src/casts/unnecessary_cast.rs | 78 +- .../clippy_lints/src/checked_conversions.rs | 16 +- .../clippy_lints/src/cognitive_complexity.rs | 64 +- .../clippy_lints/src/comparison_chain.rs | 8 +- .../clippy/clippy_lints/src/copy_iterator.rs | 2 +- src/tools/clippy/clippy_lints/src/default.rs | 17 +- .../src/default_instead_of_iter_empty.rs | 2 +- .../src/default_numeric_fallback.rs | 69 +- .../src/default_union_representation.rs | 4 +- .../clippy/clippy_lints/src/dereference.rs | 203 +- .../clippy_lints/src/derivable_impls.rs | 28 +- src/tools/clippy/clippy_lints/src/derive.rs | 11 +- .../clippy_lints/src/disallowed_macros.rs | 151 + .../clippy_lints/src/disallowed_methods.rs | 22 +- .../src/disallowed_script_idents.rs | 3 +- .../clippy_lints/src/disallowed_types.rs | 24 +- src/tools/clippy/clippy_lints/src/doc.rs | 102 +- .../clippy_lints/src/doc_link_with_quotes.rs | 60 - .../clippy/clippy_lints/src/double_parens.rs | 5 +- .../clippy_lints/src/drop_forget_ref.rs | 30 +- .../clippy/clippy_lints/src/empty_enum.rs | 2 +- src/tools/clippy/clippy_lints/src/entry.rs | 48 +- .../clippy/clippy_lints/src/enum_variants.rs | 11 +- .../clippy_lints/src/equatable_if_let.rs | 7 +- src/tools/clippy/clippy_lints/src/escape.rs | 19 +- .../clippy/clippy_lints/src/eta_reduction.rs | 25 +- .../clippy_lints/src/exhaustive_items.rs | 4 +- src/tools/clippy/clippy_lints/src/exit.rs | 2 +- .../clippy/clippy_lints/src/explicit_write.rs | 8 +- .../clippy_lints/src/fallible_impl_from.rs | 4 +- .../clippy/clippy_lints/src/float_literal.rs | 6 +- .../src/floating_point_arithmetic.rs | 55 +- src/tools/clippy/clippy_lints/src/format.rs | 4 +- .../clippy/clippy_lints/src/format_args.rs | 302 +- .../clippy/clippy_lints/src/format_impl.rs | 6 +- .../clippy/clippy_lints/src/formatting.rs | 25 +- .../clippy/clippy_lints/src/from_over_into.rs | 176 +- .../clippy_lints/src/from_str_radix_10.rs | 6 +- .../clippy_lints/src/functions/must_use.rs | 116 +- .../src/functions/not_unsafe_ptr_arg_deref.rs | 95 +- .../clippy_lints/src/functions/result.rs | 14 +- .../src/functions/too_many_arguments.rs | 5 +- .../src/functions/too_many_lines.rs | 10 +- .../clippy_lints/src/future_not_send.rs | 32 +- .../src/if_then_some_else_none.rs | 19 +- .../clippy_lints/src/implicit_hasher.rs | 11 +- .../clippy_lints/src/implicit_return.rs | 16 +- .../src/implicit_saturating_add.rs | 114 + .../src/implicit_saturating_sub.rs | 22 +- .../src/inconsistent_struct_constructor.rs | 6 +- .../clippy_lints/src/index_refutable_slice.rs | 4 +- .../clippy_lints/src/indexing_slicing.rs | 1 - .../clippy/clippy_lints/src/infinite_iter.rs | 15 +- .../clippy_lints/src/inherent_to_string.rs | 23 +- .../src/inline_fn_without_body.rs | 2 +- .../clippy/clippy_lints/src/int_plus_one.rs | 4 +- .../src/invalid_upcast_comparisons.rs | 4 +- .../src/iter_not_returning_iterator.rs | 9 +- .../clippy_lints/src/large_const_arrays.rs | 2 +- .../clippy_lints/src/large_enum_variant.rs | 7 +- .../clippy_lints/src/large_stack_arrays.rs | 50 +- src/tools/clippy/clippy_lints/src/len_zero.rs | 48 +- .../clippy/clippy_lints/src/let_if_seq.rs | 5 +- .../clippy/clippy_lints/src/let_underscore.rs | 23 +- .../clippy_lints/src/lib.register_all.rs | 13 +- .../src/lib.register_complexity.rs | 4 + .../src/lib.register_correctness.rs | 1 + .../clippy_lints/src/lib.register_internal.rs | 32 +- .../clippy_lints/src/lib.register_lints.rs | 48 +- .../clippy_lints/src/lib.register_nursery.rs | 5 +- .../clippy_lints/src/lib.register_pedantic.rs | 6 +- .../clippy_lints/src/lib.register_perf.rs | 1 + .../src/lib.register_restriction.rs | 2 + .../clippy_lints/src/lib.register_style.rs | 4 +- .../src/lib.register_suspicious.rs | 3 +- src/tools/clippy/clippy_lints/src/lib.rs | 98 +- .../clippy/clippy_lints/src/lifetimes.rs | 6 +- .../src/literal_representation.rs | 2 +- .../src/loops/explicit_counter_loop.rs | 14 +- .../src/loops/explicit_iter_loop.rs | 2 +- .../clippy_lints/src/loops/for_kv_map.rs | 4 +- .../src/loops/for_loops_over_fallibles.rs | 65 - .../clippy_lints/src/loops/iter_next_loop.rs | 5 +- .../clippy_lints/src/loops/manual_find.rs | 9 +- .../clippy_lints/src/loops/manual_flatten.rs | 14 +- .../clippy_lints/src/loops/manual_memcpy.rs | 13 +- .../clippy/clippy_lints/src/loops/mod.rs | 59 +- .../clippy_lints/src/loops/mut_range_bound.rs | 29 +- .../src/loops/needless_collect.rs | 6 +- .../src/loops/needless_range_loop.rs | 45 +- .../clippy_lints/src/loops/never_loop.rs | 37 +- .../clippy_lints/src/loops/same_item_push.rs | 5 +- .../clippy/clippy_lints/src/loops/utils.rs | 5 +- .../src/loops/while_let_on_iterator.rs | 17 +- .../clippy/clippy_lints/src/macro_use.rs | 6 +- .../clippy/clippy_lints/src/manual_assert.rs | 31 +- .../clippy_lints/src/manual_async_fn.rs | 24 +- .../clippy/clippy_lints/src/manual_clamp.rs | 717 + .../clippy_lints/src/manual_non_exhaustive.rs | 6 +- .../clippy_lints/src/manual_rem_euclid.rs | 2 +- .../clippy/clippy_lints/src/manual_retain.rs | 18 +- .../clippy/clippy_lints/src/manual_strip.rs | 9 +- .../clippy/clippy_lints/src/map_unit_fn.rs | 9 +- .../clippy_lints/src/match_result_ok.rs | 6 +- .../src/matches/collapsible_match.rs | 29 +- .../clippy_lints/src/matches/manual_filter.rs | 153 + .../clippy_lints/src/matches/manual_map.rs | 318 +- .../src/matches/manual_unwrap_or.rs | 22 +- .../clippy_lints/src/matches/manual_utils.rs | 277 + .../clippy_lints/src/matches/match_as_ref.rs | 18 +- .../src/matches/match_like_matches.rs | 5 +- .../src/matches/match_same_arms.rs | 8 +- .../src/matches/match_single_binding.rs | 51 +- .../src/matches/match_str_case_mismatch.rs | 4 +- .../src/matches/match_wild_err_arm.rs | 2 +- .../clippy/clippy_lints/src/matches/mod.rs | 40 + .../src/matches/needless_match.rs | 9 +- .../src/matches/redundant_pattern_match.rs | 65 +- .../matches/significant_drop_in_scrutinee.rs | 6 +- .../clippy_lints/src/matches/single_match.rs | 17 +- .../clippy_lints/src/matches/try_err.rs | 9 +- .../clippy/clippy_lints/src/mem_replace.rs | 72 +- .../src/methods/bind_instead_of_map.rs | 2 +- .../clippy_lints/src/methods/bytes_nth.rs | 2 +- .../clippy_lints/src/methods/chars_cmp.rs | 5 +- .../src/methods/chars_cmp_with_unwrap.rs | 5 +- .../clippy_lints/src/methods/clone_on_copy.rs | 13 +- .../src/methods/clone_on_ref_ptr.rs | 2 +- .../clippy_lints/src/methods/err_expect.rs | 11 +- .../src/methods/expect_fun_call.rs | 11 +- .../src/methods/filetype_is_file.rs | 11 +- .../src/methods/filter_map_next.rs | 2 +- .../clippy_lints/src/methods/filter_next.rs | 2 +- .../methods/from_iter_instead_of_collect.rs | 6 +- .../clippy_lints/src/methods/get_first.rs | 4 +- .../src/methods/get_last_with_len.rs | 6 +- .../clippy_lints/src/methods/get_unwrap.rs | 11 +- .../src/methods/implicit_clone.rs | 6 +- .../src/methods/inefficient_to_string.rs | 9 +- .../src/methods/into_iter_on_ref.rs | 8 +- .../src/methods/is_digit_ascii_radix.rs | 7 +- .../src/methods/iter_cloned_collect.rs | 4 +- .../clippy_lints/src/methods/iter_count.rs | 2 +- .../clippy_lints/src/methods/iter_kv_map.rs | 87 + .../src/methods/iter_next_slice.rs | 2 +- .../clippy_lints/src/methods/iter_nth.rs | 4 +- .../iter_on_single_or_empty_collections.rs | 27 +- .../src/methods/iter_with_drain.rs | 2 +- .../clippy_lints/src/methods/manual_ok_or.rs | 38 +- .../methods/manual_saturating_arithmetic.rs | 15 +- .../src/methods/manual_str_repeat.rs | 10 +- .../clippy_lints/src/methods/map_clone.rs | 5 +- .../clippy_lints/src/methods/map_flatten.rs | 9 +- .../clippy_lints/src/methods/map_identity.rs | 2 +- .../clippy_lints/src/methods/map_unwrap_or.rs | 2 +- .../clippy/clippy_lints/src/methods/mod.rs | 152 +- .../clippy_lints/src/methods/ok_expect.rs | 11 +- .../src/methods/option_as_ref_deref.rs | 29 +- .../src/methods/option_map_or_none.rs | 22 +- .../src/methods/option_map_unwrap_or.rs | 9 +- .../clippy_lints/src/methods/or_fun_call.rs | 33 +- .../src/methods/or_then_unwrap.rs | 5 +- .../src/methods/search_is_some.rs | 14 +- .../src/methods/single_char_insert_string.rs | 2 +- .../src/methods/single_char_push_string.rs | 2 +- .../src/methods/stable_sort_primitive.rs | 4 +- .../clippy_lints/src/methods/str_splitn.rs | 24 +- .../src/methods/string_extend_chars.rs | 3 +- .../src/methods/suspicious_splitn.rs | 4 +- .../src/methods/suspicious_to_owned.rs | 4 +- .../src/methods/unnecessary_filter_map.rs | 73 +- .../src/methods/unnecessary_fold.rs | 7 +- .../src/methods/unnecessary_iter_cloned.rs | 2 +- .../src/methods/unnecessary_lazy_eval.rs | 10 +- .../src/methods/unnecessary_to_owned.rs | 38 +- .../clippy_lints/src/methods/useless_asref.rs | 7 +- .../src/methods/wrong_self_convention.rs | 15 +- src/tools/clippy/clippy_lints/src/minmax.rs | 4 +- src/tools/clippy/clippy_lints/src/misc.rs | 24 +- .../src/misc_early/literal_suffix.rs | 12 +- .../src/misc_early/mixed_case_hex_literals.rs | 4 +- .../clippy/clippy_lints/src/misc_early/mod.rs | 5 +- .../src/misc_early/unneeded_field_pattern.rs | 4 +- .../src/misc_early/zero_prefixed_literal.rs | 18 +- .../src/mismatching_type_param_order.rs | 12 +- .../clippy_lints/src/missing_const_for_fn.rs | 4 +- .../clippy/clippy_lints/src/missing_doc.rs | 12 +- .../src/missing_enforced_import_rename.rs | 7 +- .../clippy/clippy_lints/src/missing_inline.rs | 14 +- .../clippy_lints/src/missing_trait_methods.rs | 98 + .../src/mixed_read_write_in_expression.rs | 5 +- .../clippy/clippy_lints/src/module_style.rs | 21 +- src/tools/clippy/clippy_lints/src/mut_key.rs | 12 +- .../clippy/clippy_lints/src/mut_reference.rs | 3 +- .../src/mutable_debug_assertion.rs | 5 +- .../clippy/clippy_lints/src/mutex_atomic.rs | 5 +- .../clippy_lints/src/needless_borrowed_ref.rs | 121 +- .../clippy_lints/src/needless_continue.rs | 14 +- .../clippy_lints/src/needless_for_each.rs | 5 +- .../clippy_lints/src/needless_late_init.rs | 55 +- .../src/needless_pass_by_value.rs | 21 +- .../src/needless_question_mark.rs | 16 +- .../src/neg_cmp_op_on_partial_ord.rs | 8 +- .../clippy/clippy_lints/src/neg_multiply.rs | 4 +- .../clippy_lints/src/new_without_default.rs | 11 +- .../clippy/clippy_lints/src/non_copy_const.rs | 20 +- .../clippy_lints/src/non_expressive_names.rs | 9 +- .../src/non_octal_unix_permissions.rs | 22 +- .../src/non_send_fields_in_send_ty.rs | 2 +- .../src/nonstandard_macro_braces.rs | 83 +- .../clippy/clippy_lints/src/octal_escapes.rs | 2 +- .../src/only_used_in_recursion.rs | 16 +- .../operators/absurd_extreme_comparisons.rs | 5 +- .../src/operators/arithmetic_side_effects.rs | 127 +- .../src/operators/assign_op_pattern.rs | 83 +- .../clippy_lints/src/operators/bit_mask.rs | 40 +- .../clippy_lints/src/operators/cmp_owned.rs | 28 +- .../src/operators/duration_subsec.rs | 7 +- .../clippy_lints/src/operators/eq_op.rs | 2 +- .../src/operators/misrefactored_assign_op.rs | 12 +- .../clippy/clippy_lints/src/operators/mod.rs | 2 +- .../src/operators/needless_bitwise_bool.rs | 2 +- .../src/operators/numeric_arithmetic.rs | 9 +- .../clippy_lints/src/operators/op_ref.rs | 2 +- .../clippy_lints/src/operators/ptr_eq.rs | 2 +- .../src/operators/self_assignment.rs | 2 +- .../src/operators/verbose_bit_mask.rs | 2 +- .../clippy_lints/src/option_env_unwrap.rs | 4 +- .../clippy_lints/src/option_if_let_else.rs | 30 +- .../clippy_lints/src/panic_in_result_fn.rs | 19 +- .../clippy_lints/src/partial_pub_fields.rs | 81 + .../clippy_lints/src/partialeq_ne_impl.rs | 2 +- .../clippy_lints/src/partialeq_to_none.rs | 5 +- .../clippy_lints/src/pass_by_ref_or_value.rs | 8 +- .../clippy/clippy_lints/src/precedence.rs | 4 +- src/tools/clippy/clippy_lints/src/ptr.rs | 66 +- .../clippy_lints/src/ptr_offset_with_cast.rs | 14 +- .../clippy/clippy_lints/src/question_mark.rs | 41 +- src/tools/clippy/clippy_lints/src/ranges.rs | 16 +- .../clippy_lints/src/read_zero_byte_vec.rs | 45 +- .../clippy_lints/src/redundant_clone.rs | 454 +- .../clippy_lints/src/redundant_pub_crate.rs | 10 +- .../clippy_lints/src/redundant_slicing.rs | 8 +- .../src/redundant_static_lifetimes.rs | 2 +- .../clippy/clippy_lints/src/ref_option_ref.rs | 3 +- src/tools/clippy/clippy_lints/src/regex.rs | 4 +- .../clippy/clippy_lints/src/renamed_lints.rs | 6 +- .../src/return_self_not_must_use.rs | 4 +- src/tools/clippy/clippy_lints/src/returns.rs | 212 +- .../clippy_lints/src/same_name_method.rs | 6 +- .../src/self_named_constructors.rs | 4 +- .../src/semicolon_if_nothing_returned.rs | 2 +- src/tools/clippy/clippy_lints/src/shadow.rs | 5 +- .../src/slow_vector_initialization.rs | 16 +- .../clippy_lints/src/std_instead_of_core.rs | 22 + src/tools/clippy/clippy_lints/src/strings.rs | 6 +- .../clippy_lints/src/strlen_on_c_strings.rs | 2 +- .../src/suspicious_operation_groupings.rs | 11 +- .../clippy_lints/src/suspicious_trait_impl.rs | 37 +- src/tools/clippy/clippy_lints/src/swap.rs | 19 +- .../clippy_lints/src/swap_ptr_to_ref.rs | 2 +- .../clippy_lints/src/to_digit_is_some.rs | 4 +- .../clippy_lints/src/trailing_empty_array.rs | 2 +- .../clippy/clippy_lints/src/trait_bounds.rs | 5 +- .../src/transmute/crosspointer_transmute.rs | 10 +- .../src/transmute/transmute_float_to_int.rs | 4 +- .../src/transmute/transmute_int_to_bool.rs | 2 +- .../src/transmute/transmute_int_to_char.rs | 4 +- .../src/transmute/transmute_int_to_float.rs | 4 +- .../src/transmute/transmute_num_to_bytes.rs | 4 +- .../src/transmute/transmute_ptr_to_ref.rs | 18 +- .../src/transmute/transmute_ref_to_ref.rs | 2 +- .../src/transmute/transmute_undefined_repr.rs | 178 +- .../transmutes_expressible_as_ptr_casts.rs | 5 +- .../src/transmute/transmuting_null.rs | 41 +- .../transmute/unsound_collection_transmute.rs | 5 +- .../src/transmute/useless_transmute.rs | 2 +- .../clippy_lints/src/transmute/utils.rs | 11 +- .../src/transmute/wrong_transmute.rs | 2 +- .../clippy_lints/src/types/borrowed_box.rs | 8 +- .../clippy_lints/src/types/box_collection.rs | 2 +- .../clippy/clippy_lints/src/types/mod.rs | 20 +- .../clippy_lints/src/types/rc_buffer.rs | 27 +- .../src/types/redundant_allocation.rs | 55 +- .../clippy/clippy_lints/src/types/vec_box.rs | 4 +- .../clippy/clippy_lints/src/uninit_vec.rs | 9 +- .../src/unit_return_expecting_ord.rs | 23 +- .../clippy_lints/src/unit_types/unit_arg.rs | 7 +- .../clippy_lints/src/unit_types/unit_cmp.rs | 7 +- .../src/unnecessary_owned_empty_strings.rs | 4 +- .../src/unnecessary_self_imports.rs | 2 +- .../clippy_lints/src/unnecessary_wraps.rs | 15 +- .../clippy_lints/src/unnested_or_patterns.rs | 5 +- .../src/unsafe_removed_from_name.rs | 5 +- .../clippy_lints/src/unused_io_amount.rs | 12 +- .../clippy_lints/src/unused_peekable.rs | 36 +- .../clippy_lints/src/unused_rounding.rs | 9 +- .../clippy/clippy_lints/src/unused_self.rs | 6 +- src/tools/clippy/clippy_lints/src/unwrap.rs | 7 +- .../clippy_lints/src/unwrap_in_result.rs | 72 +- .../clippy_lints/src/upper_case_acronyms.rs | 5 +- src/tools/clippy/clippy_lints/src/use_self.rs | 23 +- .../clippy_lints/src/useless_conversion.rs | 19 +- .../clippy/clippy_lints/src/utils/author.rs | 121 +- .../clippy/clippy_lints/src/utils/conf.rs | 43 +- .../clippy_lints/src/utils/internal_lints.rs | 1447 +- .../internal_lints/clippy_lints_internal.rs | 49 + .../utils/internal_lints/collapsible_calls.rs | 245 + .../internal_lints/compiler_lint_functions.rs | 77 + .../utils/internal_lints/if_chain_style.rs | 164 + .../interning_defined_symbol.rs | 239 + .../src/utils/internal_lints/invalid_paths.rs | 108 + .../internal_lints/lint_without_lint_pass.rs | 342 + .../internal_lints/metadata_collector.rs | 105 +- .../utils/internal_lints/msrv_attr_impl.rs | 63 + .../internal_lints/outer_expn_data_pass.rs | 62 + .../src/utils/internal_lints/produce_ice.rs | 37 + .../internal_lints/unnecessary_def_path.rs | 343 + .../clippy_lints/src/wildcard_imports.rs | 8 +- src/tools/clippy/clippy_lints/src/write.rs | 780 +- .../clippy/clippy_lints/src/zero_div_zero.rs | 3 +- .../clippy_lints/src/zero_sized_map_values.rs | 7 +- src/tools/clippy/clippy_utils/Cargo.toml | 2 +- .../clippy/clippy_utils/src/ast_utils.rs | 8 +- src/tools/clippy/clippy_utils/src/attrs.rs | 4 +- .../clippy_utils/src/check_proc_macro.rs | 2 +- src/tools/clippy/clippy_utils/src/consts.rs | 56 +- .../clippy/clippy_utils/src/diagnostics.rs | 51 +- .../clippy/clippy_utils/src/eager_or_lazy.rs | 12 +- .../clippy/clippy_utils/src/hir_utils.rs | 4 +- src/tools/clippy/clippy_utils/src/lib.rs | 297 +- src/tools/clippy/clippy_utils/src/macros.rs | 400 +- .../src/mir/maybe_storage_live.rs | 52 + src/tools/clippy/clippy_utils/src/mir/mod.rs | 164 + .../clippy_utils/src/mir/possible_borrower.rs | 241 + .../clippy_utils/src/mir/possible_origin.rs | 59 + .../src/mir/transitive_relation.rs | 29 + src/tools/clippy/clippy_utils/src/msrvs.rs | 3 +- .../clippy_utils/src/numeric_literal.rs | 7 +- src/tools/clippy/clippy_utils/src/paths.rs | 39 - src/tools/clippy/clippy_utils/src/ptr.rs | 37 +- .../clippy_utils/src/qualify_min_const_fn.rs | 36 +- src/tools/clippy/clippy_utils/src/source.rs | 18 +- src/tools/clippy/clippy_utils/src/sugg.rs | 120 +- src/tools/clippy/clippy_utils/src/ty.rs | 77 +- src/tools/clippy/clippy_utils/src/usage.rs | 77 +- src/tools/clippy/clippy_utils/src/visitors.rs | 164 +- src/tools/clippy/lintcheck/Cargo.toml | 2 + src/tools/clippy/lintcheck/README.md | 20 +- .../clippy/lintcheck/lintcheck_crates.toml | 8 + src/tools/clippy/lintcheck/src/config.rs | 15 +- src/tools/clippy/lintcheck/src/driver.rs | 67 + src/tools/clippy/lintcheck/src/main.rs | 320 +- src/tools/clippy/lintcheck/src/recursive.rs | 123 + src/tools/clippy/rust-toolchain | 2 +- src/tools/clippy/rustc_tools_util/Cargo.toml | 2 +- src/tools/clippy/rustc_tools_util/README.md | 8 +- src/tools/clippy/rustc_tools_util/src/lib.rs | 12 +- src/tools/clippy/src/docs.rs | 14 +- .../src/docs/arithmetic_side_effects.txt | 2 +- src/tools/clippy/src/docs/as_ptr_cast_mut.txt | 19 + src/tools/clippy/src/docs/box_default.txt | 17 + src/tools/clippy/src/docs/cast_nan_to_int.txt | 15 + .../clippy/src/docs/disallowed_macros.txt | 36 + .../src/docs/for_loops_over_fallibles.txt | 32 - .../src/docs/implicit_saturating_add.txt | 20 + src/tools/clippy/src/docs/iter_kv_map.txt | 22 + src/tools/clippy/src/docs/manual_clamp.txt | 46 + src/tools/clippy/src/docs/manual_filter.txt | 21 + .../clippy/src/docs/missing_trait_methods.txt | 40 + .../src/docs/needless_borrowed_reference.txt | 18 +- .../clippy/src/docs/partial_pub_fields.txt | 27 + .../positional_named_format_parameters.txt | 15 - src/tools/clippy/src/docs/print_literal.txt | 4 - src/tools/clippy/src/docs/print_stderr.txt | 8 +- src/tools/clippy/src/docs/print_stdout.txt | 8 +- src/tools/clippy/src/docs/similar_names.txt | 4 + .../clippy/src/docs/uninlined_format_args.txt | 36 + .../clippy/src/docs/unused_format_specs.txt | 24 + src/tools/clippy/src/docs/write_literal.txt | 4 - src/tools/clippy/src/driver.rs | 6 +- src/tools/clippy/src/main.rs | 6 +- src/tools/clippy/tests/compile-test.rs | 25 +- src/tools/clippy/tests/dogfood.rs | 9 +- src/tools/clippy/tests/integration.rs | 23 +- .../clippy/tests/lint_message_convention.rs | 2 +- src/tools/clippy/tests/missing-test-files.rs | 2 +- .../duplicate_mod/fail/src/main.stderr | 2 +- .../feature_name/fail/src/main.stderr | 4 +- .../module_style/fail_mod/src/main.stderr | 2 +- .../module_style/fail_mod_remap/Cargo.toml | 9 + .../module_style/fail_mod_remap/src/bad.rs | 1 + .../fail_mod_remap/src/bad/inner.rs | 1 + .../module_style/fail_mod_remap/src/main.rs | 7 + .../fail_mod_remap/src/main.stderr | 11 + .../module_style/fail_no_mod/src/main.stderr | 2 +- .../tests/ui-internal/auxiliary/paths.rs | 2 + .../check_clippy_version_attribute.stderr | 4 +- .../ui-internal/custom_ice_message.stderr | 2 +- .../tests/ui-internal/if_chain_style.stderr | 2 +- .../clippy/tests/ui-internal/invalid_paths.rs | 2 +- .../ui-internal/match_type_on_diag_item.rs | 39 - .../match_type_on_diag_item.stderr | 27 - .../ui-internal/unnecessary_def_path.fixed | 62 + .../tests/ui-internal/unnecessary_def_path.rs | 62 + .../ui-internal/unnecessary_def_path.stderr | 101 + .../unnecessary_def_path_hardcoded_path.rs | 16 + ...unnecessary_def_path_hardcoded_path.stderr | 27 + .../await_holding_invalid_type.stderr | 2 +- .../conf_deprecated_key.rs | 2 + .../conf_deprecated_key.stderr | 4 +- .../disallowed_macros/auxiliary/macros.rs | 32 + .../ui-toml/disallowed_macros/clippy.toml | 11 + .../disallowed_macros/disallowed_macros.rs | 39 + .../disallowed_macros.stderr | 84 + .../ui-toml/expect_used/expect_used.stderr | 2 +- .../fn_params_excessive_bools/test.stderr | 2 +- .../large_include_file.stderr | 2 +- .../conf_nonstandard_macro_braces.fixed | 62 + .../conf_nonstandard_macro_braces.rs | 2 + .../conf_nonstandard_macro_braces.stderr | 77 +- .../test.stderr | 2 +- .../struct_excessive_bools/test.stderr | 2 +- .../toml_disallowed_methods/clippy.toml | 1 + .../conf_disallowed_methods.rs | 6 + .../conf_disallowed_methods.stderr | 24 +- .../toml_unknown_key/conf_unknown_key.stderr | 1 + .../ui-toml/unwrap_used/unwrap_used.stderr | 2 +- .../ui/absurd-extreme-comparisons.stderr | 2 +- .../ui/allow_attributes_without_reason.stderr | 2 +- .../ui/almost_complete_letter_range.fixed | 13 + .../tests/ui/almost_complete_letter_range.rs | 13 + .../ui/almost_complete_letter_range.stderr | 39 +- src/tools/clippy/tests/ui/approx_const.stderr | 2 +- .../tests/ui/arithmetic_side_effects.rs | 191 +- .../tests/ui/arithmetic_side_effects.stderr | 356 +- .../clippy/tests/ui/as_conversions.stderr | 2 +- src/tools/clippy/tests/ui/as_ptr_cast_mut.rs | 37 + .../clippy/tests/ui/as_ptr_cast_mut.stderr | 16 + src/tools/clippy/tests/ui/asm_syntax.stderr | 4 +- .../tests/ui/assertions_on_constants.stderr | 2 +- .../ui/assertions_on_result_states.fixed | 6 + .../tests/ui/assertions_on_result_states.rs | 6 + .../ui/assertions_on_result_states.stderr | 8 +- src/tools/clippy/tests/ui/assign_ops2.rs | 2 + src/tools/clippy/tests/ui/assign_ops2.stderr | 20 +- src/tools/clippy/tests/ui/author.stdout | 24 +- .../clippy/tests/ui/author/blocks.stdout | 116 +- src/tools/clippy/tests/ui/author/call.stdout | 28 +- src/tools/clippy/tests/ui/author/if.stdout | 92 +- .../clippy/tests/ui/author/issue_3849.stdout | 24 +- src/tools/clippy/tests/ui/author/loop.stdout | 202 +- .../clippy/tests/ui/author/matches.stdout | 72 +- .../clippy/tests/ui/author/repeat.stdout | 20 +- .../clippy/tests/ui/author/struct.stdout | 112 +- .../clippy/tests/ui/auxiliary/macro_rules.rs | 7 + .../tests/ui/auxiliary/proc_macro_attr.rs | 2 +- .../clippy/tests/ui/await_holding_lock.stderr | 2 +- .../tests/ui/await_holding_refcell_ref.stderr | 2 +- .../clippy/tests/ui/bind_instead_of_map.fixed | 1 + .../clippy/tests/ui/bind_instead_of_map.rs | 1 + .../tests/ui/bind_instead_of_map.stderr | 6 +- .../blanket_clippy_restriction_lints.stderr | 2 +- .../clippy/tests/ui/bool_to_int_with_if.fixed | 8 +- .../clippy/tests/ui/bool_to_int_with_if.rs | 14 + .../tests/ui/bool_to_int_with_if.stderr | 43 +- src/tools/clippy/tests/ui/borrow_box.rs | 5 +- src/tools/clippy/tests/ui/borrow_box.stderr | 20 +- .../enums.stderr | 2 +- .../others.stderr | 2 +- .../traits.stderr | 2 +- src/tools/clippy/tests/ui/box_collection.rs | 4 +- .../clippy/tests/ui/box_collection.stderr | 2 +- src/tools/clippy/tests/ui/box_default.fixed | 57 + src/tools/clippy/tests/ui/box_default.rs | 57 + src/tools/clippy/tests/ui/box_default.stderr | 88 + .../clippy/tests/ui/box_default_no_std.rs | 33 + .../branches_sharing_code/shared_at_bottom.rs | 3 +- .../shared_at_bottom.stderr | 22 +- .../ui/branches_sharing_code/shared_at_top.rs | 5 +- .../shared_at_top.stderr | 32 +- .../shared_at_top_and_bottom.rs | 3 +- .../shared_at_top_and_bottom.stderr | 30 +- .../branches_sharing_code/valid_if_blocks.rs | 5 +- .../valid_if_blocks.stderr | 30 +- ...ensitive_file_extension_comparisons.stderr | 2 +- .../tests/ui/cast_abs_to_unsigned.fixed | 17 + .../clippy/tests/ui/cast_abs_to_unsigned.rs | 17 + .../tests/ui/cast_abs_to_unsigned.stderr | 42 +- .../clippy/tests/ui/cast_lossless_bool.fixed | 13 + .../clippy/tests/ui/cast_lossless_bool.rs | 13 + .../clippy/tests/ui/cast_lossless_bool.stderr | 34 +- src/tools/clippy/tests/ui/cast_nan_to_int.rs | 18 + .../clippy/tests/ui/cast_nan_to_int.stderr | 51 + .../clippy/tests/ui/cfg_attr_rustfmt.fixed | 16 +- src/tools/clippy/tests/ui/cfg_attr_rustfmt.rs | 16 +- .../clippy/tests/ui/cfg_attr_rustfmt.stderr | 8 +- .../clippy/tests/ui/char_lit_as_u8.stderr | 2 +- .../ui/char_lit_as_u8_suggestions.stderr | 2 +- .../clippy/tests/ui/checked_conversions.fixed | 16 + .../clippy/tests/ui/checked_conversions.rs | 16 + .../tests/ui/checked_conversions.stderr | 40 +- .../complex_conditionals.stderr | 2 +- .../tests/ui/cloned_instead_of_copied.fixed | 24 + .../tests/ui/cloned_instead_of_copied.rs | 24 + .../tests/ui/cloned_instead_of_copied.stderr | 30 +- .../tests/ui/cognitive_complexity.stderr | 2 +- .../ui/cognitive_complexity_attr_used.stderr | 2 +- .../clippy/tests/ui/collapsible_if.fixed | 3 + src/tools/clippy/tests/ui/collapsible_if.rs | 5 + .../clippy/tests/ui/collapsible_if.stderr | 10 +- .../clippy/tests/ui/collapsible_match.rs | 24 +- .../clippy/tests/ui/collapsible_match.stderr | 76 +- .../clippy/tests/ui/collapsible_match2.stderr | 2 +- .../clippy/tests/ui/comparison_chain.stderr | 2 +- .../clippy/tests/ui/copy_iterator.stderr | 2 +- .../clippy/tests/ui/crashes/ice-360.stderr | 2 +- src/tools/clippy/tests/ui/crashes/ice-4775.rs | 2 + .../clippy/tests/ui/crashes/ice-6254.stderr | 2 +- src/tools/clippy/tests/ui/crashes/ice-7126.rs | 6 +- .../clippy/tests/ui/crashes/ice-7868.stderr | 2 +- .../clippy/tests/ui/crashes/ice-7869.stderr | 2 +- src/tools/clippy/tests/ui/crashes/ice-9445.rs | 3 + src/tools/clippy/tests/ui/crashes/ice-9459.rs | 5 + src/tools/clippy/tests/ui/crashes/ice-9463.rs | 5 + .../clippy/tests/ui/crashes/ice-9463.stderr | 29 + src/tools/clippy/tests/ui/crashes/ice-9625.rs | 4 + .../clippy/tests/ui/crashes/regressions.rs | 2 +- .../entrypoint_recursion.stderr | 2 +- .../ui/crate_level_checks/no_std_swap.stderr | 2 +- .../std_main_recursion.stderr | 2 +- .../clippy/tests/ui/def_id_nocore.stderr | 2 +- .../ui/default_numeric_fallback_f64.fixed | 9 + .../tests/ui/default_numeric_fallback_f64.rs | 9 + .../ui/default_numeric_fallback_f64.stderr | 34 +- .../ui/default_numeric_fallback_i32.fixed | 10 + .../tests/ui/default_numeric_fallback_i32.rs | 10 + .../ui/default_numeric_fallback_i32.stderr | 34 +- .../tests/ui/default_trait_access.fixed | 4 +- .../clippy/tests/ui/default_trait_access.rs | 4 +- .../tests/ui/default_trait_access.stderr | 2 +- .../ui/default_union_representation.stderr | 2 +- .../clippy/tests/ui/derivable_impls.fixed | 213 + src/tools/clippy/tests/ui/derivable_impls.rs | 4 + .../clippy/tests/ui/derivable_impls.stderr | 56 +- src/tools/clippy/tests/ui/derive.stderr | 2 +- .../clippy/tests/ui/derive_hash_xor_eq.stderr | 2 +- .../ui/derive_ord_xor_partial_ord.stderr | 2 +- .../tests/ui/doc/unbalanced_ticks.stderr | 2 +- .../clippy/tests/ui/doc_link_with_quotes.rs | 7 +- .../tests/ui/doc_link_with_quotes.stderr | 6 +- .../clippy/tests/ui/double_must_use.stderr | 2 +- src/tools/clippy/tests/ui/drop_forget_copy.rs | 20 + .../clippy/tests/ui/drop_forget_copy.stderr | 42 +- .../clippy/tests/ui/drop_non_drop.stderr | 2 +- src/tools/clippy/tests/ui/drop_ref.stderr | 2 +- .../tests/ui/else_if_without_else.stderr | 2 +- src/tools/clippy/tests/ui/empty_enum.stderr | 2 +- src/tools/clippy/tests/ui/empty_loop.stderr | 2 +- .../clippy/tests/ui/empty_loop_no_std.stderr | 2 +- src/tools/clippy/tests/ui/entry.fixed | 1 + src/tools/clippy/tests/ui/entry.rs | 1 + src/tools/clippy/tests/ui/entry.stderr | 20 +- .../clippy/tests/ui/eprint_with_newline.rs | 10 +- .../tests/ui/eprint_with_newline.stderr | 18 +- src/tools/clippy/tests/ui/err_expect.fixed | 17 + src/tools/clippy/tests/ui/err_expect.rs | 17 + src/tools/clippy/tests/ui/err_expect.stderr | 10 +- src/tools/clippy/tests/ui/eta.fixed | 25 +- src/tools/clippy/tests/ui/eta.rs | 25 +- src/tools/clippy/tests/ui/eta.stderr | 20 +- src/tools/clippy/tests/ui/expect.stderr | 2 +- .../clippy/tests/ui/expect_fun_call.fixed | 9 +- src/tools/clippy/tests/ui/expect_fun_call.rs | 9 +- .../clippy/tests/ui/expect_fun_call.stderr | 40 +- .../clippy/tests/ui/explicit_counter_loop.rs | 1 + .../tests/ui/explicit_counter_loop.stderr | 18 +- .../tests/ui/explicit_deref_methods.fixed | 10 +- .../clippy/tests/ui/explicit_deref_methods.rs | 10 +- .../clippy/tests/ui/explicit_write.fixed | 5 +- src/tools/clippy/tests/ui/explicit_write.rs | 5 +- .../clippy/tests/ui/explicit_write.stderr | 32 +- .../clippy/tests/ui/fallible_impl_from.rs | 1 + .../clippy/tests/ui/fallible_impl_from.stderr | 26 +- .../ui/field_reassign_with_default.stderr | 2 +- .../clippy/tests/ui/filetype_is_file.stderr | 2 +- .../tests/ui/filter_map_next_fixable.fixed | 16 + .../tests/ui/filter_map_next_fixable.rs | 16 + .../tests/ui/filter_map_next_fixable.stderr | 10 +- src/tools/clippy/tests/ui/float_cmp.stderr | 2 +- .../clippy/tests/ui/float_cmp_const.stderr | 2 +- .../clippy/tests/ui/floating_point_exp.fixed | 1 + .../clippy/tests/ui/floating_point_exp.rs | 1 + .../clippy/tests/ui/floating_point_exp.stderr | 10 +- .../clippy/tests/ui/floating_point_log.fixed | 2 +- .../clippy/tests/ui/floating_point_log.rs | 2 +- .../tests/ui/floating_point_logbase.fixed | 1 + .../clippy/tests/ui/floating_point_logbase.rs | 1 + .../tests/ui/floating_point_logbase.stderr | 10 +- .../tests/ui/floating_point_mul_add.fixed | 2 + .../clippy/tests/ui/floating_point_mul_add.rs | 2 + .../tests/ui/floating_point_mul_add.stderr | 30 +- .../clippy/tests/ui/floating_point_powf.fixed | 1 + .../clippy/tests/ui/floating_point_powf.rs | 1 + .../tests/ui/floating_point_powf.stderr | 62 +- .../clippy/tests/ui/floating_point_powi.fixed | 3 + .../clippy/tests/ui/floating_point_powi.rs | 3 + .../tests/ui/floating_point_powi.stderr | 24 +- .../tests/ui/fn_params_excessive_bools.stderr | 2 +- .../clippy/tests/ui/for_loop_fixable.fixed | 2 +- src/tools/clippy/tests/ui/for_loop_fixable.rs | 2 +- .../clippy/tests/ui/for_loop_unfixable.rs | 1 + .../clippy/tests/ui/for_loop_unfixable.stderr | 2 +- .../tests/ui/for_loops_over_fallibles.rs | 72 - .../tests/ui/for_loops_over_fallibles.stderr | 95 - .../clippy/tests/ui/forget_non_drop.stderr | 2 +- src/tools/clippy/tests/ui/forget_ref.stderr | 2 +- src/tools/clippy/tests/ui/format.fixed | 10 +- src/tools/clippy/tests/ui/format.rs | 10 +- src/tools/clippy/tests/ui/format.stderr | 44 +- src/tools/clippy/tests/ui/format_args.fixed | 15 +- src/tools/clippy/tests/ui/format_args.rs | 15 +- src/tools/clippy/tests/ui/format_args.stderr | 60 +- .../clippy/tests/ui/format_args_unfixable.rs | 6 +- .../tests/ui/format_args_unfixable.stderr | 38 +- .../clippy/tests/ui/format_push_string.stderr | 2 +- src/tools/clippy/tests/ui/formatting.stderr | 4 +- .../clippy/tests/ui/from_over_into.fixed | 87 + src/tools/clippy/tests/ui/from_over_into.rs | 66 + .../clippy/tests/ui/from_over_into.stderr | 70 +- .../tests/ui/from_over_into_unfixable.rs | 35 + .../tests/ui/from_over_into_unfixable.stderr | 29 + src/tools/clippy/tests/ui/functions.rs | 4 +- .../clippy/tests/ui/future_not_send.stderr | 2 +- src/tools/clippy/tests/ui/get_unwrap.stderr | 2 +- src/tools/clippy/tests/ui/identity_op.fixed | 4 +- src/tools/clippy/tests/ui/identity_op.rs | 4 +- src/tools/clippy/tests/ui/if_let_mutex.stderr | 2 +- src/tools/clippy/tests/ui/if_not_else.stderr | 2 +- .../clippy/tests/ui/if_same_then_else.stderr | 2 +- .../clippy/tests/ui/if_same_then_else2.stderr | 2 +- .../tests/ui/if_then_some_else_none.stderr | 2 +- .../clippy/tests/ui/ifs_same_cond.stderr | 2 +- src/tools/clippy/tests/ui/impl.stderr | 2 +- .../tests/ui/implicit_saturating_add.fixed | 106 + .../tests/ui/implicit_saturating_add.rs | 154 + .../tests/ui/implicit_saturating_add.stderr | 197 + .../tests/ui/implicit_saturating_sub.fixed | 50 + .../tests/ui/implicit_saturating_sub.rs | 50 + .../tests/ui/implicit_saturating_sub.stderr | 46 +- .../if_let_slice_binding.rs | 1 + .../if_let_slice_binding.stderr | 20 +- .../clippy/tests/ui/indexing_slicing_index.rs | 2 +- .../tests/ui/indexing_slicing_index.stderr | 10 +- .../tests/ui/indexing_slicing_slice.stderr | 2 +- .../tests/ui/inefficient_to_string.stderr | 10 +- src/tools/clippy/tests/ui/infinite_iter.rs | 2 + .../clippy/tests/ui/infinite_iter.stderr | 32 +- .../clippy/tests/ui/infinite_loop.stderr | 2 +- .../clippy/tests/ui/inherent_to_string.stderr | 4 +- .../clippy/tests/ui/inspect_for_each.stderr | 2 +- .../clippy/tests/ui/integer_division.stderr | 2 +- src/tools/clippy/tests/ui/issue_2356.fixed | 1 + src/tools/clippy/tests/ui/issue_2356.rs | 1 + src/tools/clippy/tests/ui/issue_2356.stderr | 2 +- src/tools/clippy/tests/ui/issue_4266.rs | 1 + src/tools/clippy/tests/ui/issue_4266.stderr | 8 +- .../clippy/tests/ui/item_after_statement.rs | 1 + .../tests/ui/item_after_statement.stderr | 6 +- src/tools/clippy/tests/ui/iter_kv_map.fixed | 64 + src/tools/clippy/tests/ui/iter_kv_map.rs | 64 + src/tools/clippy/tests/ui/iter_kv_map.stderr | 136 + src/tools/clippy/tests/ui/iter_nth.stderr | 2 +- .../tests/ui/iter_skip_next_unfixable.stderr | 2 +- .../clippy/tests/ui/large_enum_variant.rs | 4 +- .../clippy/tests/ui/large_enum_variant.stderr | 16 +- .../clippy/tests/ui/large_stack_arrays.rs | 6 + .../clippy/tests/ui/large_stack_arrays.stderr | 10 +- .../clippy/tests/ui/len_without_is_empty.rs | 2 +- .../tests/ui/len_without_is_empty.stderr | 2 +- src/tools/clippy/tests/ui/let_if_seq.stderr | 2 +- .../tests/ui/let_underscore_drop.stderr | 2 +- .../tests/ui/let_underscore_lock.stderr | 2 +- .../tests/ui/let_underscore_must_use.stderr | 2 +- src/tools/clippy/tests/ui/linkedlist.stderr | 2 +- src/tools/clippy/tests/ui/literals.rs | 7 + src/tools/clippy/tests/ui/literals.stderr | 35 +- .../tests/ui/manual_assert.edition2018.fixed | 43 +- .../tests/ui/manual_assert.edition2018.stderr | 58 +- .../tests/ui/manual_assert.edition2021.fixed | 18 +- .../tests/ui/manual_assert.edition2021.stderr | 51 +- src/tools/clippy/tests/ui/manual_assert.fixed | 45 - src/tools/clippy/tests/ui/manual_assert.rs | 19 +- src/tools/clippy/tests/ui/manual_bits.fixed | 3 +- src/tools/clippy/tests/ui/manual_bits.rs | 3 +- src/tools/clippy/tests/ui/manual_bits.stderr | 58 +- src/tools/clippy/tests/ui/manual_clamp.rs | 331 + src/tools/clippy/tests/ui/manual_clamp.stderr | 390 + src/tools/clippy/tests/ui/manual_filter.fixed | 119 + src/tools/clippy/tests/ui/manual_filter.rs | 243 + .../clippy/tests/ui/manual_filter.stderr | 191 + src/tools/clippy/tests/ui/manual_find.stderr | 2 +- .../clippy/tests/ui/manual_find_fixable.fixed | 4 +- .../clippy/tests/ui/manual_find_fixable.rs | 4 +- src/tools/clippy/tests/ui/manual_flatten.rs | 2 +- .../clippy/tests/ui/manual_flatten.stderr | 2 +- .../clippy/tests/ui/manual_map_option.fixed | 2 +- .../clippy/tests/ui/manual_map_option.rs | 2 +- .../ui/manual_non_exhaustive_enum.stderr | 2 +- .../ui/manual_non_exhaustive_struct.stderr | 2 +- .../clippy/tests/ui/manual_rem_euclid.fixed | 30 + .../clippy/tests/ui/manual_rem_euclid.rs | 30 + .../clippy/tests/ui/manual_rem_euclid.stderr | 30 +- src/tools/clippy/tests/ui/manual_strip.rs | 19 + src/tools/clippy/tests/ui/manual_strip.stderr | 49 +- src/tools/clippy/tests/ui/map_err.stderr | 2 +- src/tools/clippy/tests/ui/map_unwrap_or.rs | 18 + .../clippy/tests/ui/map_unwrap_or.stderr | 30 +- .../ui/match_expr_like_matches_macro.fixed | 16 + .../tests/ui/match_expr_like_matches_macro.rs | 19 + .../ui/match_expr_like_matches_macro.stderr | 38 +- .../clippy/tests/ui/match_overlapping_arm.rs | 1 - .../tests/ui/match_overlapping_arm.stderr | 34 +- .../clippy/tests/ui/match_ref_pats.fixed | 3 +- src/tools/clippy/tests/ui/match_ref_pats.rs | 3 +- .../clippy/tests/ui/match_ref_pats.stderr | 10 +- .../clippy/tests/ui/match_result_ok.fixed | 3 +- src/tools/clippy/tests/ui/match_result_ok.rs | 3 +- .../clippy/tests/ui/match_result_ok.stderr | 6 +- .../clippy/tests/ui/match_same_arms.stderr | 2 +- src/tools/clippy/tests/ui/match_same_arms2.rs | 6 +- .../clippy/tests/ui/match_same_arms2.stderr | 48 +- .../tests/ui/match_single_binding.fixed | 13 +- .../clippy/tests/ui/match_single_binding.rs | 12 +- .../tests/ui/match_single_binding.stderr | 19 +- .../tests/ui/match_single_binding2.fixed | 2 +- .../clippy/tests/ui/match_single_binding2.rs | 2 +- .../ui/match_wild_err_arm.edition2018.stderr | 35 - .../clippy/tests/ui/match_wild_err_arm.rs | 3 - ...n2021.stderr => match_wild_err_arm.stderr} | 10 +- src/tools/clippy/tests/ui/mem_replace.fixed | 18 +- src/tools/clippy/tests/ui/mem_replace.rs | 18 +- src/tools/clippy/tests/ui/mem_replace.stderr | 46 +- src/tools/clippy/tests/ui/min_max.rs | 1 + src/tools/clippy/tests/ui/min_max.stderr | 26 +- .../clippy/tests/ui/min_rust_version_attr.rs | 227 +- .../tests/ui/min_rust_version_attr.stderr | 46 +- .../tests/ui/min_rust_version_invalid_attr.rs | 14 + .../ui/min_rust_version_invalid_attr.stderr | 44 +- .../min_rust_version_multiple_inner_attr.rs | 11 - ...in_rust_version_multiple_inner_attr.stderr | 38 - .../tests/ui/min_rust_version_no_patch.rs | 14 - .../tests/ui/min_rust_version_outer_attr.rs | 4 - .../ui/min_rust_version_outer_attr.stderr | 8 - .../tests/ui/mismatched_target_os_unix.stderr | 2 +- .../ui/mismatching_type_param_order.stderr | 2 +- .../ui/missing_const_for_fn/could_be_const.rs | 12 + .../could_be_const.stderr | 12 +- src/tools/clippy/tests/ui/missing_doc.rs | 1 + src/tools/clippy/tests/ui/missing_doc.stderr | 48 +- .../clippy/tests/ui/missing_panics_doc.stderr | 2 +- .../clippy/tests/ui/missing_trait_methods.rs | 50 + .../tests/ui/missing_trait_methods.stderr | 27 + .../ui/mixed_read_write_in_expression.stderr | 2 +- .../tests/ui/modulo_arithmetic_float.stderr | 2 +- .../ui/modulo_arithmetic_integral.stderr | 2 +- .../modulo_arithmetic_integral_const.stderr | 2 +- src/tools/clippy/tests/ui/mut_from_ref.stderr | 2 +- src/tools/clippy/tests/ui/mut_mut.rs | 4 +- .../clippy/tests/ui/mut_range_bound.stderr | 2 +- .../clippy/tests/ui/needless_borrow.fixed | 93 +- src/tools/clippy/tests/ui/needless_borrow.rs | 91 +- .../clippy/tests/ui/needless_borrow.stderr | 96 +- .../tests/ui/needless_borrowed_ref.fixed | 41 +- .../clippy/tests/ui/needless_borrowed_ref.rs | 41 +- .../tests/ui/needless_borrowed_ref.stderr | 121 +- .../tests/ui/needless_collect_indirect.rs | 2 + .../tests/ui/needless_collect_indirect.stderr | 32 +- .../clippy/tests/ui/needless_continue.rs | 1 + .../clippy/tests/ui/needless_continue.stderr | 18 +- .../tests/ui/needless_for_each_fixable.fixed | 7 +- .../tests/ui/needless_for_each_fixable.rs | 7 +- .../tests/ui/needless_for_each_fixable.stderr | 16 +- .../tests/ui/needless_for_each_unfixable.rs | 2 +- .../clippy/tests/ui/needless_late_init.fixed | 5 +- .../clippy/tests/ui/needless_late_init.rs | 5 +- .../clippy/tests/ui/needless_late_init.stderr | 32 +- .../clippy/tests/ui/needless_pass_by_value.rs | 9 +- .../tests/ui/needless_pass_by_value.stderr | 52 +- .../clippy/tests/ui/needless_range_loop.rs | 1 + .../tests/ui/needless_range_loop.stderr | 28 +- .../clippy/tests/ui/needless_return.fixed | 37 + src/tools/clippy/tests/ui/needless_return.rs | 37 + .../clippy/tests/ui/needless_return.stderr | 205 +- src/tools/clippy/tests/ui/never_loop.rs | 26 + src/tools/clippy/tests/ui/never_loop.stderr | 15 +- src/tools/clippy/tests/ui/no_effect.rs | 6 +- src/tools/clippy/tests/ui/no_effect.stderr | 60 +- .../ui/non_send_fields_in_send_ty.stderr | 2 +- src/tools/clippy/tests/ui/nonminimal_bool.rs | 6 + .../clippy/tests/ui/nonminimal_bool.stderr | 8 +- .../clippy/tests/ui/octal_escapes.stderr | 2 +- src/tools/clippy/tests/ui/ok_expect.stderr | 2 +- .../tests/ui/only_used_in_recursion.stderr | 2 +- .../tests/ui/only_used_in_recursion2.stderr | 2 +- .../clippy/tests/ui/option_as_ref_deref.fixed | 17 +- .../clippy/tests/ui/option_as_ref_deref.rs | 17 +- .../tests/ui/option_as_ref_deref.stderr | 42 +- .../clippy/tests/ui/option_env_unwrap.stderr | 2 +- .../tests/ui/option_map_unit_fn_fixable.fixed | 3 +- .../tests/ui/option_map_unit_fn_fixable.rs | 3 +- .../ui/option_map_unit_fn_fixable.stderr | 38 +- .../tests/ui/option_take_on_temporary.fixed | 15 - src/tools/clippy/tests/ui/or_fun_call.fixed | 14 +- src/tools/clippy/tests/ui/or_fun_call.rs | 14 +- src/tools/clippy/tests/ui/or_fun_call.stderr | 52 +- .../ui/out_of_bounds_indexing/issue-3102.rs | 2 +- .../tests/ui/out_of_bounds_indexing/simple.rs | 2 +- .../tests/ui/overly_complex_bool_expr.stderr | 2 +- .../clippy/tests/ui/panic_in_result_fn.stderr | 2 +- .../tests/ui/panic_in_result_fn_assertions.rs | 2 +- .../ui/panic_in_result_fn_assertions.stderr | 2 +- .../ui/panic_in_result_fn_debug_assertions.rs | 2 +- .../clippy/tests/ui/partial_pub_fields.rs | 40 + .../clippy/tests/ui/partial_pub_fields.stderr | 35 + .../pattern_type_mismatch/mutability.stderr | 2 +- .../pattern_alternatives.stderr | 2 +- .../pattern_structs.stderr | 2 +- .../pattern_tuples.stderr | 2 +- .../ui/pattern_type_mismatch/syntax.stderr | 2 +- src/tools/clippy/tests/ui/patterns.fixed | 3 +- src/tools/clippy/tests/ui/patterns.rs | 3 +- src/tools/clippy/tests/ui/patterns.stderr | 6 +- .../positional_named_format_parameters.fixed | 56 - .../ui/positional_named_format_parameters.rs | 56 - .../positional_named_format_parameters.stderr | 418 - src/tools/clippy/tests/ui/print_literal.rs | 3 + .../clippy/tests/ui/print_literal.stderr | 56 +- .../clippy/tests/ui/print_with_newline.rs | 10 +- .../clippy/tests/ui/print_with_newline.stderr | 18 +- .../tests/ui/println_empty_string.stderr | 24 +- src/tools/clippy/tests/ui/proc_macro.stderr | 2 +- src/tools/clippy/tests/ui/ptr_arg.rs | 30 +- src/tools/clippy/tests/ui/ptr_arg.stderr | 20 +- .../tests/ui/ptr_offset_with_cast.fixed | 1 + .../clippy/tests/ui/ptr_offset_with_cast.rs | 1 + .../tests/ui/ptr_offset_with_cast.stderr | 4 +- src/tools/clippy/tests/ui/pub_use.stderr | 2 +- src/tools/clippy/tests/ui/question_mark.fixed | 9 + src/tools/clippy/tests/ui/question_mark.rs | 9 + .../clippy/tests/ui/range_contains.fixed | 26 +- src/tools/clippy/tests/ui/range_contains.rs | 26 +- .../clippy/tests/ui/range_contains.stderr | 48 +- .../tests/ui/rc_clone_in_vec_init/arc.stderr | 2 +- .../tests/ui/rc_clone_in_vec_init/rc.stderr | 2 +- .../tests/ui/rc_clone_in_vec_init/weak.stderr | 2 +- src/tools/clippy/tests/ui/rc_mutex.stderr | 2 +- .../clippy/tests/ui/recursive_format_impl.rs | 5 +- .../tests/ui/recursive_format_impl.stderr | 20 +- .../tests/ui/redundant_allocation.stderr | 2 +- .../ui/redundant_allocation_fixable.stderr | 2 +- .../clippy/tests/ui/redundant_clone.fixed | 4 +- src/tools/clippy/tests/ui/redundant_clone.rs | 4 +- .../clippy/tests/ui/redundant_clone.stderr | 2 +- .../clippy/tests/ui/redundant_else.stderr | 2 +- .../tests/ui/redundant_field_names.fixed | 16 + .../clippy/tests/ui/redundant_field_names.rs | 16 + .../tests/ui/redundant_field_names.stderr | 22 +- ...dundant_pattern_matching_drop_order.stderr | 2 +- .../redundant_pattern_matching_ipaddr.fixed | 11 +- .../ui/redundant_pattern_matching_ipaddr.rs | 11 +- .../redundant_pattern_matching_ipaddr.stderr | 36 +- .../redundant_pattern_matching_result.fixed | 11 +- .../ui/redundant_pattern_matching_result.rs | 11 +- .../redundant_pattern_matching_result.stderr | 44 +- .../tests/ui/redundant_static_lifetimes.fixed | 13 + .../tests/ui/redundant_static_lifetimes.rs | 13 + .../ui/redundant_static_lifetimes.stderr | 40 +- src/tools/clippy/tests/ui/ref_option_ref.rs | 5 + src/tools/clippy/tests/ui/regex.stderr | 2 +- src/tools/clippy/tests/ui/rename.fixed | 9 +- src/tools/clippy/tests/ui/rename.rs | 5 +- src/tools/clippy/tests/ui/rename.stderr | 96 +- .../ui/rest_pat_in_fully_bound_structs.stderr | 2 +- .../clippy/tests/ui/result_large_err.stderr | 2 +- .../tests/ui/result_map_unit_fn_fixable.fixed | 2 +- .../tests/ui/result_map_unit_fn_fixable.rs | 2 +- .../clippy/tests/ui/result_unit_error.stderr | 2 +- .../tests/ui/return_self_not_must_use.stderr | 2 +- .../ui/reversed_empty_ranges_fixable.fixed | 1 + .../tests/ui/reversed_empty_ranges_fixable.rs | 1 + .../ui/reversed_empty_ranges_fixable.stderr | 8 +- .../reversed_empty_ranges_loops_fixable.fixed | 1 + .../ui/reversed_empty_ranges_loops_fixable.rs | 1 + ...reversed_empty_ranges_loops_fixable.stderr | 12 +- .../reversed_empty_ranges_loops_unfixable.rs | 1 + ...versed_empty_ranges_loops_unfixable.stderr | 4 +- .../ui/same_functions_in_if_condition.rs | 12 +- .../ui/same_functions_in_if_condition.stderr | 26 +- .../clippy/tests/ui/same_item_push.stderr | 2 +- .../clippy/tests/ui/same_name_method.stderr | 2 +- .../clippy/tests/ui/search_is_some.stderr | 2 +- .../tests/ui/semicolon_if_nothing_returned.rs | 2 +- src/tools/clippy/tests/ui/shadow.stderr | 6 +- .../ui/should_impl_trait/method_list_1.stderr | 14 +- .../ui/should_impl_trait/method_list_2.stderr | 2 +- .../tests/ui/significant_drop_in_scrutinee.rs | 7 +- .../ui/significant_drop_in_scrutinee.stderr | 54 +- .../clippy/tests/ui/similar_names.stderr | 2 +- .../ui/single_char_lifetime_names.stderr | 2 +- ...component_path_imports_nested_first.stderr | 2 +- src/tools/clippy/tests/ui/single_match.rs | 1 + src/tools/clippy/tests/ui/single_match.stderr | 32 +- .../clippy/tests/ui/single_match_else.rs | 4 +- .../clippy/tests/ui/single_match_else.stderr | 10 +- .../expressions.stderr | 2 +- .../size_of_in_element_count/functions.stderr | 2 +- .../clippy/tests/ui/skip_while_next.stderr | 2 +- .../tests/ui/stable_sort_primitive.stderr | 2 +- .../clippy/tests/ui/std_instead_of_core.rs | 6 + .../tests/ui/std_instead_of_core.stderr | 22 +- .../clippy/tests/ui/str_to_string.stderr | 2 +- .../clippy/tests/ui/string_to_string.stderr | 2 +- .../tests/ui/struct_excessive_bools.stderr | 2 +- .../ui/suspicious_else_formatting.stderr | 2 +- .../clippy/tests/ui/suspicious_map.stderr | 2 +- .../clippy/tests/ui/suspicious_splitn.stderr | 2 +- .../tests/ui/suspicious_to_owned.stderr | 8 +- .../ui/suspicious_unary_op_formatting.stderr | 2 +- src/tools/clippy/tests/ui/swap.stderr | 4 +- .../clippy/tests/ui/toplevel_ref_arg.fixed | 2 +- src/tools/clippy/tests/ui/toplevel_ref_arg.rs | 2 +- .../tests/ui/trailing_empty_array.stderr | 2 +- ...ait_duplication_in_bounds_unfixable.stderr | 2 +- .../tests/ui/transmute_ptr_to_ref.stderr | 4 +- .../transmutes_expressible_as_ptr_casts.fixed | 2 +- .../ui/transmutes_expressible_as_ptr_casts.rs | 2 +- .../tests/ui/trivially_copy_pass_by_ref.rs | 7 +- .../ui/trivially_copy_pass_by_ref.stderr | 38 +- .../tests/ui/type_repetition_in_bounds.stderr | 2 +- .../ui/undocumented_unsafe_blocks.stderr | 2 +- .../tests/ui/undropped_manually_drops.stderr | 2 +- src/tools/clippy/tests/ui/uninit_vec.rs | 6 + src/tools/clippy/tests/ui/uninit_vec.stderr | 2 +- .../tests/ui/uninlined_format_args.fixed | 182 + .../clippy/tests/ui/uninlined_format_args.rs | 182 + .../tests/ui/uninlined_format_args.stderr | 879 + ...nlined_format_args_panic.edition2018.fixed | 29 + ...lined_format_args_panic.edition2018.stderr | 15 + ...nlined_format_args_panic.edition2021.fixed | 29 + ...lined_format_args_panic.edition2021.stderr | 51 + .../tests/ui/uninlined_format_args_panic.rs | 29 + src/tools/clippy/tests/ui/unit_arg.rs | 15 +- src/tools/clippy/tests/ui/unit_arg.stderr | 20 +- .../tests/ui/unit_arg_empty_blocks.fixed | 3 +- .../clippy/tests/ui/unit_arg_empty_blocks.rs | 3 +- .../tests/ui/unit_arg_empty_blocks.stderr | 8 +- src/tools/clippy/tests/ui/unit_hash.stderr | 2 +- .../tests/ui/unit_return_expecting_ord.stderr | 2 +- .../clippy/tests/ui/unnecessary_cast.fixed | 18 + src/tools/clippy/tests/ui/unnecessary_cast.rs | 18 + .../clippy/tests/ui/unnecessary_cast.stderr | 20 +- .../clippy/tests/ui/unnecessary_clone.rs | 4 +- .../clippy/tests/ui/unnecessary_join.fixed | 2 +- src/tools/clippy/tests/ui/unnecessary_join.rs | 2 +- .../tests/ui/unnecessary_lazy_eval.fixed | 21 + .../clippy/tests/ui/unnecessary_lazy_eval.rs | 21 + .../tests/ui/unnecessary_lazy_eval.stderr | 68 +- .../tests/ui/unnecessary_self_imports.stderr | 2 +- .../tests/ui/unnecessary_to_owned.fixed | 11 +- .../clippy/tests/ui/unnecessary_to_owned.rs | 11 +- .../tests/ui/unnecessary_to_owned.stderr | 2 +- .../tests/ui/unneeded_field_pattern.stderr | 2 +- .../tests/ui/unnested_or_patterns.fixed | 16 +- .../clippy/tests/ui/unnested_or_patterns.rs | 16 +- .../tests/ui/unnested_or_patterns.stderr | 13 +- .../tests/ui/unsafe_derive_deserialize.stderr | 2 +- .../tests/ui/unsafe_removed_from_name.rs | 3 + src/tools/clippy/tests/ui/unused_async.stderr | 2 +- .../clippy/tests/ui/unused_format_specs.fixed | 18 + .../clippy/tests/ui/unused_format_specs.rs | 18 + .../tests/ui/unused_format_specs.stderr | 54 + .../tests/ui/unused_format_specs_unfixable.rs | 30 + .../ui/unused_format_specs_unfixable.stderr | 69 + .../clippy/tests/ui/unused_io_amount.stderr | 2 +- src/tools/clippy/tests/ui/unused_peekable.rs | 33 +- .../clippy/tests/ui/unused_peekable.stderr | 2 +- src/tools/clippy/tests/ui/unused_self.stderr | 2 +- src/tools/clippy/tests/ui/unwrap.stderr | 2 +- .../clippy/tests/ui/unwrap_expect_used.stderr | 4 +- .../clippy/tests/ui/unwrap_in_result.stderr | 2 +- .../clippy/tests/ui/upper_case_acronyms.rs | 9 + .../tests/ui/upper_case_acronyms.stderr | 14 +- src/tools/clippy/tests/ui/use_self.fixed | 42 + src/tools/clippy/tests/ui/use_self.rs | 42 + src/tools/clippy/tests/ui/use_self.stderr | 90 +- .../tests/ui/used_underscore_binding.rs | 3 +- .../tests/ui/used_underscore_binding.stderr | 12 +- src/tools/clippy/tests/ui/useless_asref.fixed | 3 +- src/tools/clippy/tests/ui/useless_asref.rs | 3 +- .../clippy/tests/ui/useless_asref.stderr | 24 +- .../clippy/tests/ui/useless_conversion.stderr | 2 +- .../tests/ui/useless_conversion_try.stderr | 2 +- src/tools/clippy/tests/ui/vec.fixed | 2 +- src/tools/clippy/tests/ui/vec.rs | 2 +- .../clippy/tests/ui/vec_resize_to_zero.stderr | 2 +- .../clippy/tests/ui/verbose_file_reads.stderr | 2 +- .../ui/vtable_address_comparisons.stderr | 2 +- src/tools/clippy/tests/ui/while_let_loop.rs | 1 + .../clippy/tests/ui/while_let_loop.stderr | 10 +- .../tests/ui/while_let_on_iterator.fixed | 10 +- .../clippy/tests/ui/while_let_on_iterator.rs | 10 +- .../tests/ui/while_let_on_iterator.stderr | 52 +- .../clippy/tests/ui/wild_in_or_pats.stderr | 2 +- .../tests/ui/wildcard_enum_match_arm.fixed | 10 +- .../tests/ui/wildcard_enum_match_arm.rs | 10 +- .../tests/ui/wildcard_enum_match_arm.stderr | 14 +- src/tools/clippy/tests/ui/write_literal.rs | 4 +- .../clippy/tests/ui/write_literal.stderr | 56 +- src/tools/clippy/tests/ui/write_literal_2.rs | 9 +- .../clippy/tests/ui/write_literal_2.stderr | 80 +- .../clippy/tests/ui/write_with_newline.rs | 8 + .../clippy/tests/ui/write_with_newline.stderr | 38 +- .../tests/ui/writeln_empty_string.stderr | 12 +- .../tests/ui/wrong_self_convention.stderr | 2 +- .../tests/ui/wrong_self_convention2.stderr | 2 +- .../ui/wrong_self_conventions_mut.stderr | 2 +- .../clippy/tests/ui/zero_div_zero.stderr | 2 +- .../ui/zero_sized_btreemap_values.stderr | 2 +- .../tests/ui/zero_sized_hashmap_values.stderr | 2 +- src/tools/clippy/tests/versioncheck.rs | 8 +- src/tools/compiletest/src/common.rs | 28 +- src/tools/compiletest/src/header.rs | 20 +- src/tools/compiletest/src/main.rs | 29 +- src/tools/compiletest/src/runtest.rs | 35 +- src/tools/compiletest/src/util.rs | 6 + .../error_index_generator/error-index.css | 3 +- src/tools/jsondoclint/src/item_kind.rs | 3 +- src/tools/jsondoclint/src/validator.rs | 10 +- src/tools/linkchecker/main.rs | 1 + src/tools/publish_toolstate.py | 17 +- src/tools/rust-analyzer/Cargo.lock | 205 +- src/tools/rust-analyzer/Cargo.toml | 1 + .../crates/base-db/src/fixture.rs | 8 +- .../rust-analyzer/crates/base-db/src/input.rs | 22 +- src/tools/rust-analyzer/crates/cfg/Cargo.toml | 4 +- .../rust-analyzer/crates/flycheck/Cargo.toml | 5 +- .../rust-analyzer/crates/flycheck/src/lib.rs | 103 +- .../rust-analyzer/crates/hir-def/Cargo.toml | 8 +- .../rust-analyzer/crates/hir-def/src/adt.rs | 244 +- .../rust-analyzer/crates/hir-def/src/body.rs | 26 +- .../crates/hir-def/src/body/lower.rs | 42 +- .../crates/hir-def/src/body/pretty.rs | 19 +- .../crates/hir-def/src/builtin_attr.rs | 2 +- .../crates/hir-def/src/child_by_source.rs | 4 + .../rust-analyzer/crates/hir-def/src/data.rs | 8 +- .../rust-analyzer/crates/hir-def/src/db.rs | 15 +- .../rust-analyzer/crates/hir-def/src/expr.rs | 13 + .../crates/hir-def/src/find_path.rs | 362 +- .../crates/hir-def/src/item_scope.rs | 23 +- .../crates/hir-def/src/item_tree.rs | 8 + .../crates/hir-def/src/item_tree/lower.rs | 9 +- .../crates/hir-def/src/item_tree/pretty.rs | 6 +- .../rust-analyzer/crates/hir-def/src/lib.rs | 10 + .../builtin_derive_macro.rs | 36 +- .../macro_expansion_tests/builtin_fn_macro.rs | 24 +- .../crates/hir-def/src/nameres/collector.rs | 3 +- .../crates/hir-def/src/nameres/diagnostics.rs | 6 +- .../crates/hir-def/src/resolver.rs | 1 + .../crates/hir-expand/Cargo.toml | 4 +- .../crates/hir-expand/src/ast_id_map.rs | 7 +- .../hir-expand/src/builtin_derive_macro.rs | 86 +- .../crates/hir-expand/src/builtin_fn_macro.rs | 14 +- .../rust-analyzer/crates/hir-expand/src/db.rs | 12 +- .../crates/hir-expand/src/lib.rs | 25 + .../crates/hir-expand/src/name.rs | 1 + .../rust-analyzer/crates/hir-ty/Cargo.toml | 15 +- .../crates/hir-ty/src/autoderef.rs | 7 +- .../crates/hir-ty/src/builder.rs | 217 +- .../crates/hir-ty/src/chalk_db.rs | 75 +- .../crates/hir-ty/src/chalk_ext.rs | 11 +- .../crates/hir-ty/src/consteval.rs | 108 +- .../crates/hir-ty/src/consteval/tests.rs | 43 + .../rust-analyzer/crates/hir-ty/src/db.rs | 27 +- .../hir-ty/src/diagnostics/unsafe_check.rs | 4 +- .../crates/hir-ty/src/display.rs | 64 +- .../rust-analyzer/crates/hir-ty/src/infer.rs | 44 +- .../crates/hir-ty/src/infer/closure.rs | 6 + .../crates/hir-ty/src/infer/coerce.rs | 2 +- .../crates/hir-ty/src/infer/expr.rs | 114 +- .../crates/hir-ty/src/infer/path.rs | 24 +- .../crates/hir-ty/src/infer/unify.rs | 78 +- .../rust-analyzer/crates/hir-ty/src/lib.rs | 102 +- .../rust-analyzer/crates/hir-ty/src/lower.rs | 235 +- .../crates/hir-ty/src/mapping.rs | 12 + .../crates/hir-ty/src/method_resolution.rs | 110 +- .../rust-analyzer/crates/hir-ty/src/tests.rs | 22 +- .../crates/hir-ty/src/tests/coercion.rs | 18 + .../hir-ty/src/tests/display_source_code.rs | 22 + .../hir-ty/src/tests/method_resolution.rs | 34 + .../crates/hir-ty/src/tests/patterns.rs | 10 + .../crates/hir-ty/src/tests/regression.rs | 54 +- .../crates/hir-ty/src/tests/simple.rs | 159 +- .../crates/hir-ty/src/tests/traits.rs | 12 +- .../rust-analyzer/crates/hir-ty/src/traits.rs | 19 +- .../rust-analyzer/crates/hir-ty/src/utils.rs | 101 +- src/tools/rust-analyzer/crates/hir/Cargo.toml | 6 +- .../crates/hir/src/diagnostics.rs | 2 +- .../rust-analyzer/crates/hir/src/display.rs | 3 + .../rust-analyzer/crates/hir/src/from_id.rs | 10 +- src/tools/rust-analyzer/crates/hir/src/lib.rs | 158 +- .../rust-analyzer/crates/hir/src/semantics.rs | 15 + .../crates/hir/src/semantics/source_to_def.rs | 8 +- .../crates/hir/src/source_analyzer.rs | 46 +- .../rust-analyzer/crates/hir/src/symbols.rs | 4 + .../crates/ide-assists/Cargo.toml | 2 +- .../crates/ide-assists/src/assist_config.rs | 1 + .../src/handlers/add_missing_match_arms.rs | 17 +- .../ide-assists/src/handlers/auto_import.rs | 23 +- .../src/handlers/convert_into_to_from.rs | 2 +- .../convert_named_struct_to_tuple_struct.rs | 822 + .../src/handlers/extract_function.rs | 1 + .../extract_struct_from_enum_variant.rs | 35 +- .../src/handlers/generate_constant.rs | 12 +- .../generate_default_from_enum_variant.rs | 5 +- .../src/handlers/generate_default_from_new.rs | 61 +- .../src/handlers/generate_delegate_methods.rs | 8 +- .../src/handlers/generate_deref.rs | 18 +- .../generate_documentation_template.rs | 52 +- .../src/handlers/generate_enum_is_method.rs | 18 +- .../generate_enum_projection_method.rs | 39 +- .../handlers/generate_from_impl_for_enum.rs | 19 +- .../src/handlers/generate_function.rs | 141 +- .../src/handlers/generate_getter.rs | 325 +- .../ide-assists/src/handlers/generate_impl.rs | 15 +- .../ide-assists/src/handlers/generate_new.rs | 23 +- .../src/handlers/generate_setter.rs | 21 +- .../src/handlers/move_format_string_arg.rs | 296 + .../src/handlers/qualify_method_call.rs | 7 +- .../ide-assists/src/handlers/qualify_path.rs | 3 +- .../replace_derive_with_manual_impl.rs | 2 +- .../replace_qualified_name_with_use.rs | 1 + .../ide-assists/src/handlers/unwrap_tuple.rs | 159 + .../crates/ide-assists/src/lib.rs | 6 + .../crates/ide-assists/src/tests.rs | 14 +- .../crates/ide-assists/src/tests/generated.rs | 91 + .../crates/ide-assists/src/utils.rs | 88 +- .../crates/ide-completion/Cargo.toml | 6 +- .../crates/ide-completion/src/completions.rs | 7 +- .../src/completions/env_vars.rs | 150 + .../ide-completion/src/completions/expr.rs | 12 +- .../src/completions/flyimport.rs | 14 +- .../src/completions/item_list/trait_impl.rs | 51 +- .../ide-completion/src/completions/pattern.rs | 1 + .../src/completions/postfix/format_like.rs | 247 +- .../crates/ide-completion/src/config.rs | 1 + .../crates/ide-completion/src/context.rs | 45 +- .../ide-completion/src/context/analysis.rs | 1939 +- .../crates/ide-completion/src/lib.rs | 8 +- .../crates/ide-completion/src/snippet.rs | 8 +- .../crates/ide-completion/src/tests.rs | 1 + .../ide-completion/src/tests/pattern.rs | 27 + .../rust-analyzer/crates/ide-db/Cargo.toml | 5 +- .../ide-db/src/imports/import_assets.rs | 13 +- .../ide-db/src/imports/merge_imports.rs | 2 +- .../rust-analyzer/crates/ide-db/src/lib.rs | 1 + .../crates/ide-db/src/path_transform.rs | 3 +- .../rust-analyzer/crates/ide-db/src/search.rs | 46 +- .../src/syntax_helpers/format_string.rs | 6 +- .../src/syntax_helpers/format_string_exprs.rs | 267 + .../ide-db/src/syntax_helpers/node_ext.rs | 9 +- .../crates/ide-diagnostics/Cargo.toml | 6 +- .../src/handlers/inactive_code.rs | 31 + .../src/handlers/json_is_not_rust.rs | 2 + .../src/handlers/missing_fields.rs | 1 + .../src/handlers/type_mismatch.rs | 33 +- .../crates/ide-diagnostics/src/lib.rs | 2 + .../rust-analyzer/crates/ide-ssr/Cargo.toml | 3 +- .../crates/ide-ssr/src/matching.rs | 7 +- src/tools/rust-analyzer/crates/ide/Cargo.toml | 6 +- .../crates/ide/src/annotations.rs | 307 +- .../src/{ => annotations}/fn_references.rs | 37 +- .../rust-analyzer/crates/ide/src/doc_links.rs | 9 +- .../crates/ide/src/goto_definition.rs | 63 +- .../crates/ide/src/highlight_related.rs | 27 +- .../crates/ide/src/hover/render.rs | 11 +- .../crates/ide/src/hover/tests.rs | 136 + .../crates/ide/src/inlay_hints.rs | 83 +- src/tools/rust-analyzer/crates/ide/src/lib.rs | 24 +- .../rust-analyzer/crates/ide/src/moniker.rs | 10 +- .../crates/ide/src/parent_module.rs | 18 +- .../crates/ide/src/references.rs | 20 +- .../crates/ide/src/static_index.rs | 4 +- .../rust-analyzer/crates/ide/src/status.rs | 2 +- .../ide/src/syntax_highlighting/highlight.rs | 11 +- .../test_data/highlight_assoc_functions.html | 6 +- .../test_data/highlight_doctest.html | 2 +- .../test_data/highlight_general.html | 12 +- .../test_data/highlight_injection.html | 2 +- .../test_data/highlight_lifetimes.html | 4 +- .../test_data/highlight_strings.html | 8 +- .../test_data/highlight_unsafe.html | 8 +- src/tools/rust-analyzer/crates/mbe/Cargo.toml | 2 +- .../rust-analyzer/crates/mbe/src/benchmark.rs | 30 +- .../rust-analyzer/crates/mbe/src/expander.rs | 3 +- .../crates/mbe/src/expander/matcher.rs | 91 +- .../crates/mbe/src/expander/transcriber.rs | 57 +- src/tools/rust-analyzer/crates/mbe/src/lib.rs | 6 +- .../rust-analyzer/crates/mbe/src/parser.rs | 41 +- .../crates/proc-macro-api/Cargo.toml | 2 +- .../src/abis/abi_sysroot/mod.rs | 2 + .../crates/proc-macro-srv/src/abis/mod.rs | 11 +- .../crates/proc-macro-srv/src/lib.rs | 9 +- .../crates/proc-macro-srv/src/tests/mod.rs | 11 +- .../crates/proc-macro-srv/src/tests/utils.rs | 12 +- .../rust-analyzer/crates/profile/Cargo.toml | 4 +- .../crates/project-model/Cargo.toml | 10 +- .../crates/project-model/src/build_scripts.rs | 374 +- .../project-model/src/cargo_workspace.rs | 184 +- .../crates/project-model/src/lib.rs | 22 +- .../crates/project-model/src/project_json.rs | 3 + .../crates/project-model/src/rustc_cfg.rs | 17 +- .../crates/project-model/src/sysroot.rs | 74 +- .../crates/project-model/src/tests.rs | 66 +- .../crates/project-model/src/workspace.rs | 197 +- .../crates/rust-analyzer/Cargo.toml | 13 +- .../crates/rust-analyzer/src/bin/logger.rs | 2 +- .../crates/rust-analyzer/src/bin/main.rs | 11 +- .../rust-analyzer/src/cargo_target_spec.rs | 84 +- .../rust-analyzer/src/cli/analysis_stats.rs | 10 +- .../crates/rust-analyzer/src/cli/flags.rs | 31 +- .../rust-analyzer/src/cli/load_cargo.rs | 28 +- .../crates/rust-analyzer/src/cli/lsif.rs | 3 +- .../crates/rust-analyzer/src/cli/scip.rs | 110 +- .../crates/rust-analyzer/src/config.rs | 211 +- .../crates/rust-analyzer/src/dispatch.rs | 4 +- .../crates/rust-analyzer/src/from_proto.rs | 10 +- .../crates/rust-analyzer/src/global_state.rs | 53 +- .../crates/rust-analyzer/src/handlers.rs | 33 +- .../src/integrated_benchmarks.rs | 2 + .../crates/rust-analyzer/src/lsp_utils.rs | 10 +- .../crates/rust-analyzer/src/main_loop.rs | 188 +- .../crates/rust-analyzer/src/reload.rs | 143 +- .../crates/rust-analyzer/src/to_proto.rs | 19 +- .../rust-analyzer/tests/slow-tests/main.rs | 12 +- .../rust-analyzer/tests/slow-tests/support.rs | 2 +- .../rust-analyzer/tests/slow-tests/tidy.rs | 1 + .../rust-analyzer/crates/sourcegen/Cargo.toml | 3 - .../rust-analyzer/crates/stdx/Cargo.toml | 2 +- .../rust-analyzer/crates/syntax/Cargo.toml | 8 +- .../crates/syntax/src/ast/edit_in_place.rs | 61 +- .../crates/syntax/src/ast/make.rs | 23 +- .../crates/syntax/src/ast/node_ext.rs | 30 + .../rust-analyzer/crates/syntax/src/lib.rs | 2 +- .../crates/test-utils/src/fixture.rs | 53 +- .../crates/test-utils/src/minicore.rs | 94 +- .../rust-analyzer/crates/text-edit/Cargo.toml | 2 +- .../rust-analyzer/crates/toolchain/Cargo.toml | 2 +- .../crates/vfs-notify/Cargo.toml | 2 +- src/tools/rust-analyzer/docs/dev/README.md | 2 +- src/tools/rust-analyzer/docs/dev/guide.md | 9 +- src/tools/rust-analyzer/docs/dev/syntax.md | 6 +- .../docs/user/generated_config.adoc | 74 +- src/tools/rust-analyzer/docs/user/manual.adoc | 17 +- .../rust-analyzer/lib/lsp-server/Cargo.toml | 10 +- .../rust-analyzer/lib/lsp-server/src/msg.rs | 10 +- .../lib/lsp-server/src/req_queue.rs | 7 + src/tools/rust-analyzer/xtask/Cargo.toml | 4 +- src/tools/rust-analyzer/xtask/src/flags.rs | 19 +- src/tools/rust-analyzer/xtask/src/main.rs | 7 +- src/tools/rustdoc/main.rs | 3 + src/tools/rustfmt/src/chains.rs | 10 +- src/tools/rustfmt/src/config/config_type.rs | 2 +- src/tools/rustfmt/src/items.rs | 12 +- src/tools/rustfmt/src/visitor.rs | 2 +- src/tools/tidy/src/alphabetical.rs | 111 + src/tools/tidy/src/bins.rs | 5 +- src/tools/tidy/src/debug_artifacts.rs | 3 +- src/tools/tidy/src/deps.rs | 45 +- src/tools/tidy/src/edition.rs | 5 +- src/tools/tidy/src/error_codes_check.rs | 3 +- src/tools/tidy/src/errors.rs | 5 +- src/tools/tidy/src/features.rs | 276 +- src/tools/tidy/src/lib.rs | 3 +- src/tools/tidy/src/main.rs | 4 + src/tools/tidy/src/pal.rs | 3 +- src/tools/tidy/src/style.rs | 5 +- src/tools/tidy/src/target_specific_tests.rs | 2 +- src/tools/tidy/src/ui_tests.rs | 6 +- src/tools/tidy/src/unit_tests.rs | 5 +- src/tools/tidy/src/walk.rs | 6 + src/version | 2 +- .../.cargo-checksum.json | 0 vendor/{clap => clap-3.2.20}/Cargo.lock | 0 vendor/{clap => clap-3.2.20}/Cargo.toml | 0 vendor/{clap => clap-3.2.20}/LICENSE-APACHE | 0 vendor/{clap => clap-3.2.20}/LICENSE-MIT | 0 vendor/{clap => clap-3.2.20}/README.md | 0 .../examples/cargo-example-derive.md | 0 .../examples/cargo-example-derive.rs | 0 .../examples/cargo-example.md | 0 .../examples/cargo-example.rs | 0 vendor/{clap => clap-3.2.20}/examples/demo.md | 0 vendor/{clap => clap-3.2.20}/examples/demo.rs | 0 .../examples/derive_ref/augment_args.rs | 0 .../derive_ref/augment_subcommands.rs | 0 .../examples/derive_ref/custom-bool.md | 0 .../examples/derive_ref/custom-bool.rs | 0 .../examples/derive_ref/flatten_hand_args.rs | 0 .../examples/derive_ref/hand_subcommand.rs | 0 .../examples/derive_ref/interop_tests.md | 0 .../examples/escaped-positional-derive.md | 0 .../examples/escaped-positional-derive.rs | 0 .../examples/escaped-positional.md | 0 .../examples/escaped-positional.rs | 0 .../examples/git-derive.md | 0 .../examples/git-derive.rs | 0 vendor/{clap => clap-3.2.20}/examples/git.md | 0 vendor/{clap => clap-3.2.20}/examples/git.rs | 0 .../examples/multicall-busybox.md | 0 .../examples/multicall-busybox.rs | 0 .../examples/multicall-hostname.md | 0 .../examples/multicall-hostname.rs | 0 .../{clap => clap-3.2.20}/examples/pacman.md | 0 .../{clap => clap-3.2.20}/examples/pacman.rs | 0 vendor/{clap => clap-3.2.20}/examples/repl.rs | 0 .../examples/tutorial_builder/01_quick.md | 0 .../examples/tutorial_builder/01_quick.rs | 0 .../tutorial_builder/02_app_settings.md | 0 .../tutorial_builder/02_app_settings.rs | 0 .../examples/tutorial_builder/02_apps.md | 0 .../examples/tutorial_builder/02_apps.rs | 0 .../examples/tutorial_builder/02_crate.md | 0 .../examples/tutorial_builder/02_crate.rs | 0 .../tutorial_builder/03_01_flag_bool.md | 0 .../tutorial_builder/03_01_flag_bool.rs | 0 .../tutorial_builder/03_01_flag_count.md | 0 .../tutorial_builder/03_01_flag_count.rs | 0 .../examples/tutorial_builder/03_02_option.md | 0 .../examples/tutorial_builder/03_02_option.rs | 0 .../tutorial_builder/03_03_positional.md | 0 .../tutorial_builder/03_03_positional.rs | 0 .../tutorial_builder/03_04_subcommands.md | 0 .../tutorial_builder/03_04_subcommands.rs | 0 .../tutorial_builder/03_05_default_values.md | 0 .../tutorial_builder/03_05_default_values.rs | 0 .../examples/tutorial_builder/04_01_enum.md | 0 .../examples/tutorial_builder/04_01_enum.rs | 0 .../tutorial_builder/04_01_possible.md | 0 .../tutorial_builder/04_01_possible.rs | 0 .../examples/tutorial_builder/04_02_parse.md | 0 .../examples/tutorial_builder/04_02_parse.rs | 0 .../tutorial_builder/04_02_validate.md | 0 .../tutorial_builder/04_02_validate.rs | 0 .../tutorial_builder/04_03_relations.md | 0 .../tutorial_builder/04_03_relations.rs | 0 .../examples/tutorial_builder/04_04_custom.md | 0 .../examples/tutorial_builder/04_04_custom.rs | 0 .../examples/tutorial_builder/05_01_assert.rs | 0 .../examples/tutorial_derive/01_quick.md | 0 .../examples/tutorial_derive/01_quick.rs | 0 .../tutorial_derive/02_app_settings.md | 0 .../tutorial_derive/02_app_settings.rs | 0 .../examples/tutorial_derive/02_apps.md | 0 .../examples/tutorial_derive/02_apps.rs | 0 .../examples/tutorial_derive/02_crate.md | 0 .../examples/tutorial_derive/02_crate.rs | 0 .../tutorial_derive/03_01_flag_bool.md | 0 .../tutorial_derive/03_01_flag_bool.rs | 0 .../tutorial_derive/03_01_flag_count.md | 0 .../tutorial_derive/03_01_flag_count.rs | 0 .../examples/tutorial_derive/03_02_option.md | 0 .../examples/tutorial_derive/03_02_option.rs | 0 .../tutorial_derive/03_03_positional.md | 0 .../tutorial_derive/03_03_positional.rs | 0 .../tutorial_derive/03_04_subcommands.md | 0 .../tutorial_derive/03_04_subcommands.rs | 0 .../tutorial_derive/03_04_subcommands_alt.rs | 0 .../tutorial_derive/03_05_default_values.md | 0 .../tutorial_derive/03_05_default_values.rs | 0 .../examples/tutorial_derive/04_01_enum.md | 0 .../examples/tutorial_derive/04_01_enum.rs | 0 .../examples/tutorial_derive/04_02_parse.md | 0 .../examples/tutorial_derive/04_02_parse.rs | 0 .../tutorial_derive/04_02_validate.md | 0 .../tutorial_derive/04_02_validate.rs | 0 .../tutorial_derive/04_03_relations.md | 0 .../tutorial_derive/04_03_relations.rs | 0 .../examples/tutorial_derive/04_04_custom.md | 0 .../examples/tutorial_derive/04_04_custom.rs | 0 .../examples/tutorial_derive/05_01_assert.rs | 0 .../examples/typed-derive.md | 0 .../examples/typed-derive.rs | 0 .../src/_cookbook/cargo_example.rs | 0 .../src/_cookbook/cargo_example_derive | 0 .../src/_cookbook/cargo_example_derive.rs | 0 .../src/_cookbook/escaped_positional.rs | 0 .../_cookbook/escaped_positional_derive.rs | 0 .../src/_cookbook/git.rs | 0 .../src/_cookbook/git_derive.rs | 0 .../src/_cookbook/mod.rs | 0 .../src/_cookbook/multicall_busybox.rs | 0 .../src/_cookbook/multicall_hostname.rs | 0 .../src/_cookbook/pacman.rs | 0 .../src/_cookbook/repl.rs | 0 .../src/_cookbook/typed_derive.rs | 0 .../src/_derive/_tutorial.rs | 0 .../{clap => clap-3.2.20}/src/_derive/mod.rs | 0 vendor/{clap => clap-3.2.20}/src/_faq.rs | 0 vendor/{clap => clap-3.2.20}/src/_features.rs | 0 vendor/{clap => clap-3.2.20}/src/_tutorial.rs | 0 .../src/bin/stdio-fixture.rs | 0 .../src/builder/action.rs | 0 .../src/builder/app_settings.rs | 0 .../{clap => clap-3.2.20}/src/builder/arg.rs | 0 .../src/builder/arg_group.rs | 0 .../src/builder/arg_predicate.rs | 0 .../src/builder/arg_settings.rs | 0 .../src/builder/command.rs | 0 .../src/builder/debug_asserts.rs | 0 .../src/builder/macros.rs | 0 .../{clap => clap-3.2.20}/src/builder/mod.rs | 0 .../src/builder/possible_value.rs | 0 .../src/builder/regex.rs | 0 .../src/builder/tests.rs | 0 .../src/builder/usage_parser.rs | 0 .../src/builder/value_hint.rs | 0 .../src/builder/value_parser.rs | 0 vendor/{clap => clap-3.2.20}/src/derive.rs | 0 .../src/error/context.rs | 0 .../{clap => clap-3.2.20}/src/error/kind.rs | 0 vendor/{clap => clap-3.2.20}/src/error/mod.rs | 0 vendor/{clap => clap-3.2.20}/src/lib.rs | 0 vendor/{clap => clap-3.2.20}/src/macros.rs | 0 vendor/{clap => clap-3.2.20}/src/mkeymap.rs | 0 .../{clap => clap-3.2.20}/src/output/fmt.rs | 0 .../{clap => clap-3.2.20}/src/output/help.rs | 0 .../{clap => clap-3.2.20}/src/output/mod.rs | 0 .../{clap => clap-3.2.20}/src/output/usage.rs | 0 .../src/parser/arg_matcher.rs | 0 .../{clap => clap-3.2.20}/src/parser/error.rs | 0 .../src/parser/features/mod.rs | 0 .../src/parser/features/suggestions.rs | 0 .../src/parser/matches/any_value.rs | 0 .../src/parser/matches/arg_matches.rs | 0 .../src/parser/matches/matched_arg.rs | 0 .../src/parser/matches/mod.rs | 0 .../src/parser/matches/value_source.rs | 0 .../{clap => clap-3.2.20}/src/parser/mod.rs | 0 .../src/parser/parser.rs | 0 .../src/parser/validator.rs | 0 .../{clap => clap-3.2.20}/src/util/color.rs | 0 vendor/{clap => clap-3.2.20}/src/util/fnv.rs | 0 .../{clap => clap-3.2.20}/src/util/graph.rs | 0 vendor/{clap => clap-3.2.20}/src/util/id.rs | 0 vendor/{clap => clap-3.2.20}/src/util/mod.rs | 0 .../src/util/str_to_bool.rs | 0 .../.cargo-checksum.json | 0 .../{clap_lex => clap_lex-0.2.2}/Cargo.toml | 0 .../LICENSE-APACHE | 0 .../{clap_lex => clap_lex-0.2.2}/LICENSE-MIT | 0 vendor/{clap_lex => clap_lex-0.2.2}/README.md | 0 .../{clap_lex => clap_lex-0.2.2}/src/lib.rs | 0 vendor/compiler_builtins/.cargo-checksum.json | 2 +- vendor/compiler_builtins/Cargo.lock | 2 +- vendor/compiler_builtins/Cargo.toml | 3 +- vendor/compiler_builtins/LICENSE.txt | 91 + vendor/compiler_builtins/src/float/conv.rs | 6 +- vendor/compiler_builtins/src/float/div.rs | 6 +- .../src/int/specialized_div_rem/mod.rs | 5 +- vendor/compiler_builtins/src/macros.rs | 1 + vendor/compiler_builtins/src/math.rs | 7 +- vendor/compiletest_rs/.cargo-checksum.json | 2 +- vendor/compiletest_rs/Cargo.toml | 2 +- vendor/compiletest_rs/README.md | 4 +- vendor/compiletest_rs/src/runtest.rs | 47 +- vendor/crossbeam-epoch/.cargo-checksum.json | 2 +- vendor/crossbeam-epoch/CHANGELOG.md | 5 + vendor/crossbeam-epoch/Cargo.lock | 48 +- vendor/crossbeam-epoch/Cargo.toml | 7 +- vendor/crossbeam-epoch/no_atomic.rs | 6 + vendor/crossbeam-epoch/src/default.rs | 34 +- vendor/crossbeam-epoch/src/lib.rs | 2 +- vendor/crossbeam-epoch/src/sync/mod.rs | 3 + vendor/crossbeam-epoch/src/sync/once_lock.rs | 103 + vendor/crossbeam-utils/.cargo-checksum.json | 2 +- vendor/crossbeam-utils/CHANGELOG.md | 5 + vendor/crossbeam-utils/Cargo.toml | 8 +- vendor/crossbeam-utils/no_atomic.rs | 6 + vendor/crossbeam-utils/src/cache_padded.rs | 6 +- vendor/crossbeam-utils/src/sync/mod.rs | 2 + vendor/crossbeam-utils/src/sync/once_lock.rs | 103 + .../crossbeam-utils/src/sync/sharded_lock.rs | 24 +- vendor/crossbeam-utils/src/sync/wait_group.rs | 5 +- vendor/dashmap/.cargo-checksum.json | 2 +- vendor/dashmap/Cargo.toml | 13 +- vendor/dashmap/src/lib.rs | 59 +- vendor/dashmap/src/rayon/map.rs | 4 +- vendor/dashmap/src/rayon/read_only.rs | 96 + vendor/dashmap/src/read_only.rs | 2 +- vendor/dashmap/src/table.rs | 81 - vendor/form_urlencoded/.cargo-checksum.json | 2 +- vendor/form_urlencoded/Cargo.toml | 18 +- vendor/form_urlencoded/src/lib.rs | 6 +- vendor/home/.cargo-checksum.json | 2 +- vendor/home/Cargo.toml | 26 +- vendor/home/src/env.rs | 106 + vendor/home/src/lib.rs | 48 +- vendor/idna/.cargo-checksum.json | 2 +- vendor/idna/Cargo.toml | 23 +- vendor/idna/LICENSE-MIT | 2 +- vendor/idna/src/lib.rs | 3 +- vendor/idna/src/uts46.rs | 76 +- vendor/idna/tests/punycode.rs | 4 +- vendor/idna/tests/tests.rs | 12 +- vendor/idna/tests/uts46.rs | 13 +- vendor/itertools/.cargo-checksum.json | 2 +- vendor/itertools/CHANGELOG.md | 7 + vendor/itertools/Cargo.lock | 726 - vendor/itertools/Cargo.toml | 4 +- vendor/itertools/README.md | 2 +- vendor/itertools/benches/extra/zipslices.rs | 2 +- vendor/itertools/clippy.toml | 1 + vendor/itertools/src/adaptors/coalesce.rs | 4 +- vendor/itertools/src/adaptors/mod.rs | 14 +- .../itertools/src/adaptors/multi_product.rs | 4 +- .../src/combinations_with_replacement.rs | 4 +- vendor/itertools/src/concat_impl.rs | 3 +- vendor/itertools/src/duplicates_impl.rs | 1 - vendor/itertools/src/either_or_both.rs | 49 + vendor/itertools/src/exactly_one_err.rs | 4 +- vendor/itertools/src/extrema_set.rs | 48 + vendor/itertools/src/flatten_ok.rs | 33 +- vendor/itertools/src/free.rs | 26 +- vendor/itertools/src/groupbylazy.rs | 12 +- vendor/itertools/src/grouping_map.rs | 7 +- vendor/itertools/src/impl_macros.rs | 1 + vendor/itertools/src/intersperse.rs | 5 +- vendor/itertools/src/kmerge_impl.rs | 8 +- vendor/itertools/src/lazy_buffer.rs | 20 +- vendor/itertools/src/lib.rs | 230 +- vendor/itertools/src/merge_join.rs | 4 +- vendor/itertools/src/multipeek_impl.rs | 10 +- vendor/itertools/src/pad_tail.rs | 2 +- vendor/itertools/src/peeking_take_while.rs | 2 +- vendor/itertools/src/permutations.rs | 7 +- vendor/itertools/src/rciter_impl.rs | 1 - vendor/itertools/src/size_hint.rs | 16 +- vendor/itertools/src/tuple_impl.rs | 2 +- vendor/itertools/src/unique_impl.rs | 7 +- vendor/itertools/src/unziptuple.rs | 8 +- vendor/itertools/src/ziptuple.rs | 1 + vendor/itertools/tests/adaptors_no_collect.rs | 11 +- vendor/itertools/tests/quick.rs | 116 +- vendor/itertools/tests/specializations.rs | 4 +- vendor/itertools/tests/test_core.rs | 15 +- vendor/itertools/tests/test_std.rs | 80 +- vendor/itertools/tests/zip.rs | 8 +- vendor/itoa/.cargo-checksum.json | 2 +- vendor/itoa/Cargo.toml | 6 +- vendor/itoa/src/lib.rs | 8 +- vendor/itoa/src/udiv128.rs | 5 + vendor/libc/.cargo-checksum.json | 2 +- vendor/libc/Cargo.toml | 2 +- vendor/libc/src/fuchsia/mod.rs | 27 +- vendor/libc/src/unix/bsd/apple/mod.rs | 345 +- .../src/unix/bsd/freebsdlike/dragonfly/mod.rs | 11 + .../bsd/freebsdlike/freebsd/freebsd11/mod.rs | 8 + .../bsd/freebsdlike/freebsd/freebsd12/mod.rs | 13 + .../bsd/freebsdlike/freebsd/freebsd13/mod.rs | 13 + .../bsd/freebsdlike/freebsd/freebsd14/mod.rs | 13 + .../src/unix/bsd/freebsdlike/freebsd/mod.rs | 80 +- vendor/libc/src/unix/bsd/freebsdlike/mod.rs | 13 + .../src/unix/bsd/netbsdlike/netbsd/mod.rs | 37 + .../src/unix/bsd/netbsdlike/openbsd/mod.rs | 16 + .../libc/src/unix/linux_like/android/mod.rs | 26 +- .../src/unix/linux_like/emscripten/mod.rs | 4 +- .../unix/linux_like/linux/arch/generic/mod.rs | 7 + .../unix/linux_like/linux/gnu/b32/arm/mod.rs | 8 + .../unix/linux_like/linux/gnu/b32/mips/mod.rs | 8 + .../unix/linux_like/linux/gnu/b32/powerpc.rs | 8 + .../linux_like/linux/gnu/b32/riscv32/mod.rs | 8 + .../linux_like/linux/gnu/b32/sparc/mod.rs | 8 + .../unix/linux_like/linux/gnu/b32/x86/mod.rs | 8 + .../linux_like/linux/gnu/b64/aarch64/mod.rs | 8 + .../linux_like/linux/gnu/b64/mips64/mod.rs | 8 + .../linux_like/linux/gnu/b64/powerpc64/mod.rs | 8 + .../linux_like/linux/gnu/b64/riscv64/mod.rs | 8 + .../unix/linux_like/linux/gnu/b64/s390x.rs | 8 + .../linux_like/linux/gnu/b64/sparc64/mod.rs | 8 + .../linux_like/linux/gnu/b64/x86_64/mod.rs | 9 + .../linux/gnu/b64/x86_64/not_x32.rs | 8 + .../linux_like/linux/gnu/b64/x86_64/x32.rs | 8 + .../libc/src/unix/linux_like/linux/gnu/mod.rs | 22 + vendor/libc/src/unix/linux_like/linux/mod.rs | 314 +- .../unix/linux_like/linux/musl/b32/arm/mod.rs | 8 + .../linux_like/linux/musl/b32/mips/mod.rs | 8 + .../src/unix/linux_like/linux/musl/b32/mod.rs | 1 + .../unix/linux_like/linux/musl/b32/powerpc.rs | 8 + .../linux_like/linux/musl/b32/riscv32/mod.rs | 1 + .../unix/linux_like/linux/musl/b32/x86/mod.rs | 8 + .../linux_like/linux/musl/b64/aarch64/mod.rs | 9 + .../unix/linux_like/linux/musl/b64/mips64.rs | 9 + .../linux_like/linux/musl/b64/powerpc64.rs | 9 + .../linux_like/linux/musl/b64/riscv64/mod.rs | 1 + .../unix/linux_like/linux/musl/b64/s390x.rs | 9 + .../linux_like/linux/musl/b64/x86_64/mod.rs | 9 + .../src/unix/linux_like/linux/musl/mod.rs | 3 + .../unix/linux_like/linux/uclibc/arm/mod.rs | 1 + .../linux_like/linux/uclibc/x86_64/mod.rs | 1 + vendor/libc/src/unix/linux_like/mod.rs | 2 + vendor/libc/src/unix/newlib/mod.rs | 2 +- vendor/libc/src/unix/solarish/illumos.rs | 5 + vendor/libc/src/unix/solarish/mod.rs | 16 +- vendor/libc/src/unix/solarish/solaris.rs | 11 +- vendor/libc/src/unix/solarish/x86_64.rs | 31 + vendor/lock_api/.cargo-checksum.json | 2 +- vendor/lock_api/Cargo.toml | 2 +- vendor/lock_api/src/mutex.rs | 29 +- vendor/lock_api/src/remutex.rs | 8 +- vendor/lock_api/src/rwlock.rs | 10 +- vendor/matches/.cargo-checksum.json | 1 - vendor/matches/Cargo.toml | 24 - vendor/matches/lib.rs | 128 - vendor/matches/tests/macro_use_one.rs | 11 - vendor/matches/tests/use_star.rs | 10 - vendor/miniz_oxide/.cargo-checksum.json | 2 +- vendor/miniz_oxide/Cargo.toml | 27 +- vendor/miniz_oxide/src/inflate/mod.rs | 12 +- vendor/once_cell/.cargo-checksum.json | 2 +- vendor/once_cell/CHANGELOG.md | 12 + vendor/once_cell/Cargo.lock | 62 +- vendor/once_cell/Cargo.toml | 6 +- vendor/once_cell/examples/lazy_static.rs | 2 +- vendor/once_cell/src/lib.rs | 80 +- vendor/once_cell/tests/it.rs | 35 + vendor/percent-encoding/.cargo-checksum.json | 2 +- vendor/percent-encoding/Cargo.toml | 21 +- vendor/percent-encoding/LICENSE-MIT | 2 +- vendor/percent-encoding/{ => src}/lib.rs | 74 +- vendor/proc-macro2/.cargo-checksum.json | 2 +- vendor/proc-macro2/Cargo.toml | 2 +- vendor/proc-macro2/build.rs | 5 +- vendor/proc-macro2/src/fallback.rs | 28 +- vendor/proc-macro2/src/lib.rs | 25 +- vendor/proc-macro2/src/parse.rs | 13 +- vendor/proc-macro2/src/wrapper.rs | 16 + vendor/proc-macro2/tests/test.rs | 13 + vendor/rowan/.cargo-checksum.json | 2 +- vendor/rowan/Cargo.lock | 10 +- vendor/rowan/Cargo.toml | 3 +- vendor/rowan/src/cursor.rs | 2 +- vendor/rustc_tools_util/.cargo-checksum.json | 1 + vendor/rustc_tools_util/Cargo.toml | 32 + .../LICENSE-APACHE | 2 +- .../LICENSE => rustc_tools_util/LICENSE-MIT} | 4 +- vendor/rustc_tools_util/README.md | 62 + vendor/rustc_tools_util/src/lib.rs | 162 + vendor/semver/.cargo-checksum.json | 2 +- vendor/semver/Cargo.toml | 2 +- vendor/semver/src/backport.rs | 9 + vendor/semver/src/identifier.rs | 8 +- vendor/semver/src/lib.rs | 2 +- vendor/serde/.cargo-checksum.json | 2 +- vendor/serde/Cargo.toml | 5 +- vendor/serde/src/de/ignored_any.rs | 2 +- vendor/serde/src/de/impls.rs | 8 +- vendor/serde/src/de/mod.rs | 10 +- vendor/serde/src/de/value.rs | 37 +- vendor/serde/src/lib.rs | 17 +- vendor/serde/src/private/de.rs | 11 + vendor/serde/src/private/ser.rs | 6 +- vendor/serde/src/ser/impls.rs | 15 +- vendor/serde_derive/.cargo-checksum.json | 2 +- vendor/serde_derive/Cargo.toml | 3 +- vendor/serde_derive/src/lib.rs | 2 +- vendor/serde_json/.cargo-checksum.json | 2 +- vendor/serde_json/Cargo.toml | 2 +- vendor/serde_json/src/lib.rs | 2 +- vendor/serde_json/src/number.rs | 13 +- vendor/serde_json/src/value/ser.rs | 10 +- vendor/serde_json/tests/test.rs | 6 +- vendor/smallvec/.cargo-checksum.json | 2 +- vendor/smallvec/Cargo.toml | 31 +- vendor/smallvec/debug_metadata/README.md | 111 + .../smallvec/debug_metadata/smallvec.natvis | 35 + vendor/smallvec/scripts/run_miri.sh | 3 + vendor/smallvec/src/lib.rs | 7 + vendor/smallvec/tests/debugger_visualizer.rs | 68 + vendor/syn/.cargo-checksum.json | 2 +- vendor/syn/Cargo.toml | 4 +- vendor/syn/benches/file.rs | 2 +- vendor/syn/benches/rust.rs | 11 +- vendor/syn/src/buffer.rs | 215 +- vendor/syn/src/expr.rs | 21 +- vendor/syn/src/gen/clone.rs | 2 +- vendor/syn/src/gen/debug.rs | 10 +- vendor/syn/src/gen/eq.rs | 6 +- vendor/syn/src/gen/fold.rs | 6 +- vendor/syn/src/gen/hash.rs | 6 +- vendor/syn/src/gen/visit.rs | 6 +- vendor/syn/src/gen/visit_mut.rs | 6 +- vendor/syn/src/item.rs | 14 +- vendor/syn/src/lib.rs | 11 +- vendor/syn/src/lit.rs | 2 +- vendor/syn/src/parse_macro_input.rs | 4 +- vendor/syn/src/pat.rs | 35 +- vendor/syn/src/path.rs | 46 +- vendor/syn/src/stmt.rs | 6 +- vendor/syn/src/ty.rs | 53 +- vendor/syn/tests/.gitignore | 1 - vendor/syn/tests/common/eq.rs | 64 +- vendor/syn/tests/debug/gen.rs | 12 +- vendor/syn/tests/regression/issue1108.rs | 2 +- vendor/syn/tests/repo/mod.rs | 77 +- vendor/syn/tests/test_parse_stream.rs | 8 +- vendor/syn/tests/test_precedence.rs | 19 +- vendor/syn/tests/test_size.rs | 8 +- vendor/thiserror-impl/.cargo-checksum.json | 2 +- vendor/thiserror-impl/Cargo.toml | 2 +- vendor/thiserror-impl/src/expand.rs | 18 +- vendor/thiserror/.cargo-checksum.json | 2 +- vendor/thiserror/Cargo.toml | 6 +- vendor/thiserror/README.md | 30 +- vendor/thiserror/build.rs | 66 + vendor/thiserror/src/aserror.rs | 9 +- vendor/thiserror/src/lib.rs | 39 +- vendor/thiserror/src/provide.rs | 15 + vendor/thiserror/tests/test_backtrace.rs | 46 + vendor/thiserror/tests/test_deprecated.rs | 10 + .../tests/ui/source-enum-not-error.stderr | 6 +- .../tests/ui/source-struct-not-error.stderr | 4 +- .../tracing-attributes/.cargo-checksum.json | 2 +- vendor/tracing-attributes/CHANGELOG.md | 21 + vendor/tracing-attributes/Cargo.toml | 18 +- vendor/tracing-attributes/README.md | 4 +- vendor/tracing-attributes/src/expand.rs | 118 +- vendor/tracing-attributes/src/lib.rs | 60 +- vendor/tracing-attributes/tests/async_fn.rs | 13 + vendor/tracing-attributes/tests/instrument.rs | 9 + vendor/tracing-attributes/tests/ui.rs | 7 + .../tests/ui/async_instrument.rs | 46 + .../tests/ui/async_instrument.stderr | 98 + vendor/tracing-core/.cargo-checksum.json | 2 +- vendor/tracing-core/CHANGELOG.md | 18 + vendor/tracing-core/Cargo.toml | 2 +- vendor/tracing-core/README.md | 26 +- vendor/tracing-core/src/callsite.rs | 1 + vendor/tracing-core/src/dispatcher.rs | 113 +- vendor/tracing-core/src/subscriber.rs | 27 +- .../.cargo-checksum.json | 1 + .../CHANGELOG.md | 323 - .../Cargo.toml | 138 +- .../LICENSE | 0 .../README.md | 6 +- .../benches/enter.rs | 0 .../benches/filter.rs | 0 .../benches/filter_log.rs | 0 .../benches/fmt.rs | 0 .../benches/support/mod.rs | 0 .../src/field/debug.rs | 0 .../src/field/delimited.rs | 4 +- .../src/field/display.rs | 2 +- .../src/field/mod.rs | 14 +- .../src/filter/directive.rs | 34 +- .../src/filter/env/directive.rs | 160 +- .../src/filter/env/field.rs | 250 +- .../src/filter/env/mod.rs | 677 +- .../src/filter/filter_fn.rs | 0 .../src/filter/layer_filters.rs} | 367 +- .../src/filter/level.rs | 0 .../src/filter/mod.rs | 0 .../src/filter/targets.rs | 33 +- .../src/fmt/fmt_layer.rs | 215 +- .../src/fmt/format/json.rs | 175 +- .../src/fmt/format/mod.rs | 443 +- .../src/fmt/format/pretty.rs | 156 +- .../src/fmt/mod.rs | 359 +- .../src/fmt/time/datetime.rs | 0 .../src/fmt/time/mod.rs | 8 +- .../src/fmt/time/time_crate.rs | 276 + .../src/fmt/writer.rs | 28 +- .../src/layer/context.rs | 22 +- .../src/layer/layered.rs | 57 +- .../src/layer/mod.rs | 725 +- .../src/layer/tests.rs | 0 .../src/lib.rs | 54 +- .../src/macros.rs | 0 .../src/prelude.rs | 0 .../src/registry/extensions.rs | 2 +- .../src/registry/mod.rs | 20 +- .../src/registry/sharded.rs | 27 +- .../src/registry/stack.rs | 0 .../src/reload.rs | 171 +- .../src/sync.rs | 0 .../src/util.rs | 0 ...d_layer_filters_dont_break_other_layers.rs | 0 .../tests/duplicate_spans.rs | 1 + .../tests/field_filter.rs | 4 +- .../tracing-subscriber-0.3.3/tests/filter.rs | 187 + .../tests/filter_log.rs | 4 +- .../tests/fmt_max_level_hint.rs | 0 ...d_layer_filters_dont_break_other_layers.rs | 0 .../layer_filter_interests_are_cached.rs | 0 .../tests/layer_filters/boxed.rs | 0 .../tests/layer_filters/downcast_raw.rs | 0 .../tests/layer_filters/filter_scopes.rs | 0 .../tests/layer_filters/main.rs | 3 +- .../tests/layer_filters/targets.rs | 0 .../tests/layer_filters/trees.rs | 0 .../multiple_layer_filter_interests_cached.rs | 0 .../tests/registry_max_level_hint.rs | 0 .../tests/registry_with_subscriber.rs | 2 +- .../tracing-subscriber-0.3.3/tests/reload.rs | 81 + .../tests/same_len_filters.rs | 4 +- .../tests/support.rs | 19 +- ...d_layer_filters_dont_break_other_layers.rs | 0 .../tests/utils.rs | 4 +- .../tracing-subscriber/.cargo-checksum.json | 1 - .../src/filter/env/builder.rs | 324 - .../src/filter/layer_filters/combinator.rs | 469 - .../src/fmt/time/time_crate.rs | 470 - .../tests/env_filter/main.rs | 547 - .../tests/env_filter/per_layer.rs | 305 - .../tests/event_enabling.rs | 81 - .../tests/layer_filters/combinators.rs | 42 - .../tests/layer_filters/vec.rs | 120 - vendor/tracing-subscriber/tests/option.rs | 41 - vendor/tracing-subscriber/tests/reload.rs | 155 - vendor/tracing-subscriber/tests/vec.rs | 19 - .../vec_subscriber_filter_interests_cached.rs | 117 - vendor/tracing/.cargo-checksum.json | 2 +- vendor/tracing/CHANGELOG.md | 52 + vendor/tracing/Cargo.toml | 6 +- vendor/tracing/README.md | 4 +- vendor/tracing/src/dispatcher.rs | 2 +- vendor/tracing/src/lib.rs | 10 +- vendor/tracing/src/macros.rs | 38 +- vendor/unicode-ident/.cargo-checksum.json | 2 +- vendor/unicode-ident/Cargo.toml | 18 +- vendor/unicode-ident/LICENSE-UNICODE | 46 + vendor/unicode-ident/README.md | 30 +- vendor/unicode-ident/src/tables.rs | 111 +- .../unicode-ident/tests/fst/xid_continue.fst | Bin 70255 -> 72750 bytes vendor/unicode-ident/tests/fst/xid_start.fst | Bin 62642 -> 64999 bytes vendor/unicode-ident/tests/static_size.rs | 8 +- vendor/unicode-ident/tests/trie/trie.rs | 222 +- .../.cargo-checksum.json | 2 +- vendor/unicode-normalization/Cargo.toml | 2 +- vendor/unicode-normalization/README.md | 2 +- .../unicode-normalization/scripts/unicode.py | 2 +- vendor/unicode-normalization/src/tables.rs | 16705 ++++++++-------- vendor/unicode-script/.cargo-checksum.json | 2 +- vendor/unicode-script/Cargo.toml | 36 +- vendor/unicode-script/LICENSE-APACHE | 201 + vendor/{xflags => unicode-script}/LICENSE-MIT | 50 +- vendor/unicode-script/README.md | 4 +- vendor/unicode-script/scripts/unicode.py | 4 +- vendor/unicode-script/src/lib.rs | 10 +- vendor/unicode-script/src/tables.rs | 2275 ++- vendor/unicode-security/.cargo-checksum.json | 2 +- vendor/unicode-security/Cargo.toml | 39 +- vendor/unicode-security/README.md | 4 +- vendor/unicode-security/scripts/unicode.py | 6 +- .../unicode-security/src/restriction_level.rs | 2 +- vendor/unicode-security/src/tables.rs | 2118 +- .../unicode-segmentation/.cargo-checksum.json | 2 +- vendor/unicode-segmentation/Cargo.toml | 29 +- .../unicode-segmentation/scripts/unicode.py | 2 +- vendor/unicode-segmentation/src/tables.rs | 2372 +-- vendor/unicode-segmentation/src/testdata.rs | 6 +- vendor/unicode-width/.cargo-checksum.json | 2 +- vendor/unicode-width/Cargo.toml | 30 +- vendor/unicode-width/scripts/unicode.py | 748 +- vendor/unicode-width/src/tables.rs | 775 +- vendor/unicode-width/src/tests.rs | 20 +- vendor/unicode-xid/.cargo-checksum.json | 2 +- vendor/unicode-xid/Cargo.toml | 2 +- vendor/unicode-xid/README.md | 9 + vendor/unicode-xid/src/tables.rs | 45 +- vendor/url/.cargo-checksum.json | 2 +- vendor/url/Cargo.toml | 63 +- vendor/url/LICENSE-MIT | 2 +- vendor/url/README.md | 14 + vendor/url/src/host.rs | 86 +- vendor/url/src/lib.rs | 82 +- vendor/url/src/origin.rs | 3 +- vendor/url/src/parser.rs | 37 +- vendor/url/src/quirks.rs | 59 +- vendor/url/tests/data.rs | 79 +- vendor/url/tests/debugger_visualizer.rs | 102 + vendor/url/tests/unit.rs | 54 +- vendor/url/tests/urltestdata.json | 3661 ++-- vendor/xflags-macros/.cargo-checksum.json | 2 +- vendor/xflags-macros/Cargo.toml | 6 +- vendor/xflags-macros/src/ast.rs | 13 + vendor/xflags-macros/src/emit.rs | 350 +- vendor/xflags-macros/src/lib.rs | 26 +- vendor/xflags-macros/src/parse.rs | 166 +- vendor/xflags-macros/src/update.rs | 3 +- .../tests/{it/src => data}/help.rs | 5 +- .../tests/{it/src => data}/repeated_pos.rs | 3 +- .../tests/{it/src => data}/smoke.rs | 3 +- .../tests/{it/src => data}/subcommands.rs | 3 +- vendor/xflags-macros/tests/it/help.rs | 84 +- vendor/xflags-macros/tests/it/main.rs | 36 +- vendor/xflags-macros/tests/it/repeated_pos.rs | 64 +- vendor/xflags-macros/tests/it/smoke.rs | 61 +- vendor/xflags-macros/tests/it/subcommands.rs | 174 +- vendor/xflags/.cargo-checksum.json | 2 +- vendor/xflags/Cargo.lock | 6 +- vendor/xflags/Cargo.toml | 9 +- vendor/xflags/README.md | 49 - vendor/xflags/examples/hello-generated.rs | 13 +- vendor/xflags/examples/hello.rs | 3 +- vendor/xflags/examples/immediate-mode.rs | 16 + vendor/xflags/examples/longer.rs | 7 +- vendor/xflags/examples/non-utf8.rs | 3 +- vendor/xflags/src/lib.rs | 172 +- vendor/xflags/src/rt.rs | 14 +- version | 2 +- 5777 files changed, 133382 insertions(+), 91815 deletions(-) create mode 100644 compiler/rustc_builtin_macros/src/format/ast.rs create mode 100644 compiler/rustc_builtin_macros/src/format/expand.rs create mode 100644 compiler/rustc_codegen_cranelift/build_system/abi_cafe.rs delete mode 100644 compiler/rustc_codegen_cranelift/build_system/abi_checker.rs create mode 100644 compiler/rustc_codegen_cranelift/patches/0001-abi-cafe-Disable-some-test-on-x86_64-pc-windows-gnu.patch delete mode 100644 compiler/rustc_codegen_cranelift/patches/0001-abi-checker-Disable-failing-tests.patch create mode 100644 compiler/rustc_codegen_cranelift/patches/0003-rand-Disable-rand-tests-on-mingw.patch create mode 100644 compiler/rustc_codegen_gcc/src/errors.rs create mode 100644 compiler/rustc_codegen_ssa/src/errors.rs delete mode 100644 compiler/rustc_const_eval/src/might_permit_raw_init.rs create mode 100644 compiler/rustc_const_eval/src/util/might_permit_raw_init.rs create mode 100644 compiler/rustc_data_structures/src/unord.rs create mode 100644 compiler/rustc_error_codes/src/error_codes/E0311.md create mode 100644 compiler/rustc_error_messages/locales/en-US/codegen_gcc.ftl create mode 100644 compiler/rustc_error_messages/locales/en-US/codegen_ssa.ftl create mode 100644 compiler/rustc_error_messages/locales/en-US/compiletest.ftl create mode 100644 compiler/rustc_error_messages/locales/en-US/errors.ftl rename compiler/rustc_error_messages/locales/en-US/{typeck.ftl => hir_analysis.ftl} (58%) create mode 100644 compiler/rustc_errors/src/diagnostic_impls.rs rename compiler/{rustc_typeck => rustc_hir_analysis}/Cargo.toml (93%) rename compiler/{rustc_typeck => rustc_hir_analysis}/README.md (100%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/astconv/errors.rs (100%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/astconv/generics.rs (98%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/astconv/mod.rs (96%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/bounds.rs (100%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/check/check.rs (71%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/check/compare_method.rs (65%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/check/dropck.rs (94%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/check/intrinsic.rs (95%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/check/intrinsicck.rs (82%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/check/mod.rs (51%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/check/region.rs (99%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/check/wfcheck.rs (94%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/check_unused.rs (89%) create mode 100644 compiler/rustc_hir_analysis/src/coherence/builtin.rs rename compiler/{rustc_typeck => rustc_hir_analysis}/src/coherence/inherent_impls.rs (94%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/coherence/inherent_impls_overlap.rs (87%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/coherence/mod.rs (100%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/coherence/orphan.rs (95%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/coherence/unsafety.rs (61%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/collect.rs (62%) create mode 100644 compiler/rustc_hir_analysis/src/collect/generics_of.rs rename compiler/{rustc_typeck => rustc_hir_analysis}/src/collect/item_bounds.rs (100%) rename compiler/{rustc_resolve/src/late => rustc_hir_analysis/src/collect}/lifetimes.rs (94%) create mode 100644 compiler/rustc_hir_analysis/src/collect/predicates_of.rs rename compiler/{rustc_typeck => rustc_hir_analysis}/src/collect/type_of.rs (90%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/constrained_generic_params.rs (98%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/errors.rs (51%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/hir_wf_check.rs (79%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/impl_wf_check.rs (81%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/impl_wf_check/min_specialization.rs (87%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/lib.rs (91%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/outlives/explicit.rs (100%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/outlives/implicit_infer.rs (99%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/outlives/mod.rs (100%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/outlives/test.rs (81%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/outlives/utils.rs (89%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/structured_errors.rs (100%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/structured_errors/missing_cast_for_variadic_arg.rs (100%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/structured_errors/sized_unsized_cast.rs (100%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/structured_errors/wrong_number_of_generic_args.rs (100%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/variance/constraints.rs (100%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/variance/mod.rs (100%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/variance/solve.rs (100%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/variance/terms.rs (100%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/variance/test.rs (55%) rename compiler/{rustc_typeck => rustc_hir_analysis}/src/variance/xform.rs (100%) create mode 100644 compiler/rustc_hir_typeck/Cargo.toml rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/_match.rs (97%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/autoderef.rs (100%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/callee.rs (67%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/cast.rs (90%) create mode 100644 compiler/rustc_hir_typeck/src/check.rs rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/closure.rs (96%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/coercion.rs (96%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/demand.rs (94%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/diverges.rs (100%) create mode 100644 compiler/rustc_hir_typeck/src/errors.rs rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/expectation.rs (100%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/expr.rs (97%) rename compiler/{rustc_typeck => rustc_hir_typeck}/src/expr_use_visitor.rs (99%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/fallback.rs (99%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/fn_ctxt/_impl.rs (94%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/fn_ctxt/arg_matrix.rs (100%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/fn_ctxt/checks.rs (97%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/fn_ctxt/mod.rs (93%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/fn_ctxt/suggestions.rs (88%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/gather_locals.rs (98%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/generator_interior/drop_ranges/cfg_build.rs (99%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/generator_interior/drop_ranges/cfg_propagate.rs (100%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/generator_interior/drop_ranges/cfg_visualize.rs (100%) rename compiler/{rustc_typeck/src/check/generator_interior/drop_ranges.rs => rustc_hir_typeck/src/generator_interior/drop_ranges/mod.rs} (99%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/generator_interior/drop_ranges/record_consumed_borrow.rs (95%) rename compiler/{rustc_typeck/src/check/generator_interior.rs => rustc_hir_typeck/src/generator_interior/mod.rs} (96%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/inherited.rs (87%) create mode 100644 compiler/rustc_hir_typeck/src/intrinsicck.rs create mode 100644 compiler/rustc_hir_typeck/src/lib.rs rename compiler/{rustc_typeck => rustc_hir_typeck}/src/mem_categorization.rs (98%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/method/confirm.rs (99%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/method/mod.rs (99%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/method/prelude2021.rs (84%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/method/probe.rs (95%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/method/suggest.rs (88%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/op.rs (98%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/pat.rs (99%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/place_op.rs (99%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/rvalue_scopes.rs (100%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/upvar.rs (98%) rename compiler/{rustc_typeck/src/check => rustc_hir_typeck/src}/writeback.rs (94%) create mode 100644 compiler/rustc_lint/src/for_loops_over_fallibles.rs create mode 100644 compiler/rustc_lint/src/opaque_hidden_inferred_bound.rs delete mode 100644 compiler/rustc_middle/benches/lib.rs delete mode 100644 compiler/rustc_middle/src/ty/inhabitedness/def_id_forest.rs create mode 100644 compiler/rustc_middle/src/ty/inhabitedness/inhabited_predicate.rs create mode 100644 compiler/rustc_middle/src/ty/opaque_types.rs create mode 100644 compiler/rustc_mir_transform/src/deduce_param_attrs.rs delete mode 100644 compiler/rustc_mir_transform/src/marker.rs create mode 100644 compiler/rustc_parse/src/errors.rs delete mode 100644 compiler/rustc_resolve/src/access_levels.rs create mode 100644 compiler/rustc_resolve/src/effective_visibilities.rs create mode 100644 compiler/rustc_target/src/spec/armv5te_none_eabi.rs create mode 100644 compiler/rustc_target/src/spec/thumbv5te_none_eabi.rs create mode 100644 compiler/rustc_ty_utils/src/abi.rs create mode 100644 compiler/rustc_ty_utils/src/layout.rs rename compiler/{rustc_middle/src/ty => rustc_ty_utils/src}/layout_sanity_check.rs (99%) delete mode 100644 compiler/rustc_typeck/src/coherence/builtin.rs create mode 100644 git-commit-info create mode 100644 library/alloc/tests/autotraits.rs create mode 100644 library/core/src/const_closure.rs delete mode 100644 library/core/src/lazy.rs create mode 100644 library/core/src/ops/index_range.rs rename library/core/src/{mem/valid_align.rs => ptr/alignment.rs} (53%) create mode 100644 library/core/tests/panic.rs create mode 100644 library/core/tests/panic/location.rs delete mode 100644 library/std/src/lazy.rs delete mode 100644 library/std/src/os/unix/io/fd.rs delete mode 100644 library/std/src/os/unix/io/raw.rs rename library/std/src/os/unix/io/{fd => }/tests.rs (100%) create mode 100644 library/std/src/os/watchos/fs.rs create mode 100644 library/std/src/os/watchos/mod.rs create mode 100644 library/std/src/os/watchos/raw.rs create mode 100644 library/std/src/sys/common/small_c_string.rs create mode 100644 library/std/src/sys/common/tests.rs create mode 100644 library/std/src/sys/unix/thread_parker/darwin.rs create mode 100644 library/std/src/sys/windows/thread_local_key/tests.rs create mode 100644 library/std/src/sys_common/once/futex.rs create mode 100644 library/std/src/sys_common/once/generic.rs create mode 100644 library/std/src/sys_common/once/mod.rs create mode 100644 library/stdarch/crates/core_arch/src/riscv_shared/p.rs create mode 100644 library/stdarch/crates/std_detect/src/detect/test_data/linux-artificial-aarch64.auxv create mode 100644 library/stdarch/crates/std_detect/src/detect/test_data/linux-empty-hwcap2-aarch64.auxv create mode 100644 library/stdarch/crates/std_detect/src/detect/test_data/linux-hwcap2-aarch64.auxv create mode 100644 library/stdarch/crates/std_detect/src/detect/test_data/linux-no-hwcap2-aarch64.auxv delete mode 100644 library/stdarch/crates/std_detect/src/detect/test_data/linux-x64-i7-6850k.auxv delete mode 100644 library/test/src/helpers/isatty.rs create mode 100644 src/bootstrap/bolt.rs create mode 100755 src/ci/docker/host-x86_64/dist-i586-gnu-i586-i686-musl/build-i586-gnu-toolchain.sh create mode 100644 src/ci/docker/host-x86_64/dist-i586-gnu-i586-i686-musl/i586-linux-gnu.config create mode 100755 src/ci/docker/host-x86_64/dist-mips-linux/build-mips-toolchain.sh create mode 100644 src/ci/docker/host-x86_64/dist-mips-linux/mips-linux-gnu.config create mode 100644 src/ci/docker/host-x86_64/dist-mips-linux/patches/glibc/2.23/0001-MIPS-SPARC-fix-wrong-vfork-aliases-in-libpthread.so.patch create mode 100644 src/ci/docker/host-x86_64/dist-mips-linux/patches/glibc/2.23/0002-MIPS-SPARC-more-fixes-to-the-vfork-aliases-in-libpth.patch create mode 100755 src/ci/docker/host-x86_64/dist-mips64-linux/build-mips64-toolchain.sh create mode 100644 src/ci/docker/host-x86_64/dist-mips64-linux/mips64-linux-gnu.config create mode 100755 src/ci/docker/host-x86_64/dist-mips64el-linux/build-mips64el-toolchain.sh create mode 100644 src/ci/docker/host-x86_64/dist-mips64el-linux/mips64el-linux-gnu.config create mode 100755 src/ci/docker/host-x86_64/dist-mipsel-linux/build-mipsel-toolchain.sh create mode 100644 src/ci/docker/host-x86_64/dist-mipsel-linux/mipsel-linux-gnu.config create mode 100755 src/ci/scripts/select-xcode.sh create mode 100644 src/doc/book/TODO.md create mode 100644 src/doc/book/nostarch/appendix_a.md create mode 100644 src/doc/book/nostarch/appendix_b.md create mode 100644 src/doc/book/nostarch/appendix_c.md create mode 100644 src/doc/book/nostarch/appendix_d.md create mode 100644 src/doc/book/nostarch/appendix_e.md create mode 100644 src/doc/book/nostarch/frontmatter.md create mode 100644 src/doc/embedded-book/CITATION.bib delete mode 100644 src/doc/reference/src/unsafe-blocks.md delete mode 100644 src/doc/reference/src/unsafe-functions.md create mode 100644 src/doc/reference/src/unsafe-keyword.md rename src/doc/rustc-dev-guide/src/{miri.md => const-eval/interpret.md} (92%) delete mode 100644 src/doc/rustc-dev-guide/src/img/rustc_stages.svg create mode 100644 src/doc/rustc/src/platform-support/android.md create mode 100644 src/doc/rustc/src/platform-support/armv5te-none-eabi.md create mode 100644 src/doc/rustc/src/platform-support/x86_64-fortanix-unknown-sgx.md create mode 100644 src/doc/style-guide/book.toml create mode 100644 src/doc/style-guide/src/README.md create mode 100644 src/doc/style-guide/src/SUMMARY.md create mode 100644 src/doc/style-guide/src/advice.md create mode 100644 src/doc/style-guide/src/cargo.md create mode 100644 src/doc/style-guide/src/expressions.md create mode 100644 src/doc/style-guide/src/items.md create mode 100644 src/doc/style-guide/src/principles.md create mode 100644 src/doc/style-guide/src/statements.md create mode 100644 src/doc/style-guide/src/types.md create mode 100644 src/doc/unstable-book/src/compiler-flags/dylib-lto.md delete mode 100644 src/doc/unstable-book/src/language-features/arbitrary-enum-discriminant.md delete mode 100644 src/doc/unstable-book/src/language-features/asm-sym.md create mode 100644 src/doc/unstable-book/src/language-features/half-open-range-patterns-in-slices.md delete mode 100644 src/doc/unstable-book/src/language-features/half-open-range-patterns.md create mode 100644 src/test/assembly/x86-stack-probes.rs create mode 100644 src/test/codegen-units/item-collection/asm-sym.rs create mode 100644 src/test/codegen/deduced-param-attrs.rs create mode 100644 src/test/codegen/slice_as_from_ptr_range.rs create mode 100644 src/test/codegen/stack-probes-call.rs create mode 100644 src/test/codegen/stack-probes-inline.rs delete mode 100644 src/test/codegen/stack-probes.rs create mode 100644 src/test/mir-opt/inline/asm-unwind.rs create mode 100644 src/test/mir-opt/inline/asm_unwind.main.Inline.diff create mode 100644 src/test/pretty/issue-85089.pp create mode 100644 src/test/pretty/issue-85089.rs create mode 100644 src/test/pretty/tests-are-sorted.pp create mode 100644 src/test/pretty/tests-are-sorted.rs create mode 100644 src/test/run-make-fulldeps/alloc-no-rc/Makefile create mode 100644 src/test/run-make-fulldeps/alloc-no-sync/Makefile create mode 100644 src/test/run-make-fulldeps/foreign-rust-exceptions/Makefile create mode 100644 src/test/run-make-fulldeps/foreign-rust-exceptions/bar.rs create mode 100644 src/test/run-make-fulldeps/foreign-rust-exceptions/foo.rs create mode 100644 src/test/run-make-fulldeps/print-calling-conventions/Makefile create mode 100644 src/test/run-make/macos-fat-archive/Makefile create mode 100644 src/test/run-make/macos-fat-archive/lib.rs create mode 100644 src/test/run-make/macos-fat-archive/native-library.c create mode 100644 src/test/run-make/native-link-modifier-verbatim-linker/Makefile create mode 100644 src/test/run-make/native-link-modifier-verbatim-linker/local_native_dep.rs create mode 100644 src/test/run-make/native-link-modifier-verbatim-linker/main.rs create mode 100644 src/test/run-make/native-link-modifier-verbatim-rustc/Makefile create mode 100644 src/test/run-make/native-link-modifier-verbatim-rustc/rust_dep.rs create mode 100644 src/test/run-make/native-link-modifier-verbatim-rustc/upstream_native_dep.rs delete mode 100644 src/test/run-make/rlib-format-packed-bundled-libs-2/Makefile delete mode 100644 src/test/run-make/rlib-format-packed-bundled-libs-2/main.rs delete mode 100644 src/test/run-make/rlib-format-packed-bundled-libs-2/native_dep.rs delete mode 100644 src/test/run-make/rlib-format-packed-bundled-libs-2/rust_dep.rs delete mode 100644 src/test/run-make/rlib-format-packed-bundled-libs/Makefile delete mode 100644 src/test/run-make/rlib-format-packed-bundled-libs/main.rs delete mode 100644 src/test/run-make/rlib-format-packed-bundled-libs/native_dep_1.c delete mode 100644 src/test/run-make/rlib-format-packed-bundled-libs/native_dep_2.c delete mode 100644 src/test/run-make/rlib-format-packed-bundled-libs/native_dep_3.c delete mode 100644 src/test/run-make/rlib-format-packed-bundled-libs/rust_dep_local.rs delete mode 100644 src/test/run-make/rlib-format-packed-bundled-libs/rust_dep_up.rs create mode 100644 src/test/rustdoc-gui/check-stab-in-docblock.goml create mode 100644 src/test/rustdoc-gui/help-page.goml create mode 100644 src/test/rustdoc-gui/highlight-colors.goml create mode 100644 src/test/rustdoc-gui/item-decl-colors.goml create mode 100644 src/test/rustdoc-gui/no-docblock.goml create mode 100644 src/test/rustdoc-gui/notable-trait.goml create mode 100644 src/test/rustdoc-gui/sidebar-links-color.goml create mode 100644 src/test/rustdoc-gui/unsafe-fn.goml create mode 100644 src/test/rustdoc-json/primitives/primitive_impls.rs rename src/test/rustdoc-json/{ => primitives}/primitive_overloading.rs (100%) rename src/test/rustdoc-json/{primitives.rs => primitives/primitive_type.rs} (100%) rename src/test/rustdoc-json/{primitive.rs => primitives/use_primitive.rs} (88%) create mode 100644 src/test/rustdoc-json/reexport/reexport_method_from_private_module.rs create mode 100644 src/test/rustdoc-ui/doc_cfg_hide.rs create mode 100644 src/test/rustdoc-ui/doc_cfg_hide.stderr delete mode 100644 src/test/rustdoc-ui/infinite-recursive-type-impl-trait-return.stderr delete mode 100644 src/test/rustdoc-ui/infinite-recursive-type-impl-trait.stderr create mode 100644 src/test/rustdoc-ui/invalid-html-self-closing-tag.rs create mode 100644 src/test/rustdoc-ui/invalid-html-self-closing-tag.stderr create mode 100644 src/test/rustdoc-ui/issue-102986.rs create mode 100644 src/test/rustdoc-ui/issue-102986.stderr create mode 100644 src/test/rustdoc/array-links.link_box_generic.html create mode 100644 src/test/rustdoc/array-links.link_box_u32.html create mode 100644 src/test/rustdoc/array-links.link_slice_generic.html create mode 100644 src/test/rustdoc/array-links.link_slice_u32.html create mode 100644 src/test/rustdoc/array-links.rs create mode 100644 src/test/rustdoc/async-trait.rs create mode 100644 src/test/rustdoc/auxiliary/async-trait-dep.rs create mode 100644 src/test/rustdoc/auxiliary/reexport-doc-aux.rs create mode 100644 src/test/rustdoc/doc-notable_trait_box_is_not_an_iterator.rs create mode 100644 src/test/rustdoc/inline_cross/assoc_item_trait_bounds.out0.html create mode 100644 src/test/rustdoc/inline_cross/assoc_item_trait_bounds.out2.html create mode 100644 src/test/rustdoc/inline_cross/assoc_item_trait_bounds.out9.html create mode 100644 src/test/rustdoc/inline_cross/assoc_item_trait_bounds.rs create mode 100644 src/test/rustdoc/inline_cross/auxiliary/assoc_item_trait_bounds.rs create mode 100644 src/test/rustdoc/inline_cross/auxiliary/issue-24183.rs create mode 100644 src/test/rustdoc/inline_cross/issue-24183.method_no_where_self_sized.html create mode 100644 src/test/rustdoc/inline_cross/issue-24183.rs create mode 100644 src/test/rustdoc/intra-doc/auxiliary/issue-103463-aux.rs create mode 100644 src/test/rustdoc/intra-doc/issue-103463.rs create mode 100644 src/test/rustdoc/intra-doc/issue-104145.rs create mode 100644 src/test/rustdoc/intra-doc/no-doc-primitive.rs create mode 100644 src/test/rustdoc/issue-100241.rs create mode 100644 src/test/rustdoc/not-wf-ambiguous-normalization.rs create mode 100644 src/test/rustdoc/reexport-doc.rs create mode 100644 src/test/rustdoc/sidebar-all-page.rs create mode 100644 src/test/ui/abi/abi-typo-unstable.rs create mode 100644 src/test/ui/abi/abi-typo-unstable.stderr create mode 100644 src/test/ui/associated-consts/mismatched_impl_ty_1.rs create mode 100644 src/test/ui/associated-consts/mismatched_impl_ty_2.rs create mode 100644 src/test/ui/associated-consts/mismatched_impl_ty_3.rs rename src/test/ui/{ => associated-item}/impl-duplicate-methods.rs (57%) create mode 100644 src/test/ui/associated-item/impl-duplicate-methods.stderr create mode 100644 src/test/ui/async-await/feature-gate-async_fn_in_trait.rs create mode 100644 src/test/ui/async-await/feature-gate-async_fn_in_trait.stderr create mode 100644 src/test/ui/async-await/in-trait/async-associated-types.rs create mode 100644 src/test/ui/async-await/in-trait/async-associated-types.stderr create mode 100644 src/test/ui/async-await/in-trait/async-associated-types2.rs create mode 100644 src/test/ui/async-await/in-trait/async-example-desugared-boxed-in-trait.rs create mode 100644 src/test/ui/async-await/in-trait/async-example-desugared-boxed-in-trait.stderr create mode 100644 src/test/ui/async-await/in-trait/async-example-desugared-boxed.rs create mode 100644 src/test/ui/async-await/in-trait/async-example-desugared-in-trait.rs create mode 100644 src/test/ui/async-await/in-trait/async-example-desugared.rs create mode 100644 src/test/ui/async-await/in-trait/async-example.rs create mode 100644 src/test/ui/async-await/in-trait/async-generics-and-bounds.rs create mode 100644 src/test/ui/async-await/in-trait/async-generics-and-bounds.stderr create mode 100644 src/test/ui/async-await/in-trait/async-generics.rs create mode 100644 src/test/ui/async-await/in-trait/async-generics.stderr create mode 100644 src/test/ui/async-await/in-trait/async-lifetimes-and-bounds.rs create mode 100644 src/test/ui/async-await/in-trait/async-lifetimes-and-bounds.stderr create mode 100644 src/test/ui/async-await/in-trait/async-lifetimes.rs create mode 100644 src/test/ui/async-await/in-trait/async-lifetimes.stderr create mode 100644 src/test/ui/async-await/in-trait/async-recursive-generic.rs create mode 100644 src/test/ui/async-await/in-trait/async-recursive-generic.stderr create mode 100644 src/test/ui/async-await/in-trait/async-recursive.rs create mode 100644 src/test/ui/async-await/in-trait/async-recursive.stderr create mode 100644 src/test/ui/async-await/in-trait/fn-not-async-err.rs create mode 100644 src/test/ui/async-await/in-trait/fn-not-async-err.stderr create mode 100644 src/test/ui/async-await/in-trait/fn-not-async-err2.rs create mode 100644 src/test/ui/async-await/in-trait/fn-not-async-err2.stderr create mode 100644 src/test/ui/async-await/in-trait/issue-102138.rs create mode 100644 src/test/ui/async-await/in-trait/issue-102219.rs create mode 100644 src/test/ui/async-await/in-trait/issue-102310.rs rename src/test/ui/{issues => async-await}/issue-73541-3.rs (100%) rename src/test/ui/{issues => async-await}/issue-73541-3.stderr (100%) rename src/test/ui/{issues => async-await}/issue-73541.rs (100%) rename src/test/ui/{issues => async-await}/issue-73541.stderr (100%) create mode 100644 src/test/ui/async-await/issue-98634.rs create mode 100644 src/test/ui/async-await/issue-98634.stderr create mode 100644 src/test/ui/attr-from-macro.rs create mode 100644 src/test/ui/auxiliary/attr-from-macro.rs create mode 100644 src/test/ui/borrowck/anonymous-region-in-apit.rs create mode 100644 src/test/ui/borrowck/anonymous-region-in-apit.stderr create mode 100644 src/test/ui/borrowck/issue-102209.rs create mode 100644 src/test/ui/borrowck/issue-102209.stderr create mode 100644 src/test/ui/borrowck/issue-103250.rs create mode 100644 src/test/ui/borrowck/issue-103250.stderr create mode 100644 src/test/ui/borrowck/issue-103624.rs create mode 100644 src/test/ui/borrowck/issue-103624.stderr rename src/test/ui/{issues => borrowck}/issue-17718-static-move.rs (100%) rename src/test/ui/{issues => borrowck}/issue-17718-static-move.stderr (100%) rename src/test/ui/{issues => borrowck}/issue-23338-params-outlive-temps-of-body.rs (100%) create mode 100644 src/test/ui/borrowck/reborrow-sugg-move-then-borrow.rs create mode 100644 src/test/ui/borrowck/reborrow-sugg-move-then-borrow.stderr create mode 100644 src/test/ui/borrowck/suggest-assign-rvalue.rs create mode 100644 src/test/ui/borrowck/suggest-assign-rvalue.stderr create mode 100644 src/test/ui/cfg/cfg-method-receiver-ok.rs create mode 100644 src/test/ui/cfg/cfg-method-receiver.rs create mode 100644 src/test/ui/cfg/cfg-method-receiver.stderr create mode 100644 src/test/ui/closures/closure-return-type-must-be-sized.rs create mode 100644 src/test/ui/closures/closure-return-type-must-be-sized.stderr create mode 100644 src/test/ui/closures/issue-101696.rs create mode 100644 src/test/ui/closures/issue-102089-multiple-opaque-cast.rs create mode 100644 src/test/ui/closures/issue-97607.rs create mode 100644 src/test/ui/closures/multiple-fn-bounds.rs create mode 100644 src/test/ui/closures/multiple-fn-bounds.stderr create mode 100644 src/test/ui/coercion/issue-36007.rs create mode 100644 src/test/ui/coherence/coherence-negative-impls-copy-bad.rs create mode 100644 src/test/ui/coherence/coherence-negative-impls-copy-bad.stderr create mode 100644 src/test/ui/coherence/coherence-negative-impls-copy.rs create mode 100644 src/test/ui/const-generics/generic_const_exprs/issue-102074.rs create mode 100644 src/test/ui/const-generics/generic_const_exprs/issue-102768.rs create mode 100644 src/test/ui/const-generics/generic_const_exprs/issue-102768.stderr create mode 100644 src/test/ui/const-generics/issue-102124.rs delete mode 100644 src/test/ui/const-generics/issue-103243.rs create mode 100644 src/test/ui/const_prop/issue-102553.rs create mode 100644 src/test/ui/consts/const-err-late.rs create mode 100644 src/test/ui/consts/const-err-late.stderr delete mode 100644 src/test/ui/consts/const-err.rs delete mode 100644 src/test/ui/consts/const-err.stderr create mode 100644 src/test/ui/consts/const-eval/issue-100878.rs delete mode 100644 src/test/ui/consts/const-eval/pub_const_err.rs delete mode 100644 src/test/ui/consts/const-eval/pub_const_err.stderr delete mode 100644 src/test/ui/consts/const-eval/pub_const_err_bin.rs delete mode 100644 src/test/ui/consts/const-eval/pub_const_err_bin.stderr create mode 100644 src/test/ui/consts/constifconst-call-in-const-position.rs create mode 100644 src/test/ui/consts/constifconst-call-in-const-position.stderr create mode 100644 src/test/ui/consts/issue-102117.rs create mode 100644 src/test/ui/consts/issue-102117.stderr create mode 100644 src/test/ui/consts/issue-104155.rs rename src/test/ui/{issues => consts}/issue-17718-constants-not-static.rs (100%) rename src/test/ui/{issues => consts}/issue-17718-constants-not-static.stderr (100%) create mode 100644 src/test/ui/consts/miri_unleashed/const_refers_to_static.32bit.stderr create mode 100644 src/test/ui/consts/miri_unleashed/const_refers_to_static.64bit.stderr delete mode 100644 src/test/ui/consts/miri_unleashed/const_refers_to_static.stderr delete mode 100644 src/test/ui/consts/miri_unleashed/const_refers_to_static2.32bit.stderr delete mode 100644 src/test/ui/consts/miri_unleashed/const_refers_to_static2.64bit.stderr delete mode 100644 src/test/ui/consts/miri_unleashed/const_refers_to_static2.rs create mode 100644 src/test/ui/drop/issue-100276.rs rename src/test/ui/{issues => drop}/issue-17718-const-destructors.rs (100%) rename src/test/ui/{issues => drop}/issue-23338-ensure-param-drop-order.rs (100%) rename src/test/ui/{issues => drop}/issue-48962.rs (100%) rename src/test/ui/{issues => dropck}/issue-24805-dropck-itemless.rs (100%) create mode 100644 src/test/ui/dyn-star/auxiliary/dyn-star-foreign.rs create mode 100644 src/test/ui/dyn-star/box.rs create mode 100644 src/test/ui/dyn-star/no-explicit-dyn-star-cast.rs create mode 100644 src/test/ui/dyn-star/no-explicit-dyn-star-cast.stderr create mode 100644 src/test/ui/dyn-star/no-explicit-dyn-star.rs create mode 100644 src/test/ui/dyn-star/no-explicit-dyn-star.stderr create mode 100644 src/test/ui/dyn-star/no-implicit-dyn-star.rs create mode 100644 src/test/ui/dyn-star/no-implicit-dyn-star.stderr create mode 100644 src/test/ui/dyn-star/upcast.rs delete mode 100644 src/test/ui/enum-discriminant/feature-gate-arbitrary_enum_discriminant.rs delete mode 100644 src/test/ui/enum-discriminant/feature-gate-arbitrary_enum_discriminant.stderr create mode 100644 src/test/ui/error-codes/E0311.rs create mode 100644 src/test/ui/error-codes/E0311.stderr delete mode 100644 src/test/ui/feature-gates/feature-gate-asm_sym.rs delete mode 100644 src/test/ui/feature-gates/feature-gate-asm_sym.stderr create mode 100644 src/test/ui/fmt/auxiliary/format-string-proc-macro.rs create mode 100644 src/test/ui/fmt/format-args-capture-issue-102057.rs create mode 100644 src/test/ui/fmt/format-args-capture-issue-102057.stderr delete mode 100644 src/test/ui/fmt/format-concat-span.stderr rename src/test/ui/fmt/{format-concat-span.rs => format-expanded-string.rs} (70%) create mode 100644 src/test/ui/fmt/format-expanded-string.stderr create mode 100644 src/test/ui/function-pointer/issue-102289.rs create mode 100644 src/test/ui/function-pointer/sized-ret-with-binder.rs create mode 100644 src/test/ui/function-pointer/unsized-ret.rs create mode 100644 src/test/ui/function-pointer/unsized-ret.stderr create mode 100644 src/test/ui/generator/issue-102645.rs create mode 100644 src/test/ui/generator/issue-102645.stderr delete mode 100644 src/test/ui/generic-associated-types/bugs/issue-86218.stderr delete mode 100644 src/test/ui/generic-associated-types/bugs/issue-89008.stderr create mode 100644 src/test/ui/generic-associated-types/issue-102114.rs create mode 100644 src/test/ui/generic-associated-types/issue-102114.stderr create mode 100644 src/test/ui/generic-associated-types/issue-86218-2.rs rename src/test/ui/generic-associated-types/{bugs => }/issue-86218.rs (70%) rename src/test/ui/generic-associated-types/{bugs => }/issue-89008.rs (55%) create mode 100644 src/test/ui/generics/issue-94923.rs create mode 100644 src/test/ui/half-open-range-patterns/feature-gate-half-open-range-patterns-in-slices.rs create mode 100644 src/test/ui/half-open-range-patterns/feature-gate-half-open-range-patterns-in-slices.stderr delete mode 100644 src/test/ui/half-open-range-patterns/feature-gate-half-open-range-patterns.rs delete mode 100644 src/test/ui/half-open-range-patterns/feature-gate-half-open-range-patterns.stderr create mode 100644 src/test/ui/higher-rank-trait-bounds/issue-100689.rs create mode 100644 src/test/ui/higher-rank-trait-bounds/issue-102899.rs delete mode 100644 src/test/ui/higher-rank-trait-bounds/issue-95034.stderr create mode 100644 src/test/ui/hygiene/impl_items-2.rs create mode 100644 src/test/ui/hygiene/impl_items-2.stderr delete mode 100644 src/test/ui/impl-duplicate-methods.stderr create mode 100644 src/test/ui/impl-trait/in-trait/auxiliary/rpitit.rs create mode 100644 src/test/ui/impl-trait/in-trait/default-body-type-err-2.rs create mode 100644 src/test/ui/impl-trait/in-trait/default-body-type-err-2.stderr create mode 100644 src/test/ui/impl-trait/in-trait/default-body-type-err.rs create mode 100644 src/test/ui/impl-trait/in-trait/default-body-type-err.stderr create mode 100644 src/test/ui/impl-trait/in-trait/default-body-with-rpit.rs create mode 100644 src/test/ui/impl-trait/in-trait/default-body.rs create mode 100644 src/test/ui/impl-trait/in-trait/early.rs create mode 100644 src/test/ui/impl-trait/in-trait/foreign.rs create mode 100644 src/test/ui/impl-trait/in-trait/issue-102140.rs create mode 100644 src/test/ui/impl-trait/in-trait/issue-102140.stderr create mode 100644 src/test/ui/impl-trait/in-trait/issue-102301.rs create mode 100644 src/test/ui/impl-trait/in-trait/issue-102571.rs create mode 100644 src/test/ui/impl-trait/in-trait/issue-102571.stderr create mode 100644 src/test/ui/impl-trait/in-trait/signature-mismatch.rs create mode 100644 src/test/ui/impl-trait/in-trait/signature-mismatch.stderr create mode 100644 src/test/ui/impl-trait/issue-102605.rs create mode 100644 src/test/ui/impl-trait/issue-102605.stderr create mode 100644 src/test/ui/impl-trait/issue-103181-1.rs create mode 100644 src/test/ui/impl-trait/issue-103181-1.stderr create mode 100644 src/test/ui/impl-trait/issue-103181-2.rs create mode 100644 src/test/ui/impl-trait/issue-103181-2.stderr create mode 100644 src/test/ui/impl-trait/nested-return-type2-tait.stderr create mode 100644 src/test/ui/impl-trait/nested-return-type2.stderr create mode 100644 src/test/ui/impl-trait/nested-return-type3-tait.stderr create mode 100644 src/test/ui/impl-trait/nested-return-type3-tait2.stderr create mode 100644 src/test/ui/impl-trait/nested-return-type3-tait3.stderr create mode 100644 src/test/ui/impl-trait/nested-return-type3.stderr create mode 100644 src/test/ui/impl-trait/normalize-tait-in-const.rs create mode 100644 src/test/ui/impl-trait/normalize-tait-in-const.stderr create mode 100644 src/test/ui/impl-trait/unactionable_diagnostic.fixed create mode 100644 src/test/ui/impl-trait/unactionable_diagnostic.rs create mode 100644 src/test/ui/impl-trait/unactionable_diagnostic.stderr rename src/test/ui/{issues => inference}/issue-36053.rs (100%) create mode 100644 src/test/ui/inference/need_type_info/do-not-suggest-generic-arguments-for-turbofish.rs create mode 100644 src/test/ui/inference/need_type_info/do-not-suggest-generic-arguments-for-turbofish.stderr create mode 100644 src/test/ui/inference/need_type_info/issue-103053.rs create mode 100644 src/test/ui/inference/need_type_info/issue-103053.stderr create mode 100644 src/test/ui/intrinsics/safe-intrinsic-mismatch.rs create mode 100644 src/test/ui/intrinsics/safe-intrinsic-mismatch.stderr create mode 100644 src/test/ui/issues/issue-102964.rs create mode 100644 src/test/ui/issues/issue-102964.stderr delete mode 100644 src/test/ui/issues/issue-3563-2.rs delete mode 100644 src/test/ui/issues/issue-77993-1.rs delete mode 100644 src/test/ui/issues/issue-77993-1.stderr create mode 100644 src/test/ui/lexer/lex-emoji-identifiers.rs create mode 100644 src/test/ui/lexer/lex-emoji-identifiers.stderr create mode 100644 src/test/ui/lifetimes/elided-lifetime-in-param-pat.rs create mode 100644 src/test/ui/lifetimes/nested-binder-print.rs create mode 100644 src/test/ui/lifetimes/nested-binder-print.stderr create mode 100644 src/test/ui/lifetimes/unusual-rib-combinations.rs create mode 100644 src/test/ui/lifetimes/unusual-rib-combinations.stderr create mode 100644 src/test/ui/lint/auxiliary/trivial-cast-ice.rs create mode 100644 src/test/ui/lint/for_loop_over_fallibles.rs create mode 100644 src/test/ui/lint/for_loop_over_fallibles.stderr rename src/test/ui/lint/{uninitialized-zeroed.rs => invalid_value.rs} (81%) rename src/test/ui/lint/{uninitialized-zeroed.stderr => invalid_value.stderr} (74%) create mode 100644 src/test/ui/lint/issue-102705.rs create mode 100644 src/test/ui/lint/trivial-cast-ice.rs create mode 100644 src/test/ui/lint/unused/unused-supertrait.rs create mode 100644 src/test/ui/lint/unused/unused-supertrait.stderr create mode 100644 src/test/ui/macros/issue-102878.rs create mode 100644 src/test/ui/macros/issue-102878.stderr create mode 100644 src/test/ui/macros/macro_rules-unmatchable-literals.rs create mode 100644 src/test/ui/macros/macro_rules-unmatchable-literals.stderr create mode 100644 src/test/ui/macros/syntax-error-recovery.rs create mode 100644 src/test/ui/macros/syntax-error-recovery.stderr create mode 100644 src/test/ui/marker_trait_attr/overlap-marker-trait-with-static-lifetime.rs create mode 100644 src/test/ui/marker_trait_attr/overlap-marker-trait-with-underscore-lifetime.rs create mode 100644 src/test/ui/marker_trait_attr/overlap-marker-trait-with-underscore-lifetime.stderr create mode 100644 src/test/ui/mismatched_types/show_module.rs create mode 100644 src/test/ui/mismatched_types/show_module.stderr create mode 100644 src/test/ui/mismatched_types/similar_paths.rs create mode 100644 src/test/ui/mismatched_types/similar_paths.stderr create mode 100644 src/test/ui/mismatched_types/similar_paths_primitive.rs create mode 100644 src/test/ui/mismatched_types/similar_paths_primitive.stderr create mode 100644 src/test/ui/native-library-link-flags/suggest-libname-only-1.rs create mode 100644 src/test/ui/native-library-link-flags/suggest-libname-only-1.stderr create mode 100644 src/test/ui/native-library-link-flags/suggest-libname-only-2.rs create mode 100644 src/test/ui/native-library-link-flags/suggest-libname-only-2.stderr rename src/test/ui/{issues => never_type}/issue-5500-1.rs (100%) create mode 100644 src/test/ui/nll/closure-malformed-projection-input-issue-102800.rs create mode 100644 src/test/ui/nll/closure-malformed-projection-input-issue-102800.stderr create mode 100644 src/test/ui/object-safety/issue-102762.rs create mode 100644 src/test/ui/object-safety/issue-102762.stderr create mode 100644 src/test/ui/object-safety/issue-102933.rs create mode 100644 src/test/ui/object-safety/object-safety-supertrait-mentions-GAT.rs create mode 100644 src/test/ui/object-safety/object-safety-supertrait-mentions-GAT.stderr create mode 100644 src/test/ui/parser/bad-let-as-field.rs create mode 100644 src/test/ui/parser/bad-let-as-field.stderr create mode 100644 src/test/ui/parser/double-pointer.rs create mode 100644 src/test/ui/parser/double-pointer.stderr create mode 100644 src/test/ui/parser/issue-103143.rs create mode 100644 src/test/ui/parser/issue-103143.stderr create mode 100644 src/test/ui/parser/issue-103425.rs create mode 100644 src/test/ui/parser/issue-103425.stderr rename src/test/ui/{issues => parser}/issue-17718-parse-const.rs (100%) create mode 100644 src/test/ui/parser/issues/issue-101540.rs create mode 100644 src/test/ui/parser/issues/issue-101540.stderr create mode 100644 src/test/ui/parser/issues/issue-102182-impl-trait-recover.rs create mode 100644 src/test/ui/parser/issues/issue-102182-impl-trait-recover.stderr delete mode 100644 src/test/ui/parser/issues/issue-17383.rs delete mode 100644 src/test/ui/parser/issues/issue-17383.stderr create mode 100644 src/test/ui/parser/item-needs-block.rs create mode 100644 src/test/ui/parser/item-needs-block.stderr create mode 100644 src/test/ui/parser/label-after-block-like.rs create mode 100644 src/test/ui/parser/label-after-block-like.stderr create mode 100644 src/test/ui/parser/label-is-actually-char.rs create mode 100644 src/test/ui/parser/label-is-actually-char.stderr create mode 100644 src/test/ui/parser/removed-syntax-field-let-2.rs create mode 100644 src/test/ui/parser/removed-syntax-field-let-2.stderr create mode 100644 src/test/ui/parser/semi-after-closure-in-macro.rs delete mode 100644 src/test/ui/parser/tag-variant-disr-non-nullary.rs delete mode 100644 src/test/ui/parser/tag-variant-disr-non-nullary.stderr rename src/test/ui/{issues => pattern}/issue-17718-patterns.rs (100%) rename src/test/ui/{issues => pattern}/issue-17718-patterns.stderr (100%) delete mode 100644 src/test/ui/privacy/access_levels.rs delete mode 100644 src/test/ui/privacy/access_levels.stderr rename src/test/ui/{issues => privacy}/auxiliary/issue-17718-const-privacy.rs (100%) create mode 100644 src/test/ui/privacy/effective_visibilities.rs create mode 100644 src/test/ui/privacy/effective_visibilities.stderr rename src/test/ui/{issues => privacy}/issue-17718-const-privacy.rs (100%) rename src/test/ui/{issues => privacy}/issue-17718-const-privacy.stderr (100%) delete mode 100644 src/test/ui/proc-macro/issue-73933-procedural-masquerade.stderr create mode 100644 src/test/ui/proc-macro/pretty-print-hack-hide.rs create mode 100644 src/test/ui/proc-macro/pretty-print-hack-hide.stdout create mode 100644 src/test/ui/proc-macro/pretty-print-hack-show.rs create mode 100644 src/test/ui/proc-macro/pretty-print-hack-show.stderr create mode 100644 src/test/ui/proc-macro/pretty-print-hack-show.stdout create mode 100644 src/test/ui/proc-macro/pretty-print-hack/allsorts-rental-0.5.6/src/lib.rs create mode 100644 src/test/ui/proc-macro/pretty-print-hack/rental-0.5.5/src/lib.rs create mode 100644 src/test/ui/proc-macro/pretty-print-hack/rental-0.5.6/src/lib.rs create mode 100644 src/test/ui/query-system/query_depth.rs create mode 100644 src/test/ui/query-system/query_depth.stderr create mode 100644 src/test/ui/query-visibility.rs delete mode 100644 src/test/ui/recursion/issue-95134.stderr create mode 100644 src/test/ui/regions/issue-101280.rs create mode 100644 src/test/ui/regions/issue-101280.stderr create mode 100644 src/test/ui/regions/issue-102374.rs create mode 100644 src/test/ui/regions/issue-102374.stderr create mode 100644 src/test/ui/regions/issue-102392.rs create mode 100644 src/test/ui/regions/issue-102392.stderr create mode 100644 src/test/ui/resolve/issue-102946.rs create mode 100644 src/test/ui/resolve/issue-102946.stderr create mode 100644 src/test/ui/resolve/issue-103202.rs create mode 100644 src/test/ui/resolve/issue-103202.stderr create mode 100644 src/test/ui/resolve/name-collision-in-trait-fn-sig.rs rename src/test/ui/{issues => return}/issue-64620.rs (100%) rename src/test/ui/{issues => return}/issue-64620.stderr (100%) create mode 100644 src/test/ui/rfc-1937-termination-trait/issue-103052-1.rs create mode 100644 src/test/ui/rfc-1937-termination-trait/issue-103052-1.stderr create mode 100644 src/test/ui/rfc-1937-termination-trait/issue-103052-2.rs create mode 100644 src/test/ui/rfc-1937-termination-trait/issue-103052-2.stderr create mode 100644 src/test/ui/rfc-2632-const-trait-impl/assoc-type-const-bound-usage.rs create mode 100644 src/test/ui/rfc-2632-const-trait-impl/const-impl-requires-const-trait.rs create mode 100644 src/test/ui/rfc-2632-const-trait-impl/const-impl-requires-const-trait.stderr create mode 100644 src/test/ui/rfc-2632-const-trait-impl/issue-102156.rs create mode 100644 src/test/ui/rfc-2632-const-trait-impl/issue-102156.stderr create mode 100644 src/test/ui/rfc-2632-const-trait-impl/issue-102985.rs create mode 100644 src/test/ui/rfc-2632-const-trait-impl/issue-102985.stderr create mode 100644 src/test/ui/rfc-2632-const-trait-impl/issue-103677.rs create mode 100644 src/test/ui/rfc-2632-const-trait-impl/issue-90052.rs create mode 100644 src/test/ui/rfc-2632-const-trait-impl/issue-90052.stderr create mode 100644 src/test/ui/rfc-2632-const-trait-impl/nested-closure.rs create mode 100644 src/test/ui/rfc-2632-const-trait-impl/specializing-constness-2.rs create mode 100644 src/test/ui/rfc-2632-const-trait-impl/specializing-constness-2.stderr create mode 100644 src/test/ui/rfc-2632-const-trait-impl/specializing-constness.rs create mode 100644 src/test/ui/rfc-2632-const-trait-impl/specializing-constness.stderr create mode 100644 src/test/ui/rfc-2632-const-trait-impl/static-const-trait-bound.rs create mode 100644 src/test/ui/rfc-2632-const-trait-impl/super-traits-fail-2.nn.stderr create mode 100644 src/test/ui/rfc-2632-const-trait-impl/super-traits-fail-2.ny.stderr delete mode 100644 src/test/ui/rfc-2632-const-trait-impl/super-traits-fail-2.stderr create mode 100644 src/test/ui/rfc-2632-const-trait-impl/super-traits-fail-2.yn.stderr create mode 100644 src/test/ui/rfc-2632-const-trait-impl/super-traits-fail-2.yy.stderr create mode 100644 src/test/ui/rfc-2632-const-trait-impl/super-traits-fail-3.nn.stderr create mode 100644 src/test/ui/rfc-2632-const-trait-impl/super-traits-fail-3.ny.stderr create mode 100644 src/test/ui/rfc-2632-const-trait-impl/super-traits-fail-3.rs create mode 100644 src/test/ui/rfc-2632-const-trait-impl/super-traits-fail-3.yn.stderr create mode 100644 src/test/ui/rfc-2632-const-trait-impl/tilde-const-and-const-params.rs create mode 100644 src/test/ui/rfc-2632-const-trait-impl/tilde-const-and-const-params.stderr create mode 100644 src/test/ui/rfc-2632-const-trait-impl/tilde_const_on_impl_bound.rs create mode 100644 src/test/ui/rfc-2632-const-trait-impl/trait-where-clause-const.rs create mode 100644 src/test/ui/rfc-2632-const-trait-impl/trait-where-clause-const.stderr create mode 100644 src/test/ui/single-use-lifetime/derive-eq.rs delete mode 100644 src/test/ui/span/issue-7575.rs delete mode 100644 src/test/ui/span/issue-7575.stderr create mode 100644 src/test/ui/specialization/const_trait_impl.rs rename src/test/ui/{issues => statics}/issue-17718-static-sync.rs (100%) rename src/test/ui/{issues => statics}/issue-17718-static-sync.stderr (100%) rename src/test/ui/{issues => statics}/issue-17718-static-unsafe-interior.rs (100%) rename src/test/ui/{issues => structs-enums}/issue-2718-a.rs (100%) rename src/test/ui/{issues => structs-enums}/issue-2718-a.stderr (74%) create mode 100644 src/test/ui/structs/incomplete-fn-in-struct-definition.rs create mode 100644 src/test/ui/structs/incomplete-fn-in-struct-definition.stderr create mode 100644 src/test/ui/suggestions/abi-typo.fixed create mode 100644 src/test/ui/suggestions/abi-typo.rs create mode 100644 src/test/ui/suggestions/abi-typo.stderr create mode 100644 src/test/ui/suggestions/call-on-unimplemented-ctor.rs create mode 100644 src/test/ui/suggestions/call-on-unimplemented-ctor.stderr create mode 100644 src/test/ui/suggestions/call-on-unimplemented-fn-ptr.rs create mode 100644 src/test/ui/suggestions/call-on-unimplemented-fn-ptr.stderr create mode 100644 src/test/ui/suggestions/fn-to-method.rs create mode 100644 src/test/ui/suggestions/fn-to-method.stderr create mode 100644 src/test/ui/suggestions/inner_type.fixed create mode 100644 src/test/ui/suggestions/inner_type.rs create mode 100644 src/test/ui/suggestions/inner_type.stderr create mode 100644 src/test/ui/suggestions/inner_type2.rs create mode 100644 src/test/ui/suggestions/inner_type2.stderr create mode 100644 src/test/ui/suggestions/into-convert.rs create mode 100644 src/test/ui/suggestions/into-convert.stderr create mode 100644 src/test/ui/suggestions/issue-101065.fixed create mode 100644 src/test/ui/suggestions/issue-101065.rs create mode 100644 src/test/ui/suggestions/issue-101065.stderr create mode 100644 src/test/ui/suggestions/issue-101623.rs create mode 100644 src/test/ui/suggestions/issue-101623.stderr create mode 100644 src/test/ui/suggestions/issue-102354.rs create mode 100644 src/test/ui/suggestions/issue-102354.stderr create mode 100644 src/test/ui/suggestions/issue-102892.rs create mode 100644 src/test/ui/suggestions/issue-102892.stderr create mode 100644 src/test/ui/suggestions/issue-103112.rs create mode 100644 src/test/ui/suggestions/issue-103112.stderr create mode 100644 src/test/ui/suggestions/sugg-else-for-closure.fixed create mode 100644 src/test/ui/suggestions/sugg-else-for-closure.rs create mode 100644 src/test/ui/suggestions/sugg-else-for-closure.stderr create mode 100644 src/test/ui/suggestions/suggest-let-for-assignment.fixed create mode 100644 src/test/ui/suggestions/suggest-let-for-assignment.rs create mode 100644 src/test/ui/suggestions/suggest-let-for-assignment.stderr create mode 100644 src/test/ui/traits/issue-102989.rs create mode 100644 src/test/ui/traits/issue-102989.stderr rename src/test/ui/{issues => traits}/issue-43784-supertrait.rs (100%) rename src/test/ui/{issues => traits}/issue-43784-supertrait.stderr (100%) rename src/test/ui/traits/trait-upcasting/{multiple-occurence-ambiguousity.rs => multiple-occurrence-ambiguousity.rs} (100%) rename src/test/ui/traits/trait-upcasting/{multiple-occurence-ambiguousity.stderr => multiple-occurrence-ambiguousity.stderr} (88%) create mode 100644 src/test/ui/transmutability/issue-101739-1.rs create mode 100644 src/test/ui/transmutability/issue-101739-1.stderr create mode 100644 src/test/ui/transmutability/issue-101739-2.rs create mode 100644 src/test/ui/transmutability/issue-101739-2.stderr delete mode 100644 src/test/ui/transmute-equal-assoc-types.stderr create mode 100644 src/test/ui/transmute/lifetimes.rs create mode 100644 src/test/ui/type-alias-impl-trait/closure_parent_substs.rs create mode 100644 src/test/ui/type-alias-impl-trait/closure_wf_outlives.rs create mode 100644 src/test/ui/type-alias-impl-trait/closure_wf_outlives.stderr delete mode 100644 src/test/ui/type-alias-impl-trait/cross_inference_pattern_bug.stderr delete mode 100644 src/test/ui/type-alias-impl-trait/cross_inference_pattern_bug_no_type.stderr create mode 100644 src/test/ui/type-alias-impl-trait/different_defining_uses_never_type.stderr create mode 100644 src/test/ui/type-alias-impl-trait/different_defining_uses_never_type3.rs create mode 100644 src/test/ui/type-alias-impl-trait/different_defining_uses_never_type3.stderr create mode 100644 src/test/ui/type-alias-impl-trait/implied_bounds.rs create mode 100644 src/test/ui/type-alias-impl-trait/implied_bounds.stderr create mode 100644 src/test/ui/type-alias-impl-trait/implied_bounds2.rs create mode 100644 src/test/ui/type-alias-impl-trait/implied_bounds3.rs create mode 100644 src/test/ui/type-alias-impl-trait/implied_bounds_closure.rs create mode 100644 src/test/ui/type-alias-impl-trait/implied_bounds_closure.stderr create mode 100644 src/test/ui/type-alias-impl-trait/implied_bounds_from_types.rs create mode 100644 src/test/ui/type-alias-impl-trait/implied_bounds_from_types.stderr create mode 100644 src/test/ui/type-alias-impl-trait/implied_lifetime_wf_check.rs create mode 100644 src/test/ui/type-alias-impl-trait/implied_lifetime_wf_check3.rs create mode 100644 src/test/ui/type-alias-impl-trait/implied_lifetime_wf_check3.stderr create mode 100644 src/test/ui/type-alias-impl-trait/implied_lifetime_wf_check4_static.rs create mode 100644 src/test/ui/type-alias-impl-trait/implied_lifetime_wf_check4_static.stderr create mode 100644 src/test/ui/type-alias-impl-trait/issue-101750.rs create mode 100644 src/test/ui/type-alias-impl-trait/issue-58662-simplified.rs create mode 100644 src/test/ui/type-alias-impl-trait/issue-96572-unconstrained-mismatch.rs create mode 100644 src/test/ui/type-alias-impl-trait/issue-96572-unconstrained-mismatch.stderr create mode 100644 src/test/ui/type-alias-impl-trait/issue-96572-unconstrained.rs create mode 100644 src/test/ui/type-alias-impl-trait/missing_lifetime_bound.rs create mode 100644 src/test/ui/type-alias-impl-trait/missing_lifetime_bound.stderr create mode 100644 src/test/ui/type-alias-impl-trait/unbounded_opaque_type.rs create mode 100644 src/test/ui/type/issue-101866.rs create mode 100644 src/test/ui/type/issue-101866.stderr create mode 100644 src/test/ui/type/issue-94187-verbose-type-name.rs create mode 100644 src/test/ui/typeck/slow-lhs-suggestion.rs create mode 100644 src/test/ui/typeck/slow-lhs-suggestion.stderr create mode 100644 src/test/ui/unresolved/unresolved-candidates.rs create mode 100644 src/test/ui/unresolved/unresolved-candidates.stderr create mode 100644 src/test/ui/wf/issue-103573.rs create mode 100644 src/test/ui/wf/issue-103573.stderr create mode 100644 src/test/ui/where-clauses/higher-ranked-fn-type.quiet.stderr create mode 100644 src/test/ui/where-clauses/higher-ranked-fn-type.rs create mode 100644 src/test/ui/where-clauses/higher-ranked-fn-type.verbose.stderr create mode 100644 src/tools/clippy/clippy_lints/src/box_default.rs create mode 100644 src/tools/clippy/clippy_lints/src/casts/as_ptr_cast_mut.rs create mode 100644 src/tools/clippy/clippy_lints/src/casts/cast_nan_to_int.rs create mode 100644 src/tools/clippy/clippy_lints/src/disallowed_macros.rs delete mode 100644 src/tools/clippy/clippy_lints/src/doc_link_with_quotes.rs create mode 100644 src/tools/clippy/clippy_lints/src/implicit_saturating_add.rs delete mode 100644 src/tools/clippy/clippy_lints/src/loops/for_loops_over_fallibles.rs create mode 100644 src/tools/clippy/clippy_lints/src/manual_clamp.rs create mode 100644 src/tools/clippy/clippy_lints/src/matches/manual_filter.rs create mode 100644 src/tools/clippy/clippy_lints/src/matches/manual_utils.rs create mode 100644 src/tools/clippy/clippy_lints/src/methods/iter_kv_map.rs create mode 100644 src/tools/clippy/clippy_lints/src/missing_trait_methods.rs create mode 100644 src/tools/clippy/clippy_lints/src/partial_pub_fields.rs create mode 100644 src/tools/clippy/clippy_lints/src/utils/internal_lints/clippy_lints_internal.rs create mode 100644 src/tools/clippy/clippy_lints/src/utils/internal_lints/collapsible_calls.rs create mode 100644 src/tools/clippy/clippy_lints/src/utils/internal_lints/compiler_lint_functions.rs create mode 100644 src/tools/clippy/clippy_lints/src/utils/internal_lints/if_chain_style.rs create mode 100644 src/tools/clippy/clippy_lints/src/utils/internal_lints/interning_defined_symbol.rs create mode 100644 src/tools/clippy/clippy_lints/src/utils/internal_lints/invalid_paths.rs create mode 100644 src/tools/clippy/clippy_lints/src/utils/internal_lints/lint_without_lint_pass.rs create mode 100644 src/tools/clippy/clippy_lints/src/utils/internal_lints/msrv_attr_impl.rs create mode 100644 src/tools/clippy/clippy_lints/src/utils/internal_lints/outer_expn_data_pass.rs create mode 100644 src/tools/clippy/clippy_lints/src/utils/internal_lints/produce_ice.rs create mode 100644 src/tools/clippy/clippy_lints/src/utils/internal_lints/unnecessary_def_path.rs create mode 100644 src/tools/clippy/clippy_utils/src/mir/maybe_storage_live.rs create mode 100644 src/tools/clippy/clippy_utils/src/mir/mod.rs create mode 100644 src/tools/clippy/clippy_utils/src/mir/possible_borrower.rs create mode 100644 src/tools/clippy/clippy_utils/src/mir/possible_origin.rs create mode 100644 src/tools/clippy/clippy_utils/src/mir/transitive_relation.rs create mode 100644 src/tools/clippy/lintcheck/src/driver.rs create mode 100644 src/tools/clippy/lintcheck/src/recursive.rs create mode 100644 src/tools/clippy/src/docs/as_ptr_cast_mut.txt create mode 100644 src/tools/clippy/src/docs/box_default.txt create mode 100644 src/tools/clippy/src/docs/cast_nan_to_int.txt create mode 100644 src/tools/clippy/src/docs/disallowed_macros.txt delete mode 100644 src/tools/clippy/src/docs/for_loops_over_fallibles.txt create mode 100644 src/tools/clippy/src/docs/implicit_saturating_add.txt create mode 100644 src/tools/clippy/src/docs/iter_kv_map.txt create mode 100644 src/tools/clippy/src/docs/manual_clamp.txt create mode 100644 src/tools/clippy/src/docs/manual_filter.txt create mode 100644 src/tools/clippy/src/docs/missing_trait_methods.txt create mode 100644 src/tools/clippy/src/docs/partial_pub_fields.txt delete mode 100644 src/tools/clippy/src/docs/positional_named_format_parameters.txt create mode 100644 src/tools/clippy/src/docs/uninlined_format_args.txt create mode 100644 src/tools/clippy/src/docs/unused_format_specs.txt create mode 100644 src/tools/clippy/tests/ui-cargo/module_style/fail_mod_remap/Cargo.toml create mode 100644 src/tools/clippy/tests/ui-cargo/module_style/fail_mod_remap/src/bad.rs create mode 100644 src/tools/clippy/tests/ui-cargo/module_style/fail_mod_remap/src/bad/inner.rs create mode 100644 src/tools/clippy/tests/ui-cargo/module_style/fail_mod_remap/src/main.rs create mode 100644 src/tools/clippy/tests/ui-cargo/module_style/fail_mod_remap/src/main.stderr create mode 100644 src/tools/clippy/tests/ui-internal/auxiliary/paths.rs delete mode 100644 src/tools/clippy/tests/ui-internal/match_type_on_diag_item.rs delete mode 100644 src/tools/clippy/tests/ui-internal/match_type_on_diag_item.stderr create mode 100644 src/tools/clippy/tests/ui-internal/unnecessary_def_path.fixed create mode 100644 src/tools/clippy/tests/ui-internal/unnecessary_def_path.rs create mode 100644 src/tools/clippy/tests/ui-internal/unnecessary_def_path.stderr create mode 100644 src/tools/clippy/tests/ui-internal/unnecessary_def_path_hardcoded_path.rs create mode 100644 src/tools/clippy/tests/ui-internal/unnecessary_def_path_hardcoded_path.stderr create mode 100644 src/tools/clippy/tests/ui-toml/disallowed_macros/auxiliary/macros.rs create mode 100644 src/tools/clippy/tests/ui-toml/disallowed_macros/clippy.toml create mode 100644 src/tools/clippy/tests/ui-toml/disallowed_macros/disallowed_macros.rs create mode 100644 src/tools/clippy/tests/ui-toml/disallowed_macros/disallowed_macros.stderr create mode 100644 src/tools/clippy/tests/ui-toml/nonstandard_macro_braces/conf_nonstandard_macro_braces.fixed create mode 100644 src/tools/clippy/tests/ui/as_ptr_cast_mut.rs create mode 100644 src/tools/clippy/tests/ui/as_ptr_cast_mut.stderr create mode 100644 src/tools/clippy/tests/ui/box_default.fixed create mode 100644 src/tools/clippy/tests/ui/box_default.rs create mode 100644 src/tools/clippy/tests/ui/box_default.stderr create mode 100644 src/tools/clippy/tests/ui/box_default_no_std.rs create mode 100644 src/tools/clippy/tests/ui/cast_nan_to_int.rs create mode 100644 src/tools/clippy/tests/ui/cast_nan_to_int.stderr create mode 100644 src/tools/clippy/tests/ui/crashes/ice-9445.rs create mode 100644 src/tools/clippy/tests/ui/crashes/ice-9459.rs create mode 100644 src/tools/clippy/tests/ui/crashes/ice-9463.rs create mode 100644 src/tools/clippy/tests/ui/crashes/ice-9463.stderr create mode 100644 src/tools/clippy/tests/ui/crashes/ice-9625.rs create mode 100644 src/tools/clippy/tests/ui/derivable_impls.fixed delete mode 100644 src/tools/clippy/tests/ui/for_loops_over_fallibles.rs delete mode 100644 src/tools/clippy/tests/ui/for_loops_over_fallibles.stderr create mode 100644 src/tools/clippy/tests/ui/from_over_into.fixed create mode 100644 src/tools/clippy/tests/ui/from_over_into_unfixable.rs create mode 100644 src/tools/clippy/tests/ui/from_over_into_unfixable.stderr create mode 100644 src/tools/clippy/tests/ui/implicit_saturating_add.fixed create mode 100644 src/tools/clippy/tests/ui/implicit_saturating_add.rs create mode 100644 src/tools/clippy/tests/ui/implicit_saturating_add.stderr create mode 100644 src/tools/clippy/tests/ui/iter_kv_map.fixed create mode 100644 src/tools/clippy/tests/ui/iter_kv_map.rs create mode 100644 src/tools/clippy/tests/ui/iter_kv_map.stderr delete mode 100644 src/tools/clippy/tests/ui/manual_assert.fixed create mode 100644 src/tools/clippy/tests/ui/manual_clamp.rs create mode 100644 src/tools/clippy/tests/ui/manual_clamp.stderr create mode 100644 src/tools/clippy/tests/ui/manual_filter.fixed create mode 100644 src/tools/clippy/tests/ui/manual_filter.rs create mode 100644 src/tools/clippy/tests/ui/manual_filter.stderr delete mode 100644 src/tools/clippy/tests/ui/match_wild_err_arm.edition2018.stderr rename src/tools/clippy/tests/ui/{match_wild_err_arm.edition2021.stderr => match_wild_err_arm.stderr} (86%) delete mode 100644 src/tools/clippy/tests/ui/min_rust_version_multiple_inner_attr.rs delete mode 100644 src/tools/clippy/tests/ui/min_rust_version_multiple_inner_attr.stderr delete mode 100644 src/tools/clippy/tests/ui/min_rust_version_no_patch.rs delete mode 100644 src/tools/clippy/tests/ui/min_rust_version_outer_attr.rs delete mode 100644 src/tools/clippy/tests/ui/min_rust_version_outer_attr.stderr create mode 100644 src/tools/clippy/tests/ui/missing_trait_methods.rs create mode 100644 src/tools/clippy/tests/ui/missing_trait_methods.stderr delete mode 100644 src/tools/clippy/tests/ui/option_take_on_temporary.fixed create mode 100644 src/tools/clippy/tests/ui/partial_pub_fields.rs create mode 100644 src/tools/clippy/tests/ui/partial_pub_fields.stderr delete mode 100644 src/tools/clippy/tests/ui/positional_named_format_parameters.fixed delete mode 100644 src/tools/clippy/tests/ui/positional_named_format_parameters.rs delete mode 100644 src/tools/clippy/tests/ui/positional_named_format_parameters.stderr create mode 100644 src/tools/clippy/tests/ui/uninlined_format_args.fixed create mode 100644 src/tools/clippy/tests/ui/uninlined_format_args.rs create mode 100644 src/tools/clippy/tests/ui/uninlined_format_args.stderr create mode 100644 src/tools/clippy/tests/ui/uninlined_format_args_panic.edition2018.fixed create mode 100644 src/tools/clippy/tests/ui/uninlined_format_args_panic.edition2018.stderr create mode 100644 src/tools/clippy/tests/ui/uninlined_format_args_panic.edition2021.fixed create mode 100644 src/tools/clippy/tests/ui/uninlined_format_args_panic.edition2021.stderr create mode 100644 src/tools/clippy/tests/ui/uninlined_format_args_panic.rs create mode 100644 src/tools/clippy/tests/ui/unused_format_specs.fixed create mode 100644 src/tools/clippy/tests/ui/unused_format_specs.rs create mode 100644 src/tools/clippy/tests/ui/unused_format_specs.stderr create mode 100644 src/tools/clippy/tests/ui/unused_format_specs_unfixable.rs create mode 100644 src/tools/clippy/tests/ui/unused_format_specs_unfixable.stderr create mode 100644 src/tools/rust-analyzer/crates/ide-assists/src/handlers/convert_named_struct_to_tuple_struct.rs create mode 100644 src/tools/rust-analyzer/crates/ide-assists/src/handlers/move_format_string_arg.rs create mode 100644 src/tools/rust-analyzer/crates/ide-assists/src/handlers/unwrap_tuple.rs create mode 100644 src/tools/rust-analyzer/crates/ide-completion/src/completions/env_vars.rs create mode 100644 src/tools/rust-analyzer/crates/ide-db/src/syntax_helpers/format_string_exprs.rs rename src/tools/rust-analyzer/crates/ide/src/{ => annotations}/fn_references.rs (61%) create mode 100644 src/tools/tidy/src/alphabetical.rs rename vendor/{clap => clap-3.2.20}/.cargo-checksum.json (100%) rename vendor/{clap => clap-3.2.20}/Cargo.lock (100%) rename vendor/{clap => clap-3.2.20}/Cargo.toml (100%) rename vendor/{clap => clap-3.2.20}/LICENSE-APACHE (100%) rename vendor/{clap => clap-3.2.20}/LICENSE-MIT (100%) rename vendor/{clap => clap-3.2.20}/README.md (100%) rename vendor/{clap => clap-3.2.20}/examples/cargo-example-derive.md (100%) rename vendor/{clap => clap-3.2.20}/examples/cargo-example-derive.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/cargo-example.md (100%) rename vendor/{clap => clap-3.2.20}/examples/cargo-example.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/demo.md (100%) rename vendor/{clap => clap-3.2.20}/examples/demo.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/derive_ref/augment_args.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/derive_ref/augment_subcommands.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/derive_ref/custom-bool.md (100%) rename vendor/{clap => clap-3.2.20}/examples/derive_ref/custom-bool.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/derive_ref/flatten_hand_args.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/derive_ref/hand_subcommand.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/derive_ref/interop_tests.md (100%) rename vendor/{clap => clap-3.2.20}/examples/escaped-positional-derive.md (100%) rename vendor/{clap => clap-3.2.20}/examples/escaped-positional-derive.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/escaped-positional.md (100%) rename vendor/{clap => clap-3.2.20}/examples/escaped-positional.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/git-derive.md (100%) rename vendor/{clap => clap-3.2.20}/examples/git-derive.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/git.md (100%) rename vendor/{clap => clap-3.2.20}/examples/git.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/multicall-busybox.md (100%) rename vendor/{clap => clap-3.2.20}/examples/multicall-busybox.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/multicall-hostname.md (100%) rename vendor/{clap => clap-3.2.20}/examples/multicall-hostname.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/pacman.md (100%) rename vendor/{clap => clap-3.2.20}/examples/pacman.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/repl.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/01_quick.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/01_quick.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/02_app_settings.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/02_app_settings.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/02_apps.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/02_apps.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/02_crate.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/02_crate.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/03_01_flag_bool.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/03_01_flag_bool.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/03_01_flag_count.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/03_01_flag_count.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/03_02_option.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/03_02_option.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/03_03_positional.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/03_03_positional.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/03_04_subcommands.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/03_04_subcommands.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/03_05_default_values.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/03_05_default_values.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/04_01_enum.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/04_01_enum.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/04_01_possible.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/04_01_possible.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/04_02_parse.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/04_02_parse.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/04_02_validate.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/04_02_validate.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/04_03_relations.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/04_03_relations.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/04_04_custom.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/04_04_custom.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_builder/05_01_assert.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/01_quick.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/01_quick.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/02_app_settings.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/02_app_settings.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/02_apps.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/02_apps.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/02_crate.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/02_crate.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/03_01_flag_bool.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/03_01_flag_bool.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/03_01_flag_count.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/03_01_flag_count.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/03_02_option.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/03_02_option.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/03_03_positional.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/03_03_positional.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/03_04_subcommands.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/03_04_subcommands.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/03_04_subcommands_alt.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/03_05_default_values.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/03_05_default_values.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/04_01_enum.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/04_01_enum.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/04_02_parse.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/04_02_parse.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/04_02_validate.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/04_02_validate.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/04_03_relations.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/04_03_relations.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/04_04_custom.md (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/04_04_custom.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/tutorial_derive/05_01_assert.rs (100%) rename vendor/{clap => clap-3.2.20}/examples/typed-derive.md (100%) rename vendor/{clap => clap-3.2.20}/examples/typed-derive.rs (100%) rename vendor/{clap => clap-3.2.20}/src/_cookbook/cargo_example.rs (100%) rename vendor/{clap => clap-3.2.20}/src/_cookbook/cargo_example_derive (100%) rename vendor/{clap => clap-3.2.20}/src/_cookbook/cargo_example_derive.rs (100%) rename vendor/{clap => clap-3.2.20}/src/_cookbook/escaped_positional.rs (100%) rename vendor/{clap => clap-3.2.20}/src/_cookbook/escaped_positional_derive.rs (100%) rename vendor/{clap => clap-3.2.20}/src/_cookbook/git.rs (100%) rename vendor/{clap => clap-3.2.20}/src/_cookbook/git_derive.rs (100%) rename vendor/{clap => clap-3.2.20}/src/_cookbook/mod.rs (100%) rename vendor/{clap => clap-3.2.20}/src/_cookbook/multicall_busybox.rs (100%) rename vendor/{clap => clap-3.2.20}/src/_cookbook/multicall_hostname.rs (100%) rename vendor/{clap => clap-3.2.20}/src/_cookbook/pacman.rs (100%) rename vendor/{clap => clap-3.2.20}/src/_cookbook/repl.rs (100%) rename vendor/{clap => clap-3.2.20}/src/_cookbook/typed_derive.rs (100%) rename vendor/{clap => clap-3.2.20}/src/_derive/_tutorial.rs (100%) rename vendor/{clap => clap-3.2.20}/src/_derive/mod.rs (100%) rename vendor/{clap => clap-3.2.20}/src/_faq.rs (100%) rename vendor/{clap => clap-3.2.20}/src/_features.rs (100%) rename vendor/{clap => clap-3.2.20}/src/_tutorial.rs (100%) rename vendor/{clap => clap-3.2.20}/src/bin/stdio-fixture.rs (100%) rename vendor/{clap => clap-3.2.20}/src/builder/action.rs (100%) rename vendor/{clap => clap-3.2.20}/src/builder/app_settings.rs (100%) rename vendor/{clap => clap-3.2.20}/src/builder/arg.rs (100%) rename vendor/{clap => clap-3.2.20}/src/builder/arg_group.rs (100%) rename vendor/{clap => clap-3.2.20}/src/builder/arg_predicate.rs (100%) rename vendor/{clap => clap-3.2.20}/src/builder/arg_settings.rs (100%) rename vendor/{clap => clap-3.2.20}/src/builder/command.rs (100%) rename vendor/{clap => clap-3.2.20}/src/builder/debug_asserts.rs (100%) rename vendor/{clap => clap-3.2.20}/src/builder/macros.rs (100%) rename vendor/{clap => clap-3.2.20}/src/builder/mod.rs (100%) rename vendor/{clap => clap-3.2.20}/src/builder/possible_value.rs (100%) rename vendor/{clap => clap-3.2.20}/src/builder/regex.rs (100%) rename vendor/{clap => clap-3.2.20}/src/builder/tests.rs (100%) rename vendor/{clap => clap-3.2.20}/src/builder/usage_parser.rs (100%) rename vendor/{clap => clap-3.2.20}/src/builder/value_hint.rs (100%) rename vendor/{clap => clap-3.2.20}/src/builder/value_parser.rs (100%) rename vendor/{clap => clap-3.2.20}/src/derive.rs (100%) rename vendor/{clap => clap-3.2.20}/src/error/context.rs (100%) rename vendor/{clap => clap-3.2.20}/src/error/kind.rs (100%) rename vendor/{clap => clap-3.2.20}/src/error/mod.rs (100%) rename vendor/{clap => clap-3.2.20}/src/lib.rs (100%) rename vendor/{clap => clap-3.2.20}/src/macros.rs (100%) rename vendor/{clap => clap-3.2.20}/src/mkeymap.rs (100%) rename vendor/{clap => clap-3.2.20}/src/output/fmt.rs (100%) rename vendor/{clap => clap-3.2.20}/src/output/help.rs (100%) rename vendor/{clap => clap-3.2.20}/src/output/mod.rs (100%) rename vendor/{clap => clap-3.2.20}/src/output/usage.rs (100%) rename vendor/{clap => clap-3.2.20}/src/parser/arg_matcher.rs (100%) rename vendor/{clap => clap-3.2.20}/src/parser/error.rs (100%) rename vendor/{clap => clap-3.2.20}/src/parser/features/mod.rs (100%) rename vendor/{clap => clap-3.2.20}/src/parser/features/suggestions.rs (100%) rename vendor/{clap => clap-3.2.20}/src/parser/matches/any_value.rs (100%) rename vendor/{clap => clap-3.2.20}/src/parser/matches/arg_matches.rs (100%) rename vendor/{clap => clap-3.2.20}/src/parser/matches/matched_arg.rs (100%) rename vendor/{clap => clap-3.2.20}/src/parser/matches/mod.rs (100%) rename vendor/{clap => clap-3.2.20}/src/parser/matches/value_source.rs (100%) rename vendor/{clap => clap-3.2.20}/src/parser/mod.rs (100%) rename vendor/{clap => clap-3.2.20}/src/parser/parser.rs (100%) rename vendor/{clap => clap-3.2.20}/src/parser/validator.rs (100%) rename vendor/{clap => clap-3.2.20}/src/util/color.rs (100%) rename vendor/{clap => clap-3.2.20}/src/util/fnv.rs (100%) rename vendor/{clap => clap-3.2.20}/src/util/graph.rs (100%) rename vendor/{clap => clap-3.2.20}/src/util/id.rs (100%) rename vendor/{clap => clap-3.2.20}/src/util/mod.rs (100%) rename vendor/{clap => clap-3.2.20}/src/util/str_to_bool.rs (100%) rename vendor/{clap_lex => clap_lex-0.2.2}/.cargo-checksum.json (100%) rename vendor/{clap_lex => clap_lex-0.2.2}/Cargo.toml (100%) rename vendor/{clap_lex => clap_lex-0.2.2}/LICENSE-APACHE (100%) rename vendor/{clap_lex => clap_lex-0.2.2}/LICENSE-MIT (100%) rename vendor/{clap_lex => clap_lex-0.2.2}/README.md (100%) rename vendor/{clap_lex => clap_lex-0.2.2}/src/lib.rs (100%) create mode 100644 vendor/compiler_builtins/LICENSE.txt create mode 100644 vendor/crossbeam-epoch/src/sync/once_lock.rs create mode 100644 vendor/crossbeam-utils/src/sync/once_lock.rs create mode 100644 vendor/dashmap/src/rayon/read_only.rs delete mode 100644 vendor/dashmap/src/table.rs create mode 100644 vendor/home/src/env.rs delete mode 100644 vendor/itertools/Cargo.lock create mode 100644 vendor/itertools/clippy.toml create mode 100644 vendor/itertools/src/extrema_set.rs delete mode 100644 vendor/matches/.cargo-checksum.json delete mode 100644 vendor/matches/Cargo.toml delete mode 100644 vendor/matches/lib.rs delete mode 100644 vendor/matches/tests/macro_use_one.rs delete mode 100644 vendor/matches/tests/use_star.rs rename vendor/percent-encoding/{ => src}/lib.rs (83%) create mode 100644 vendor/rustc_tools_util/.cargo-checksum.json create mode 100644 vendor/rustc_tools_util/Cargo.toml rename vendor/{xflags => rustc_tools_util}/LICENSE-APACHE (99%) rename vendor/{matches/LICENSE => rustc_tools_util/LICENSE-MIT} (94%) create mode 100644 vendor/rustc_tools_util/README.md create mode 100644 vendor/rustc_tools_util/src/lib.rs create mode 100644 vendor/smallvec/debug_metadata/README.md create mode 100644 vendor/smallvec/debug_metadata/smallvec.natvis create mode 100644 vendor/smallvec/tests/debugger_visualizer.rs delete mode 100644 vendor/syn/tests/.gitignore create mode 100644 vendor/thiserror/build.rs create mode 100644 vendor/thiserror/src/provide.rs create mode 100644 vendor/thiserror/tests/test_deprecated.rs create mode 100644 vendor/tracing-attributes/tests/ui.rs create mode 100644 vendor/tracing-attributes/tests/ui/async_instrument.rs create mode 100644 vendor/tracing-attributes/tests/ui/async_instrument.stderr create mode 100644 vendor/tracing-subscriber-0.3.3/.cargo-checksum.json rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/CHANGELOG.md (72%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/Cargo.toml (57%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/LICENSE (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/README.md (93%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/benches/enter.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/benches/filter.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/benches/filter_log.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/benches/fmt.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/benches/support/mod.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/field/debug.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/field/delimited.rs (97%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/field/display.rs (98%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/field/mod.rs (94%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/filter/directive.rs (92%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/filter/env/directive.rs (92%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/filter/env/field.rs (59%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/filter/env/mod.rs (56%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/filter/filter_fn.rs (100%) rename vendor/{tracing-subscriber/src/filter/layer_filters/mod.rs => tracing-subscriber-0.3.3/src/filter/layer_filters.rs} (71%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/filter/level.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/filter/mod.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/filter/targets.rs (94%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/fmt/fmt_layer.rs (85%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/fmt/format/json.rs (69%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/fmt/format/mod.rs (70%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/fmt/format/pretty.rs (50%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/fmt/mod.rs (65%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/fmt/time/datetime.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/fmt/time/mod.rs (94%) create mode 100644 vendor/tracing-subscriber-0.3.3/src/fmt/time/time_crate.rs rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/fmt/writer.rs (98%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/layer/context.rs (95%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/layer/layered.rs (91%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/layer/mod.rs (70%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/layer/tests.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/lib.rs (82%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/macros.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/prelude.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/registry/extensions.rs (98%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/registry/mod.rs (97%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/registry/sharded.rs (97%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/registry/stack.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/reload.rs (51%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/sync.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/src/util.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/tests/cached_layer_filters_dont_break_other_layers.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/tests/duplicate_spans.rs (99%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/tests/field_filter.rs (98%) create mode 100644 vendor/tracing-subscriber-0.3.3/tests/filter.rs rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/tests/filter_log.rs (98%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/tests/fmt_max_level_hint.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/tests/hinted_layer_filters_dont_break_other_layers.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/tests/layer_filter_interests_are_cached.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/tests/layer_filters/boxed.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/tests/layer_filters/downcast_raw.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/tests/layer_filters/filter_scopes.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/tests/layer_filters/main.rs (98%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/tests/layer_filters/targets.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/tests/layer_filters/trees.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/tests/multiple_layer_filter_interests_cached.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/tests/registry_max_level_hint.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/tests/registry_with_subscriber.rs (91%) create mode 100644 vendor/tracing-subscriber-0.3.3/tests/reload.rs rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/tests/same_len_filters.rs (98%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/tests/support.rs (97%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/tests/unhinted_layer_filters_dont_break_other_layers.rs (100%) rename vendor/{tracing-subscriber => tracing-subscriber-0.3.3}/tests/utils.rs (96%) delete mode 100644 vendor/tracing-subscriber/.cargo-checksum.json delete mode 100644 vendor/tracing-subscriber/src/filter/env/builder.rs delete mode 100644 vendor/tracing-subscriber/src/filter/layer_filters/combinator.rs delete mode 100644 vendor/tracing-subscriber/src/fmt/time/time_crate.rs delete mode 100644 vendor/tracing-subscriber/tests/env_filter/main.rs delete mode 100644 vendor/tracing-subscriber/tests/env_filter/per_layer.rs delete mode 100644 vendor/tracing-subscriber/tests/event_enabling.rs delete mode 100644 vendor/tracing-subscriber/tests/layer_filters/combinators.rs delete mode 100644 vendor/tracing-subscriber/tests/layer_filters/vec.rs delete mode 100644 vendor/tracing-subscriber/tests/option.rs delete mode 100644 vendor/tracing-subscriber/tests/reload.rs delete mode 100644 vendor/tracing-subscriber/tests/vec.rs delete mode 100644 vendor/tracing-subscriber/tests/vec_subscriber_filter_interests_cached.rs create mode 100644 vendor/unicode-ident/LICENSE-UNICODE create mode 100644 vendor/unicode-script/LICENSE-APACHE rename vendor/{xflags => unicode-script}/LICENSE-MIT (92%) create mode 100644 vendor/url/README.md create mode 100644 vendor/url/tests/debugger_visualizer.rs rename vendor/xflags-macros/tests/{it/src => data}/help.rs (96%) rename vendor/xflags-macros/tests/{it/src => data}/repeated_pos.rs (83%) rename vendor/xflags-macros/tests/{it/src => data}/smoke.rs (93%) rename vendor/xflags-macros/tests/{it/src => data}/subcommands.rs (90%) delete mode 100644 vendor/xflags/README.md create mode 100644 vendor/xflags/examples/immediate-mode.rs diff --git a/COPYRIGHT b/COPYRIGHT index dc9abf84b8..11335879bd 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -23,65 +23,251 @@ The Rust Project includes packages written by third parties. The following third party packages are included, and carry their own copyright notices and license terms: -* LLVM. Code for this package is found in src/llvm-project. - - Copyright (c) 2003-2013 University of Illinois at - Urbana-Champaign. All rights reserved. - - Developed by: - - LLVM Team - - University of Illinois at Urbana-Champaign - - http://llvm.org - - Permission is hereby granted, free of charge, to any - person obtaining a copy of this software and associated - documentation files (the "Software"), to deal with the - Software without restriction, including without - limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of - the Software, and to permit persons to whom the Software - is furnished to do so, subject to the following - conditions: - - * Redistributions of source code must retain the - above copyright notice, this list of conditions - and the following disclaimers. - - * Redistributions in binary form must reproduce the - above copyright notice, this list of conditions - and the following disclaimers in the documentation - and/or other materials provided with the - distribution. - - * Neither the names of the LLVM Team, University of - Illinois at Urbana-Champaign, nor the names of its - contributors may be used to endorse or promote - products derived from this Software without - specific prior written permission. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF - ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED - TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A - PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT - SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE - FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT - OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - OTHER DEALINGS WITH THE SOFTWARE. - -* Additional libraries included in LLVM carry separate - BSD-compatible licenses. See src/llvm-project/llvm/LICENSE.TXT - for details. - -* compiler-rt, in src/compiler-rt is dual licensed under - LLVM's license and MIT: - - Copyright (c) 2009-2014 by the contributors listed in - CREDITS.TXT - +* LLVM, located in src/llvm-project, is licensed under the following + terms. + + ============================================================================== + The LLVM Project is under the Apache License v2.0 with LLVM Exceptions: + ============================================================================== + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + ---- LLVM Exceptions to the Apache 2.0 License ---- + + As an exception, if, as a result of your compiling your source code, portions + of this Software are embedded into an Object form of such source code, you + may redistribute such embedded portions in such Object form without complying + with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + + In addition, if you combine or link compiled forms of this Software with + software that is licensed under the GPLv2 ("Combined Software") and if a + court of competent jurisdiction determines that the patent provision (Section + 3), the indemnity provision (Section 9) or other Section of the License + conflicts with the conditions of the GPLv2, you may retroactively and + prospectively choose to deem waived or otherwise exclude such Section(s) of + the License, but only in their entirety and only with respect to the Combined + Software. + + ============================================================================== + Software from third parties included in the LLVM Project: + ============================================================================== + The LLVM Project contains third party software which is under different license + terms. All such code will be identified clearly using at least one of two + mechanisms: + 1) It will be in a separate directory tree with its own `LICENSE.txt` or + `LICENSE` file at the top containing the specific license and restrictions + which apply to that software, or + 2) It will contain specific license and restriction terms at the top of every + file. + + ============================================================================== + Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy): + ============================================================================== + University of Illinois/NCSA + Open Source License + + Copyright (c) 2003-2019 University of Illinois at Urbana-Champaign. All rights reserved. Developed by: @@ -92,70 +278,32 @@ their own copyright notices and license terms: http://llvm.org - Permission is hereby granted, free of charge, to any - person obtaining a copy of this software and associated - documentation files (the "Software"), to deal with the - Software without restriction, including without - limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of - the Software, and to permit persons to whom the Software - is furnished to do so, subject to the following - conditions: - - * Redistributions of source code must retain the - above copyright notice, this list of conditions - and the following disclaimers. - - * Redistributions in binary form must reproduce the - above copyright notice, this list of conditions - and the following disclaimers in the documentation - and/or other materials provided with the - distribution. - - * Neither the names of the LLVM Team, University of - Illinois at Urbana-Champaign, nor the names of its - contributors may be used to endorse or promote - products derived from this Software without - specific prior written permission. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF - ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED - TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A - PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT - SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE - FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT - OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - OTHER DEALINGS WITH THE SOFTWARE. - - ======================================================== - - Copyright (c) 2009-2014 by the contributors listed in - CREDITS.TXT - - Permission is hereby granted, free of charge, to any - person obtaining a copy of this software and associated - documentation files (the "Software"), to deal in the - Software without restriction, including without - limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of - the Software, and to permit persons to whom the Software - is furnished to do so, subject to the following - conditions: - - The above copyright notice and this permission notice - shall be included in all copies or substantial portions - of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF - ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED - TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A - PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT - SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION - OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR - IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal with + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do + so, subject to the following conditions: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + + * Neither the names of the LLVM Team, University of Illinois at + Urbana-Champaign, nor the names of its contributors may be used to + endorse or promote products derived from this Software without specific + prior written permission. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE + SOFTWARE. * Portions of the FFI code for interacting with the native ABI is derived from the Clay programming language, which carries @@ -191,41 +339,3 @@ their own copyright notices and license terms: NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -* libbacktrace, under src/libbacktrace: - - Copyright (C) 2012-2014 Free Software Foundation, Inc. - Written by Ian Lance Taylor, Google. - - Redistribution and use in source and binary forms, with - or without modification, are permitted provided that the - following conditions are met: - - (1) Redistributions of source code must retain the - above copyright notice, this list of conditions and - the following disclaimer. - - (2) Redistributions in binary form must reproduce - the above copyright notice, this list of conditions - and the following disclaimer in the documentation - and/or other materials provided with the - distribution. - - (3) The name of the author may not be used to - endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN - NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE - USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY - OF SUCH DAMAGE. */ diff --git a/Cargo.lock b/Cargo.lock index fda523611a..dab693419a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -288,7 +288,7 @@ dependencies = [ [[package]] name = "cargo" -version = "0.66.0" +version = "0.67.0" dependencies = [ "anyhow", "atty", @@ -297,7 +297,7 @@ dependencies = [ "cargo-test-macro", "cargo-test-support", "cargo-util", - "clap", + "clap 4.0.15", "crates-io", "curl", "curl-sys", @@ -330,8 +330,10 @@ dependencies = [ "pretty_env_logger", "rustc-workspace-hack", "rustfix", + "same-file", "semver", "serde", + "serde-value", "serde_ignored", "serde_json", "shell-escape", @@ -383,11 +385,12 @@ version = "0.1.0" dependencies = [ "cargo_metadata 0.15.0", "directories", + "rustc-build-sysroot", "rustc-workspace-hack", + "rustc_tools_util", "rustc_version", "serde", "serde_json", - "vergen", ] [[package]] @@ -417,6 +420,7 @@ dependencies = [ "anyhow", "cargo-test-macro", "cargo-util", + "crates-io", "filetime", "flate2", "git2", @@ -507,6 +511,10 @@ name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +dependencies = [ + "compiler_builtins", + "rustc-std-workspace-core", +] [[package]] name = "chalk-derive" @@ -584,7 +592,7 @@ dependencies = [ "atty", "bitflags", "clap_derive", - "clap_lex", + "clap_lex 0.2.2", "indexmap", "once_cell", "strsim", @@ -592,13 +600,26 @@ dependencies = [ "textwrap", ] +[[package]] +name = "clap" +version = "4.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bf8832993da70a4c6d13c581f4463c2bdda27b9bf1c5498dc4365543abe6d6f" +dependencies = [ + "atty", + "bitflags", + "clap_lex 0.3.0", + "strsim", + "termcolor", +] + [[package]] name = "clap_complete" version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df6f3613c0a3cddfd78b41b10203eb322cb29b600cbdf808a7d3db95691b8e25" dependencies = [ - "clap", + "clap 3.2.20", ] [[package]] @@ -623,9 +644,18 @@ dependencies = [ "os_str_bytes", ] +[[package]] +name = "clap_lex" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8" +dependencies = [ + "os_str_bytes", +] + [[package]] name = "clippy" -version = "0.1.65" +version = "0.1.66" dependencies = [ "clippy_lints", "clippy_utils", @@ -657,7 +687,7 @@ name = "clippy_dev" version = "0.0.1" dependencies = [ "aho-corasick", - "clap", + "clap 3.2.20", "indoc", "itertools", "opener", @@ -668,7 +698,7 @@ dependencies = [ [[package]] name = "clippy_lints" -version = "0.1.65" +version = "0.1.66" dependencies = [ "cargo_metadata 0.14.0", "clippy_utils", @@ -690,7 +720,7 @@ dependencies = [ [[package]] name = "clippy_utils" -version = "0.1.65" +version = "0.1.66" dependencies = [ "arrayvec", "if_chain", @@ -766,9 +796,9 @@ dependencies = [ [[package]] name = "compiler_builtins" -version = "0.1.79" +version = "0.1.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f873ce2bd3550b0b565f878b3d04ea8253f4259dc3d20223af2e1ba86f5ecca" +checksum = "18cd7635fea7bb481ea543b392789844c1ad581299da70184c7175ce3af76603" dependencies = [ "cc", "rustc-std-workspace-core", @@ -799,9 +829,9 @@ dependencies = [ [[package]] name = "compiletest_rs" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "262134ef87408da1ddfe45e33daa0ca43b75286d6b1076446e602d264cf9847e" +checksum = "70489bbb718aea4f92e5f48f2e3b5be670c2051de30e57cb6e5377b4aa08b372" dependencies = [ "diff", "filetime", @@ -1075,9 +1105,9 @@ dependencies = [ [[package]] name = "directories" -version = "3.0.2" +version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e69600ff1703123957937708eb27f7a564e48885c537782722ed0ba3189ce1d7" +checksum = "f51c5d4ddabd36886dd3e1438cb358cdcb0d7c499cb99cb4ac2e38e18b5cb210" dependencies = [ "dirs-sys", ] @@ -1167,26 +1197,6 @@ dependencies = [ "log", ] -[[package]] -name = "enum-iterator" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c79a6321a1197d7730510c7e3f6cb80432dfefecb32426de8cea0aa19b4bb8d7" -dependencies = [ - "enum-iterator-derive", -] - -[[package]] -name = "enum-iterator-derive" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e94aa31f7c0dc764f57896dc615ddd76fc13b0d5dca7eb6cc5e018a5a09ec06" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "env_logger" version = "0.7.1" @@ -1524,18 +1534,6 @@ dependencies = [ "wasi 0.9.0+wasi-snapshot-preview1", ] -[[package]] -name = "getset" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24b328c01a4d71d2d8173daa93562a73ab0fe85616876f02500f53d82948c504" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "gimli" version = "0.25.0" @@ -1802,7 +1800,7 @@ name = "installer" version = "0.0.0" dependencies = [ "anyhow", - "clap", + "clap 3.2.20", "flate2", "lazy_static", "num_cpus", @@ -1845,9 +1843,9 @@ dependencies = [ [[package]] name = "itertools" -version = "0.10.1" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eaf" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" dependencies = [ "either", ] @@ -1937,9 +1935,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.131" +version = "0.2.135" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04c3b4822ccebfa39c02fc03d1534441b22ead323fa0f48bb7ddd8e6ba076a40" +checksum = "68783febc7782c6c5cb401fbda4de5a9898be1762314da0bb2c10ced61f18b0c" dependencies = [ "rustc-std-workspace-core", ] @@ -2145,7 +2143,7 @@ dependencies = [ "ammonia", "anyhow", "chrono", - "clap", + "clap 3.2.20", "clap_complete", "elasticlunr-rs", "env_logger 0.9.0", @@ -2264,6 +2262,7 @@ dependencies = [ "rand 0.8.5", "regex", "rustc-workspace-hack", + "rustc_version", "shell-escape", "smallvec", "ui_test", @@ -2414,6 +2413,15 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "ordered-float" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87" +dependencies = [ + "num-traits", +] + [[package]] name = "os_info" version = "3.5.0" @@ -2645,9 +2653,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.18" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33" +checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" [[package]] name = "polonius-engine" @@ -2714,11 +2722,11 @@ checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" [[package]] name = "proc-macro2" -version = "1.0.37" +version = "1.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec757218438d5fda206afc041538b2f6d889286160d649a86a24d37e1235afd1" +checksum = "94e2ef8dbfc347b10c094890f778ee2e36ca9bb4262e86dc99cd217e35f3470b" dependencies = [ - "unicode-xid", + "unicode-ident", ] [[package]] @@ -3008,11 +3016,22 @@ dependencies = [ name = "rustbook" version = "0.1.0" dependencies = [ - "clap", + "clap 3.2.20", "env_logger 0.7.1", "mdbook", ] +[[package]] +name = "rustc-build-sysroot" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec5f3689b6c560d6a3a17fcbe54204cd870b4fcf46342d60de16715b660d2c92" +dependencies = [ + "anyhow", + "rustc_version", + "tempfile", +] + [[package]] name = "rustc-demangle" version = "0.1.21" @@ -3095,7 +3114,7 @@ name = "rustc-workspace-hack" version = "1.0.0" dependencies = [ "bstr", - "clap", + "clap 3.2.20", "libz-sys", "regex", "serde_json", @@ -3259,7 +3278,6 @@ dependencies = [ "bitflags", "cstr", "libc", - "libloading", "measureme", "object 0.29.0", "rustc-demangle", @@ -3282,6 +3300,7 @@ dependencies = [ "rustc_symbol_mangling", "rustc_target", "smallvec", + "tempfile", "tracing", ] @@ -3391,6 +3410,7 @@ dependencies = [ "rustc_errors", "rustc_feature", "rustc_hir", + "rustc_hir_analysis", "rustc_hir_pretty", "rustc_interface", "rustc_lint", @@ -3404,7 +3424,6 @@ dependencies = [ "rustc_session", "rustc_span", "rustc_target", - "rustc_typeck", "serde_json", "tracing", "winapi", @@ -3435,6 +3454,8 @@ version = "0.0.0" dependencies = [ "annotate-snippets", "atty", + "rustc_ast", + "rustc_ast_pretty", "rustc_data_structures", "rustc_error_messages", "rustc_hir", @@ -3509,6 +3530,34 @@ dependencies = [ "tracing", ] +[[package]] +name = "rustc_hir_analysis" +version = "0.0.0" +dependencies = [ + "rustc_arena", + "rustc_ast", + "rustc_attr", + "rustc_data_structures", + "rustc_errors", + "rustc_feature", + "rustc_graphviz", + "rustc_hir", + "rustc_hir_pretty", + "rustc_index", + "rustc_infer", + "rustc_lint", + "rustc_macros", + "rustc_middle", + "rustc_serialize", + "rustc_session", + "rustc_span", + "rustc_target", + "rustc_trait_selection", + "rustc_type_ir", + "smallvec", + "tracing", +] + [[package]] name = "rustc_hir_pretty" version = "0.0.0" @@ -3520,6 +3569,32 @@ dependencies = [ "rustc_target", ] +[[package]] +name = "rustc_hir_typeck" +version = "0.1.0" +dependencies = [ + "rustc_ast", + "rustc_data_structures", + "rustc_errors", + "rustc_graphviz", + "rustc_hir", + "rustc_hir_analysis", + "rustc_hir_pretty", + "rustc_index", + "rustc_infer", + "rustc_lint", + "rustc_macros", + "rustc_middle", + "rustc_serialize", + "rustc_session", + "rustc_span", + "rustc_target", + "rustc_trait_selection", + "rustc_type_ir", + "smallvec", + "tracing", +] + [[package]] name = "rustc_incremental" version = "0.0.0" @@ -3588,6 +3663,8 @@ dependencies = [ "rustc_errors", "rustc_expand", "rustc_hir", + "rustc_hir_analysis", + "rustc_hir_typeck", "rustc_incremental", "rustc_lint", "rustc_macros", @@ -3610,7 +3687,6 @@ dependencies = [ "rustc_trait_selection", "rustc_traits", "rustc_ty_utils", - "rustc_typeck", "smallvec", "tracing", "winapi", @@ -3735,8 +3811,6 @@ dependencies = [ "either", "gsgdt", "polonius-engine", - "rand 0.8.5", - "rand_xoshiro", "rustc-rayon", "rustc-rayon-core", "rustc_apfloat", @@ -3920,12 +3994,12 @@ dependencies = [ "rustc_data_structures", "rustc_errors", "rustc_hir", + "rustc_hir_analysis", "rustc_macros", "rustc_middle", "rustc_session", "rustc_span", "rustc_trait_selection", - "rustc_typeck", "tracing", ] @@ -4106,6 +4180,7 @@ version = "0.0.0" dependencies = [ "bitflags", "rustc_data_structures", + "rustc_feature", "rustc_index", "rustc_macros", "rustc_serialize", @@ -4116,7 +4191,9 @@ dependencies = [ [[package]] name = "rustc_tools_util" -version = "0.2.0" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "598f48ce2a421542b3e64828aa742b687cc1b91d2f96591cfdb7ac5988cd6366" [[package]] name = "rustc_trait_selection" @@ -4181,6 +4258,8 @@ dependencies = [ name = "rustc_ty_utils" version = "0.0.0" dependencies = [ + "rand 0.8.5", + "rand_xoshiro", "rustc_data_structures", "rustc_errors", "rustc_hir", @@ -4208,35 +4287,6 @@ dependencies = [ "smallvec", ] -[[package]] -name = "rustc_typeck" -version = "0.0.0" -dependencies = [ - "rustc_arena", - "rustc_ast", - "rustc_attr", - "rustc_data_structures", - "rustc_errors", - "rustc_feature", - "rustc_graphviz", - "rustc_hir", - "rustc_hir_pretty", - "rustc_index", - "rustc_infer", - "rustc_lint", - "rustc_macros", - "rustc_middle", - "rustc_serialize", - "rustc_session", - "rustc_span", - "rustc_target", - "rustc_trait_selection", - "rustc_ty_utils", - "rustc_type_ir", - "smallvec", - "tracing", -] - [[package]] name = "rustc_version" version = "0.4.0" @@ -4320,7 +4370,7 @@ dependencies = [ "anyhow", "bytecount", "cargo_metadata 0.14.0", - "clap", + "clap 3.2.20", "derive-new", "diff", "dirs", @@ -4426,18 +4476,28 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.143" +version = "1.0.147" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e8e5d5b70924f74ff5c6d64d9a5acd91422117c60f48c4e07855238a254553" +checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" dependencies = [ "serde_derive", ] +[[package]] +name = "serde-value" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" +dependencies = [ + "ordered-float", + "serde", +] + [[package]] name = "serde_derive" -version = "1.0.143" +version = "1.0.147" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3d8e8de557aee63c26b85b947f5e59b690d0454c753f3adeb5cd7835ab88391" +checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852" dependencies = [ "proc-macro2", "quote", @@ -4613,7 +4673,7 @@ version = "0.0.0" dependencies = [ "addr2line 0.16.0", "alloc", - "cfg-if 0.1.10", + "cfg-if 1.0.0", "compiler_builtins", "core", "dlmalloc", @@ -4637,7 +4697,7 @@ dependencies = [ name = "std_detect" version = "0.1.5" dependencies = [ - "cfg-if 0.1.10", + "cfg-if 1.0.0", "compiler_builtins", "libc", "rustc-std-workspace-alloc", @@ -4687,13 +4747,13 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "syn" -version = "1.0.91" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b683b2b825c8eef438b77c36a06dc262294da3d5a5813fac20da149241dcd44d" +checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1" dependencies = [ "proc-macro2", "quote", - "unicode-xid", + "unicode-ident", ] [[package]] @@ -4886,9 +4946,18 @@ checksum = "29738eedb4388d9ea620eeab9384884fc3f06f586a2eddb56bedc5885126c7c1" [[package]] name = "tinyvec" -version = "0.3.4" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "238ce071d267c5710f9d31451efec16c5ee22de34df17cc05e56cbc92e967117" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" @@ -4911,17 +4980,27 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808b51e57d0ef8f71115d8f3a01e7d3750d01c79cac4b3eda910f4389fdf92fd" +dependencies = [ + "serde", +] + [[package]] name = "toml_edit" -version = "0.14.3" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba98375fd631b83696f87c64e4ed8e29e6a1f3404d6aed95fa95163bad38e705" +checksum = "b1541ba70885967e662f69d31ab3aeca7b1aaecfcd58679590b893e9239c3646" dependencies = [ "combine", "indexmap", "itertools", "kstring", "serde", + "toml_datetime", ] [[package]] @@ -5174,26 +5253,32 @@ dependencies = [ "matches", ] +[[package]] +name = "unicode-ident" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" + [[package]] name = "unicode-normalization" -version = "0.1.13" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" dependencies = [ "tinyvec", ] [[package]] name = "unicode-script" -version = "0.5.3" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "098ec66172ce21cd55f8bcc786ee209dd20e04eff70acfca30cb79924d173ae9" +checksum = "7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc" [[package]] name = "unicode-security" -version = "0.0.5" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d87c28edc5b263377e448d6cdcb935c06b95413d8013ba6fae470558ccab18f" +checksum = "9ef5756b3097992b934b06608c69f48448a0fbe804bb1e72b982f6d7983e9e63" dependencies = [ "unicode-normalization", "unicode-script", @@ -5201,15 +5286,15 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" +checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" [[package]] name = "unicode-width" -version = "0.1.8" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" dependencies = [ "compiler_builtins", "rustc-std-workspace-core", @@ -5218,9 +5303,9 @@ dependencies = [ [[package]] name = "unicode-xid" -version = "0.2.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] name = "unicode_categories" @@ -5293,21 +5378,6 @@ version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c" -[[package]] -name = "vergen" -version = "5.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbc87f9a7a9d61b15d51d1d3547284f67b6b4f1494ce3fc5814c101f35a5183" -dependencies = [ - "anyhow", - "chrono", - "enum-iterator", - "getset", - "git2", - "rustversion", - "thiserror", -] - [[package]] name = "version_check" version = "0.9.3" diff --git a/RELEASES.md b/RELEASES.md index a3df56f1d2..5b4d6ccd9b 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1,3 +1,94 @@ +Version 1.66.0 (2022-12-15) +========================== + +Language +-------- +- [Permit specifying explicit discriminants on all `repr(Int)` enums](https://github.com/rust-lang/rust/pull/95710/) + ```rust + #[repr(u8)] + enum Foo { + A(u8) = 0, + B(i8) = 1, + C(bool) = 42, + } + ``` +- [Allow transmutes between the same type differing only in lifetimes](https://github.com/rust-lang/rust/pull/101520/) +- [Change constant evaluation errors from a deny-by-default lint to a hard error](https://github.com/rust-lang/rust/pull/102091/) +- [Trigger `must_use` on `impl Trait` for supertraits](https://github.com/rust-lang/rust/pull/102287/) + This makes `impl ExactSizeIterator` respect the existing `#[must_use]` annotation on `Iterator`. +- [Allow `..X` and `..=X` in patterns](https://github.com/rust-lang/rust/pull/102275/) +- [Uplift `clippy::for_loops_over_fallibles` lint into rustc](https://github.com/rust-lang/rust/pull/99696/) +- [Stabilize `sym` operands in inline assembly](https://github.com/rust-lang/rust/pull/103168/) +- [Update to Unicode 15](https://github.com/rust-lang/rust/pull/101912/) +- [Opaque types no longer imply lifetime bounds](https://github.com/rust-lang/rust/pull/95474/) + This is a soundness fix which may break code that was erroneously relying on this behavior. + +Compiler +-------- +- [Add armv5te-none-eabi and thumbv5te-none-eabi tier 3 targets](https://github.com/rust-lang/rust/pull/101329/) + - Refer to Rust's [platform support page][platform-support-doc] for more + information on Rust's tiered platform support. +- [Add support for linking against macOS universal libraries](https://github.com/rust-lang/rust/pull/98736) + +Libraries +--------- +- [Fix `#[derive(Default)]` on a generic `#[default]` enum adding unnecessary `Default` bounds](https://github.com/rust-lang/rust/pull/101040/) +- [Update to Unicode 15](https://github.com/rust-lang/rust/pull/101821/) + +Stabilized APIs +--------------- + +- [`proc_macro::Span::source_text`](https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.source_text) +- [`uX::{checked_add_signed, overflowing_add_signed, saturating_add_signed, wrapping_add_signed}`](https://doc.rust-lang.org/stable/std/primitive.u8.html#method.checked_add_signed) +- [`iX::{checked_add_unsigned, overflowing_add_unsigned, saturating_add_unsigned, wrapping_add_unsigned}`](https://doc.rust-lang.org/stable/std/primitive.i8.html#method.checked_add_unsigned) +- [`iX::{checked_sub_unsigned, overflowing_sub_unsigned, saturating_sub_unsigned, wrapping_sub_unsigned}`](https://doc.rust-lang.org/stable/std/primitive.i8.html#method.checked_sub_unsigned) +- [`BTreeSet::{first, last, pop_first, pop_last}`](https://doc.rust-lang.org/stable/std/collections/struct.BTreeSet.html#method.first) +- [`BTreeMap::{first_key_value, last_key_value, first_entry, last_entry, pop_first, pop_last}`](https://doc.rust-lang.org/stable/std/collections/struct.BTreeMap.html#method.first_key_value) +- [Add `AsFd` implementations for stdio lock types on WASI.](https://github.com/rust-lang/rust/pull/101768/) +- [`impl TryFrom> for Box<[T; N]>`](https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#impl-TryFrom%3CVec%3CT%2C%20Global%3E%3E-for-Box%3C%5BT%3B%20N%5D%2C%20Global%3E) +- [`core::hint::black_box`](https://doc.rust-lang.org/stable/std/hint/fn.black_box.html) +- [`Duration::try_from_secs_{f32,f64}`](https://doc.rust-lang.org/stable/std/time/struct.Duration.html#method.try_from_secs_f32) +- [`Option::unzip`](https://doc.rust-lang.org/stable/std/option/enum.Option.html#method.unzip) +- [`std::os::fd`](https://doc.rust-lang.org/stable/std/os/fd/index.html) + + +Rustdoc +------- + +- [Add Rustdoc warning for invalid HTML tags in the documentation](https://github.com/rust-lang/rust/pull/101720/) + +Cargo +----- + +- [Added `cargo remove` to remove dependencies from Cargo.toml](https://doc.rust-lang.org/nightly/cargo/commands/cargo-remove.html) +- [`cargo publish` now waits for the new version to be downloadable before exiting](https://github.com/rust-lang/cargo/pull/11062) + +See [detailed release notes](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-166-2022-12-15) for more. + +Compatibility Notes +------------------- + +- [Only apply `ProceduralMasquerade` hack to older versions of `rental`](https://github.com/rust-lang/rust/pull/94063/) +- [Don't export `__heap_base` and `__data_end` on wasm32-wasi.](https://github.com/rust-lang/rust/pull/102385/) +- [Don't export `__wasm_init_memory` on WebAssembly.](https://github.com/rust-lang/rust/pull/102426/) +- [Only export `__tls_*` on wasm32-unknown-unknown.](https://github.com/rust-lang/rust/pull/102440/) +- [Don't link to `libresolv` in libstd on Darwin](https://github.com/rust-lang/rust/pull/102766/) +- [Update libstd's libc to 0.2.135 (to make `libstd` no longer pull in `libiconv.dylib` on Darwin)](https://github.com/rust-lang/rust/pull/103277/) +- [Opaque types no longer imply lifetime bounds](https://github.com/rust-lang/rust/pull/95474/) + This is a soundness fix which may break code that was erroneously relying on this behavior. +- [Make `order_dependent_trait_objects` show up in future-breakage reports](https://github.com/rust-lang/rust/pull/102635/) +- [Change std::process::Command spawning to default to inheriting the parent's signal mask](https://github.com/rust-lang/rust/pull/101077/) + +Internal Changes +---------------- + +These changes do not affect any public interfaces of Rust, but they represent +significant improvements to the performance or internals of rustc and related +tools. + +- [Enable BOLT for LLVM compilation](https://github.com/rust-lang/rust/pull/94381/) +- [Enable LTO for rustc_driver.so](https://github.com/rust-lang/rust/pull/101403/) + Version 1.65.0 (2022-11-03) ========================== @@ -6,7 +97,7 @@ Language - [Error on `as` casts of enums with `#[non_exhaustive]` variants](https://github.com/rust-lang/rust/pull/92744/) - [Stabilize `let else`](https://github.com/rust-lang/rust/pull/93628/) - [Stabilize generic associated types (GATs)](https://github.com/rust-lang/rust/pull/96709/) -- [Add lints `let_underscore_drop`, `let_underscore_lock`, and `let_underscore_must_use` from Clippy](https://github.com/rust-lang/rust/pull/97739/) +- [Add lints `let_underscore_drop` and `let_underscore_lock` from Clippy](https://github.com/rust-lang/rust/pull/97739/) - [Stabilize `break`ing from arbitrary labeled blocks ("label-break-value")](https://github.com/rust-lang/rust/pull/99332/) - [Uninitialized integers, floats, and raw pointers are now considered immediate UB](https://github.com/rust-lang/rust/pull/98919/). Usage of `MaybeUninit` is the correct way to work with uninitialized memory. @@ -87,6 +178,9 @@ Compatibility Notes This strengthens the forward compatibility lint deprecated_cfg_attr_crate_type_name to deny. - [`llvm-has-rust-patches` allows setting the build system to treat the LLVM as having Rust-specific patches](https://github.com/rust-lang/rust/pull/101072) This option may need to be set for distributions that are building Rust with a patched LLVM via `llvm-config`, not the built-in LLVM. +- Combining three or more languages (e.g. Objective C, C++ and Rust) into one binary may hit linker limitations when using `lld`. For more information, see [issue 102754][102754]. + +[102754]: https://github.com/rust-lang/rust/issues/102754 Internal Changes ---------------- diff --git a/compiler/rustc/src/main.rs b/compiler/rustc/src/main.rs index 0de1a78191..e21c9b6604 100644 --- a/compiler/rustc/src/main.rs +++ b/compiler/rustc/src/main.rs @@ -1,3 +1,5 @@ +#![feature(unix_sigpipe)] + // A note about jemalloc: rustc uses jemalloc when built for CI and // distribution. The obvious way to do this is with the `#[global_allocator]` // mechanism. However, for complicated reasons (see @@ -23,6 +25,7 @@ // libraries. So we must reference jemalloc symbols one way or another, because // this file is the only object code in the rustc executable. +#[unix_sigpipe = "sig_dfl"] fn main() { // See the comment at the top of this file for an explanation of this. #[cfg(feature = "jemalloc-sys")] @@ -58,6 +61,5 @@ fn main() { } } - rustc_driver::set_sigpipe_handler(); rustc_driver::main() } diff --git a/compiler/rustc_ast/Cargo.toml b/compiler/rustc_ast/Cargo.toml index c24180bacf..fcbf968182 100644 --- a/compiler/rustc_ast/Cargo.toml +++ b/compiler/rustc_ast/Cargo.toml @@ -4,7 +4,6 @@ version = "0.0.0" edition = "2021" [lib] -doctest = false [dependencies] bitflags = "1.2.1" diff --git a/compiler/rustc_ast/src/ast.rs b/compiler/rustc_ast/src/ast.rs index d86db8f8b7..4ef43735a6 100644 --- a/compiler/rustc_ast/src/ast.rs +++ b/compiler/rustc_ast/src/ast.rs @@ -1112,24 +1112,6 @@ pub struct Expr { } impl Expr { - /// Returns `true` if this expression would be valid somewhere that expects a value; - /// for example, an `if` condition. - pub fn returns(&self) -> bool { - if let ExprKind::Block(ref block, _) = self.kind { - match block.stmts.last().map(|last_stmt| &last_stmt.kind) { - // Implicit return - Some(StmtKind::Expr(_)) => true, - // Last statement is an explicit return? - Some(StmtKind::Semi(expr)) => matches!(expr.kind, ExprKind::Ret(_)), - // This is a block that doesn't end in either an implicit or explicit return. - _ => false, - } - } else { - // This is not a block, it is a value. - true - } - } - /// Is this expr either `N`, or `{ N }`. /// /// If this is not the case, name resolution does not resolve `N` when using @@ -1338,14 +1320,13 @@ pub enum ExprKind { /// /// The `PathSegment` represents the method name and its generic arguments /// (within the angle brackets). - /// The first element of the vector of an `Expr` is the expression that evaluates - /// to the object on which the method is being called on (the receiver), - /// and the remaining elements are the rest of the arguments. - /// Thus, `x.foo::(a, b, c, d)` is represented as - /// `ExprKind::MethodCall(PathSegment { foo, [Bar, Baz] }, [x, a, b, c, d])`. + /// The standalone `Expr` is the receiver expression. + /// The vector of `Expr` is the arguments. + /// `x.foo::(a, b, c, d)` is represented as + /// `ExprKind::MethodCall(PathSegment { foo, [Bar, Baz] }, x, [a, b, c, d])`. /// This `Span` is the span of the function, without the dot and receiver /// (e.g. `foo(a, b)` in `x.foo(a, b)` - MethodCall(PathSegment, Vec>, Span), + MethodCall(PathSegment, P, Vec>, Span), /// A tuple (e.g., `(a, b, c, d)`). Tup(Vec>), /// A binary operation (e.g., `a + b`, `a * b`). @@ -2957,7 +2938,7 @@ pub enum AssocItemKind { /// An associated function. Fn(Box), /// An associated type. - TyAlias(Box), + Type(Box), /// A macro expanding to associated items. MacCall(P), } @@ -2967,7 +2948,7 @@ impl AssocItemKind { match *self { Self::Const(defaultness, ..) | Self::Fn(box Fn { defaultness, .. }) - | Self::TyAlias(box TyAlias { defaultness, .. }) => defaultness, + | Self::Type(box TyAlias { defaultness, .. }) => defaultness, Self::MacCall(..) => Defaultness::Final, } } @@ -2978,7 +2959,7 @@ impl From for ItemKind { match assoc_item_kind { AssocItemKind::Const(a, b, c) => ItemKind::Const(a, b, c), AssocItemKind::Fn(fn_kind) => ItemKind::Fn(fn_kind), - AssocItemKind::TyAlias(ty_alias_kind) => ItemKind::TyAlias(ty_alias_kind), + AssocItemKind::Type(ty_alias_kind) => ItemKind::TyAlias(ty_alias_kind), AssocItemKind::MacCall(a) => ItemKind::MacCall(a), } } @@ -2991,7 +2972,7 @@ impl TryFrom for AssocItemKind { Ok(match item_kind { ItemKind::Const(a, b, c) => AssocItemKind::Const(a, b, c), ItemKind::Fn(fn_kind) => AssocItemKind::Fn(fn_kind), - ItemKind::TyAlias(ty_alias_kind) => AssocItemKind::TyAlias(ty_alias_kind), + ItemKind::TyAlias(ty_kind) => AssocItemKind::Type(ty_kind), ItemKind::MacCall(a) => AssocItemKind::MacCall(a), _ => return Err(item_kind), }) @@ -3043,14 +3024,13 @@ pub type ForeignItem = Item; mod size_asserts { use super::*; use rustc_data_structures::static_assert_size; - // These are in alphabetical order, which is easy to maintain. + // tidy-alphabetical-start static_assert_size!(AssocItem, 104); static_assert_size!(AssocItemKind, 32); static_assert_size!(Attribute, 32); static_assert_size!(Block, 48); static_assert_size!(Expr, 104); static_assert_size!(ExprKind, 72); - #[cfg(not(bootstrap))] static_assert_size!(Fn, 184); static_assert_size!(ForeignItem, 96); static_assert_size!(ForeignItemKind, 24); @@ -3065,11 +3045,12 @@ mod size_asserts { static_assert_size!(Local, 72); static_assert_size!(Param, 40); static_assert_size!(Pat, 120); - static_assert_size!(PatKind, 96); static_assert_size!(Path, 40); static_assert_size!(PathSegment, 24); + static_assert_size!(PatKind, 96); static_assert_size!(Stmt, 32); static_assert_size!(StmtKind, 16); static_assert_size!(Ty, 96); static_assert_size!(TyKind, 72); + // tidy-alphabetical-end } diff --git a/compiler/rustc_ast/src/lib.rs b/compiler/rustc_ast/src/lib.rs index bd7a85b07a..eeb7e56e2b 100644 --- a/compiler/rustc_ast/src/lib.rs +++ b/compiler/rustc_ast/src/lib.rs @@ -13,9 +13,7 @@ #![feature(const_default_impls)] #![feature(const_trait_impl)] #![feature(if_let_guard)] -#![cfg_attr(bootstrap, feature(label_break_value))] #![feature(let_chains)] -#![cfg_attr(bootstrap, feature(let_else))] #![feature(min_specialization)] #![feature(negative_impls)] #![feature(slice_internals)] diff --git a/compiler/rustc_ast/src/mut_visit.rs b/compiler/rustc_ast/src/mut_visit.rs index 9fd0b63c47..b970e57e01 100644 --- a/compiler/rustc_ast/src/mut_visit.rs +++ b/compiler/rustc_ast/src/mut_visit.rs @@ -152,6 +152,12 @@ pub trait MutVisitor: Sized { noop_visit_expr(e, self); } + /// This method is a hack to workaround unstable of `stmt_expr_attributes`. + /// It can be removed once that feature is stabilized. + fn visit_method_receiver_expr(&mut self, ex: &mut P) { + self.visit_expr(ex) + } + fn filter_map_expr(&mut self, e: P) -> Option> { noop_filter_map_expr(e, self) } @@ -1106,7 +1112,7 @@ pub fn noop_flat_map_assoc_item( visit_fn_sig(sig, visitor); visit_opt(body, |body| visitor.visit_block(body)); } - AssocItemKind::TyAlias(box TyAlias { + AssocItemKind::Type(box TyAlias { defaultness, generics, where_clauses, @@ -1297,10 +1303,11 @@ pub fn noop_visit_expr( vis.visit_expr(f); visit_exprs(args, vis); } - ExprKind::MethodCall(PathSegment { ident, id, args }, exprs, span) => { + ExprKind::MethodCall(PathSegment { ident, id, args }, receiver, exprs, span) => { vis.visit_ident(ident); vis.visit_id(id); visit_opt(args, |args| vis.visit_generic_args(args)); + vis.visit_method_receiver_expr(receiver); visit_exprs(exprs, vis); vis.visit_span(span); } @@ -1588,3 +1595,9 @@ impl DummyAstNode for Crate { } } } + +impl DummyAstNode for crate::ast_traits::AstNodeWrapper { + fn dummy() -> Self { + crate::ast_traits::AstNodeWrapper::new(N::dummy(), T::dummy()) + } +} diff --git a/compiler/rustc_ast/src/token.rs b/compiler/rustc_ast/src/token.rs index 97dfb78376..83b10d906e 100644 --- a/compiler/rustc_ast/src/token.rs +++ b/compiler/rustc_ast/src/token.rs @@ -13,7 +13,7 @@ use rustc_span::symbol::{kw, sym}; use rustc_span::symbol::{Ident, Symbol}; use rustc_span::{self, edition::Edition, Span, DUMMY_SP}; use std::borrow::Cow; -use std::{fmt, mem}; +use std::fmt; #[derive(Clone, Copy, PartialEq, Encodable, Decodable, Debug, HashStable_Generic)] pub enum CommentKind { @@ -256,10 +256,6 @@ pub enum TokenKind { Eof, } -// `TokenKind` is used a lot. Make sure it doesn't unintentionally get bigger. -#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] -rustc_data_structures::static_assert_size!(TokenKind, 16); - #[derive(Clone, PartialEq, Encodable, Decodable, Debug, HashStable_Generic)] pub struct Token { pub kind: TokenKind, @@ -335,11 +331,6 @@ impl Token { Token::new(Ident(ident.name, ident.is_raw_guess()), ident.span) } - /// Return this token by value and leave a dummy token in its place. - pub fn take(&mut self) -> Self { - mem::replace(self, Token::dummy()) - } - /// For interpolated tokens, returns a span of the fragment to which the interpolated /// token refers. For all other tokens this is just a regular span. /// It is particularly important to use this for identifiers and lifetimes @@ -354,17 +345,14 @@ impl Token { } pub fn is_op(&self) -> bool { - !matches!( - self.kind, - OpenDelim(..) - | CloseDelim(..) - | Literal(..) - | DocComment(..) - | Ident(..) - | Lifetime(..) - | Interpolated(..) - | Eof - ) + match self.kind { + Eq | Lt | Le | EqEq | Ne | Ge | Gt | AndAnd | OrOr | Not | Tilde | BinOp(_) + | BinOpEq(_) | At | Dot | DotDot | DotDotDot | DotDotEq | Comma | Semi | Colon + | ModSep | RArrow | LArrow | FatArrow | Pound | Dollar | Question | SingleQuote => true, + + OpenDelim(..) | CloseDelim(..) | Literal(..) | DocComment(..) | Ident(..) + | Lifetime(..) | Interpolated(..) | Eof => false, + } } pub fn is_like_plus(&self) -> bool { @@ -733,6 +721,7 @@ impl Token { } impl PartialEq for Token { + #[inline] fn eq(&self, rhs: &TokenKind) -> bool { self.kind == *rhs } @@ -756,10 +745,6 @@ pub enum Nonterminal { NtVis(P), } -// `Nonterminal` is used a lot. Make sure it doesn't unintentionally get bigger. -#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] -rustc_data_structures::static_assert_size!(Nonterminal, 16); - #[derive(Debug, Copy, Clone, PartialEq, Encodable, Decodable)] pub enum NonterminalKind { Item, @@ -898,3 +883,17 @@ where panic!("interpolated tokens should not be present in the HIR") } } + +// Some types are used a lot. Make sure they don't unintentionally get bigger. +#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] +mod size_asserts { + use super::*; + use rustc_data_structures::static_assert_size; + // tidy-alphabetical-start + static_assert_size!(Lit, 12); + static_assert_size!(LitKind, 2); + static_assert_size!(Nonterminal, 16); + static_assert_size!(Token, 24); + static_assert_size!(TokenKind, 16); + // tidy-alphabetical-end +} diff --git a/compiler/rustc_ast/src/tokenstream.rs b/compiler/rustc_ast/src/tokenstream.rs index 875cd620df..015f5c1ee8 100644 --- a/compiler/rustc_ast/src/tokenstream.rs +++ b/compiler/rustc_ast/src/tokenstream.rs @@ -47,10 +47,6 @@ pub enum TokenTree { Delimited(DelimSpan, Delimiter, TokenStream), } -// This type is used a lot. Make sure it doesn't unintentionally get bigger. -#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] -rustc_data_structures::static_assert_size!(TokenTree, 32); - // Ensure all fields of `TokenTree` is `Send` and `Sync`. #[cfg(parallel_compiler)] fn _dummy() @@ -249,12 +245,12 @@ impl AttrTokenStream { // properly implemented - we always synthesize fake tokens, // so we never reach this code. - let mut builder = TokenStreamBuilder::new(); + let mut stream = TokenStream::default(); for inner_attr in inner_attrs { - builder.push(inner_attr.tokens()); + stream.push_stream(inner_attr.tokens()); } - builder.push(delim_tokens.clone()); - *tree = TokenTree::Delimited(*span, *delim, builder.build()); + stream.push_stream(delim_tokens.clone()); + *tree = TokenTree::Delimited(*span, *delim, stream); found = true; break; } @@ -308,13 +304,20 @@ pub struct AttributesData { #[derive(Clone, Debug, Default, Encodable, Decodable)] pub struct TokenStream(pub(crate) Lrc>); -// `TokenStream` is used a lot. Make sure it doesn't unintentionally get bigger. -#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] -rustc_data_structures::static_assert_size!(TokenStream, 8); - +/// Similar to `proc_macro::Spacing`, but for tokens. +/// +/// Note that all `ast::TokenTree::Token` instances have a `Spacing`, but when +/// we convert to `proc_macro::TokenTree` for proc macros only `Punct` +/// `TokenTree`s have a `proc_macro::Spacing`. #[derive(Clone, Copy, Debug, PartialEq, Encodable, Decodable, HashStable_Generic)] pub enum Spacing { + /// The token is not immediately followed by an operator token (as + /// determined by `Token::is_op`). E.g. a `+` token is `Alone` in `+ =`, + /// `+/*foo*/=`, `+ident`, and `+()`. Alone, + + /// The token is immediately followed by an operator token. E.g. a `+` + /// token is `Joint` in `+=` and `++`. Joint, } @@ -502,76 +505,49 @@ impl TokenStream { self.trees().map(|tree| TokenStream::flatten_token_tree(tree)).collect() } -} -// 99.5%+ of the time we have 1 or 2 elements in this vector. -#[derive(Clone)] -pub struct TokenStreamBuilder(SmallVec<[TokenStream; 2]>); - -impl TokenStreamBuilder { - pub fn new() -> TokenStreamBuilder { - TokenStreamBuilder(SmallVec::new()) - } - - pub fn push(&mut self, stream: TokenStream) { - self.0.push(stream); - } - - pub fn build(self) -> TokenStream { - let mut streams = self.0; - match streams.len() { - 0 => TokenStream::default(), - 1 => streams.pop().unwrap(), - _ => { - // We will extend the first stream in `streams` with the - // elements from the subsequent streams. This requires using - // `make_mut()` on the first stream, and in practice this - // doesn't cause cloning 99.9% of the time. - // - // One very common use case is when `streams` has two elements, - // where the first stream has any number of elements within - // (often 1, but sometimes many more) and the second stream has - // a single element within. - - // Determine how much the first stream will be extended. - // Needed to avoid quadratic blow up from on-the-fly - // reallocations (#57735). - let num_appends = streams.iter().skip(1).map(|ts| ts.len()).sum(); - - // Get the first stream, which will become the result stream. - // If it's `None`, create an empty stream. - let mut iter = streams.into_iter(); - let mut res_stream_lrc = iter.next().unwrap().0; - - // Append the subsequent elements to the result stream, after - // reserving space for them. - let res_vec_mut = Lrc::make_mut(&mut res_stream_lrc); - res_vec_mut.reserve(num_appends); - for stream in iter { - let stream_iter = stream.0.iter().cloned(); - - // If (a) `res_mut_vec` is not empty and the last tree - // within it is a token tree marked with `Joint`, and (b) - // `stream` is not empty and the first tree within it is a - // token tree, and (c) the two tokens can be glued - // together... - if let Some(TokenTree::Token(last_tok, Spacing::Joint)) = res_vec_mut.last() - && let Some(TokenTree::Token(tok, spacing)) = stream.0.first() - && let Some(glued_tok) = last_tok.glue(&tok) - { - // ...then overwrite the last token tree in - // `res_vec_mut` with the glued token, and skip the - // first token tree from `stream`. - *res_vec_mut.last_mut().unwrap() = TokenTree::Token(glued_tok, *spacing); - res_vec_mut.extend(stream_iter.skip(1)); - } else { - // Append all of `stream`. - res_vec_mut.extend(stream_iter); - } - } + // If `vec` is not empty, try to glue `tt` onto its last token. The return + // value indicates if gluing took place. + fn try_glue_to_last(vec: &mut Vec, tt: &TokenTree) -> bool { + if let Some(TokenTree::Token(last_tok, Spacing::Joint)) = vec.last() + && let TokenTree::Token(tok, spacing) = tt + && let Some(glued_tok) = last_tok.glue(&tok) + { + // ...then overwrite the last token tree in `vec` with the + // glued token, and skip the first token tree from `stream`. + *vec.last_mut().unwrap() = TokenTree::Token(glued_tok, *spacing); + true + } else { + false + } + } - TokenStream(res_stream_lrc) - } + // Push `tt` onto the end of the stream, possibly gluing it to the last + // token. Uses `make_mut` to maximize efficiency. + pub fn push_tree(&mut self, tt: TokenTree) { + let vec_mut = Lrc::make_mut(&mut self.0); + + if Self::try_glue_to_last(vec_mut, &tt) { + // nothing else to do + } else { + vec_mut.push(tt); + } + } + + // Push `stream` onto the end of the stream, possibly gluing the first + // token tree to the last token. (No other token trees will be glued.) + // Uses `make_mut` to maximize efficiency. + pub fn push_stream(&mut self, stream: TokenStream) { + let vec_mut = Lrc::make_mut(&mut self.0); + + let stream_iter = stream.0.iter().cloned(); + + if let Some(first) = stream.0.first() && Self::try_glue_to_last(vec_mut, first) { + // Now skip the first token tree from `stream`. + vec_mut.extend(stream_iter.skip(1)); + } else { + // Append all of `stream`. + vec_mut.extend(stream_iter); } } } @@ -664,3 +640,17 @@ impl DelimSpan { self.open.with_hi(self.close.hi()) } } + +// Some types are used a lot. Make sure they don't unintentionally get bigger. +#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] +mod size_asserts { + use super::*; + use rustc_data_structures::static_assert_size; + // tidy-alphabetical-start + static_assert_size!(AttrTokenStream, 8); + static_assert_size!(AttrTokenTree, 32); + static_assert_size!(LazyAttrTokenStream, 8); + static_assert_size!(TokenStream, 8); + static_assert_size!(TokenTree, 32); + // tidy-alphabetical-end +} diff --git a/compiler/rustc_ast/src/util/parser.rs b/compiler/rustc_ast/src/util/parser.rs index 6c5c7f66fa..b40ad6f700 100644 --- a/compiler/rustc_ast/src/util/parser.rs +++ b/compiler/rustc_ast/src/util/parser.rs @@ -396,9 +396,9 @@ pub fn contains_exterior_struct_lit(value: &ast::Expr) -> bool { contains_exterior_struct_lit(&x) } - ast::ExprKind::MethodCall(.., ref exprs, _) => { + ast::ExprKind::MethodCall(_, ref receiver, _, _) => { // X { y: 1 }.bar(...) - contains_exterior_struct_lit(&exprs[0]) + contains_exterior_struct_lit(&receiver) } _ => false, diff --git a/compiler/rustc_ast/src/visit.rs b/compiler/rustc_ast/src/visit.rs index 1d0de5a4b6..6f56c1ef0e 100644 --- a/compiler/rustc_ast/src/visit.rs +++ b/compiler/rustc_ast/src/visit.rs @@ -140,6 +140,11 @@ pub trait Visitor<'ast>: Sized { fn visit_expr(&mut self, ex: &'ast Expr) { walk_expr(self, ex) } + /// This method is a hack to workaround unstable of `stmt_expr_attributes`. + /// It can be removed once that feature is stabilized. + fn visit_method_receiver_expr(&mut self, ex: &'ast Expr) { + self.visit_expr(ex) + } fn visit_expr_post(&mut self, _ex: &'ast Expr) {} fn visit_ty(&mut self, t: &'ast Ty) { walk_ty(self, t) @@ -244,14 +249,12 @@ pub trait Visitor<'ast>: Sized { #[macro_export] macro_rules! walk_list { - ($visitor: expr, $method: ident, $list: expr) => { - for elem in $list { - $visitor.$method(elem) - } - }; - ($visitor: expr, $method: ident, $list: expr, $($extra_args: expr),*) => { - for elem in $list { - $visitor.$method(elem, $($extra_args,)*) + ($visitor: expr, $method: ident, $list: expr $(, $($extra_args: expr),* )?) => { + { + #[cfg_attr(not(bootstrap), allow(for_loops_over_fallibles))] + for elem in $list { + $visitor.$method(elem $(, $($extra_args,)* )?) + } } } } @@ -685,7 +688,7 @@ pub fn walk_assoc_item<'a, V: Visitor<'a>>(visitor: &mut V, item: &'a AssocItem, let kind = FnKind::Fn(FnCtxt::Assoc(ctxt), ident, sig, vis, generics, body.as_deref()); visitor.visit_fn(kind, span, id); } - AssocItemKind::TyAlias(box TyAlias { generics, bounds, ty, .. }) => { + AssocItemKind::Type(box TyAlias { generics, bounds, ty, .. }) => { visitor.visit_generics(generics); walk_list!(visitor, visit_param_bound, bounds, BoundKind::Bound); walk_list!(visitor, visit_ty, ty); @@ -795,8 +798,9 @@ pub fn walk_expr<'a, V: Visitor<'a>>(visitor: &mut V, expression: &'a Expr) { visitor.visit_expr(callee_expression); walk_list!(visitor, visit_expr, arguments); } - ExprKind::MethodCall(ref segment, ref arguments, _span) => { + ExprKind::MethodCall(ref segment, ref receiver, ref arguments, _span) => { visitor.visit_path_segment(segment); + visitor.visit_expr(receiver); walk_list!(visitor, visit_expr, arguments); } ExprKind::Binary(_, ref left_expression, ref right_expression) => { diff --git a/compiler/rustc_ast_lowering/src/asm.rs b/compiler/rustc_ast_lowering/src/asm.rs index 24672efc63..450cdf246b 100644 --- a/compiler/rustc_ast_lowering/src/asm.rs +++ b/compiler/rustc_ast_lowering/src/asm.rs @@ -192,26 +192,13 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> { } } InlineAsmOperand::Sym { ref sym } => { - if !self.tcx.features().asm_sym { - feature_err( - &sess.parse_sess, - sym::asm_sym, - *op_sp, - "sym operands for inline assembly are unstable", - ) - .emit(); - } - let static_def_id = self .resolver .get_partial_res(sym.id) - .filter(|res| res.unresolved_segments() == 0) - .and_then(|res| { - if let Res::Def(DefKind::Static(_), def_id) = res.base_res() { - Some(def_id) - } else { - None - } + .and_then(|res| res.full_res()) + .and_then(|res| match res { + Res::Def(DefKind::Static(_), def_id) => Some(def_id), + _ => None, }); if let Some(def_id) = static_def_id { @@ -237,7 +224,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> { // Wrap the expression in an AnonConst. let parent_def_id = self.current_hir_id_owner; let node_id = self.next_node_id(); - self.create_def(parent_def_id, node_id, DefPathData::AnonConst); + self.create_def(parent_def_id.def_id, node_id, DefPathData::AnonConst); let anon_const = AnonConst { id: node_id, value: P(expr) }; hir::InlineAsmOperand::SymFn { anon_const: self.lower_anon_const(&anon_const), diff --git a/compiler/rustc_ast_lowering/src/errors.rs b/compiler/rustc_ast_lowering/src/errors.rs index c87d0ca965..157f46501e 100644 --- a/compiler/rustc_ast_lowering/src/errors.rs +++ b/compiler/rustc_ast_lowering/src/errors.rs @@ -1,9 +1,9 @@ -use rustc_errors::{fluent, AddSubdiagnostic, Applicability, Diagnostic, DiagnosticArgFromDisplay}; -use rustc_macros::{SessionDiagnostic, SessionSubdiagnostic}; +use rustc_errors::DiagnosticArgFromDisplay; +use rustc_macros::{Diagnostic, Subdiagnostic}; use rustc_span::{symbol::Ident, Span, Symbol}; -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::generic_type_with_parentheses, code = "E0214")] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_generic_type_with_parentheses, code = "E0214")] pub struct GenericTypeWithParentheses { #[primary_span] #[label] @@ -12,35 +12,42 @@ pub struct GenericTypeWithParentheses { pub sub: Option, } -#[derive(Clone, Copy)] +#[derive(Clone, Copy, Subdiagnostic)] +#[multipart_suggestion(ast_lowering_use_angle_brackets, applicability = "maybe-incorrect")] pub struct UseAngleBrackets { + #[suggestion_part(code = "<")] pub open_param: Span, + #[suggestion_part(code = ">")] pub close_param: Span, } -impl AddSubdiagnostic for UseAngleBrackets { - fn add_to_diagnostic(self, diag: &mut Diagnostic) { - diag.multipart_suggestion( - fluent::ast_lowering::use_angle_brackets, - vec![(self.open_param, String::from("<")), (self.close_param, String::from(">"))], - Applicability::MaybeIncorrect, - ); - } -} - -#[derive(SessionDiagnostic)] -#[help] -#[diag(ast_lowering::invalid_abi, code = "E0703")] +#[derive(Diagnostic)] +#[diag(ast_lowering_invalid_abi, code = "E0703")] +#[note] pub struct InvalidAbi { #[primary_span] #[label] pub span: Span, pub abi: Symbol, - pub valid_abis: String, + pub command: String, + #[subdiagnostic] + pub suggestion: Option, +} + +#[derive(Subdiagnostic)] +#[suggestion( + ast_lowering_invalid_abi_suggestion, + code = "{suggestion}", + applicability = "maybe-incorrect" +)] +pub struct InvalidAbiSuggestion { + #[primary_span] + pub span: Span, + pub suggestion: String, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::assoc_ty_parentheses)] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_assoc_ty_parentheses)] pub struct AssocTyParentheses { #[primary_span] pub span: Span, @@ -48,123 +55,116 @@ pub struct AssocTyParentheses { pub sub: AssocTyParenthesesSub, } -#[derive(Clone, Copy)] +#[derive(Clone, Copy, Subdiagnostic)] pub enum AssocTyParenthesesSub { - Empty { parentheses_span: Span }, - NotEmpty { open_param: Span, close_param: Span }, -} - -impl AddSubdiagnostic for AssocTyParenthesesSub { - fn add_to_diagnostic(self, diag: &mut Diagnostic) { - match self { - Self::Empty { parentheses_span } => diag.multipart_suggestion( - fluent::ast_lowering::remove_parentheses, - vec![(parentheses_span, String::new())], - Applicability::MaybeIncorrect, - ), - Self::NotEmpty { open_param, close_param } => diag.multipart_suggestion( - fluent::ast_lowering::use_angle_brackets, - vec![(open_param, String::from("<")), (close_param, String::from(">"))], - Applicability::MaybeIncorrect, - ), - }; - } -} - -#[derive(SessionDiagnostic)] -#[diag(ast_lowering::misplaced_impl_trait, code = "E0562")] + #[multipart_suggestion(ast_lowering_remove_parentheses)] + Empty { + #[suggestion_part(code = "")] + parentheses_span: Span, + }, + #[multipart_suggestion(ast_lowering_use_angle_brackets)] + NotEmpty { + #[suggestion_part(code = "<")] + open_param: Span, + #[suggestion_part(code = ">")] + close_param: Span, + }, +} + +#[derive(Diagnostic)] +#[diag(ast_lowering_misplaced_impl_trait, code = "E0562")] pub struct MisplacedImplTrait<'a> { #[primary_span] pub span: Span, pub position: DiagnosticArgFromDisplay<'a>, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::rustc_box_attribute_error)] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_rustc_box_attribute_error)] pub struct RustcBoxAttributeError { #[primary_span] pub span: Span, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::underscore_expr_lhs_assign)] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_underscore_expr_lhs_assign)] pub struct UnderscoreExprLhsAssign { #[primary_span] #[label] pub span: Span, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::base_expression_double_dot)] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_base_expression_double_dot)] pub struct BaseExpressionDoubleDot { #[primary_span] #[label] pub span: Span, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::await_only_in_async_fn_and_blocks, code = "E0728")] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_await_only_in_async_fn_and_blocks, code = "E0728")] pub struct AwaitOnlyInAsyncFnAndBlocks { #[primary_span] #[label] pub dot_await_span: Span, - #[label(ast_lowering::this_not_async)] + #[label(ast_lowering_this_not_async)] pub item_span: Option, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::generator_too_many_parameters, code = "E0628")] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_generator_too_many_parameters, code = "E0628")] pub struct GeneratorTooManyParameters { #[primary_span] pub fn_decl_span: Span, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::closure_cannot_be_static, code = "E0697")] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_closure_cannot_be_static, code = "E0697")] pub struct ClosureCannotBeStatic { #[primary_span] pub fn_decl_span: Span, } -#[derive(SessionDiagnostic, Clone, Copy)] +#[derive(Diagnostic, Clone, Copy)] #[help] -#[diag(ast_lowering::async_non_move_closure_not_supported, code = "E0708")] +#[diag(ast_lowering_async_non_move_closure_not_supported, code = "E0708")] pub struct AsyncNonMoveClosureNotSupported { #[primary_span] pub fn_decl_span: Span, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::functional_record_update_destructuring_assignment)] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_functional_record_update_destructuring_assignment)] pub struct FunctionalRecordUpdateDestructuringAssignemnt { #[primary_span] #[suggestion(code = "", applicability = "machine-applicable")] pub span: Span, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::async_generators_not_supported, code = "E0727")] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_async_generators_not_supported, code = "E0727")] pub struct AsyncGeneratorsNotSupported { #[primary_span] pub span: Span, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::inline_asm_unsupported_target, code = "E0472")] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_inline_asm_unsupported_target, code = "E0472")] pub struct InlineAsmUnsupportedTarget { #[primary_span] pub span: Span, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::att_syntax_only_x86)] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_att_syntax_only_x86)] pub struct AttSyntaxOnlyX86 { #[primary_span] pub span: Span, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::abi_specified_multiple_times)] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_abi_specified_multiple_times)] pub struct AbiSpecifiedMultipleTimes { #[primary_span] pub abi_span: Span, @@ -175,24 +175,24 @@ pub struct AbiSpecifiedMultipleTimes { pub equivalent: Option<()>, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::clobber_abi_not_supported)] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_clobber_abi_not_supported)] pub struct ClobberAbiNotSupported { #[primary_span] pub abi_span: Span, } -#[derive(SessionDiagnostic)] +#[derive(Diagnostic)] #[note] -#[diag(ast_lowering::invalid_abi_clobber_abi)] +#[diag(ast_lowering_invalid_abi_clobber_abi)] pub struct InvalidAbiClobberAbi { #[primary_span] pub abi_span: Span, pub supported_abis: String, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::invalid_register)] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_invalid_register)] pub struct InvalidRegister<'a> { #[primary_span] pub op_span: Span, @@ -200,8 +200,8 @@ pub struct InvalidRegister<'a> { pub error: &'a str, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::invalid_register_class)] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_invalid_register_class)] pub struct InvalidRegisterClass<'a> { #[primary_span] pub op_span: Span, @@ -209,61 +209,61 @@ pub struct InvalidRegisterClass<'a> { pub error: &'a str, } -#[derive(SessionDiagnostic)] -#[diag(ast_lowering::invalid_asm_template_modifier_reg_class)] +#[derive(Diagnostic)] +#[diag(ast_lowering_invalid_asm_template_modifier_reg_class)] pub struct InvalidAsmTemplateModifierRegClass { #[primary_span] - #[label(ast_lowering::template_modifier)] + #[label(ast_lowering_template_modifier)] pub placeholder_span: Span, - #[label(ast_lowering::argument)] + #[label(ast_lowering_argument)] pub op_span: Span, #[subdiagnostic] pub sub: InvalidAsmTemplateModifierRegClassSub, } -#[derive(SessionSubdiagnostic)] +#[derive(Subdiagnostic)] pub enum InvalidAsmTemplateModifierRegClassSub { - #[note(ast_lowering::support_modifiers)] + #[note(ast_lowering_support_modifiers)] SupportModifier { class_name: Symbol, modifiers: String }, - #[note(ast_lowering::does_not_support_modifiers)] + #[note(ast_lowering_does_not_support_modifiers)] DoesNotSupportModifier { class_name: Symbol }, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::invalid_asm_template_modifier_const)] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_invalid_asm_template_modifier_const)] pub struct InvalidAsmTemplateModifierConst { #[primary_span] - #[label(ast_lowering::template_modifier)] + #[label(ast_lowering_template_modifier)] pub placeholder_span: Span, - #[label(ast_lowering::argument)] + #[label(ast_lowering_argument)] pub op_span: Span, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::invalid_asm_template_modifier_sym)] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_invalid_asm_template_modifier_sym)] pub struct InvalidAsmTemplateModifierSym { #[primary_span] - #[label(ast_lowering::template_modifier)] + #[label(ast_lowering_template_modifier)] pub placeholder_span: Span, - #[label(ast_lowering::argument)] + #[label(ast_lowering_argument)] pub op_span: Span, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::register_class_only_clobber)] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_register_class_only_clobber)] pub struct RegisterClassOnlyClobber { #[primary_span] pub op_span: Span, pub reg_class_name: Symbol, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::register_conflict)] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_register_conflict)] pub struct RegisterConflict<'a> { #[primary_span] - #[label(ast_lowering::register1)] + #[label(ast_lowering_register1)] pub op_span1: Span, - #[label(ast_lowering::register2)] + #[label(ast_lowering_register2)] pub op_span2: Span, pub reg1_name: &'a str, pub reg2_name: &'a str, @@ -271,14 +271,14 @@ pub struct RegisterConflict<'a> { pub in_out: Option, } -#[derive(SessionDiagnostic, Clone, Copy)] +#[derive(Diagnostic, Clone, Copy)] #[help] -#[diag(ast_lowering::sub_tuple_binding)] +#[diag(ast_lowering_sub_tuple_binding)] pub struct SubTupleBinding<'a> { #[primary_span] #[label] #[suggestion_verbose( - ast_lowering::sub_tuple_binding_suggestion, + ast_lowering_sub_tuple_binding_suggestion, code = "..", applicability = "maybe-incorrect" )] @@ -288,57 +288,57 @@ pub struct SubTupleBinding<'a> { pub ctx: &'a str, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::extra_double_dot)] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_extra_double_dot)] pub struct ExtraDoubleDot<'a> { #[primary_span] #[label] pub span: Span, - #[label(ast_lowering::previously_used_here)] + #[label(ast_lowering_previously_used_here)] pub prev_span: Span, pub ctx: &'a str, } -#[derive(SessionDiagnostic, Clone, Copy)] +#[derive(Diagnostic, Clone, Copy)] #[note] -#[diag(ast_lowering::misplaced_double_dot)] +#[diag(ast_lowering_misplaced_double_dot)] pub struct MisplacedDoubleDot { #[primary_span] pub span: Span, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::misplaced_relax_trait_bound)] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_misplaced_relax_trait_bound)] pub struct MisplacedRelaxTraitBound { #[primary_span] pub span: Span, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::not_supported_for_lifetime_binder_async_closure)] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_not_supported_for_lifetime_binder_async_closure)] pub struct NotSupportedForLifetimeBinderAsyncClosure { #[primary_span] pub span: Span, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::arbitrary_expression_in_pattern)] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_arbitrary_expression_in_pattern)] pub struct ArbitraryExpressionInPattern { #[primary_span] pub span: Span, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::inclusive_range_with_no_end)] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_inclusive_range_with_no_end)] pub struct InclusiveRangeWithNoEnd { #[primary_span] pub span: Span, } -#[derive(SessionDiagnostic, Clone, Copy)] -#[diag(ast_lowering::trait_fn_async, code = "E0706")] +#[derive(Diagnostic, Clone, Copy)] +#[diag(ast_lowering_trait_fn_async, code = "E0706")] #[note] -#[note(ast_lowering::note2)] +#[note(note2)] pub struct TraitFnAsync { #[primary_span] pub fn_span: Span, diff --git a/compiler/rustc_ast_lowering/src/expr.rs b/compiler/rustc_ast_lowering/src/expr.rs index 7b8070d3c2..ec9c393502 100644 --- a/compiler/rustc_ast_lowering/src/expr.rs +++ b/compiler/rustc_ast_lowering/src/expr.rs @@ -60,7 +60,7 @@ impl<'hir> LoweringContext<'_, 'hir> { hir::ExprKind::Call(f, self.lower_exprs(args)) } } - ExprKind::MethodCall(ref seg, ref args, span) => { + ExprKind::MethodCall(ref seg, ref receiver, ref args, span) => { let hir_seg = self.arena.alloc(self.lower_path_segment( e.span, seg, @@ -68,9 +68,9 @@ impl<'hir> LoweringContext<'_, 'hir> { ParenthesizedGenericArgs::Err, &ImplTraitContext::Disallowed(ImplTraitPosition::Path), )); - let receiver = self.lower_expr(&args[0]); + let receiver = self.lower_expr(receiver); let args = - self.arena.alloc_from_iter(args[1..].iter().map(|x| self.lower_expr_mut(x))); + self.arena.alloc_from_iter(args.iter().map(|x| self.lower_expr_mut(x))); hir::ExprKind::MethodCall(hir_seg, receiver, args, self.lower_span(span)) } ExprKind::Binary(binop, ref lhs, ref rhs) => { @@ -359,7 +359,7 @@ impl<'hir> LoweringContext<'_, 'hir> { let node_id = self.next_node_id(); // Add a definition for the in-band const def. - self.create_def(parent_def_id, node_id, DefPathData::AnonConst); + self.create_def(parent_def_id.def_id, node_id, DefPathData::AnonConst); let anon_const = AnonConst { id: node_id, value: arg }; generic_args.push(AngleBracketedArg::Arg(GenericArg::Const(anon_const))); @@ -387,32 +387,58 @@ impl<'hir> LoweringContext<'_, 'hir> { then: &Block, else_opt: Option<&Expr>, ) -> hir::ExprKind<'hir> { - let lowered_cond = self.lower_expr(cond); - let new_cond = self.manage_let_cond(lowered_cond); + let lowered_cond = self.lower_cond(cond); let then_expr = self.lower_block_expr(then); if let Some(rslt) = else_opt { - hir::ExprKind::If(new_cond, self.arena.alloc(then_expr), Some(self.lower_expr(rslt))) + hir::ExprKind::If( + lowered_cond, + self.arena.alloc(then_expr), + Some(self.lower_expr(rslt)), + ) } else { - hir::ExprKind::If(new_cond, self.arena.alloc(then_expr), None) + hir::ExprKind::If(lowered_cond, self.arena.alloc(then_expr), None) } } - // If `cond` kind is `let`, returns `let`. Otherwise, wraps and returns `cond` - // in a temporary block. - fn manage_let_cond(&mut self, cond: &'hir hir::Expr<'hir>) -> &'hir hir::Expr<'hir> { - fn has_let_expr<'hir>(expr: &'hir hir::Expr<'hir>) -> bool { - match expr.kind { - hir::ExprKind::Binary(_, lhs, rhs) => has_let_expr(lhs) || has_let_expr(rhs), - hir::ExprKind::Let(..) => true, + // Lowers a condition (i.e. `cond` in `if cond` or `while cond`), wrapping it in a terminating scope + // so that temporaries created in the condition don't live beyond it. + fn lower_cond(&mut self, cond: &Expr) -> &'hir hir::Expr<'hir> { + fn has_let_expr(expr: &Expr) -> bool { + match &expr.kind { + ExprKind::Binary(_, lhs, rhs) => has_let_expr(lhs) || has_let_expr(rhs), + ExprKind::Let(..) => true, _ => false, } } - if has_let_expr(cond) { - cond - } else { - let reason = DesugaringKind::CondTemporary; - let span_block = self.mark_span_with_reason(reason, cond.span, None); - self.expr_drop_temps(span_block, cond, AttrVec::new()) + + // We have to take special care for `let` exprs in the condition, e.g. in + // `if let pat = val` or `if foo && let pat = val`, as we _do_ want `val` to live beyond the + // condition in this case. + // + // In order to mantain the drop behavior for the non `let` parts of the condition, + // we still wrap them in terminating scopes, e.g. `if foo && let pat = val` essentially + // gets transformed into `if { let _t = foo; _t } && let pat = val` + match &cond.kind { + ExprKind::Binary(op @ Spanned { node: ast::BinOpKind::And, .. }, lhs, rhs) + if has_let_expr(cond) => + { + let op = self.lower_binop(*op); + let lhs = self.lower_cond(lhs); + let rhs = self.lower_cond(rhs); + + self.arena.alloc(self.expr( + cond.span, + hir::ExprKind::Binary(op, lhs, rhs), + AttrVec::new(), + )) + } + ExprKind::Let(..) => self.lower_expr(cond), + _ => { + let cond = self.lower_expr(cond); + let reason = DesugaringKind::CondTemporary; + let span_block = self.mark_span_with_reason(reason, cond.span, None); + self.expr_drop_temps(span_block, cond, AttrVec::new()) + } } } @@ -439,14 +465,13 @@ impl<'hir> LoweringContext<'_, 'hir> { body: &Block, opt_label: Option