Copy disabled (too large)
Download .txt
Showing preview only (119,500K chars total). Download the full file to get everything.
Repository: rust-lang/rust
Branch: main
Commit: 2bd7a97871a7
Files: 58605
Total size: 187.7 MB
Directory structure:
gitextract_551zv354/
├── .clang-format
├── .editorconfig
├── .git-blame-ignore-revs
├── .gitattributes
├── .github/
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE/
│ │ ├── bootstrap.md
│ │ ├── bug_report.md
│ │ ├── config.yml
│ │ ├── diagnostics.yaml
│ │ ├── documentation.yaml
│ │ ├── ice.md
│ │ ├── ice.yaml
│ │ ├── library_tracking_issue.md
│ │ ├── regression.md
│ │ ├── rustdoc.md
│ │ ├── tracking_issue.md
│ │ └── tracking_issue_future.md
│ ├── pull_request_template.md
│ ├── renovate.json5
│ └── workflows/
│ ├── ci.yml
│ ├── dependencies.yml
│ ├── ghcr.yml
│ └── post-merge.yml
├── .gitignore
├── .gitmodules
├── .ignore
├── .mailmap
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── COPYRIGHT
├── Cargo.toml
├── INSTALL.md
├── LICENSE-APACHE
├── LICENSE-MIT
├── LICENSES/
│ ├── Apache-2.0.txt
│ ├── BSD-2-Clause.txt
│ ├── CC-BY-SA-4.0.txt
│ ├── GCC-exception-3.1.txt
│ ├── GPL-2.0-only.txt
│ ├── GPL-3.0-or-later.txt
│ ├── ISC.txt
│ ├── LLVM-exception.txt
│ ├── MIT.txt
│ ├── NCSA.txt
│ ├── OFL-1.1.txt
│ └── Unicode-3.0.txt
├── README.md
├── RELEASES.md
├── REUSE.toml
├── bootstrap.example.toml
├── compiler/
│ ├── rustc/
│ │ ├── Cargo.toml
│ │ ├── Windows Manifest.xml
│ │ ├── build.rs
│ │ └── src/
│ │ └── main.rs
│ ├── rustc_abi/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── callconv/
│ │ │ └── reg.rs
│ │ ├── callconv.rs
│ │ ├── canon_abi.rs
│ │ ├── extern_abi/
│ │ │ └── tests.rs
│ │ ├── extern_abi.rs
│ │ ├── layout/
│ │ │ ├── coroutine.rs
│ │ │ ├── simple.rs
│ │ │ └── ty.rs
│ │ ├── layout.rs
│ │ ├── lib.rs
│ │ └── tests.rs
│ ├── rustc_arena/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── lib.rs
│ │ └── tests.rs
│ ├── rustc_ast/
│ │ ├── Cargo.toml
│ │ ├── README.md
│ │ └── src/
│ │ ├── ast.rs
│ │ ├── ast_traits.rs
│ │ ├── attr/
│ │ │ ├── data_structures.rs
│ │ │ ├── mod.rs
│ │ │ └── version.rs
│ │ ├── entry.rs
│ │ ├── expand/
│ │ │ ├── allocator.rs
│ │ │ ├── autodiff_attrs.rs
│ │ │ ├── mod.rs
│ │ │ └── typetree.rs
│ │ ├── format.rs
│ │ ├── lib.rs
│ │ ├── mut_visit.rs
│ │ ├── node_id.rs
│ │ ├── token.rs
│ │ ├── tokenstream.rs
│ │ ├── util/
│ │ │ ├── case.rs
│ │ │ ├── classify.rs
│ │ │ ├── comments/
│ │ │ │ └── tests.rs
│ │ │ ├── comments.rs
│ │ │ ├── literal.rs
│ │ │ ├── parser.rs
│ │ │ └── unicode.rs
│ │ └── visit.rs
│ ├── rustc_ast_ir/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── lib.rs
│ │ └── visit.rs
│ ├── rustc_ast_lowering/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── asm.rs
│ │ ├── block.rs
│ │ ├── contract.rs
│ │ ├── delegation/
│ │ │ └── generics.rs
│ │ ├── delegation.rs
│ │ ├── errors.rs
│ │ ├── expr.rs
│ │ ├── format.rs
│ │ ├── index.rs
│ │ ├── item.rs
│ │ ├── lib.rs
│ │ ├── pat.rs
│ │ ├── path.rs
│ │ └── stability.rs
│ ├── rustc_ast_passes/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── ast_validation.rs
│ │ ├── errors.rs
│ │ ├── feature_gate.rs
│ │ └── lib.rs
│ ├── rustc_ast_pretty/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── helpers.rs
│ │ ├── lib.rs
│ │ ├── pp/
│ │ │ ├── convenience.rs
│ │ │ └── ring.rs
│ │ ├── pp.rs
│ │ └── pprust/
│ │ ├── mod.rs
│ │ ├── state/
│ │ │ ├── expr.rs
│ │ │ ├── fixup.rs
│ │ │ └── item.rs
│ │ ├── state.rs
│ │ └── tests.rs
│ ├── rustc_attr_parsing/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── attributes/
│ │ │ ├── allow_unstable.rs
│ │ │ ├── autodiff.rs
│ │ │ ├── body.rs
│ │ │ ├── cfg.rs
│ │ │ ├── cfg_select.rs
│ │ │ ├── cfi_encoding.rs
│ │ │ ├── codegen_attrs.rs
│ │ │ ├── confusables.rs
│ │ │ ├── crate_level.rs
│ │ │ ├── debugger.rs
│ │ │ ├── deprecation.rs
│ │ │ ├── diagnostic/
│ │ │ │ ├── do_not_recommend.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── on_const.rs
│ │ │ │ ├── on_move.rs
│ │ │ │ └── on_unimplemented.rs
│ │ │ ├── doc.rs
│ │ │ ├── dummy.rs
│ │ │ ├── inline.rs
│ │ │ ├── instruction_set.rs
│ │ │ ├── link_attrs.rs
│ │ │ ├── lint_helpers.rs
│ │ │ ├── loop_match.rs
│ │ │ ├── macro_attrs.rs
│ │ │ ├── mod.rs
│ │ │ ├── must_not_suspend.rs
│ │ │ ├── must_use.rs
│ │ │ ├── no_implicit_prelude.rs
│ │ │ ├── no_link.rs
│ │ │ ├── non_exhaustive.rs
│ │ │ ├── path.rs
│ │ │ ├── pin_v2.rs
│ │ │ ├── prelude.rs
│ │ │ ├── proc_macro_attrs.rs
│ │ │ ├── prototype.rs
│ │ │ ├── repr.rs
│ │ │ ├── rustc_allocator.rs
│ │ │ ├── rustc_dump.rs
│ │ │ ├── rustc_internal.rs
│ │ │ ├── semantics.rs
│ │ │ ├── stability.rs
│ │ │ ├── test_attrs.rs
│ │ │ ├── traits.rs
│ │ │ ├── transparency.rs
│ │ │ └── util.rs
│ │ ├── context.rs
│ │ ├── early_parsed.rs
│ │ ├── errors.rs
│ │ ├── interface.rs
│ │ ├── lib.rs
│ │ ├── parser.rs
│ │ ├── safety.rs
│ │ ├── session_diagnostics.rs
│ │ ├── target_checking.rs
│ │ └── validate_attr.rs
│ ├── rustc_baked_icu_data/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── data/
│ │ │ ├── list_and_v1.rs.data
│ │ │ └── mod.rs
│ │ └── lib.rs
│ ├── rustc_borrowck/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── borrow_set.rs
│ │ ├── borrowck_errors.rs
│ │ ├── constraints/
│ │ │ ├── graph.rs
│ │ │ └── mod.rs
│ │ ├── consumers.rs
│ │ ├── dataflow.rs
│ │ ├── def_use.rs
│ │ ├── diagnostics/
│ │ │ ├── bound_region_errors.rs
│ │ │ ├── conflict_errors.rs
│ │ │ ├── explain_borrow.rs
│ │ │ ├── find_all_local_uses.rs
│ │ │ ├── find_use.rs
│ │ │ ├── mod.rs
│ │ │ ├── move_errors.rs
│ │ │ ├── mutability_errors.rs
│ │ │ ├── opaque_types.rs
│ │ │ ├── outlives_suggestion.rs
│ │ │ ├── region_errors.rs
│ │ │ ├── region_name.rs
│ │ │ └── var_name.rs
│ │ ├── handle_placeholders.rs
│ │ ├── lib.rs
│ │ ├── nll.rs
│ │ ├── path_utils.rs
│ │ ├── place_ext.rs
│ │ ├── places_conflict.rs
│ │ ├── polonius/
│ │ │ ├── constraints.rs
│ │ │ ├── dump.rs
│ │ │ ├── legacy/
│ │ │ │ ├── accesses.rs
│ │ │ │ ├── facts.rs
│ │ │ │ ├── loan_invalidations.rs
│ │ │ │ ├── loan_kills.rs
│ │ │ │ ├── location.rs
│ │ │ │ └── mod.rs
│ │ │ ├── liveness_constraints.rs
│ │ │ └── mod.rs
│ │ ├── prefixes.rs
│ │ ├── region_infer/
│ │ │ ├── dump_mir.rs
│ │ │ ├── graphviz.rs
│ │ │ ├── mod.rs
│ │ │ ├── opaque_types/
│ │ │ │ ├── member_constraints.rs
│ │ │ │ ├── mod.rs
│ │ │ │ └── region_ctxt.rs
│ │ │ ├── reverse_sccs.rs
│ │ │ └── values.rs
│ │ ├── renumber.rs
│ │ ├── root_cx.rs
│ │ ├── session_diagnostics.rs
│ │ ├── type_check/
│ │ │ ├── canonical.rs
│ │ │ ├── constraint_conversion.rs
│ │ │ ├── free_region_relations.rs
│ │ │ ├── input_output.rs
│ │ │ ├── liveness/
│ │ │ │ ├── local_use_map.rs
│ │ │ │ ├── mod.rs
│ │ │ │ └── trace.rs
│ │ │ ├── mod.rs
│ │ │ └── relate_tys.rs
│ │ ├── universal_regions.rs
│ │ └── used_muts.rs
│ ├── rustc_builtin_macros/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── alloc_error_handler.rs
│ │ ├── asm.rs
│ │ ├── assert/
│ │ │ └── context.rs
│ │ ├── assert.rs
│ │ ├── autodiff.rs
│ │ ├── cfg.rs
│ │ ├── cfg_accessible.rs
│ │ ├── cfg_eval.rs
│ │ ├── cfg_select.rs
│ │ ├── cmdline_attrs.rs
│ │ ├── compile_error.rs
│ │ ├── concat.rs
│ │ ├── concat_bytes.rs
│ │ ├── contracts.rs
│ │ ├── define_opaque.rs
│ │ ├── derive.rs
│ │ ├── deriving/
│ │ │ ├── bounds.rs
│ │ │ ├── clone.rs
│ │ │ ├── cmp/
│ │ │ │ ├── eq.rs
│ │ │ │ ├── ord.rs
│ │ │ │ ├── partial_eq.rs
│ │ │ │ └── partial_ord.rs
│ │ │ ├── coerce_pointee.rs
│ │ │ ├── debug.rs
│ │ │ ├── default.rs
│ │ │ ├── from.rs
│ │ │ ├── generic/
│ │ │ │ ├── mod.rs
│ │ │ │ └── ty.rs
│ │ │ ├── hash.rs
│ │ │ └── mod.rs
│ │ ├── edition_panic.rs
│ │ ├── eii.rs
│ │ ├── env.rs
│ │ ├── errors.rs
│ │ ├── format.rs
│ │ ├── format_foreign/
│ │ │ ├── printf/
│ │ │ │ └── tests.rs
│ │ │ └── shell/
│ │ │ └── tests.rs
│ │ ├── format_foreign.rs
│ │ ├── global_allocator.rs
│ │ ├── iter.rs
│ │ ├── lib.rs
│ │ ├── log_syntax.rs
│ │ ├── pattern_type.rs
│ │ ├── proc_macro_harness.rs
│ │ ├── source_util.rs
│ │ ├── standard_library_imports.rs
│ │ ├── test.rs
│ │ ├── test_harness.rs
│ │ ├── trace_macros.rs
│ │ └── util.rs
│ ├── rustc_codegen_cranelift/
│ │ ├── .cirrus.yml
│ │ ├── .gitattributes
│ │ ├── .github/
│ │ │ ├── scripts/
│ │ │ │ └── free-disk-space.sh
│ │ │ └── workflows/
│ │ │ ├── abi-cafe.yml
│ │ │ ├── main.yml
│ │ │ └── rustc.yml
│ │ ├── .gitignore
│ │ ├── Cargo.toml
│ │ ├── LICENSE-APACHE
│ │ ├── LICENSE-MIT
│ │ ├── Readme.md
│ │ ├── build_system/
│ │ │ ├── Cargo.toml
│ │ │ ├── abi_cafe.rs
│ │ │ ├── bench.rs
│ │ │ ├── build_backend.rs
│ │ │ ├── build_sysroot.rs
│ │ │ ├── config.rs
│ │ │ ├── main.rs
│ │ │ ├── path.rs
│ │ │ ├── prepare.rs
│ │ │ ├── rustc_info.rs
│ │ │ ├── shared_utils.rs
│ │ │ ├── tests.rs
│ │ │ ├── todo.rs
│ │ │ ├── usage.txt
│ │ │ └── utils.rs
│ │ ├── clean_all.sh
│ │ ├── config.txt
│ │ ├── docs/
│ │ │ ├── dwarf.md
│ │ │ ├── rustc_testing.md
│ │ │ └── usage.md
│ │ ├── example/
│ │ │ ├── arbitrary_self_types_pointers_and_wrappers.rs
│ │ │ ├── dst-field-align.rs
│ │ │ ├── example.rs
│ │ │ ├── float-minmax-pass.rs
│ │ │ ├── gen_block_iterate.rs
│ │ │ ├── issue-59326.rs
│ │ │ ├── issue-72793.rs
│ │ │ ├── mini_core.rs
│ │ │ ├── mini_core_hello_world.rs
│ │ │ ├── neon.rs
│ │ │ ├── raw-dylib.rs
│ │ │ ├── std_example.rs
│ │ │ ├── subslice-patterns-const-eval.rs
│ │ │ └── track-caller-attribute.rs
│ │ ├── patches/
│ │ │ ├── 0027-stdlib-128bit-atomic-operations.patch
│ │ │ ├── 0027-sysroot_tests-128bit-atomic-operations.patch
│ │ │ ├── 0028-sysroot_tests-Disable-long-running-tests.patch
│ │ │ ├── 0029-sysroot_tests-disable-f16-math.patch
│ │ │ ├── rand-lock.toml
│ │ │ └── regex-lock.toml
│ │ ├── rust-toolchain.toml
│ │ ├── rustfmt.toml
│ │ ├── scripts/
│ │ │ ├── Readme.md
│ │ │ ├── abi-cafe-rules.toml
│ │ │ ├── cargo-clif.rs
│ │ │ ├── filter_profile.rs
│ │ │ ├── jit-helpers.py
│ │ │ ├── rustc-clif.rs
│ │ │ ├── rustdoc-clif.rs
│ │ │ ├── rustup.sh
│ │ │ ├── setup_rust_fork.sh
│ │ │ ├── test_bootstrap.sh
│ │ │ └── test_rustc_tests.sh
│ │ ├── src/
│ │ │ ├── abi/
│ │ │ │ ├── comments.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── pass_mode.rs
│ │ │ │ └── returning.rs
│ │ │ ├── allocator.rs
│ │ │ ├── analyze.rs
│ │ │ ├── base.rs
│ │ │ ├── cast.rs
│ │ │ ├── codegen_f16_f128.rs
│ │ │ ├── codegen_i128.rs
│ │ │ ├── common.rs
│ │ │ ├── compiler_builtins.rs
│ │ │ ├── concurrency_limiter.rs
│ │ │ ├── config.rs
│ │ │ ├── constant.rs
│ │ │ ├── debuginfo/
│ │ │ │ ├── emit.rs
│ │ │ │ ├── gcc_except_table.rs
│ │ │ │ ├── line_info.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── object.rs
│ │ │ │ ├── types.rs
│ │ │ │ └── unwind.rs
│ │ │ ├── discriminant.rs
│ │ │ ├── driver/
│ │ │ │ ├── aot.rs
│ │ │ │ ├── jit.rs
│ │ │ │ └── mod.rs
│ │ │ ├── global_asm.rs
│ │ │ ├── inline_asm.rs
│ │ │ ├── intrinsics/
│ │ │ │ ├── llvm.rs
│ │ │ │ ├── llvm_aarch64.rs
│ │ │ │ ├── llvm_x86.rs
│ │ │ │ ├── mod.rs
│ │ │ │ └── simd.rs
│ │ │ ├── lib.rs
│ │ │ ├── linkage.rs
│ │ │ ├── main_shim.rs
│ │ │ ├── num.rs
│ │ │ ├── optimize/
│ │ │ │ ├── mod.rs
│ │ │ │ └── peephole.rs
│ │ │ ├── pointer.rs
│ │ │ ├── pretty_clif.rs
│ │ │ ├── toolchain.rs
│ │ │ ├── unsize.rs
│ │ │ ├── unwind_module.rs
│ │ │ ├── value_and_place.rs
│ │ │ └── vtable.rs
│ │ ├── test.sh
│ │ ├── triagebot.toml
│ │ ├── y.cmd
│ │ ├── y.ps1
│ │ └── y.sh
│ ├── rustc_codegen_gcc/
│ │ ├── .cspell.json
│ │ ├── .gitattributes
│ │ ├── .github/
│ │ │ └── workflows/
│ │ │ ├── ci.yml
│ │ │ ├── failures.yml
│ │ │ ├── gcc12.yml
│ │ │ ├── m68k.yml
│ │ │ ├── release.yml
│ │ │ └── stdarch.yml
│ │ ├── .gitignore
│ │ ├── .ignore
│ │ ├── .rustfmt.toml
│ │ ├── CONTRIBUTING.md
│ │ ├── Cargo.toml
│ │ ├── LICENSE-APACHE
│ │ ├── LICENSE-MIT
│ │ ├── Readme.md
│ │ ├── _typos.toml
│ │ ├── build_system/
│ │ │ ├── Cargo.toml
│ │ │ └── src/
│ │ │ ├── abi_test.rs
│ │ │ ├── build.rs
│ │ │ ├── clean.rs
│ │ │ ├── clone_gcc.rs
│ │ │ ├── config.rs
│ │ │ ├── fmt.rs
│ │ │ ├── fuzz/
│ │ │ │ └── reduce.rs
│ │ │ ├── fuzz.rs
│ │ │ ├── info.rs
│ │ │ ├── main.rs
│ │ │ ├── prepare.rs
│ │ │ ├── rust_tools.rs
│ │ │ ├── rustc_info.rs
│ │ │ ├── test.rs
│ │ │ └── utils.rs
│ │ ├── config.example.toml
│ │ ├── doc/
│ │ │ ├── add-attribute.md
│ │ │ ├── debugging-libgccjit.md
│ │ │ ├── debugging.md
│ │ │ ├── errors.md
│ │ │ ├── sending-gcc-patch.md
│ │ │ ├── subtree.md
│ │ │ ├── tests.md
│ │ │ └── tips.md
│ │ ├── example/
│ │ │ ├── alloc_example.rs
│ │ │ ├── alloc_system.rs
│ │ │ ├── arbitrary_self_types_pointers_and_wrappers.rs
│ │ │ ├── dst-field-align.rs
│ │ │ ├── example.rs
│ │ │ ├── mini_core.rs
│ │ │ ├── mini_core_hello_world.rs
│ │ │ ├── std_example.rs
│ │ │ ├── subslice-patterns-const-eval.rs
│ │ │ └── track-caller-attribute.rs
│ │ ├── libgccjit.version
│ │ ├── patches/
│ │ │ ├── 0001-Add-stdarch-Cargo.toml-for-testing.patch
│ │ │ ├── 0028-core-Disable-long-running-tests.patch
│ │ │ ├── crates/
│ │ │ │ └── 0001-Remove-deny-warnings.patch
│ │ │ ├── cross_patches/
│ │ │ │ └── 0001-Disable-libstd-and-libtest-dylib.patch
│ │ │ └── libgccjit12/
│ │ │ └── 0001-core-Disable-portable-simd-test.patch
│ │ ├── rust-toolchain
│ │ ├── src/
│ │ │ ├── abi.rs
│ │ │ ├── allocator.rs
│ │ │ ├── asm.rs
│ │ │ ├── attributes.rs
│ │ │ ├── back/
│ │ │ │ ├── lto.rs
│ │ │ │ ├── mod.rs
│ │ │ │ └── write.rs
│ │ │ ├── base.rs
│ │ │ ├── builder.rs
│ │ │ ├── callee.rs
│ │ │ ├── common.rs
│ │ │ ├── consts.rs
│ │ │ ├── context.rs
│ │ │ ├── coverageinfo.rs
│ │ │ ├── debuginfo.rs
│ │ │ ├── declare.rs
│ │ │ ├── errors.rs
│ │ │ ├── gcc_util.rs
│ │ │ ├── int.rs
│ │ │ ├── intrinsic/
│ │ │ │ ├── archs.rs
│ │ │ │ ├── llvm.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── old_archs.rs
│ │ │ │ └── simd.rs
│ │ │ ├── lib.rs
│ │ │ ├── mono_item.rs
│ │ │ ├── type_.rs
│ │ │ └── type_of.rs
│ │ ├── target_specs/
│ │ │ └── m68k-unknown-linux-gnu.json
│ │ ├── tests/
│ │ │ ├── cross_lang_lto/
│ │ │ │ ├── Cargo.toml
│ │ │ │ ├── add.c
│ │ │ │ └── src/
│ │ │ │ └── main.rs
│ │ │ ├── failing-ice-tests.txt
│ │ │ ├── failing-lto-tests.txt
│ │ │ ├── failing-run-make-tests.txt
│ │ │ ├── failing-ui-tests-without-128bit-integers.txt
│ │ │ ├── failing-ui-tests.txt
│ │ │ ├── failing-ui-tests12.txt
│ │ │ ├── hello-world/
│ │ │ │ ├── Cargo.toml
│ │ │ │ ├── mylib/
│ │ │ │ │ ├── Cargo.toml
│ │ │ │ │ └── src/
│ │ │ │ │ └── lib.rs
│ │ │ │ └── src/
│ │ │ │ └── main.rs
│ │ │ ├── lang_tests_common.rs
│ │ │ ├── lang_tests_debug.rs
│ │ │ ├── lang_tests_release.rs
│ │ │ └── run/
│ │ │ ├── abort1.rs
│ │ │ ├── abort2.rs
│ │ │ ├── always_inline.rs
│ │ │ ├── array.rs
│ │ │ ├── asm.rs
│ │ │ ├── assign.rs
│ │ │ ├── call-llvm-intrinsics.rs
│ │ │ ├── closure.rs
│ │ │ ├── condition.rs
│ │ │ ├── empty_main.rs
│ │ │ ├── exit.rs
│ │ │ ├── exit_code.rs
│ │ │ ├── float.rs
│ │ │ ├── fun_ptr.rs
│ │ │ ├── gep.rs
│ │ │ ├── int.rs
│ │ │ ├── int_intrinsics.rs
│ │ │ ├── int_overflow.rs
│ │ │ ├── mut_ref.rs
│ │ │ ├── operations.rs
│ │ │ ├── packed_u128.rs
│ │ │ ├── ptr_cast.rs
│ │ │ ├── return-tuple.rs
│ │ │ ├── simd-ffi.rs
│ │ │ ├── slice.rs
│ │ │ ├── static.rs
│ │ │ ├── structs.rs
│ │ │ ├── switchint_128bit.rs
│ │ │ ├── tuple.rs
│ │ │ ├── unreachable-function.rs
│ │ │ ├── volatile.rs
│ │ │ └── volatile2.rs
│ │ ├── tools/
│ │ │ ├── check_intrinsics_duplicates.py
│ │ │ ├── cspell_dicts/
│ │ │ │ ├── rust.txt
│ │ │ │ └── rustc_codegen_gcc.txt
│ │ │ └── generate_intrinsics.py
│ │ ├── triagebot.toml
│ │ └── y.sh
│ ├── rustc_codegen_llvm/
│ │ ├── Cargo.toml
│ │ ├── README.md
│ │ └── src/
│ │ ├── abi.rs
│ │ ├── allocator.rs
│ │ ├── asm.rs
│ │ ├── attributes.rs
│ │ ├── back/
│ │ │ ├── archive.rs
│ │ │ ├── lto.rs
│ │ │ ├── mod.rs
│ │ │ ├── owned_target_machine.rs
│ │ │ ├── profiling.rs
│ │ │ └── write.rs
│ │ ├── base.rs
│ │ ├── builder/
│ │ │ ├── autodiff.rs
│ │ │ └── gpu_offload.rs
│ │ ├── builder.rs
│ │ ├── callee.rs
│ │ ├── common.rs
│ │ ├── consts.rs
│ │ ├── context.rs
│ │ ├── coverageinfo/
│ │ │ ├── ffi.rs
│ │ │ ├── llvm_cov.rs
│ │ │ ├── mapgen/
│ │ │ │ ├── covfun.rs
│ │ │ │ ├── spans.rs
│ │ │ │ └── unused.rs
│ │ │ ├── mapgen.rs
│ │ │ └── mod.rs
│ │ ├── debuginfo/
│ │ │ ├── create_scope_map.rs
│ │ │ ├── di_builder.rs
│ │ │ ├── doc.md
│ │ │ ├── dwarf_const.rs
│ │ │ ├── gdb.rs
│ │ │ ├── metadata/
│ │ │ │ ├── enums/
│ │ │ │ │ ├── cpp_like.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── native.rs
│ │ │ │ └── type_map.rs
│ │ │ ├── metadata.rs
│ │ │ ├── mod.rs
│ │ │ ├── namespace.rs
│ │ │ └── utils.rs
│ │ ├── declare.rs
│ │ ├── errors.rs
│ │ ├── intrinsic.rs
│ │ ├── lib.rs
│ │ ├── llvm/
│ │ │ ├── conversions.rs
│ │ │ ├── diagnostic.rs
│ │ │ ├── enzyme_ffi.rs
│ │ │ ├── ffi.rs
│ │ │ ├── metadata_kind.rs
│ │ │ └── mod.rs
│ │ ├── llvm_util.rs
│ │ ├── macros.rs
│ │ ├── mono_item.rs
│ │ ├── type_.rs
│ │ ├── type_of.rs
│ │ ├── typetree.rs
│ │ ├── va_arg.rs
│ │ └── value.rs
│ ├── rustc_codegen_ssa/
│ │ ├── Cargo.toml
│ │ ├── README.md
│ │ └── src/
│ │ ├── assert_module_sources.rs
│ │ ├── back/
│ │ │ ├── apple/
│ │ │ │ └── tests.rs
│ │ │ ├── apple.rs
│ │ │ ├── archive.rs
│ │ │ ├── command.rs
│ │ │ ├── link/
│ │ │ │ └── raw_dylib.rs
│ │ │ ├── link.rs
│ │ │ ├── linker/
│ │ │ │ └── tests.rs
│ │ │ ├── linker.rs
│ │ │ ├── lto.rs
│ │ │ ├── metadata.rs
│ │ │ ├── mod.rs
│ │ │ ├── rpath/
│ │ │ │ └── tests.rs
│ │ │ ├── rpath.rs
│ │ │ ├── symbol_export.rs
│ │ │ └── write.rs
│ │ ├── base.rs
│ │ ├── codegen_attrs.rs
│ │ ├── common.rs
│ │ ├── debuginfo/
│ │ │ ├── mod.rs
│ │ │ └── type_names.rs
│ │ ├── errors.rs
│ │ ├── lib.rs
│ │ ├── meth.rs
│ │ ├── mir/
│ │ │ ├── analyze.rs
│ │ │ ├── block.rs
│ │ │ ├── constant.rs
│ │ │ ├── coverageinfo.rs
│ │ │ ├── debuginfo.rs
│ │ │ ├── intrinsic.rs
│ │ │ ├── locals.rs
│ │ │ ├── mod.rs
│ │ │ ├── naked_asm.rs
│ │ │ ├── operand.rs
│ │ │ ├── place.rs
│ │ │ ├── rvalue.rs
│ │ │ └── statement.rs
│ │ ├── mono_item.rs
│ │ ├── size_of_val.rs
│ │ ├── target_features.rs
│ │ └── traits/
│ │ ├── abi.rs
│ │ ├── asm.rs
│ │ ├── backend.rs
│ │ ├── builder.rs
│ │ ├── consts.rs
│ │ ├── coverageinfo.rs
│ │ ├── debuginfo.rs
│ │ ├── declare.rs
│ │ ├── intrinsic.rs
│ │ ├── misc.rs
│ │ ├── mod.rs
│ │ ├── statics.rs
│ │ ├── type_.rs
│ │ └── write.rs
│ ├── rustc_const_eval/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── check_consts/
│ │ │ ├── check.rs
│ │ │ ├── mod.rs
│ │ │ ├── ops.rs
│ │ │ ├── post_drop_elaboration.rs
│ │ │ ├── qualifs.rs
│ │ │ └── resolver.rs
│ │ ├── const_eval/
│ │ │ ├── dummy_machine.rs
│ │ │ ├── dyn_trait.rs
│ │ │ ├── error.rs
│ │ │ ├── eval_queries.rs
│ │ │ ├── fn_queries.rs
│ │ │ ├── machine.rs
│ │ │ ├── mod.rs
│ │ │ ├── type_info/
│ │ │ │ └── adt.rs
│ │ │ ├── type_info.rs
│ │ │ └── valtrees.rs
│ │ ├── errors.rs
│ │ ├── interpret/
│ │ │ ├── call.rs
│ │ │ ├── cast.rs
│ │ │ ├── discriminant.rs
│ │ │ ├── eval_context.rs
│ │ │ ├── intern.rs
│ │ │ ├── intrinsics/
│ │ │ │ └── simd.rs
│ │ │ ├── intrinsics.rs
│ │ │ ├── machine.rs
│ │ │ ├── memory.rs
│ │ │ ├── mod.rs
│ │ │ ├── operand.rs
│ │ │ ├── operator.rs
│ │ │ ├── place.rs
│ │ │ ├── projection.rs
│ │ │ ├── stack.rs
│ │ │ ├── step.rs
│ │ │ ├── traits.rs
│ │ │ ├── util.rs
│ │ │ ├── validity.rs
│ │ │ └── visitor.rs
│ │ ├── lib.rs
│ │ └── util/
│ │ ├── alignment.rs
│ │ ├── caller_location.rs
│ │ ├── check_validity_requirement.rs
│ │ ├── compare_types.rs
│ │ ├── mod.rs
│ │ └── type_name.rs
│ ├── rustc_data_structures/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── aligned.rs
│ │ ├── atomic_ref.rs
│ │ ├── base_n/
│ │ │ └── tests.rs
│ │ ├── base_n.rs
│ │ ├── binary_search_util/
│ │ │ ├── mod.rs
│ │ │ └── tests.rs
│ │ ├── fingerprint/
│ │ │ └── tests.rs
│ │ ├── fingerprint.rs
│ │ ├── flat_map_in_place.rs
│ │ ├── flock/
│ │ │ ├── linux.rs
│ │ │ ├── unix.rs
│ │ │ ├── unsupported.rs
│ │ │ └── windows.rs
│ │ ├── flock.rs
│ │ ├── frozen.rs
│ │ ├── fx.rs
│ │ ├── graph/
│ │ │ ├── dominators/
│ │ │ │ ├── mod.rs
│ │ │ │ └── tests.rs
│ │ │ ├── iterate/
│ │ │ │ ├── mod.rs
│ │ │ │ └── tests.rs
│ │ │ ├── linked_graph/
│ │ │ │ ├── mod.rs
│ │ │ │ └── tests.rs
│ │ │ ├── mod.rs
│ │ │ ├── reference.rs
│ │ │ ├── reversed.rs
│ │ │ ├── scc/
│ │ │ │ ├── mod.rs
│ │ │ │ └── tests.rs
│ │ │ ├── tests.rs
│ │ │ └── vec_graph/
│ │ │ ├── mod.rs
│ │ │ └── tests.rs
│ │ ├── intern/
│ │ │ └── tests.rs
│ │ ├── intern.rs
│ │ ├── jobserver.rs
│ │ ├── lib.rs
│ │ ├── marker.rs
│ │ ├── memmap.rs
│ │ ├── obligation_forest/
│ │ │ ├── graphviz.rs
│ │ │ ├── mod.rs
│ │ │ └── tests.rs
│ │ ├── owned_slice/
│ │ │ └── tests.rs
│ │ ├── owned_slice.rs
│ │ ├── packed.rs
│ │ ├── profiling/
│ │ │ └── tests.rs
│ │ ├── profiling.rs
│ │ ├── sharded.rs
│ │ ├── small_c_str/
│ │ │ └── tests.rs
│ │ ├── small_c_str.rs
│ │ ├── snapshot_map/
│ │ │ ├── mod.rs
│ │ │ └── tests.rs
│ │ ├── sorted_map/
│ │ │ ├── index_map.rs
│ │ │ └── tests.rs
│ │ ├── sorted_map.rs
│ │ ├── sso/
│ │ │ ├── map.rs
│ │ │ ├── mod.rs
│ │ │ └── set.rs
│ │ ├── stable_hasher/
│ │ │ └── tests.rs
│ │ ├── stable_hasher.rs
│ │ ├── stack.rs
│ │ ├── steal.rs
│ │ ├── svh.rs
│ │ ├── sync/
│ │ │ ├── freeze.rs
│ │ │ ├── lock.rs
│ │ │ ├── parallel.rs
│ │ │ ├── vec.rs
│ │ │ └── worker_local.rs
│ │ ├── sync.rs
│ │ ├── tagged_ptr/
│ │ │ └── tests.rs
│ │ ├── tagged_ptr.rs
│ │ ├── temp_dir.rs
│ │ ├── thinvec.rs
│ │ ├── thousands/
│ │ │ ├── mod.rs
│ │ │ └── tests.rs
│ │ ├── transitive_relation/
│ │ │ └── tests.rs
│ │ ├── transitive_relation.rs
│ │ ├── unhash.rs
│ │ ├── union_find/
│ │ │ └── tests.rs
│ │ ├── union_find.rs
│ │ ├── unord.rs
│ │ ├── vec_cache/
│ │ │ └── tests.rs
│ │ ├── vec_cache.rs
│ │ └── work_queue.rs
│ ├── rustc_driver/
│ │ ├── Cargo.toml
│ │ ├── build.rs
│ │ └── src/
│ │ └── lib.rs
│ ├── rustc_driver_impl/
│ │ ├── Cargo.toml
│ │ ├── README.md
│ │ └── src/
│ │ ├── args.rs
│ │ ├── highlighter.rs
│ │ ├── lib.rs
│ │ ├── pretty.rs
│ │ ├── print.rs
│ │ ├── session_diagnostics.rs
│ │ └── signal_handler.rs
│ ├── rustc_error_codes/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── error_codes/
│ │ │ ├── E0001.md
│ │ │ ├── E0002.md
│ │ │ ├── E0004.md
│ │ │ ├── E0005.md
│ │ │ ├── E0007.md
│ │ │ ├── E0009.md
│ │ │ ├── E0010.md
│ │ │ ├── E0013.md
│ │ │ ├── E0014.md
│ │ │ ├── E0015.md
│ │ │ ├── E0023.md
│ │ │ ├── E0025.md
│ │ │ ├── E0026.md
│ │ │ ├── E0027.md
│ │ │ ├── E0029.md
│ │ │ ├── E0030.md
│ │ │ ├── E0033.md
│ │ │ ├── E0034.md
│ │ │ ├── E0038.md
│ │ │ ├── E0040.md
│ │ │ ├── E0044.md
│ │ │ ├── E0045.md
│ │ │ ├── E0046.md
│ │ │ ├── E0049.md
│ │ │ ├── E0050.md
│ │ │ ├── E0053.md
│ │ │ ├── E0054.md
│ │ │ ├── E0055.md
│ │ │ ├── E0057.md
│ │ │ ├── E0059.md
│ │ │ ├── E0060.md
│ │ │ ├── E0061.md
│ │ │ ├── E0062.md
│ │ │ ├── E0063.md
│ │ │ ├── E0067.md
│ │ │ ├── E0069.md
│ │ │ ├── E0070.md
│ │ │ ├── E0071.md
│ │ │ ├── E0072.md
│ │ │ ├── E0073.md
│ │ │ ├── E0074.md
│ │ │ ├── E0075.md
│ │ │ ├── E0076.md
│ │ │ ├── E0077.md
│ │ │ ├── E0080.md
│ │ │ ├── E0081.md
│ │ │ ├── E0084.md
│ │ │ ├── E0087.md
│ │ │ ├── E0088.md
│ │ │ ├── E0089.md
│ │ │ ├── E0090.md
│ │ │ ├── E0091.md
│ │ │ ├── E0092.md
│ │ │ ├── E0093.md
│ │ │ ├── E0094.md
│ │ │ ├── E0106.md
│ │ │ ├── E0107.md
│ │ │ ├── E0109.md
│ │ │ ├── E0110.md
│ │ │ ├── E0116.md
│ │ │ ├── E0117.md
│ │ │ ├── E0118.md
│ │ │ ├── E0119.md
│ │ │ ├── E0120.md
│ │ │ ├── E0121.md
│ │ │ ├── E0124.md
│ │ │ ├── E0128.md
│ │ │ ├── E0130.md
│ │ │ ├── E0131.md
│ │ │ ├── E0132.md
│ │ │ ├── E0133.md
│ │ │ ├── E0136.md
│ │ │ ├── E0137.md
│ │ │ ├── E0138.md
│ │ │ ├── E0139.md
│ │ │ ├── E0152.md
│ │ │ ├── E0154.md
│ │ │ ├── E0158.md
│ │ │ ├── E0161.md
│ │ │ ├── E0162.md
│ │ │ ├── E0164.md
│ │ │ ├── E0165.md
│ │ │ ├── E0170.md
│ │ │ ├── E0178.md
│ │ │ ├── E0183.md
│ │ │ ├── E0184.md
│ │ │ ├── E0185.md
│ │ │ ├── E0186.md
│ │ │ ├── E0191.md
│ │ │ ├── E0192.md
│ │ │ ├── E0193.md
│ │ │ ├── E0195.md
│ │ │ ├── E0197.md
│ │ │ ├── E0198.md
│ │ │ ├── E0199.md
│ │ │ ├── E0200.md
│ │ │ ├── E0201.md
│ │ │ ├── E0203.md
│ │ │ ├── E0204.md
│ │ │ ├── E0205.md
│ │ │ ├── E0206.md
│ │ │ ├── E0207.md
│ │ │ ├── E0208.md
│ │ │ ├── E0210.md
│ │ │ ├── E0211.md
│ │ │ ├── E0212.md
│ │ │ ├── E0214.md
│ │ │ ├── E0220.md
│ │ │ ├── E0221.md
│ │ │ ├── E0222.md
│ │ │ ├── E0223.md
│ │ │ ├── E0224.md
│ │ │ ├── E0225.md
│ │ │ ├── E0226.md
│ │ │ ├── E0227.md
│ │ │ ├── E0228.md
│ │ │ ├── E0229.md
│ │ │ ├── E0230.md
│ │ │ ├── E0231.md
│ │ │ ├── E0232.md
│ │ │ ├── E0243.md
│ │ │ ├── E0244.md
│ │ │ ├── E0251.md
│ │ │ ├── E0252.md
│ │ │ ├── E0253.md
│ │ │ ├── E0254.md
│ │ │ ├── E0255.md
│ │ │ ├── E0256.md
│ │ │ ├── E0259.md
│ │ │ ├── E0260.md
│ │ │ ├── E0261.md
│ │ │ ├── E0262.md
│ │ │ ├── E0263.md
│ │ │ ├── E0264.md
│ │ │ ├── E0267.md
│ │ │ ├── E0268.md
│ │ │ ├── E0271.md
│ │ │ ├── E0275.md
│ │ │ ├── E0276.md
│ │ │ ├── E0277.md
│ │ │ ├── E0281.md
│ │ │ ├── E0282.md
│ │ │ ├── E0283.md
│ │ │ ├── E0284.md
│ │ │ ├── E0297.md
│ │ │ ├── E0301.md
│ │ │ ├── E0302.md
│ │ │ ├── E0303.md
│ │ │ ├── E0307.md
│ │ │ ├── E0308.md
│ │ │ ├── E0309.md
│ │ │ ├── E0310.md
│ │ │ ├── E0311.md
│ │ │ ├── E0312.md
│ │ │ ├── E0316.md
│ │ │ ├── E0317.md
│ │ │ ├── E0320.md
│ │ │ ├── E0321.md
│ │ │ ├── E0322.md
│ │ │ ├── E0323.md
│ │ │ ├── E0324.md
│ │ │ ├── E0325.md
│ │ │ ├── E0326.md
│ │ │ ├── E0328.md
│ │ │ ├── E0329.md
│ │ │ ├── E0364.md
│ │ │ ├── E0365.md
│ │ │ ├── E0366.md
│ │ │ ├── E0367.md
│ │ │ ├── E0368.md
│ │ │ ├── E0369.md
│ │ │ ├── E0370.md
│ │ │ ├── E0371.md
│ │ │ ├── E0373.md
│ │ │ ├── E0374.md
│ │ │ ├── E0375.md
│ │ │ ├── E0376.md
│ │ │ ├── E0377.md
│ │ │ ├── E0378.md
│ │ │ ├── E0379.md
│ │ │ ├── E0380.md
│ │ │ ├── E0381.md
│ │ │ ├── E0382.md
│ │ │ ├── E0383.md
│ │ │ ├── E0384.md
│ │ │ ├── E0386.md
│ │ │ ├── E0387.md
│ │ │ ├── E0388.md
│ │ │ ├── E0389.md
│ │ │ ├── E0390.md
│ │ │ ├── E0391.md
│ │ │ ├── E0392.md
│ │ │ ├── E0393.md
│ │ │ ├── E0398.md
│ │ │ ├── E0399.md
│ │ │ ├── E0401.md
│ │ │ ├── E0403.md
│ │ │ ├── E0404.md
│ │ │ ├── E0405.md
│ │ │ ├── E0407.md
│ │ │ ├── E0408.md
│ │ │ ├── E0409.md
│ │ │ ├── E0411.md
│ │ │ ├── E0412.md
│ │ │ ├── E0415.md
│ │ │ ├── E0416.md
│ │ │ ├── E0422.md
│ │ │ ├── E0423.md
│ │ │ ├── E0424.md
│ │ │ ├── E0425.md
│ │ │ ├── E0426.md
│ │ │ ├── E0428.md
│ │ │ ├── E0429.md
│ │ │ ├── E0430.md
│ │ │ ├── E0431.md
│ │ │ ├── E0432.md
│ │ │ ├── E0433.md
│ │ │ ├── E0434.md
│ │ │ ├── E0435.md
│ │ │ ├── E0436.md
│ │ │ ├── E0437.md
│ │ │ ├── E0438.md
│ │ │ ├── E0439.md
│ │ │ ├── E0445.md
│ │ │ ├── E0446.md
│ │ │ ├── E0447.md
│ │ │ ├── E0448.md
│ │ │ ├── E0449.md
│ │ │ ├── E0451.md
│ │ │ ├── E0452.md
│ │ │ ├── E0453.md
│ │ │ ├── E0454.md
│ │ │ ├── E0455.md
│ │ │ ├── E0457.md
│ │ │ ├── E0458.md
│ │ │ ├── E0459.md
│ │ │ ├── E0460.md
│ │ │ ├── E0461.md
│ │ │ ├── E0462.md
│ │ │ ├── E0463.md
│ │ │ ├── E0464.md
│ │ │ ├── E0466.md
│ │ │ ├── E0468.md
│ │ │ ├── E0469.md
│ │ │ ├── E0472.md
│ │ │ ├── E0476.md
│ │ │ ├── E0477.md
│ │ │ ├── E0478.md
│ │ │ ├── E0482.md
│ │ │ ├── E0491.md
│ │ │ ├── E0492.md
│ │ │ ├── E0493.md
│ │ │ ├── E0495.md
│ │ │ ├── E0496.md
│ │ │ ├── E0497.md
│ │ │ ├── E0498.md
│ │ │ ├── E0499.md
│ │ │ ├── E0500.md
│ │ │ ├── E0501.md
│ │ │ ├── E0502.md
│ │ │ ├── E0503.md
│ │ │ ├── E0504.md
│ │ │ ├── E0505.md
│ │ │ ├── E0506.md
│ │ │ ├── E0507.md
│ │ │ ├── E0508.md
│ │ │ ├── E0509.md
│ │ │ ├── E0510.md
│ │ │ ├── E0511.md
│ │ │ ├── E0512.md
│ │ │ ├── E0514.md
│ │ │ ├── E0515.md
│ │ │ ├── E0516.md
│ │ │ ├── E0517.md
│ │ │ ├── E0518.md
│ │ │ ├── E0519.md
│ │ │ ├── E0520.md
│ │ │ ├── E0521.md
│ │ │ ├── E0522.md
│ │ │ ├── E0523.md
│ │ │ ├── E0524.md
│ │ │ ├── E0525.md
│ │ │ ├── E0527.md
│ │ │ ├── E0528.md
│ │ │ ├── E0529.md
│ │ │ ├── E0530.md
│ │ │ ├── E0531.md
│ │ │ ├── E0532.md
│ │ │ ├── E0533.md
│ │ │ ├── E0534.md
│ │ │ ├── E0535.md
│ │ │ ├── E0536.md
│ │ │ ├── E0537.md
│ │ │ ├── E0538.md
│ │ │ ├── E0539.md
│ │ │ ├── E0541.md
│ │ │ ├── E0542.md
│ │ │ ├── E0543.md
│ │ │ ├── E0544.md
│ │ │ ├── E0545.md
│ │ │ ├── E0546.md
│ │ │ ├── E0547.md
│ │ │ ├── E0549.md
│ │ │ ├── E0550.md
│ │ │ ├── E0551.md
│ │ │ ├── E0552.md
│ │ │ ├── E0554.md
│ │ │ ├── E0556.md
│ │ │ ├── E0557.md
│ │ │ ├── E0559.md
│ │ │ ├── E0560.md
│ │ │ ├── E0561.md
│ │ │ ├── E0562.md
│ │ │ ├── E0565.md
│ │ │ ├── E0566.md
│ │ │ ├── E0567.md
│ │ │ ├── E0568.md
│ │ │ ├── E0569.md
│ │ │ ├── E0570.md
│ │ │ ├── E0571.md
│ │ │ ├── E0572.md
│ │ │ ├── E0573.md
│ │ │ ├── E0574.md
│ │ │ ├── E0575.md
│ │ │ ├── E0576.md
│ │ │ ├── E0577.md
│ │ │ ├── E0578.md
│ │ │ ├── E0579.md
│ │ │ ├── E0580.md
│ │ │ ├── E0581.md
│ │ │ ├── E0582.md
│ │ │ ├── E0583.md
│ │ │ ├── E0584.md
│ │ │ ├── E0585.md
│ │ │ ├── E0586.md
│ │ │ ├── E0587.md
│ │ │ ├── E0588.md
│ │ │ ├── E0589.md
│ │ │ ├── E0590.md
│ │ │ ├── E0591.md
│ │ │ ├── E0592.md
│ │ │ ├── E0593.md
│ │ │ ├── E0594.md
│ │ │ ├── E0595.md
│ │ │ ├── E0596.md
│ │ │ ├── E0597.md
│ │ │ ├── E0599.md
│ │ │ ├── E0600.md
│ │ │ ├── E0601.md
│ │ │ ├── E0602.md
│ │ │ ├── E0603.md
│ │ │ ├── E0604.md
│ │ │ ├── E0605.md
│ │ │ ├── E0606.md
│ │ │ ├── E0607.md
│ │ │ ├── E0608.md
│ │ │ ├── E0609.md
│ │ │ ├── E0610.md
│ │ │ ├── E0614.md
│ │ │ ├── E0615.md
│ │ │ ├── E0616.md
│ │ │ ├── E0617.md
│ │ │ ├── E0618.md
│ │ │ ├── E0619.md
│ │ │ ├── E0620.md
│ │ │ ├── E0621.md
│ │ │ ├── E0622.md
│ │ │ ├── E0623.md
│ │ │ ├── E0624.md
│ │ │ ├── E0625.md
│ │ │ ├── E0626.md
│ │ │ ├── E0627.md
│ │ │ ├── E0628.md
│ │ │ ├── E0631.md
│ │ │ ├── E0632.md
│ │ │ ├── E0633.md
│ │ │ ├── E0634.md
│ │ │ ├── E0635.md
│ │ │ ├── E0636.md
│ │ │ ├── E0637.md
│ │ │ ├── E0638.md
│ │ │ ├── E0639.md
│ │ │ ├── E0640.md
│ │ │ ├── E0641.md
│ │ │ ├── E0642.md
│ │ │ ├── E0643.md
│ │ │ ├── E0644.md
│ │ │ ├── E0646.md
│ │ │ ├── E0647.md
│ │ │ ├── E0648.md
│ │ │ ├── E0657.md
│ │ │ ├── E0658.md
│ │ │ ├── E0659.md
│ │ │ ├── E0660.md
│ │ │ ├── E0661.md
│ │ │ ├── E0662.md
│ │ │ ├── E0663.md
│ │ │ ├── E0664.md
│ │ │ ├── E0665.md
│ │ │ ├── E0666.md
│ │ │ ├── E0667.md
│ │ │ ├── E0668.md
│ │ │ ├── E0669.md
│ │ │ ├── E0670.md
│ │ │ ├── E0671.md
│ │ │ ├── E0687.md
│ │ │ ├── E0688.md
│ │ │ ├── E0689.md
│ │ │ ├── E0690.md
│ │ │ ├── E0691.md
│ │ │ ├── E0692.md
│ │ │ ├── E0693.md
│ │ │ ├── E0695.md
│ │ │ ├── E0696.md
│ │ │ ├── E0697.md
│ │ │ ├── E0698.md
│ │ │ ├── E0699.md
│ │ │ ├── E0700.md
│ │ │ ├── E0701.md
│ │ │ ├── E0703.md
│ │ │ ├── E0704.md
│ │ │ ├── E0705.md
│ │ │ ├── E0706.md
│ │ │ ├── E0708.md
│ │ │ ├── E0710.md
│ │ │ ├── E0711.md
│ │ │ ├── E0712.md
│ │ │ ├── E0713.md
│ │ │ ├── E0714.md
│ │ │ ├── E0715.md
│ │ │ ├── E0716.md
│ │ │ ├── E0717.md
│ │ │ ├── E0718.md
│ │ │ ├── E0719.md
│ │ │ ├── E0720.md
│ │ │ ├── E0722.md
│ │ │ ├── E0724.md
│ │ │ ├── E0725.md
│ │ │ ├── E0726.md
│ │ │ ├── E0727.md
│ │ │ ├── E0728.md
│ │ │ ├── E0729.md
│ │ │ ├── E0730.md
│ │ │ ├── E0731.md
│ │ │ ├── E0732.md
│ │ │ ├── E0733.md
│ │ │ ├── E0734.md
│ │ │ ├── E0735.md
│ │ │ ├── E0736.md
│ │ │ ├── E0737.md
│ │ │ ├── E0739.md
│ │ │ ├── E0740.md
│ │ │ ├── E0741.md
│ │ │ ├── E0742.md
│ │ │ ├── E0743.md
│ │ │ ├── E0744.md
│ │ │ ├── E0745.md
│ │ │ ├── E0746.md
│ │ │ ├── E0747.md
│ │ │ ├── E0748.md
│ │ │ ├── E0749.md
│ │ │ ├── E0750.md
│ │ │ ├── E0751.md
│ │ │ ├── E0752.md
│ │ │ ├── E0753.md
│ │ │ ├── E0754.md
│ │ │ ├── E0755.md
│ │ │ ├── E0756.md
│ │ │ ├── E0757.md
│ │ │ ├── E0758.md
│ │ │ ├── E0759.md
│ │ │ ├── E0760.md
│ │ │ ├── E0761.md
│ │ │ ├── E0762.md
│ │ │ ├── E0763.md
│ │ │ ├── E0764.md
│ │ │ ├── E0765.md
│ │ │ ├── E0766.md
│ │ │ ├── E0767.md
│ │ │ ├── E0768.md
│ │ │ ├── E0769.md
│ │ │ ├── E0770.md
│ │ │ ├── E0771.md
│ │ │ ├── E0772.md
│ │ │ ├── E0773.md
│ │ │ ├── E0774.md
│ │ │ ├── E0775.md
│ │ │ ├── E0776.md
│ │ │ ├── E0777.md
│ │ │ ├── E0778.md
│ │ │ ├── E0779.md
│ │ │ ├── E0780.md
│ │ │ ├── E0781.md
│ │ │ ├── E0782.md
│ │ │ ├── E0783.md
│ │ │ ├── E0784.md
│ │ │ ├── E0785.md
│ │ │ ├── E0786.md
│ │ │ ├── E0787.md
│ │ │ ├── E0788.md
│ │ │ ├── E0789.md
│ │ │ ├── E0790.md
│ │ │ ├── E0791.md
│ │ │ ├── E0792.md
│ │ │ ├── E0793.md
│ │ │ ├── E0794.md
│ │ │ ├── E0795.md
│ │ │ ├── E0796.md
│ │ │ ├── E0797.md
│ │ │ ├── E0798.md
│ │ │ ├── E0799.md
│ │ │ ├── E0800.md
│ │ │ ├── E0801.md
│ │ │ ├── E0802.md
│ │ │ ├── E0803.md
│ │ │ ├── E0804.md
│ │ │ ├── E0805.md
│ │ │ └── E0806.md
│ │ └── lib.rs
│ ├── rustc_error_messages/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── diagnostic_impls.rs
│ │ └── lib.rs
│ ├── rustc_errors/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── annotate_snippet_emitter_writer.rs
│ │ ├── codes.rs
│ │ ├── decorate_diag.rs
│ │ ├── diagnostic.rs
│ │ ├── diagnostic_impls.rs
│ │ ├── emitter.rs
│ │ ├── formatting.rs
│ │ ├── json/
│ │ │ └── tests.rs
│ │ ├── json.rs
│ │ ├── lib.rs
│ │ ├── lock.rs
│ │ ├── markdown/
│ │ │ ├── mod.rs
│ │ │ ├── parse.rs
│ │ │ ├── term.rs
│ │ │ └── tests/
│ │ │ ├── input.md
│ │ │ ├── output.stdout
│ │ │ ├── parse.rs
│ │ │ └── term.rs
│ │ └── timings.rs
│ ├── rustc_expand/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── base.rs
│ │ ├── build.rs
│ │ ├── config.rs
│ │ ├── errors.rs
│ │ ├── expand.rs
│ │ ├── lib.rs
│ │ ├── mbe/
│ │ │ ├── diagnostics.rs
│ │ │ ├── macro_check.rs
│ │ │ ├── macro_parser.rs
│ │ │ ├── macro_rules.rs
│ │ │ ├── metavar_expr.rs
│ │ │ ├── quoted.rs
│ │ │ └── transcribe.rs
│ │ ├── mbe.rs
│ │ ├── module.rs
│ │ ├── placeholders.rs
│ │ ├── proc_macro.rs
│ │ ├── proc_macro_server.rs
│ │ └── stats.rs
│ ├── rustc_feature/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── accepted.rs
│ │ ├── builtin_attrs.rs
│ │ ├── lib.rs
│ │ ├── removed.rs
│ │ ├── tests.rs
│ │ └── unstable.rs
│ ├── rustc_fs_util/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ └── lib.rs
│ ├── rustc_graphviz/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── lib.rs
│ │ └── tests.rs
│ ├── rustc_hashes/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ └── lib.rs
│ ├── rustc_hir/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── arena.rs
│ │ ├── attrs/
│ │ │ ├── data_structures.rs
│ │ │ ├── diagnostic.rs
│ │ │ ├── encode_cross_crate.rs
│ │ │ ├── mod.rs
│ │ │ └── pretty_printing.rs
│ │ ├── def.rs
│ │ ├── def_path_hash_map.rs
│ │ ├── definitions.rs
│ │ ├── diagnostic_items.rs
│ │ ├── hir/
│ │ │ └── tests.rs
│ │ ├── hir.rs
│ │ ├── intravisit.rs
│ │ ├── lang_items.rs
│ │ ├── lib.rs
│ │ ├── limit.rs
│ │ ├── lints.rs
│ │ ├── pat_util.rs
│ │ ├── stability.rs
│ │ ├── stable_hash_impls.rs
│ │ ├── target.rs
│ │ ├── tests.rs
│ │ └── weak_lang_items.rs
│ ├── rustc_hir_analysis/
│ │ ├── Cargo.toml
│ │ ├── README.md
│ │ └── src/
│ │ ├── autoderef.rs
│ │ ├── check/
│ │ │ ├── always_applicable.rs
│ │ │ ├── check.rs
│ │ │ ├── compare_eii.rs
│ │ │ ├── compare_impl_item/
│ │ │ │ └── refine.rs
│ │ │ ├── compare_impl_item.rs
│ │ │ ├── entry.rs
│ │ │ ├── intrinsic.rs
│ │ │ ├── mod.rs
│ │ │ ├── region.rs
│ │ │ └── wfcheck.rs
│ │ ├── check_unused.rs
│ │ ├── coherence/
│ │ │ ├── builtin.rs
│ │ │ ├── inherent_impls.rs
│ │ │ ├── inherent_impls_overlap.rs
│ │ │ ├── mod.rs
│ │ │ ├── orphan.rs
│ │ │ └── unsafety.rs
│ │ ├── collect/
│ │ │ ├── dump.rs
│ │ │ ├── generics_of.rs
│ │ │ ├── item_bounds.rs
│ │ │ ├── predicates_of.rs
│ │ │ ├── resolve_bound_vars.rs
│ │ │ ├── type_of/
│ │ │ │ └── opaque.rs
│ │ │ └── type_of.rs
│ │ ├── collect.rs
│ │ ├── constrained_generic_params.rs
│ │ ├── delegation.rs
│ │ ├── errors/
│ │ │ ├── precise_captures.rs
│ │ │ └── wrong_number_of_generic_args.rs
│ │ ├── errors.rs
│ │ ├── hir_ty_lowering/
│ │ │ ├── bounds.rs
│ │ │ ├── cmse.rs
│ │ │ ├── dyn_trait.rs
│ │ │ ├── errors.rs
│ │ │ ├── generics.rs
│ │ │ └── mod.rs
│ │ ├── hir_wf_check.rs
│ │ ├── impl_wf_check/
│ │ │ └── min_specialization.rs
│ │ ├── impl_wf_check.rs
│ │ ├── lib.rs
│ │ ├── outlives/
│ │ │ ├── dump.rs
│ │ │ ├── explicit.rs
│ │ │ ├── implicit_infer.rs
│ │ │ ├── mod.rs
│ │ │ └── utils.rs
│ │ └── variance/
│ │ ├── constraints.rs
│ │ ├── dump.rs
│ │ ├── mod.rs
│ │ ├── solve.rs
│ │ └── terms.rs
│ ├── rustc_hir_id/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ └── lib.rs
│ ├── rustc_hir_pretty/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ └── lib.rs
│ ├── rustc_hir_typeck/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── _match.rs
│ │ ├── autoderef.rs
│ │ ├── callee.rs
│ │ ├── cast.rs
│ │ ├── check.rs
│ │ ├── closure.rs
│ │ ├── coercion.rs
│ │ ├── demand.rs
│ │ ├── diverges.rs
│ │ ├── errors.rs
│ │ ├── expectation.rs
│ │ ├── expr.rs
│ │ ├── expr_use_visitor.rs
│ │ ├── fallback.rs
│ │ ├── fn_ctxt/
│ │ │ ├── _impl.rs
│ │ │ ├── adjust_fulfillment_errors.rs
│ │ │ ├── arg_matrix.rs
│ │ │ ├── checks.rs
│ │ │ ├── inspect_obligations.rs
│ │ │ ├── mod.rs
│ │ │ └── suggestions.rs
│ │ ├── gather_locals.rs
│ │ ├── inline_asm.rs
│ │ ├── intrinsicck.rs
│ │ ├── lib.rs
│ │ ├── loops.rs
│ │ ├── method/
│ │ │ ├── confirm.rs
│ │ │ ├── mod.rs
│ │ │ ├── prelude_edition_lints.rs
│ │ │ ├── probe.rs
│ │ │ └── suggest.rs
│ │ ├── naked_functions.rs
│ │ ├── op.rs
│ │ ├── opaque_types.rs
│ │ ├── pat.rs
│ │ ├── place_op.rs
│ │ ├── typeck_root_ctxt.rs
│ │ ├── upvar.rs
│ │ └── writeback.rs
│ ├── rustc_incremental/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── assert_dep_graph.rs
│ │ ├── errors.rs
│ │ ├── lib.rs
│ │ └── persist/
│ │ ├── README.md
│ │ ├── clean.rs
│ │ ├── data.rs
│ │ ├── file_format.rs
│ │ ├── fs/
│ │ │ └── tests.rs
│ │ ├── fs.rs
│ │ ├── load.rs
│ │ ├── mod.rs
│ │ ├── save.rs
│ │ └── work_product.rs
│ ├── rustc_index/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── bit_set/
│ │ │ └── tests.rs
│ │ ├── bit_set.rs
│ │ ├── idx.rs
│ │ ├── interval/
│ │ │ └── tests.rs
│ │ ├── interval.rs
│ │ ├── lib.rs
│ │ ├── slice.rs
│ │ ├── vec/
│ │ │ └── tests.rs
│ │ └── vec.rs
│ ├── rustc_index_macros/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── lib.rs
│ │ └── newtype.rs
│ ├── rustc_infer/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── errors.rs
│ │ ├── infer/
│ │ │ ├── at.rs
│ │ │ ├── canonical/
│ │ │ │ ├── canonicalizer.rs
│ │ │ │ ├── instantiate.rs
│ │ │ │ ├── mod.rs
│ │ │ │ └── query_response.rs
│ │ │ ├── context.rs
│ │ │ ├── free_regions.rs
│ │ │ ├── freshen.rs
│ │ │ ├── lexical_region_resolve/
│ │ │ │ ├── README.md
│ │ │ │ ├── indexed_edges.rs
│ │ │ │ └── mod.rs
│ │ │ ├── mod.rs
│ │ │ ├── opaque_types/
│ │ │ │ ├── mod.rs
│ │ │ │ └── table.rs
│ │ │ ├── outlives/
│ │ │ │ ├── env.rs
│ │ │ │ ├── for_liveness.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── obligations.rs
│ │ │ │ ├── test_type_match.rs
│ │ │ │ └── verify.rs
│ │ │ ├── projection.rs
│ │ │ ├── region_constraints/
│ │ │ │ ├── README.md
│ │ │ │ ├── leak_check.rs
│ │ │ │ └── mod.rs
│ │ │ ├── relate/
│ │ │ │ ├── generalize.rs
│ │ │ │ ├── higher_ranked.rs
│ │ │ │ ├── lattice.rs
│ │ │ │ ├── mod.rs
│ │ │ │ └── type_relating.rs
│ │ │ ├── resolve.rs
│ │ │ ├── snapshot/
│ │ │ │ ├── fudge.rs
│ │ │ │ ├── mod.rs
│ │ │ │ └── undo_log.rs
│ │ │ ├── type_variable.rs
│ │ │ └── unify_key.rs
│ │ ├── lib.rs
│ │ └── traits/
│ │ ├── engine.rs
│ │ ├── mod.rs
│ │ ├── project.rs
│ │ ├── structural_impls.rs
│ │ └── util.rs
│ ├── rustc_interface/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── callbacks.rs
│ │ ├── errors.rs
│ │ ├── interface.rs
│ │ ├── lib.rs
│ │ ├── limits.rs
│ │ ├── passes.rs
│ │ ├── proc_macro_decls.rs
│ │ ├── queries.rs
│ │ ├── tests.rs
│ │ └── util.rs
│ ├── rustc_lexer/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── lib.rs
│ │ └── tests.rs
│ ├── rustc_lint/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── async_closures.rs
│ │ ├── async_fn_in_trait.rs
│ │ ├── autorefs.rs
│ │ ├── builtin.rs
│ │ ├── context.rs
│ │ ├── dangling.rs
│ │ ├── default_could_be_derived.rs
│ │ ├── deref_into_dyn_supertrait.rs
│ │ ├── disallowed_pass_by_ref.rs
│ │ ├── drop_forget_useless.rs
│ │ ├── early/
│ │ │ ├── diagnostics/
│ │ │ │ └── check_cfg.rs
│ │ │ └── diagnostics.rs
│ │ ├── early.rs
│ │ ├── enum_intrinsics_non_enums.rs
│ │ ├── errors.rs
│ │ ├── expect.rs
│ │ ├── for_loops_over_fallibles.rs
│ │ ├── foreign_modules.rs
│ │ ├── function_cast_as_integer.rs
│ │ ├── gpukernel_abi.rs
│ │ ├── if_let_rescope.rs
│ │ ├── impl_trait_overcaptures.rs
│ │ ├── interior_mutable_consts.rs
│ │ ├── internal.rs
│ │ ├── invalid_from_utf8.rs
│ │ ├── late.rs
│ │ ├── let_underscore.rs
│ │ ├── levels.rs
│ │ ├── lib.rs
│ │ ├── lifetime_syntax.rs
│ │ ├── lints.rs
│ │ ├── macro_expr_fragment_specifier_2024_migration.rs
│ │ ├── map_unit_fn.rs
│ │ ├── multiple_supertrait_upcastable.rs
│ │ ├── non_ascii_idents.rs
│ │ ├── non_fmt_panic.rs
│ │ ├── non_local_def.rs
│ │ ├── nonstandard_style/
│ │ │ └── tests.rs
│ │ ├── nonstandard_style.rs
│ │ ├── noop_method_call.rs
│ │ ├── opaque_hidden_inferred_bound.rs
│ │ ├── passes.rs
│ │ ├── precedence.rs
│ │ ├── ptr_nulls.rs
│ │ ├── redundant_semicolon.rs
│ │ ├── reference_casting.rs
│ │ ├── shadowed_into_iter.rs
│ │ ├── static_mut_refs.rs
│ │ ├── tests.rs
│ │ ├── traits.rs
│ │ ├── transmute.rs
│ │ ├── types/
│ │ │ ├── improper_ctypes.rs
│ │ │ └── literal.rs
│ │ ├── types.rs
│ │ ├── unit_bindings.rs
│ │ ├── unqualified_local_imports.rs
│ │ ├── unused/
│ │ │ └── must_use.rs
│ │ ├── unused.rs
│ │ └── utils.rs
│ ├── rustc_lint_defs/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── builtin.rs
│ │ └── lib.rs
│ ├── rustc_llvm/
│ │ ├── Cargo.toml
│ │ ├── build.rs
│ │ ├── llvm-wrapper/
│ │ │ ├── .editorconfig
│ │ │ ├── CoverageMappingWrapper.cpp
│ │ │ ├── LLVMWrapper.h
│ │ │ ├── Linker.cpp
│ │ │ ├── PassWrapper.cpp
│ │ │ ├── README
│ │ │ ├── RustWrapper.cpp
│ │ │ ├── SuppressLLVMWarnings.h
│ │ │ └── SymbolWrapper.cpp
│ │ └── src/
│ │ └── lib.rs
│ ├── rustc_log/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ └── lib.rs
│ ├── rustc_macros/
│ │ ├── Cargo.toml
│ │ ├── build.rs
│ │ └── src/
│ │ ├── current_version.rs
│ │ ├── diagnostics/
│ │ │ ├── diagnostic.rs
│ │ │ ├── diagnostic_builder.rs
│ │ │ ├── error.rs
│ │ │ ├── message.rs
│ │ │ ├── mod.rs
│ │ │ ├── msg_macro.rs
│ │ │ ├── subdiagnostic.rs
│ │ │ └── utils.rs
│ │ ├── extension.rs
│ │ ├── hash_stable.rs
│ │ ├── lib.rs
│ │ ├── lift.rs
│ │ ├── print_attribute.rs
│ │ ├── query.rs
│ │ ├── serialize.rs
│ │ ├── symbols/
│ │ │ └── tests.rs
│ │ ├── symbols.rs
│ │ ├── type_foldable.rs
│ │ ├── type_visitable.rs
│ │ └── visitable.rs
│ ├── rustc_metadata/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── creader.rs
│ │ ├── dependency_format.rs
│ │ ├── eii.rs
│ │ ├── errors.rs
│ │ ├── foreign_modules.rs
│ │ ├── fs.rs
│ │ ├── lib.rs
│ │ ├── locator.rs
│ │ ├── native_libs.rs
│ │ └── rmeta/
│ │ ├── decoder/
│ │ │ └── cstore_impl.rs
│ │ ├── decoder.rs
│ │ ├── def_path_hash_map.rs
│ │ ├── encoder.rs
│ │ ├── mod.rs
│ │ ├── parameterized.rs
│ │ └── table.rs
│ ├── rustc_middle/
│ │ ├── Cargo.toml
│ │ ├── README.md
│ │ └── src/
│ │ ├── arena.rs
│ │ ├── dep_graph/
│ │ │ ├── README.md
│ │ │ ├── debug.rs
│ │ │ ├── dep_node.rs
│ │ │ ├── dep_node_key.rs
│ │ │ ├── edges.rs
│ │ │ ├── graph.rs
│ │ │ ├── mod.rs
│ │ │ ├── retained.rs
│ │ │ └── serialized.rs
│ │ ├── error.rs
│ │ ├── hir/
│ │ │ ├── map.rs
│ │ │ ├── mod.rs
│ │ │ ├── nested_filter.rs
│ │ │ └── place.rs
│ │ ├── hooks/
│ │ │ └── mod.rs
│ │ ├── ich/
│ │ │ ├── hcx.rs
│ │ │ ├── impls_syntax.rs
│ │ │ └── mod.rs
│ │ ├── infer/
│ │ │ ├── canonical.rs
│ │ │ └── mod.rs
│ │ ├── lib.rs
│ │ ├── lint.rs
│ │ ├── macros.rs
│ │ ├── metadata.rs
│ │ ├── middle/
│ │ │ ├── codegen_fn_attrs.rs
│ │ │ ├── debugger_visualizer.rs
│ │ │ ├── deduced_param_attrs.rs
│ │ │ ├── dependency_format.rs
│ │ │ ├── exported_symbols.rs
│ │ │ ├── lang_items.rs
│ │ │ ├── mod.rs
│ │ │ ├── privacy.rs
│ │ │ ├── region.rs
│ │ │ ├── resolve_bound_vars.rs
│ │ │ └── stability.rs
│ │ ├── mir/
│ │ │ ├── basic_blocks.rs
│ │ │ ├── consts.rs
│ │ │ ├── coverage.rs
│ │ │ ├── generic_graph.rs
│ │ │ ├── generic_graphviz.rs
│ │ │ ├── graphviz.rs
│ │ │ ├── interpret/
│ │ │ │ ├── allocation/
│ │ │ │ │ ├── init_mask/
│ │ │ │ │ │ └── tests.rs
│ │ │ │ │ ├── init_mask.rs
│ │ │ │ │ └── provenance_map.rs
│ │ │ │ ├── allocation.rs
│ │ │ │ ├── error.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── pointer.rs
│ │ │ │ ├── queries.rs
│ │ │ │ └── value.rs
│ │ │ ├── loops.rs
│ │ │ ├── mod.rs
│ │ │ ├── mono.rs
│ │ │ ├── pretty.rs
│ │ │ ├── query.rs
│ │ │ ├── statement.rs
│ │ │ ├── syntax.rs
│ │ │ ├── terminator.rs
│ │ │ ├── traversal.rs
│ │ │ └── visit.rs
│ │ ├── queries.rs
│ │ ├── query/
│ │ │ ├── arena_cached.rs
│ │ │ ├── caches.rs
│ │ │ ├── erase.rs
│ │ │ ├── inner.rs
│ │ │ ├── into_query_key.rs
│ │ │ ├── job.rs
│ │ │ ├── keys.rs
│ │ │ ├── mod.rs
│ │ │ ├── modifiers.rs
│ │ │ ├── on_disk_cache.rs
│ │ │ ├── plumbing.rs
│ │ │ └── stack.rs
│ │ ├── tests.rs
│ │ ├── thir/
│ │ │ └── visit.rs
│ │ ├── thir.rs
│ │ ├── traits/
│ │ │ ├── cache.rs
│ │ │ ├── mod.rs
│ │ │ ├── query.rs
│ │ │ ├── select.rs
│ │ │ ├── solve.rs
│ │ │ ├── specialization_graph.rs
│ │ │ └── structural_impls.rs
│ │ ├── ty/
│ │ │ ├── abstract_const.rs
│ │ │ ├── adjustment.rs
│ │ │ ├── adt.rs
│ │ │ ├── assoc.rs
│ │ │ ├── cast.rs
│ │ │ ├── closure.rs
│ │ │ ├── codec.rs
│ │ │ ├── consts/
│ │ │ │ ├── int.rs
│ │ │ │ ├── kind.rs
│ │ │ │ ├── lit.rs
│ │ │ │ └── valtree.rs
│ │ │ ├── consts.rs
│ │ │ ├── context/
│ │ │ │ ├── impl_interner.rs
│ │ │ │ └── tls.rs
│ │ │ ├── context.rs
│ │ │ ├── diagnostics.rs
│ │ │ ├── elaborate_impl.rs
│ │ │ ├── erase_regions.rs
│ │ │ ├── error.rs
│ │ │ ├── fast_reject.rs
│ │ │ ├── fold.rs
│ │ │ ├── generic_args.rs
│ │ │ ├── generics.rs
│ │ │ ├── impls_ty.rs
│ │ │ ├── inhabitedness/
│ │ │ │ ├── inhabited_predicate.rs
│ │ │ │ └── mod.rs
│ │ │ ├── instance.rs
│ │ │ ├── intrinsic.rs
│ │ │ ├── layout.rs
│ │ │ ├── list.rs
│ │ │ ├── mod.rs
│ │ │ ├── normalize_erasing_regions.rs
│ │ │ ├── offload_meta.rs
│ │ │ ├── opaque_types.rs
│ │ │ ├── pattern.rs
│ │ │ ├── predicate.rs
│ │ │ ├── print/
│ │ │ │ ├── mod.rs
│ │ │ │ └── pretty.rs
│ │ │ ├── region.rs
│ │ │ ├── relate.rs
│ │ │ ├── significant_drop_order.rs
│ │ │ ├── structural_impls.rs
│ │ │ ├── sty.rs
│ │ │ ├── trait_def.rs
│ │ │ ├── typeck_results.rs
│ │ │ ├── util.rs
│ │ │ ├── visit.rs
│ │ │ └── vtable.rs
│ │ ├── util/
│ │ │ ├── bug.rs
│ │ │ └── mod.rs
│ │ └── verify_ich.rs
│ ├── rustc_mir_build/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── builder/
│ │ │ ├── block.rs
│ │ │ ├── cfg.rs
│ │ │ ├── coverageinfo.rs
│ │ │ ├── custom/
│ │ │ │ ├── mod.rs
│ │ │ │ ├── parse/
│ │ │ │ │ └── instruction.rs
│ │ │ │ └── parse.rs
│ │ │ ├── expr/
│ │ │ │ ├── as_constant.rs
│ │ │ │ ├── as_operand.rs
│ │ │ │ ├── as_place.rs
│ │ │ │ ├── as_rvalue.rs
│ │ │ │ ├── as_temp.rs
│ │ │ │ ├── category.rs
│ │ │ │ ├── into.rs
│ │ │ │ ├── mod.rs
│ │ │ │ └── stmt.rs
│ │ │ ├── matches/
│ │ │ │ ├── buckets.rs
│ │ │ │ ├── match_pair.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── test.rs
│ │ │ │ ├── user_ty.rs
│ │ │ │ └── util.rs
│ │ │ ├── misc.rs
│ │ │ ├── mod.rs
│ │ │ └── scope.rs
│ │ ├── check_tail_calls.rs
│ │ ├── check_unsafety.rs
│ │ ├── errors.rs
│ │ ├── lib.rs
│ │ └── thir/
│ │ ├── constant.rs
│ │ ├── cx/
│ │ │ ├── block.rs
│ │ │ ├── expr.rs
│ │ │ └── mod.rs
│ │ ├── mod.rs
│ │ ├── pattern/
│ │ │ ├── check_match.rs
│ │ │ ├── const_to_pat.rs
│ │ │ ├── migration.rs
│ │ │ └── mod.rs
│ │ ├── print.rs
│ │ └── util.rs
│ ├── rustc_mir_dataflow/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── debuginfo.rs
│ │ ├── drop_flag_effects.rs
│ │ ├── errors.rs
│ │ ├── framework/
│ │ │ ├── cursor.rs
│ │ │ ├── direction.rs
│ │ │ ├── fmt.rs
│ │ │ ├── graphviz.rs
│ │ │ ├── lattice.rs
│ │ │ ├── mod.rs
│ │ │ ├── results.rs
│ │ │ ├── tests.rs
│ │ │ └── visitor.rs
│ │ ├── impls/
│ │ │ ├── borrowed_locals.rs
│ │ │ ├── initialized.rs
│ │ │ ├── liveness.rs
│ │ │ ├── mod.rs
│ │ │ └── storage_liveness.rs
│ │ ├── lib.rs
│ │ ├── move_paths/
│ │ │ ├── builder.rs
│ │ │ └── mod.rs
│ │ ├── points.rs
│ │ ├── rustc_peek.rs
│ │ ├── un_derefer.rs
│ │ └── value_analysis.rs
│ ├── rustc_mir_transform/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── abort_unwinding_calls.rs
│ │ ├── add_call_guards.rs
│ │ ├── add_moves_for_packed_drops.rs
│ │ ├── add_retag.rs
│ │ ├── add_subtyping_projections.rs
│ │ ├── check_alignment.rs
│ │ ├── check_call_recursion.rs
│ │ ├── check_const_item_mutation.rs
│ │ ├── check_enums.rs
│ │ ├── check_inline.rs
│ │ ├── check_inline_always_target_features.rs
│ │ ├── check_null.rs
│ │ ├── check_packed_ref.rs
│ │ ├── check_pointers.rs
│ │ ├── cleanup_post_borrowck.rs
│ │ ├── copy_prop.rs
│ │ ├── coroutine/
│ │ │ ├── by_move_body.rs
│ │ │ └── drop.rs
│ │ ├── coroutine.rs
│ │ ├── cost_checker.rs
│ │ ├── coverage/
│ │ │ ├── counters/
│ │ │ │ ├── balanced_flow.rs
│ │ │ │ ├── node_flow/
│ │ │ │ │ └── tests.rs
│ │ │ │ └── node_flow.rs
│ │ │ ├── counters.rs
│ │ │ ├── expansion.rs
│ │ │ ├── from_mir.rs
│ │ │ ├── graph.rs
│ │ │ ├── hir_info.rs
│ │ │ ├── mappings.rs
│ │ │ ├── mod.rs
│ │ │ ├── query.rs
│ │ │ ├── spans.rs
│ │ │ └── tests.rs
│ │ ├── cross_crate_inline.rs
│ │ ├── ctfe_limit.rs
│ │ ├── dataflow_const_prop.rs
│ │ ├── dead_store_elimination.rs
│ │ ├── deduce_param_attrs.rs
│ │ ├── deref_separator.rs
│ │ ├── dest_prop.rs
│ │ ├── dump_mir.rs
│ │ ├── early_otherwise_branch.rs
│ │ ├── elaborate_box_derefs.rs
│ │ ├── elaborate_drop.rs
│ │ ├── elaborate_drops.rs
│ │ ├── erase_deref_temps.rs
│ │ ├── errors.rs
│ │ ├── ffi_unwind_calls.rs
│ │ ├── function_item_references.rs
│ │ ├── gvn.rs
│ │ ├── impossible_predicates.rs
│ │ ├── inline/
│ │ │ └── cycle.rs
│ │ ├── inline.rs
│ │ ├── instsimplify.rs
│ │ ├── jump_threading.rs
│ │ ├── known_panics_lint.rs
│ │ ├── large_enums.rs
│ │ ├── lib.rs
│ │ ├── lint.rs
│ │ ├── lint_tail_expr_drop_order.rs
│ │ ├── liveness.rs
│ │ ├── lower_intrinsics.rs
│ │ ├── lower_slice_len.rs
│ │ ├── match_branches.rs
│ │ ├── mentioned_items.rs
│ │ ├── multiple_return_terminators.rs
│ │ ├── pass_manager.rs
│ │ ├── patch.rs
│ │ ├── post_analysis_normalize.rs
│ │ ├── post_drop_elaboration.rs
│ │ ├── prettify.rs
│ │ ├── promote_consts.rs
│ │ ├── ref_prop.rs
│ │ ├── remove_noop_landing_pads.rs
│ │ ├── remove_place_mention.rs
│ │ ├── remove_storage_markers.rs
│ │ ├── remove_uninit_drops.rs
│ │ ├── remove_unneeded_drops.rs
│ │ ├── remove_zsts.rs
│ │ ├── required_consts.rs
│ │ ├── sanity_check.rs
│ │ ├── shim/
│ │ │ └── async_destructor_ctor.rs
│ │ ├── shim.rs
│ │ ├── simplify.rs
│ │ ├── simplify_branches.rs
│ │ ├── simplify_comparison_integral.rs
│ │ ├── single_use_consts.rs
│ │ ├── sroa.rs
│ │ ├── ssa.rs
│ │ ├── ssa_range_prop.rs
│ │ ├── strip_debuginfo.rs
│ │ ├── trivial_const.rs
│ │ ├── unreachable_enum_branching.rs
│ │ ├── unreachable_prop.rs
│ │ └── validate.rs
│ ├── rustc_monomorphize/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── collector.rs
│ │ ├── errors.rs
│ │ ├── graph_checks/
│ │ │ ├── mod.rs
│ │ │ └── statics.rs
│ │ ├── lib.rs
│ │ ├── mono_checks/
│ │ │ ├── abi_check.rs
│ │ │ ├── mod.rs
│ │ │ └── move_check.rs
│ │ ├── partitioning.rs
│ │ └── util.rs
│ ├── rustc_next_trait_solver/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── canonical/
│ │ │ ├── canonicalizer.rs
│ │ │ └── mod.rs
│ │ ├── coherence.rs
│ │ ├── delegate.rs
│ │ ├── lib.rs
│ │ ├── placeholder.rs
│ │ ├── resolve.rs
│ │ └── solve/
│ │ ├── alias_relate.rs
│ │ ├── assembly/
│ │ │ ├── mod.rs
│ │ │ └── structural_traits.rs
│ │ ├── effect_goals.rs
│ │ ├── eval_ctxt/
│ │ │ ├── mod.rs
│ │ │ └── probe.rs
│ │ ├── inspect/
│ │ │ ├── build.rs
│ │ │ └── mod.rs
│ │ ├── mod.rs
│ │ ├── normalizes_to/
│ │ │ ├── anon_const.rs
│ │ │ ├── free_alias.rs
│ │ │ ├── inherent.rs
│ │ │ ├── mod.rs
│ │ │ └── opaque_types.rs
│ │ ├── project_goals.rs
│ │ ├── search_graph.rs
│ │ └── trait_goals.rs
│ ├── rustc_parse/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── errors.rs
│ │ ├── lexer/
│ │ │ ├── diagnostics.rs
│ │ │ ├── mod.rs
│ │ │ ├── tokentrees.rs
│ │ │ ├── unescape_error_reporting.rs
│ │ │ └── unicode_chars.rs
│ │ ├── lib.rs
│ │ └── parser/
│ │ ├── asm.rs
│ │ ├── attr.rs
│ │ ├── attr_wrapper.rs
│ │ ├── cfg_select.rs
│ │ ├── diagnostics.rs
│ │ ├── expr.rs
│ │ ├── generics.rs
│ │ ├── item.rs
│ │ ├── mod.rs
│ │ ├── nonterminal.rs
│ │ ├── pat.rs
│ │ ├── path.rs
│ │ ├── stmt.rs
│ │ ├── tests.rs
│ │ ├── token_type.rs
│ │ ├── tokenstream/
│ │ │ └── tests.rs
│ │ └── ty.rs
│ ├── rustc_parse_format/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── lib.rs
│ │ └── tests.rs
│ ├── rustc_passes/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── abi_test.rs
│ │ ├── check_attr.rs
│ │ ├── check_export.rs
│ │ ├── dead.rs
│ │ ├── debugger_visualizer.rs
│ │ ├── diagnostic_items.rs
│ │ ├── eii.rs
│ │ ├── entry.rs
│ │ ├── errors.rs
│ │ ├── hir_id_validator.rs
│ │ ├── input_stats.rs
│ │ ├── lang_items.rs
│ │ ├── layout_test.rs
│ │ ├── lib.rs
│ │ ├── lib_features.rs
│ │ ├── reachable.rs
│ │ ├── stability.rs
│ │ ├── upvars.rs
│ │ └── weak_lang_items.rs
│ ├── rustc_pattern_analysis/
│ │ ├── Cargo.toml
│ │ ├── src/
│ │ │ ├── checks.rs
│ │ │ ├── constructor.rs
│ │ │ ├── errors.rs
│ │ │ ├── lib.rs
│ │ │ ├── lints.rs
│ │ │ ├── pat.rs
│ │ │ ├── pat_column.rs
│ │ │ ├── rustc/
│ │ │ │ └── print.rs
│ │ │ ├── rustc.rs
│ │ │ └── usefulness.rs
│ │ └── tests/
│ │ ├── common/
│ │ │ └── mod.rs
│ │ ├── complexity.rs
│ │ ├── exhaustiveness.rs
│ │ └── intersection.rs
│ ├── rustc_privacy/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── errors.rs
│ │ └── lib.rs
│ ├── rustc_proc_macro/
│ │ └── Cargo.toml
│ ├── rustc_public/
│ │ ├── Cargo.toml
│ │ ├── README.md
│ │ ├── rust-toolchain.toml
│ │ └── src/
│ │ ├── abi.rs
│ │ ├── alloc.rs
│ │ ├── compiler_interface.rs
│ │ ├── crate_def.rs
│ │ ├── error.rs
│ │ ├── lib.rs
│ │ ├── mir/
│ │ │ ├── alloc.rs
│ │ │ ├── body.rs
│ │ │ ├── mono.rs
│ │ │ ├── pretty.rs
│ │ │ └── visit.rs
│ │ ├── mir.rs
│ │ ├── rustc_internal/
│ │ │ ├── mod.rs
│ │ │ └── pretty.rs
│ │ ├── target.rs
│ │ ├── tests.rs
│ │ ├── ty.rs
│ │ ├── unstable/
│ │ │ ├── convert/
│ │ │ │ ├── internal.rs
│ │ │ │ ├── mod.rs
│ │ │ │ └── stable/
│ │ │ │ ├── abi.rs
│ │ │ │ ├── mir.rs
│ │ │ │ ├── mod.rs
│ │ │ │ └── ty.rs
│ │ │ ├── internal_cx/
│ │ │ │ ├── helpers.rs
│ │ │ │ └── mod.rs
│ │ │ └── mod.rs
│ │ └── visitor.rs
│ ├── rustc_public_bridge/
│ │ ├── .gitignore
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── alloc.rs
│ │ ├── bridge.rs
│ │ ├── builder.rs
│ │ ├── context/
│ │ │ ├── helpers.rs
│ │ │ ├── impls.rs
│ │ │ └── mod.rs
│ │ └── lib.rs
│ ├── rustc_query_impl/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── README.md
│ │ ├── dep_kind_vtables.rs
│ │ ├── error.rs
│ │ ├── execution.rs
│ │ ├── handle_cycle_error.rs
│ │ ├── job.rs
│ │ ├── lib.rs
│ │ ├── plumbing.rs
│ │ ├── profiling_support.rs
│ │ └── query_impl.rs
│ ├── rustc_resolve/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── build_reduced_graph.rs
│ │ ├── check_unused.rs
│ │ ├── def_collector.rs
│ │ ├── diagnostics.rs
│ │ ├── effective_visibilities.rs
│ │ ├── errors.rs
│ │ ├── ident.rs
│ │ ├── imports.rs
│ │ ├── late/
│ │ │ └── diagnostics.rs
│ │ ├── late.rs
│ │ ├── lib.rs
│ │ ├── macros.rs
│ │ ├── rustdoc/
│ │ │ └── tests.rs
│ │ └── rustdoc.rs
│ ├── rustc_sanitizers/
│ │ ├── Cargo.toml
│ │ ├── README.md
│ │ └── src/
│ │ ├── cfi/
│ │ │ ├── mod.rs
│ │ │ └── typeid/
│ │ │ ├── itanium_cxx_abi/
│ │ │ │ ├── encode.rs
│ │ │ │ ├── mod.rs
│ │ │ │ └── transform.rs
│ │ │ └── mod.rs
│ │ ├── kcfi/
│ │ │ ├── mod.rs
│ │ │ └── typeid/
│ │ │ └── mod.rs
│ │ └── lib.rs
│ ├── rustc_serialize/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── int_overflow.rs
│ │ ├── leb128/
│ │ │ └── tests.rs
│ │ ├── leb128.rs
│ │ ├── lib.rs
│ │ ├── opaque/
│ │ │ ├── mem_encoder.rs
│ │ │ └── tests.rs
│ │ ├── opaque.rs
│ │ └── serialize.rs
│ ├── rustc_session/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── code_stats.rs
│ │ ├── config/
│ │ │ ├── cfg.rs
│ │ │ ├── externs/
│ │ │ │ └── tests.rs
│ │ │ ├── externs.rs
│ │ │ ├── native_libs/
│ │ │ │ └── tests.rs
│ │ │ ├── native_libs.rs
│ │ │ ├── print_request.rs
│ │ │ └── sigpipe.rs
│ │ ├── config.rs
│ │ ├── cstore.rs
│ │ ├── errors.rs
│ │ ├── filesearch.rs
│ │ ├── lib.rs
│ │ ├── macros.rs
│ │ ├── options.rs
│ │ ├── output.rs
│ │ ├── parse.rs
│ │ ├── search_paths.rs
│ │ ├── session.rs
│ │ └── utils.rs
│ ├── rustc_span/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── analyze_source_file/
│ │ │ └── tests.rs
│ │ ├── analyze_source_file.rs
│ │ ├── caching_source_map_view.rs
│ │ ├── def_id.rs
│ │ ├── edit_distance/
│ │ │ └── tests.rs
│ │ ├── edit_distance.rs
│ │ ├── edition.rs
│ │ ├── fatal_error.rs
│ │ ├── hygiene.rs
│ │ ├── lib.rs
│ │ ├── profiling.rs
│ │ ├── source_map/
│ │ │ └── tests.rs
│ │ ├── source_map.rs
│ │ ├── span_encoding.rs
│ │ ├── symbol/
│ │ │ └── tests.rs
│ │ ├── symbol.rs
│ │ └── tests.rs
│ ├── rustc_symbol_mangling/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── errors.rs
│ │ ├── export.rs
│ │ ├── hashed.rs
│ │ ├── legacy.rs
│ │ ├── lib.rs
│ │ ├── test.rs
│ │ └── v0.rs
│ ├── rustc_target/
│ │ ├── Cargo.toml
│ │ ├── README.md
│ │ └── src/
│ │ ├── asm/
│ │ │ ├── aarch64.rs
│ │ │ ├── arm.rs
│ │ │ ├── avr.rs
│ │ │ ├── bpf.rs
│ │ │ ├── csky.rs
│ │ │ ├── hexagon.rs
│ │ │ ├── loongarch.rs
│ │ │ ├── m68k.rs
│ │ │ ├── mips.rs
│ │ │ ├── mod.rs
│ │ │ ├── msp430.rs
│ │ │ ├── nvptx.rs
│ │ │ ├── powerpc.rs
│ │ │ ├── riscv.rs
│ │ │ ├── s390x.rs
│ │ │ ├── sparc.rs
│ │ │ ├── spirv.rs
│ │ │ ├── wasm.rs
│ │ │ └── x86.rs
│ │ ├── callconv/
│ │ │ ├── aarch64.rs
│ │ │ ├── amdgpu.rs
│ │ │ ├── arm.rs
│ │ │ ├── avr.rs
│ │ │ ├── bpf.rs
│ │ │ ├── csky.rs
│ │ │ ├── hexagon.rs
│ │ │ ├── loongarch.rs
│ │ │ ├── m68k.rs
│ │ │ ├── mips.rs
│ │ │ ├── mips64.rs
│ │ │ ├── mod.rs
│ │ │ ├── msp430.rs
│ │ │ ├── nvptx64.rs
│ │ │ ├── powerpc.rs
│ │ │ ├── powerpc64.rs
│ │ │ ├── riscv.rs
│ │ │ ├── s390x.rs
│ │ │ ├── sparc.rs
│ │ │ ├── sparc64.rs
│ │ │ ├── wasm.rs
│ │ │ ├── x86.rs
│ │ │ ├── x86_64.rs
│ │ │ ├── x86_win32.rs
│ │ │ ├── x86_win64.rs
│ │ │ └── xtensa.rs
│ │ ├── json.rs
│ │ ├── lib.rs
│ │ ├── spec/
│ │ │ ├── abi_map.rs
│ │ │ ├── base/
│ │ │ │ ├── aix.rs
│ │ │ │ ├── android.rs
│ │ │ │ ├── apple/
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── tests.rs
│ │ │ │ ├── arm_none.rs
│ │ │ │ ├── avr.rs
│ │ │ │ ├── bpf.rs
│ │ │ │ ├── cygwin.rs
│ │ │ │ ├── dragonfly.rs
│ │ │ │ ├── freebsd.rs
│ │ │ │ ├── fuchsia.rs
│ │ │ │ ├── haiku.rs
│ │ │ │ ├── helenos.rs
│ │ │ │ ├── hermit.rs
│ │ │ │ ├── hurd.rs
│ │ │ │ ├── hurd_gnu.rs
│ │ │ │ ├── illumos.rs
│ │ │ │ ├── l4re.rs
│ │ │ │ ├── linux.rs
│ │ │ │ ├── linux_gnu.rs
│ │ │ │ ├── linux_musl.rs
│ │ │ │ ├── linux_ohos.rs
│ │ │ │ ├── linux_uclibc.rs
│ │ │ │ ├── linux_wasm.rs
│ │ │ │ ├── lynxos178.rs
│ │ │ │ ├── managarm_mlibc.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── motor.rs
│ │ │ │ ├── msvc.rs
│ │ │ │ ├── netbsd.rs
│ │ │ │ ├── nto_qnx.rs
│ │ │ │ ├── openbsd.rs
│ │ │ │ ├── redox.rs
│ │ │ │ ├── solaris.rs
│ │ │ │ ├── solid.rs
│ │ │ │ ├── teeos.rs
│ │ │ │ ├── uefi_msvc.rs
│ │ │ │ ├── unikraft_linux_musl.rs
│ │ │ │ ├── vxworks.rs
│ │ │ │ ├── wasm.rs
│ │ │ │ ├── windows_gnu.rs
│ │ │ │ ├── windows_gnullvm.rs
│ │ │ │ ├── windows_msvc.rs
│ │ │ │ ├── windows_uwp_gnu.rs
│ │ │ │ ├── windows_uwp_msvc.rs
│ │ │ │ └── xtensa.rs
│ │ │ ├── crt_objects.rs
│ │ │ ├── json.rs
│ │ │ ├── mod.rs
│ │ │ └── targets/
│ │ │ ├── aarch64_apple_darwin.rs
│ │ │ ├── aarch64_apple_ios.rs
│ │ │ ├── aarch64_apple_ios_macabi.rs
│ │ │ ├── aarch64_apple_ios_sim.rs
│ │ │ ├── aarch64_apple_tvos.rs
│ │ │ ├── aarch64_apple_tvos_sim.rs
│ │ │ ├── aarch64_apple_visionos.rs
│ │ │ ├── aarch64_apple_visionos_sim.rs
│ │ │ ├── aarch64_apple_watchos.rs
│ │ │ ├── aarch64_apple_watchos_sim.rs
│ │ │ ├── aarch64_be_unknown_hermit.rs
│ │ │ ├── aarch64_be_unknown_linux_gnu.rs
│ │ │ ├── aarch64_be_unknown_linux_gnu_ilp32.rs
│ │ │ ├── aarch64_be_unknown_linux_musl.rs
│ │ │ ├── aarch64_be_unknown_netbsd.rs
│ │ │ ├── aarch64_be_unknown_none_softfloat.rs
│ │ │ ├── aarch64_kmc_solid_asp3.rs
│ │ │ ├── aarch64_linux_android.rs
│ │ │ ├── aarch64_nintendo_switch_freestanding.rs
│ │ │ ├── aarch64_nintendo_switch_freestanding_linker_script.ld
│ │ │ ├── aarch64_pc_windows_gnullvm.rs
│ │ │ ├── aarch64_pc_windows_msvc.rs
│ │ │ ├── aarch64_unknown_freebsd.rs
│ │ │ ├── aarch64_unknown_fuchsia.rs
│ │ │ ├── aarch64_unknown_helenos.rs
│ │ │ ├── aarch64_unknown_hermit.rs
│ │ │ ├── aarch64_unknown_illumos.rs
│ │ │ ├── aarch64_unknown_linux_gnu.rs
│ │ │ ├── aarch64_unknown_linux_gnu_ilp32.rs
│ │ │ ├── aarch64_unknown_linux_musl.rs
│ │ │ ├── aarch64_unknown_linux_ohos.rs
│ │ │ ├── aarch64_unknown_managarm_mlibc.rs
│ │ │ ├── aarch64_unknown_netbsd.rs
│ │ │ ├── aarch64_unknown_none.rs
│ │ │ ├── aarch64_unknown_none_softfloat.rs
│ │ │ ├── aarch64_unknown_nto_qnx700.rs
│ │ │ ├── aarch64_unknown_nto_qnx710.rs
│ │ │ ├── aarch64_unknown_nto_qnx710_iosock.rs
│ │ │ ├── aarch64_unknown_nto_qnx800.rs
│ │ │ ├── aarch64_unknown_nuttx.rs
│ │ │ ├── aarch64_unknown_openbsd.rs
│ │ │ ├── aarch64_unknown_redox.rs
│ │ │ ├── aarch64_unknown_teeos.rs
│ │ │ ├── aarch64_unknown_trusty.rs
│ │ │ ├── aarch64_unknown_uefi.rs
│ │ │ ├── aarch64_uwp_windows_msvc.rs
│ │ │ ├── aarch64_wrs_vxworks.rs
│ │ │ ├── aarch64v8r_unknown_none.rs
│ │ │ ├── aarch64v8r_unknown_none_softfloat.rs
│ │ │ ├── amdgcn_amd_amdhsa.rs
│ │ │ ├── arm64_32_apple_watchos.rs
│ │ │ ├── arm64e_apple_darwin.rs
│ │ │ ├── arm64e_apple_ios.rs
│ │ │ ├── arm64e_apple_tvos.rs
│ │ │ ├── arm64ec_pc_windows_msvc.rs
│ │ │ ├── arm_linux_androideabi.rs
│ │ │ ├── arm_unknown_linux_gnueabi.rs
│ │ │ ├── arm_unknown_linux_gnueabihf.rs
│ │ │ ├── arm_unknown_linux_musleabi.rs
│ │ │ ├── arm_unknown_linux_musleabihf.rs
│ │ │ ├── armeb_unknown_linux_gnueabi.rs
│ │ │ ├── armebv7r_none_eabi.rs
│ │ │ ├── armebv7r_none_eabihf.rs
│ │ │ ├── armv4t_none_eabi.rs
│ │ │ ├── armv4t_unknown_linux_gnueabi.rs
│ │ │ ├── armv5te_none_eabi.rs
│ │ │ ├── armv5te_unknown_linux_gnueabi.rs
│ │ │ ├── armv5te_unknown_linux_musleabi.rs
│ │ │ ├── armv5te_unknown_linux_uclibceabi.rs
│ │ │ ├── armv6_none_eabi.rs
│ │ │ ├── armv6_none_eabihf.rs
│ │ │ ├── armv6_unknown_freebsd.rs
│ │ │ ├── armv6_unknown_netbsd_eabihf.rs
│ │ │ ├── armv6k_nintendo_3ds.rs
│ │ │ ├── armv7_linux_androideabi.rs
│ │ │ ├── armv7_rtems_eabihf.rs
│ │ │ ├── armv7_sony_vita_newlibeabihf.rs
│ │ │ ├── armv7_unknown_freebsd.rs
│ │ │ ├── armv7_unknown_linux_gnueabi.rs
│ │ │ ├── armv7_unknown_linux_gnueabihf.rs
│ │ │ ├── armv7_unknown_linux_musleabi.rs
│ │ │ ├── armv7_unknown_linux_musleabihf.rs
│ │ │ ├── armv7_unknown_linux_ohos.rs
│ │ │ ├── armv7_unknown_linux_uclibceabi.rs
│ │ │ ├── armv7_unknown_linux_uclibceabihf.rs
│ │ │ ├── armv7_unknown_netbsd_eabihf.rs
│ │ │ ├── armv7_unknown_trusty.rs
│ │ │ ├── armv7_wrs_vxworks_eabihf.rs
│ │ │ ├── armv7a_kmc_solid_asp3_eabi.rs
│ │ │ ├── armv7a_kmc_solid_asp3_eabihf.rs
│ │ │ ├── armv7a_none_eabi.rs
│ │ │ ├── armv7a_none_eabihf.rs
│ │ │ ├── armv7a_nuttx_eabi.rs
│ │ │ ├── armv7a_nuttx_eabihf.rs
│ │ │ ├── armv7a_vex_v5.rs
│ │ │ ├── armv7a_vex_v5_linker_script.ld
│ │ │ ├── armv7k_apple_watchos.rs
│ │ │ ├── armv7r_none_eabi.rs
│ │ │ ├── armv7r_none_eabihf.rs
│ │ │ ├── armv7s_apple_ios.rs
│ │ │ ├── armv8r_none_eabihf.rs
│ │ │ ├── avr_none.rs
│ │ │ ├── bpfeb_unknown_none.rs
│ │ │ ├── bpfel_unknown_none.rs
│ │ │ ├── csky_unknown_linux_gnuabiv2.rs
│ │ │ ├── csky_unknown_linux_gnuabiv2hf.rs
│ │ │ ├── hexagon_unknown_linux_musl.rs
│ │ │ ├── hexagon_unknown_none_elf.rs
│ │ │ ├── hexagon_unknown_qurt.rs
│ │ │ ├── i386_apple_ios.rs
│ │ │ ├── i586_unknown_linux_gnu.rs
│ │ │ ├── i586_unknown_linux_musl.rs
│ │ │ ├── i586_unknown_netbsd.rs
│ │ │ ├── i586_unknown_redox.rs
│ │ │ ├── i686_apple_darwin.rs
│ │ │ ├── i686_linux_android.rs
│ │ │ ├── i686_pc_nto_qnx700.rs
│ │ │ ├── i686_pc_windows_gnu.rs
│ │ │ ├── i686_pc_windows_gnullvm.rs
│ │ │ ├── i686_pc_windows_msvc.rs
│ │ │ ├── i686_unknown_freebsd.rs
│ │ │ ├── i686_unknown_haiku.rs
│ │ │ ├── i686_unknown_helenos.rs
│ │ │ ├── i686_unknown_hurd_gnu.rs
│ │ │ ├── i686_unknown_linux_gnu.rs
│ │ │ ├── i686_unknown_linux_musl.rs
│ │ │ ├── i686_unknown_netbsd.rs
│ │ │ ├── i686_unknown_openbsd.rs
│ │ │ ├── i686_unknown_uefi.rs
│ │ │ ├── i686_uwp_windows_gnu.rs
│ │ │ ├── i686_uwp_windows_msvc.rs
│ │ │ ├── i686_win7_windows_gnu.rs
│ │ │ ├── i686_win7_windows_msvc.rs
│ │ │ ├── i686_wrs_vxworks.rs
│ │ │ ├── loongarch32_unknown_none.rs
│ │ │ ├── loongarch32_unknown_none_softfloat.rs
│ │ │ ├── loongarch64_unknown_linux_gnu.rs
│ │ │ ├── loongarch64_unknown_linux_musl.rs
│ │ │ ├── loongarch64_unknown_linux_ohos.rs
│ │ │ ├── loongarch64_unknown_none.rs
│ │ │ ├── loongarch64_unknown_none_softfloat.rs
│ │ │ ├── m68k_unknown_linux_gnu.rs
│ │ │ ├── m68k_unknown_none_elf.rs
│ │ │ ├── mips64_openwrt_linux_musl.rs
│ │ │ ├── mips64_unknown_linux_gnuabi64.rs
│ │ │ ├── mips64_unknown_linux_muslabi64.rs
│ │ │ ├── mips64el_unknown_linux_gnuabi64.rs
│ │ │ ├── mips64el_unknown_linux_muslabi64.rs
│ │ │ ├── mips_mti_none_elf.rs
│ │ │ ├── mips_unknown_linux_gnu.rs
│ │ │ ├── mips_unknown_linux_musl.rs
│ │ │ ├── mips_unknown_linux_uclibc.rs
│ │ │ ├── mipsel_mti_none_elf.rs
│ │ │ ├── mipsel_sony_psp.rs
│ │ │ ├── mipsel_sony_psp_linker_script.ld
│ │ │ ├── mipsel_sony_psx.rs
│ │ │ ├── mipsel_unknown_linux_gnu.rs
│ │ │ ├── mipsel_unknown_linux_musl.rs
│ │ │ ├── mipsel_unknown_linux_uclibc.rs
│ │ │ ├── mipsel_unknown_netbsd.rs
│ │ │ ├── mipsel_unknown_none.rs
│ │ │ ├── mipsisa32r6_unknown_linux_gnu.rs
│ │ │ ├── mipsisa32r6el_unknown_linux_gnu.rs
│ │ │ ├── mipsisa64r6_unknown_linux_gnuabi64.rs
│ │ │ ├── mipsisa64r6el_unknown_linux_gnuabi64.rs
│ │ │ ├── msp430_none_elf.rs
│ │ │ ├── nvptx64_nvidia_cuda.rs
│ │ │ ├── powerpc64_ibm_aix.rs
│ │ │ ├── powerpc64_unknown_freebsd.rs
│ │ │ ├── powerpc64_unknown_linux_gnu.rs
│ │ │ ├── powerpc64_unknown_linux_musl.rs
│ │ │ ├── powerpc64_unknown_openbsd.rs
│ │ │ ├── powerpc64_wrs_vxworks.rs
│ │ │ ├── powerpc64le_unknown_freebsd.rs
│ │ │ ├── powerpc64le_unknown_linux_gnu.rs
│ │ │ ├── powerpc64le_unknown_linux_musl.rs
│ │ │ ├── powerpc_unknown_freebsd.rs
│ │ │ ├── powerpc_unknown_helenos.rs
│ │ │ ├── powerpc_unknown_linux_gnu.rs
│ │ │ ├── powerpc_unknown_linux_gnuspe.rs
│ │ │ ├── powerpc_unknown_linux_musl.rs
│ │ │ ├── powerpc_unknown_linux_muslspe.rs
│ │ │ ├── powerpc_unknown_netbsd.rs
│ │ │ ├── powerpc_unknown_openbsd.rs
│ │ │ ├── powerpc_wrs_vxworks.rs
│ │ │ ├── powerpc_wrs_vxworks_spe.rs
│ │ │ ├── riscv32_wrs_vxworks.rs
│ │ │ ├── riscv32e_unknown_none_elf.rs
│ │ │ ├── riscv32em_unknown_none_elf.rs
│ │ │ ├── riscv32emc_unknown_none_elf.rs
│ │ │ ├── riscv32gc_unknown_linux_gnu.rs
│ │ │ ├── riscv32gc_unknown_linux_musl.rs
│ │ │ ├── riscv32i_unknown_none_elf.rs
│ │ │ ├── riscv32im_risc0_zkvm_elf.rs
│ │ │ ├── riscv32im_unknown_none_elf.rs
│ │ │ ├── riscv32ima_unknown_none_elf.rs
│ │ │ ├── riscv32imac_esp_espidf.rs
│ │ │ ├── riscv32imac_unknown_none_elf.rs
│ │ │ ├── riscv32imac_unknown_nuttx_elf.rs
│ │ │ ├── riscv32imac_unknown_xous_elf.rs
│ │ │ ├── riscv32imafc_esp_espidf.rs
│ │ │ ├── riscv32imafc_unknown_none_elf.rs
│ │ │ ├── riscv32imafc_unknown_nuttx_elf.rs
│ │ │ ├── riscv32imc_esp_espidf.rs
│ │ │ ├── riscv32imc_unknown_none_elf.rs
│ │ │ ├── riscv32imc_unknown_nuttx_elf.rs
│ │ │ ├── riscv64_linux_android.rs
│ │ │ ├── riscv64_wrs_vxworks.rs
│ │ │ ├── riscv64a23_unknown_linux_gnu.rs
│ │ │ ├── riscv64gc_unknown_freebsd.rs
│ │ │ ├── riscv64gc_unknown_fuchsia.rs
│ │ │ ├── riscv64gc_unknown_hermit.rs
│ │ │ ├── riscv64gc_unknown_linux_gnu.rs
│ │ │ ├── riscv64gc_unknown_linux_musl.rs
│ │ │ ├── riscv64gc_unknown_managarm_mlibc.rs
│ │ │ ├── riscv64gc_unknown_netbsd.rs
│ │ │ ├── riscv64gc_unknown_none_elf.rs
│ │ │ ├── riscv64gc_unknown_nuttx_elf.rs
│ │ │ ├── riscv64gc_unknown_openbsd.rs
│ │ │ ├── riscv64gc_unknown_redox.rs
│ │ │ ├── riscv64im_unknown_none_elf.rs
│ │ │ ├── riscv64imac_unknown_none_elf.rs
│ │ │ ├── riscv64imac_unknown_nuttx_elf.rs
│ │ │ ├── s390x_unknown_linux_gnu.rs
│ │ │ ├── s390x_unknown_linux_musl.rs
│ │ │ ├── s390x_unknown_none_softfloat.rs
│ │ │ ├── sparc64_unknown_helenos.rs
│ │ │ ├── sparc64_unknown_linux_gnu.rs
│ │ │ ├── sparc64_unknown_netbsd.rs
│ │ │ ├── sparc64_unknown_openbsd.rs
│ │ │ ├── sparc_unknown_linux_gnu.rs
│ │ │ ├── sparc_unknown_none_elf.rs
│ │ │ ├── sparcv9_sun_solaris.rs
│ │ │ ├── thumbv4t_none_eabi.rs
│ │ │ ├── thumbv5te_none_eabi.rs
│ │ │ ├── thumbv6_none_eabi.rs
│ │ │ ├── thumbv6m_none_eabi.rs
│ │ │ ├── thumbv6m_nuttx_eabi.rs
│ │ │ ├── thumbv7a_none_eabi.rs
│ │ │ ├── thumbv7a_none_eabihf.rs
│ │ │ ├── thumbv7a_nuttx_eabi.rs
│ │ │ ├── thumbv7a_nuttx_eabihf.rs
│ │ │ ├── thumbv7a_pc_windows_msvc.rs
│ │ │ ├── thumbv7a_uwp_windows_msvc.rs
│ │ │ ├── thumbv7em_none_eabi.rs
│ │ │ ├── thumbv7em_none_eabihf.rs
│ │ │ ├── thumbv7em_nuttx_eabi.rs
│ │ │ ├── thumbv7em_nuttx_eabihf.rs
│ │ │ ├── thumbv7m_none_eabi.rs
│ │ │ ├── thumbv7m_nuttx_eabi.rs
│ │ │ ├── thumbv7neon_linux_androideabi.rs
│ │ │ ├── thumbv7neon_unknown_linux_gnueabihf.rs
│ │ │ ├── thumbv7neon_unknown_linux_musleabihf.rs
│ │ │ ├── thumbv7r_none_eabi.rs
│ │ │ ├── thumbv7r_none_eabihf.rs
│ │ │ ├── thumbv8m_base_none_eabi.rs
│ │ │ ├── thumbv8m_base_nuttx_eabi.rs
│ │ │ ├── thumbv8m_main_none_eabi.rs
│ │ │ ├── thumbv8m_main_none_eabihf.rs
│ │ │ ├── thumbv8m_main_nuttx_eabi.rs
│ │ │ ├── thumbv8m_main_nuttx_eabihf.rs
│ │ │ ├── thumbv8r_none_eabihf.rs
│ │ │ ├── wasm32_unknown_emscripten.rs
│ │ │ ├── wasm32_unknown_unknown.rs
│ │ │ ├── wasm32_wali_linux_musl.rs
│ │ │ ├── wasm32_wasip1.rs
│ │ │ ├── wasm32_wasip1_threads.rs
│ │ │ ├── wasm32_wasip2.rs
│ │ │ ├── wasm32_wasip3.rs
│ │ │ ├── wasm32v1_none.rs
│ │ │ ├── wasm64_unknown_unknown.rs
│ │ │ ├── x86_64_apple_darwin.rs
│ │ │ ├── x86_64_apple_ios.rs
│ │ │ ├── x86_64_apple_ios_macabi.rs
│ │ │ ├── x86_64_apple_tvos.rs
│ │ │ ├── x86_64_apple_watchos_sim.rs
│ │ │ ├── x86_64_fortanix_unknown_sgx.rs
│ │ │ ├── x86_64_linux_android.rs
│ │ │ ├── x86_64_lynx_lynxos178.rs
│ │ │ ├── x86_64_pc_cygwin.rs
│ │ │ ├── x86_64_pc_nto_qnx710.rs
│ │ │ ├── x86_64_pc_nto_qnx710_iosock.rs
│ │ │ ├── x86_64_pc_nto_qnx800.rs
│ │ │ ├── x86_64_pc_solaris.rs
│ │ │ ├── x86_64_pc_windows_gnu.rs
│ │ │ ├── x86_64_pc_windows_gnullvm.rs
│ │ │ ├── x86_64_pc_windows_msvc.rs
│ │ │ ├── x86_64_unikraft_linux_musl.rs
│ │ │ ├── x86_64_unknown_dragonfly.rs
│ │ │ ├── x86_64_unknown_freebsd.rs
│ │ │ ├── x86_64_unknown_fuchsia.rs
│ │ │ ├── x86_64_unknown_haiku.rs
│ │ │ ├── x86_64_unknown_helenos.rs
│ │ │ ├── x86_64_unknown_hermit.rs
│ │ │ ├── x86_64_unknown_hurd_gnu.rs
│ │ │ ├── x86_64_unknown_illumos.rs
│ │ │ ├── x86_64_unknown_l4re_uclibc.rs
│ │ │ ├── x86_64_unknown_linux_gnu.rs
│ │ │ ├── x86_64_unknown_linux_gnuasan.rs
│ │ │ ├── x86_64_unknown_linux_gnumsan.rs
│ │ │ ├── x86_64_unknown_linux_gnutsan.rs
│ │ │ ├── x86_64_unknown_linux_gnux32.rs
│ │ │ ├── x86_64_unknown_linux_musl.rs
│ │ │ ├── x86_64_unknown_linux_none.rs
│ │ │ ├── x86_64_unknown_linux_ohos.rs
│ │ │ ├── x86_64_unknown_managarm_mlibc.rs
│ │ │ ├── x86_64_unknown_motor.rs
│ │ │ ├── x86_64_unknown_netbsd.rs
│ │ │ ├── x86_64_unknown_none.rs
│ │ │ ├── x86_64_unknown_openbsd.rs
│ │ │ ├── x86_64_unknown_redox.rs
│ │ │ ├── x86_64_unknown_trusty.rs
│ │ │ ├── x86_64_unknown_uefi.rs
│ │ │ ├── x86_64_uwp_windows_gnu.rs
│ │ │ ├── x86_64_uwp_windows_msvc.rs
│ │ │ ├── x86_64_win7_windows_gnu.rs
│ │ │ ├── x86_64_win7_windows_msvc.rs
│ │ │ ├── x86_64_wrs_vxworks.rs
│ │ │ ├── x86_64h_apple_darwin.rs
│ │ │ ├── xtensa_esp32_espidf.rs
│ │ │ ├── xtensa_esp32_none_elf.rs
│ │ │ ├── xtensa_esp32s2_espidf.rs
│ │ │ ├── xtensa_esp32s2_none_elf.rs
│ │ │ ├── xtensa_esp32s3_espidf.rs
│ │ │ └── xtensa_esp32s3_none_elf.rs
│ │ ├── target_features.rs
│ │ └── tests.rs
│ ├── rustc_thread_pool/
│ │ ├── Cargo.toml
│ │ ├── README.md
│ │ ├── src/
│ │ │ ├── broadcast/
│ │ │ │ ├── mod.rs
│ │ │ │ └── tests.rs
│ │ │ ├── compile_fail/
│ │ │ │ ├── mod.rs
│ │ │ │ ├── quicksort_race1.rs
│ │ │ │ ├── quicksort_race2.rs
│ │ │ │ ├── quicksort_race3.rs
│ │ │ │ ├── rc_return.rs
│ │ │ │ ├── rc_upvar.rs
│ │ │ │ └── scope_join_bad.rs
│ │ │ ├── job.rs
│ │ │ ├── join/
│ │ │ │ ├── mod.rs
│ │ │ │ └── tests.rs
│ │ │ ├── latch.rs
│ │ │ ├── lib.rs
│ │ │ ├── private.rs
│ │ │ ├── registry.rs
│ │ │ ├── scope/
│ │ │ │ ├── mod.rs
│ │ │ │ └── tests.rs
│ │ │ ├── sleep/
│ │ │ │ ├── README.md
│ │ │ │ ├── counters.rs
│ │ │ │ └── mod.rs
│ │ │ ├── spawn/
│ │ │ │ ├── mod.rs
│ │ │ │ └── tests.rs
│ │ │ ├── tests.rs
│ │ │ ├── thread_pool/
│ │ │ │ ├── mod.rs
│ │ │ │ └── tests.rs
│ │ │ ├── tlv.rs
│ │ │ ├── unwind.rs
│ │ │ └── worker_local.rs
│ │ └── tests/
│ │ ├── double_init_fail.rs
│ │ ├── init_zero_threads.rs
│ │ ├── scope_join.rs
│ │ ├── scoped_threadpool.rs
│ │ ├── simple_panic.rs
│ │ └── stack_overflow_crash.rs
│ ├── rustc_trait_selection/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── error_reporting/
│ │ │ ├── infer/
│ │ │ │ ├── mod.rs
│ │ │ │ ├── need_type_info.rs
│ │ │ │ ├── nice_region_error/
│ │ │ │ │ ├── different_lifetimes.rs
│ │ │ │ │ ├── find_anon_type.rs
│ │ │ │ │ ├── mismatched_static_lifetime.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── named_anon_conflict.rs
│ │ │ │ │ ├── placeholder_error.rs
│ │ │ │ │ ├── placeholder_relation.rs
│ │ │ │ │ ├── static_impl_trait.rs
│ │ │ │ │ ├── trait_impl_difference.rs
│ │ │ │ │ └── util.rs
│ │ │ │ ├── note_and_explain.rs
│ │ │ │ ├── region.rs
│ │ │ │ └── suggest.rs
│ │ │ ├── mod.rs
│ │ │ └── traits/
│ │ │ ├── ambiguity.rs
│ │ │ ├── call_kind.rs
│ │ │ ├── fulfillment_errors.rs
│ │ │ ├── mod.rs
│ │ │ ├── on_unimplemented.rs
│ │ │ ├── overflow.rs
│ │ │ └── suggestions.rs
│ │ ├── errors/
│ │ │ └── note_and_explain.rs
│ │ ├── errors.rs
│ │ ├── infer.rs
│ │ ├── lib.rs
│ │ ├── opaque_types.rs
│ │ ├── regions.rs
│ │ ├── solve/
│ │ │ ├── delegate.rs
│ │ │ ├── fulfill/
│ │ │ │ └── derive_errors.rs
│ │ │ ├── fulfill.rs
│ │ │ ├── inspect/
│ │ │ │ └── analyse.rs
│ │ │ ├── inspect.rs
│ │ │ ├── normalize.rs
│ │ │ └── select.rs
│ │ ├── solve.rs
│ │ └── traits/
│ │ ├── auto_trait.rs
│ │ ├── coherence.rs
│ │ ├── const_evaluatable.rs
│ │ ├── dyn_compatibility.rs
│ │ ├── effects.rs
│ │ ├── engine.rs
│ │ ├── fulfill.rs
│ │ ├── misc.rs
│ │ ├── mod.rs
│ │ ├── normalize.rs
│ │ ├── outlives_bounds.rs
│ │ ├── project.rs
│ │ ├── query/
│ │ │ ├── dropck_outlives.rs
│ │ │ ├── evaluate_obligation.rs
│ │ │ ├── method_autoderef.rs
│ │ │ ├── mod.rs
│ │ │ ├── normalize.rs
│ │ │ └── type_op/
│ │ │ ├── ascribe_user_type.rs
│ │ │ ├── custom.rs
│ │ │ ├── implied_outlives_bounds.rs
│ │ │ ├── mod.rs
│ │ │ ├── normalize.rs
│ │ │ ├── outlives.rs
│ │ │ └── prove_predicate.rs
│ │ ├── select/
│ │ │ ├── _match.rs
│ │ │ ├── candidate_assembly.rs
│ │ │ ├── confirmation.rs
│ │ │ └── mod.rs
│ │ ├── specialize/
│ │ │ ├── mod.rs
│ │ │ └── specialization_graph.rs
│ │ ├── structural_normalize.rs
│ │ ├── util.rs
│ │ ├── vtable.rs
│ │ └── wf.rs
│ ├── rustc_traits/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── codegen.rs
│ │ ├── coroutine_witnesses.rs
│ │ ├── dropck_outlives.rs
│ │ ├── evaluate_obligation.rs
│ │ ├── implied_outlives_bounds.rs
│ │ ├── lib.rs
│ │ ├── normalize_erasing_regions.rs
│ │ ├── normalize_projection_ty.rs
│ │ └── type_op.rs
│ ├── rustc_transmute/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── layout/
│ │ │ ├── dfa.rs
│ │ │ ├── mod.rs
│ │ │ ├── tree/
│ │ │ │ └── tests.rs
│ │ │ └── tree.rs
│ │ ├── lib.rs
│ │ └── maybe_transmutable/
│ │ ├── mod.rs
│ │ ├── query_context.rs
│ │ └── tests.rs
│ ├── rustc_ty_utils/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── abi.rs
│ │ ├── assoc.rs
│ │ ├── common_traits.rs
│ │ ├── consts.rs
│ │ ├── errors.rs
│ │ ├── implied_bounds.rs
│ │ ├── instance.rs
│ │ ├── layout/
│ │ │ └── invariant.rs
│ │ ├── layout.rs
│ │ ├── lib.rs
│ │ ├── needs_drop.rs
│ │ ├── nested_bodies.rs
│ │ ├── opaque_types.rs
│ │ ├── representability.rs
│ │ ├── sig_types.rs
│ │ ├── structural_match.rs
│ │ └── ty.rs
│ ├── rustc_type_ir/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── binder.rs
│ │ ├── canonical.rs
│ │ ├── const_kind.rs
│ │ ├── data_structures/
│ │ │ ├── delayed_map.rs
│ │ │ └── mod.rs
│ │ ├── elaborate.rs
│ │ ├── error.rs
│ │ ├── fast_reject.rs
│ │ ├── flags.rs
│ │ ├── fold.rs
│ │ ├── generic_arg.rs
│ │ ├── generic_visit.rs
│ │ ├── infer_ctxt.rs
│ │ ├── inherent.rs
│ │ ├── interner.rs
│ │ ├── ir_print.rs
│ │ ├── lang_items.rs
│ │ ├── lib.rs
│ │ ├── lift.rs
│ │ ├── macros.rs
│ │ ├── opaque_ty.rs
│ │ ├── outlives.rs
│ │ ├── pattern.rs
│ │ ├── predicate.rs
│ │ ├── predicate_kind.rs
│ │ ├── region_kind.rs
│ │ ├── relate/
│ │ │ ├── combine.rs
│ │ │ └── solver_relating.rs
│ │ ├── relate.rs
│ │ ├── search_graph/
│ │ │ ├── global_cache.rs
│ │ │ ├── mod.rs
│ │ │ └── stack.rs
│ │ ├── solve/
│ │ │ ├── inspect.rs
│ │ │ └── mod.rs
│ │ ├── sty/
│ │ │ └── mod.rs
│ │ ├── ty_info.rs
│ │ ├── ty_kind/
│ │ │ └── closure.rs
│ │ ├── ty_kind.rs
│ │ ├── upcast.rs
│ │ ├── visit.rs
│ │ └── walk.rs
│ ├── rustc_type_ir_macros/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ └── lib.rs
│ └── rustc_windows_rc/
│ ├── Cargo.toml
│ ├── rustc.rc.in
│ └── src/
│ └── lib.rs
├── configure
├── library/
│ ├── Cargo.toml
│ ├── alloc/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── alloc.rs
│ │ ├── borrow.rs
│ │ ├── boxed/
│ │ │ ├── convert.rs
│ │ │ ├── iter.rs
│ │ │ └── thin.rs
│ │ ├── boxed.rs
│ │ ├── bstr.rs
│ │ ├── collections/
│ │ │ ├── binary_heap/
│ │ │ │ └── mod.rs
│ │ │ ├── btree/
│ │ │ │ ├── append.rs
│ │ │ │ ├── borrow/
│ │ │ │ │ └── tests.rs
│ │ │ │ ├── borrow.rs
│ │ │ │ ├── dedup_sorted_iter.rs
│ │ │ │ ├── fix.rs
│ │ │ │ ├── map/
│ │ │ │ │ ├── entry.rs
│ │ │ │ │ └── tests.rs
│ │ │ │ ├── map.rs
│ │ │ │ ├── mem.rs
│ │ │ │ ├── merge_iter.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── navigate.rs
│ │ │ │ ├── node/
│ │ │ │ │ └── tests.rs
│ │ │ │ ├── node.rs
│ │ │ │ ├── remove.rs
│ │ │ │ ├── search.rs
│ │ │ │ ├── set/
│ │ │ │ │ ├── entry.rs
│ │ │ │ │ └── tests.rs
│ │ │ │ ├── set.rs
│ │ │ │ ├── set_val.rs
│ │ │ │ └── split.rs
│ │ │ ├── linked_list/
│ │ │ │ └── tests.rs
│ │ │ ├── linked_list.rs
│ │ │ ├── mod.rs
│ │ │ └── vec_deque/
│ │ │ ├── drain.rs
│ │ │ ├── extract_if.rs
│ │ │ ├── into_iter.rs
│ │ │ ├── iter.rs
│ │ │ ├── iter_mut.rs
│ │ │ ├── macros.rs
│ │ │ ├── mod.rs
│ │ │ ├── spec_extend.rs
│ │ │ ├── spec_from_iter.rs
│ │ │ ├── splice.rs
│ │ │ └── tests.rs
│ │ ├── ffi/
│ │ │ ├── c_str.rs
│ │ │ └── mod.rs
│ │ ├── fmt.rs
│ │ ├── intrinsics.rs
│ │ ├── lib.miri.rs
│ │ ├── lib.rs
│ │ ├── macros.rs
│ │ ├── raw_vec/
│ │ │ ├── mod.rs
│ │ │ └── tests.rs
│ │ ├── rc.rs
│ │ ├── slice.rs
│ │ ├── str.rs
│ │ ├── string.rs
│ │ ├── sync.rs
│ │ ├── task.rs
│ │ ├── vec/
│ │ │ ├── cow.rs
│ │ │ ├── drain.rs
│ │ │ ├── extract_if.rs
│ │ │ ├── in_place_collect.rs
│ │ │ ├── in_place_drop.rs
│ │ │ ├── into_iter.rs
│ │ │ ├── is_zero.rs
│ │ │ ├── mod.rs
│ │ │ ├── partial_eq.rs
│ │ │ ├── peek_mut.rs
│ │ │ ├── set_len_on_drop.rs
│ │ │ ├── spec_extend.rs
│ │ │ ├── spec_from_elem.rs
│ │ │ ├── spec_from_iter.rs
│ │ │ ├── spec_from_iter_nested.rs
│ │ │ └── splice.rs
│ │ └── wtf8/
│ │ ├── mod.rs
│ │ └── tests.rs
│ ├── alloctests/
│ │ ├── Cargo.toml
│ │ ├── benches/
│ │ │ ├── binary_heap.rs
│ │ │ ├── btree/
│ │ │ │ ├── map.rs
│ │ │ │ ├── mod.rs
│ │ │ │ └── set.rs
│ │ │ ├── lib.rs
│ │ │ ├── linked_list.rs
│ │ │ ├── slice.rs
│ │ │ ├── str.rs
│ │ │ ├── string.rs
│ │ │ ├── vec.rs
│ │ │ ├── vec_deque.rs
│ │ │ └── vec_deque_append.rs
│ │ ├── lib.rs
│ │ ├── testing/
│ │ │ ├── crash_test.rs
│ │ │ ├── macros.rs
│ │ │ ├── mod.rs
│ │ │ ├── ord_chaos.rs
│ │ │ └── rng.rs
│ │ └── tests/
│ │ ├── alloc_test.rs
│ │ ├── arc.rs
│ │ ├── autotraits.rs
│ │ ├── borrow.rs
│ │ ├── boxed.rs
│ │ ├── btree_set_hash.rs
│ │ ├── c_str.rs
│ │ ├── c_str2.rs
│ │ ├── collections/
│ │ │ ├── binary_heap.rs
│ │ │ ├── eq_diff_len.rs
│ │ │ └── mod.rs
│ │ ├── const_fns.rs
│ │ ├── cow_str.rs
│ │ ├── fmt.rs
│ │ ├── heap.rs
│ │ ├── lib.rs
│ │ ├── linked_list.rs
│ │ ├── misc_tests.rs
│ │ ├── num.rs
│ │ ├── rc.rs
│ │ ├── slice.rs
│ │ ├── sort/
│ │ │ ├── ffi_types.rs
│ │ │ ├── known_good_stable_sort.rs
│ │ │ ├── mod.rs
│ │ │ ├── partial.rs
│ │ │ ├── patterns.rs
│ │ │ ├── tests.rs
│ │ │ └── zipf.rs
│ │ ├── str.rs
│ │ ├── string.rs
│ │ ├── sync.rs
│ │ ├── task.rs
│ │ ├── testing/
│ │ │ └── mod.rs
│ │ ├── thin_box.rs
│ │ ├── vec.rs
│ │ ├── vec_deque.rs
│ │ └── vec_deque_alloc_error.rs
│ ├── compiler-builtins/
│ │ ├── .editorconfig
│ │ ├── .git-blame-ignore-revs
│ │ ├── .github/
│ │ │ └── workflows/
│ │ │ ├── main.yaml
│ │ │ ├── publish.yaml
│ │ │ └── rustc-pull.yml
│ │ ├── .gitignore
│ │ ├── .rustfmt.toml
│ │ ├── CONTRIBUTING.md
│ │ ├── Cargo.toml
│ │ ├── LICENSE.txt
│ │ ├── PUBLISHING.md
│ │ ├── README.md
│ │ ├── builtins-shim/
│ │ │ └── Cargo.toml
│ │ ├── builtins-test/
│ │ │ ├── Cargo.toml
│ │ │ ├── benches/
│ │ │ │ ├── float_add.rs
│ │ │ │ ├── float_cmp.rs
│ │ │ │ ├── float_conv.rs
│ │ │ │ ├── float_div.rs
│ │ │ │ ├── float_extend.rs
│ │ │ │ ├── float_mul.rs
│ │ │ │ ├── float_pow.rs
│ │ │ │ ├── float_sub.rs
│ │ │ │ ├── float_trunc.rs
│ │ │ │ ├── mem.rs
│ │ │ │ └── mem_icount.rs
│ │ │ ├── build.rs
│ │ │ ├── src/
│ │ │ │ ├── bench.rs
│ │ │ │ └── lib.rs
│ │ │ └── tests/
│ │ │ ├── addsub.rs
│ │ │ ├── aeabi_memclr.rs
│ │ │ ├── aeabi_memcpy.rs
│ │ │ ├── aeabi_memset.rs
│ │ │ ├── big.rs
│ │ │ ├── cmp.rs
│ │ │ ├── conv.rs
│ │ │ ├── div_rem.rs
│ │ │ ├── float_pow.rs
│ │ │ ├── lse.rs
│ │ │ ├── mem.rs
│ │ │ ├── misc.rs
│ │ │ ├── mul.rs
│ │ │ └── shift.rs
│ │ ├── builtins-test-intrinsics/
│ │ │ ├── Cargo.toml
│ │ │ ├── build.rs
│ │ │ └── src/
│ │ │ └── main.rs
│ │ ├── ci/
│ │ │ ├── bench-icount.sh
│ │ │ ├── bench-walltime.sh
│ │ │ ├── ci-util.py
│ │ │ ├── docker/
│ │ │ │ ├── aarch64-unknown-linux-gnu/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── arm-unknown-linux-gnueabi/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── arm-unknown-linux-gnueabihf/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── armv7-unknown-linux-gnueabihf/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── i586-unknown-linux-gnu/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── i686-unknown-linux-gnu/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── loongarch64-unknown-linux-gnu/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── mips-unknown-linux-gnu/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── mips64-unknown-linux-gnuabi64/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── mips64el-unknown-linux-gnuabi64/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── mipsel-unknown-linux-gnu/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── powerpc-unknown-linux-gnu/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── powerpc64-unknown-linux-gnu/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── powerpc64le-unknown-linux-gnu/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── riscv64gc-unknown-linux-gnu/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── thumbv6m-none-eabi/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── thumbv7em-none-eabi/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── thumbv7em-none-eabihf/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── thumbv7m-none-eabi/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── wasm32-unknown-unknown/
│ │ │ │ │ └── Dockerfile
│ │ │ │ └── x86_64-unknown-linux-gnu/
│ │ │ │ └── Dockerfile
│ │ │ ├── download-compiler-rt.sh
│ │ │ ├── install-bench-deps.sh
│ │ │ ├── miri.sh
│ │ │ ├── run-docker.sh
│ │ │ ├── run-extensive.sh
│ │ │ ├── run.sh
│ │ │ └── update-musl.sh
│ │ ├── compiler-builtins/
│ │ │ ├── CHANGELOG.md
│ │ │ ├── Cargo.toml
│ │ │ ├── README.md
│ │ │ ├── build.rs
│ │ │ ├── configure.rs
│ │ │ └── src/
│ │ │ ├── aarch64.rs
│ │ │ ├── aarch64_outline_atomics.rs
│ │ │ ├── arm.rs
│ │ │ ├── avr.rs
│ │ │ ├── float/
│ │ │ │ ├── add.rs
│ │ │ │ ├── cmp.rs
│ │ │ │ ├── conv.rs
│ │ │ │ ├── div.rs
│ │ │ │ ├── extend.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── mul.rs
│ │ │ │ ├── pow.rs
│ │ │ │ ├── sub.rs
│ │ │ │ ├── traits.rs
│ │ │ │ └── trunc.rs
│ │ │ ├── hexagon/
│ │ │ │ ├── dfaddsub.s
│ │ │ │ ├── dfdiv.s
│ │ │ │ ├── dffma.s
│ │ │ │ ├── dfminmax.s
│ │ │ │ ├── dfmul.s
│ │ │ │ ├── dfsqrt.s
│ │ │ │ ├── divdi3.s
│ │ │ │ ├── divsi3.s
│ │ │ │ ├── fastmath2_dlib_asm.s
│ │ │ │ ├── fastmath2_ldlib_asm.s
│ │ │ │ ├── func_macro.s
│ │ │ │ ├── memcpy_forward_vp4cp4n2.s
│ │ │ │ ├── memcpy_likely_aligned.s
│ │ │ │ ├── moddi3.s
│ │ │ │ ├── modsi3.s
│ │ │ │ ├── sfdiv_opt.s
│ │ │ │ ├── sfsqrt_opt.s
│ │ │ │ ├── udivdi3.s
│ │ │ │ ├── udivmoddi4.s
│ │ │ │ ├── udivmodsi4.s
│ │ │ │ ├── udivsi3.s
│ │ │ │ ├── umoddi3.s
│ │ │ │ └── umodsi3.s
│ │ │ ├── hexagon.rs
│ │ │ ├── int/
│ │ │ │ ├── addsub.rs
│ │ │ │ ├── big.rs
│ │ │ │ ├── bswap.rs
│ │ │ │ ├── leading_zeros.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── mul.rs
│ │ │ │ ├── sdiv.rs
│ │ │ │ ├── shift.rs
│ │ │ │ ├── specialized_div_rem/
│ │ │ │ │ ├── asymmetric.rs
│ │ │ │ │ ├── binary_long.rs
│ │ │ │ │ ├── delegate.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── norm_shift.rs
│ │ │ │ │ └── trifecta.rs
│ │ │ │ ├── trailing_zeros.rs
│ │ │ │ ├── traits.rs
│ │ │ │ └── udiv.rs
│ │ │ ├── lib.miri.rs
│ │ │ ├── lib.rs
│ │ │ ├── macros.rs
│ │ │ ├── math/
│ │ │ │ └── mod.rs
│ │ │ ├── mem/
│ │ │ │ ├── impls.rs
│ │ │ │ ├── mod.rs
│ │ │ │ └── x86_64.rs
│ │ │ ├── probestack.rs
│ │ │ ├── riscv.rs
│ │ │ ├── sync/
│ │ │ │ ├── arm_linux.rs
│ │ │ │ ├── arm_thumb_shared.rs
│ │ │ │ ├── mod.rs
│ │ │ │ └── thumbv6k.rs
│ │ │ ├── x86.rs
│ │ │ └── x86_64.rs
│ │ ├── crates/
│ │ │ ├── libm-macros/
│ │ │ │ ├── Cargo.toml
│ │ │ │ ├── src/
│ │ │ │ │ ├── enums.rs
│ │ │ │ │ ├── lib.rs
│ │ │ │ │ ├── parse.rs
│ │ │ │ │ └── shared.rs
│ │ │ │ └── tests/
│ │ │ │ ├── basic.rs
│ │ │ │ └── enum.rs
│ │ │ ├── musl-math-sys/
│ │ │ │ ├── Cargo.toml
│ │ │ │ ├── build.rs
│ │ │ │ ├── c_patches/
│ │ │ │ │ ├── alias.c
│ │ │ │ │ └── features.h
│ │ │ │ └── src/
│ │ │ │ └── lib.rs
│ │ │ ├── panic-handler/
│ │ │ │ ├── Cargo.toml
│ │ │ │ └── src/
│ │ │ │ └── lib.rs
│ │ │ ├── symbol-check/
│ │ │ │ ├── Cargo.toml
│ │ │ │ ├── build.rs
│ │ │ │ ├── src/
│ │ │ │ │ └── main.rs
│ │ │ │ └── tests/
│ │ │ │ ├── all.rs
│ │ │ │ └── input/
│ │ │ │ ├── core_symbols.rs
│ │ │ │ ├── duplicates.rs
│ │ │ │ ├── good_bin.c
│ │ │ │ ├── good_lib.rs
│ │ │ │ ├── has_exe_gnu_stack_section.c
│ │ │ │ └── missing_gnu_stack_section.S
│ │ │ └── util/
│ │ │ ├── Cargo.toml
│ │ │ ├── build.rs
│ │ │ └── src/
│ │ │ └── main.rs
│ │ ├── etc/
│ │ │ ├── function-definitions.json
│ │ │ ├── function-list.txt
│ │ │ ├── thumbv6-none-eabi.json
│ │ │ ├── thumbv7em-none-eabi-renamed.json
│ │ │ └── update-api-list.py
│ │ ├── josh-sync.toml
│ │ ├── libm/
│ │ │ ├── CHANGELOG.md
│ │ │ ├── Cargo.toml
│ │ │ ├── LICENSE.txt
│ │ │ ├── README.md
│ │ │ ├── build.rs
│ │ │ ├── configure.rs
│ │ │ └── src/
│ │ │ ├── lib.rs
│ │ │ ├── libm_helper.rs
│ │ │ └── math/
│ │ │ ├── acos.rs
│ │ │ ├── acosf.rs
│ │ │ ├── acosh.rs
│ │ │ ├── acoshf.rs
│ │ │ ├── arch/
│ │ │ │ ├── aarch64.rs
│ │ │ │ ├── i586.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── wasm32.rs
│ │ │ │ ├── x86/
│ │ │ │ │ ├── detect.rs
│ │ │ │ │ └── fma.rs
│ │ │ │ └── x86.rs
│ │ │ ├── asin.rs
│ │ │ ├── asinf.rs
│ │ │ ├── asinh.rs
│ │ │ ├── asinhf.rs
│ │ │ ├── atan.rs
│ │ │ ├── atan2.rs
│ │ │ ├── atan2f.rs
│ │ │ ├── atanf.rs
│ │ │ ├── atanh.rs
│ │ │ ├── atanhf.rs
│ │ │ ├── cbrt.rs
│ │ │ ├── cbrtf.rs
│ │ │ ├── ceil.rs
│ │ │ ├── copysign.rs
│ │ │ ├── cos.rs
│ │ │ ├── cosf.rs
│ │ │ ├── cosh.rs
│ │ │ ├── coshf.rs
│ │ │ ├── erf.rs
│ │ │ ├── erff.rs
│ │ │ ├── exp.rs
│ │ │ ├── exp10.rs
│ │ │ ├── exp10f.rs
│ │ │ ├── exp2.rs
│ │ │ ├── exp2f.rs
│ │ │ ├── expf.rs
│ │ │ ├── expm1.rs
│ │ │ ├── expm1f.rs
│ │ │ ├── expo2.rs
│ │ │ ├── fabs.rs
│ │ │ ├── fdim.rs
│ │ │ ├── floor.rs
│ │ │ ├── fma.rs
│ │ │ ├── fmin_fmax.rs
│ │ │ ├── fminimum_fmaximum.rs
│ │ │ ├── fminimum_fmaximum_num.rs
│ │ │ ├── fmod.rs
│ │ │ ├── frexp.rs
│ │ │ ├── generic/
│ │ │ │ ├── ceil.rs
│ │ │ │ ├── copysign.rs
│ │ │ │ ├── fabs.rs
│ │ │ │ ├── fdim.rs
│ │ │ │ ├── floor.rs
│ │ │ │ ├── fma.rs
│ │ │ │ ├── fma_wide.rs
│ │ │ │ ├── fmax.rs
│ │ │ │ ├── fmaximum.rs
│ │ │ │ ├── fmaximum_num.rs
│ │ │ │ ├── fmin.rs
│ │ │ │ ├── fminimum.rs
│ │ │ │ ├── fminimum_num.rs
│ │ │ │ ├── fmod.rs
│ │ │ │ ├── frexp.rs
│ │ │ │ ├── ilogb.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── rint.rs
│ │ │ │ ├── round.rs
│ │ │ │ ├── scalbn.rs
│ │ │ │ ├── sqrt.rs
│ │ │ │ └── trunc.rs
│ │ │ ├── hypot.rs
│ │ │ ├── hypotf.rs
│ │ │ ├── ilogb.rs
│ │ │ ├── j0.rs
│ │ │ ├── j0f.rs
│ │ │ ├── j1.rs
│ │ │ ├── j1f.rs
│ │ │ ├── jn.rs
│ │ │ ├── jnf.rs
│ │ │ ├── k_cos.rs
│ │ │ ├── k_cosf.rs
│ │ │ ├── k_expo2.rs
│ │ │ ├── k_expo2f.rs
│ │ │ ├── k_sin.rs
│ │ │ ├── k_sinf.rs
│ │ │ ├── k_tan.rs
│ │ │ ├── k_tanf.rs
│ │ │ ├── ldexp.rs
│ │ │ ├── lgamma.rs
│ │ │ ├── lgamma_r.rs
│ │ │ ├── lgammaf.rs
│ │ │ ├── lgammaf_r.rs
│ │ │ ├── log.rs
│ │ │ ├── log10.rs
│ │ │ ├── log10f.rs
│ │ │ ├── log1p.rs
│ │ │ ├── log1pf.rs
│ │ │ ├── log2.rs
│ │ │ ├── log2f.rs
│ │ │ ├── logf.rs
│ │ │ ├── mod.rs
│ │ │ ├── modf.rs
│ │ │ ├── modff.rs
│ │ │ ├── nextafter.rs
│ │ │ ├── nextafterf.rs
│ │ │ ├── pow.rs
│ │ │ ├── powf.rs
│ │ │ ├── rem_pio2.rs
│ │ │ ├── rem_pio2_large.rs
│ │ │ ├── rem_pio2f.rs
│ │ │ ├── remainder.rs
│ │ │ ├── remainderf.rs
│ │ │ ├── remquo.rs
│ │ │ ├── remquof.rs
│ │ │ ├── rint.rs
│ │ │ ├── round.rs
│ │ │ ├── roundeven.rs
│ │ │ ├── scalbn.rs
│ │ │ ├── sin.rs
│ │ │ ├── sincos.rs
│ │ │ ├── sincosf.rs
│ │ │ ├── sinf.rs
│ │ │ ├── sinh.rs
│ │ │ ├── sinhf.rs
│ │ │ ├── sqrt.rs
│ │ │ ├── support/
│ │ │ │ ├── big/
│ │ │ │ │ └── tests.rs
│ │ │ │ ├── big.rs
│ │ │ │ ├── env.rs
│ │ │ │ ├── feature_detect.rs
│ │ │ │ ├── float_traits.rs
│ │ │ │ ├── hex_float.rs
│ │ │ │ ├── int_traits/
│ │ │ │ │ └── narrowing_div.rs
│ │ │ │ ├── int_traits.rs
│ │ │ │ ├── macros.rs
│ │ │ │ ├── mod.rs
│ │ │ │ └── modular.rs
│ │ │ ├── tan.rs
│ │ │ ├── tanf.rs
│ │ │ ├── tanh.rs
│ │ │ ├── tanhf.rs
│ │ │ ├── tgamma.rs
│ │ │ ├── tgammaf.rs
│ │ │ └── trunc.rs
│ │ ├── libm-test/
│ │ │ ├── Cargo.toml
│ │ │ ├── benches/
│ │ │ │ ├── icount.rs
│ │ │ │ └── random.rs
│ │ │ ├── build.rs
│ │ │ ├── examples/
│ │ │ │ ├── plot_domains.rs
│ │ │ │ └── plot_file.jl
│ │ │ ├── src/
│ │ │ │ ├── domain.rs
│ │ │ │ ├── f8_impl.rs
│ │ │ │ ├── generate/
│ │ │ │ │ ├── case_list.rs
│ │ │ │ │ ├── edge_cases.rs
│ │ │ │ │ ├── random.rs
│ │ │ │ │ └── spaced.rs
│ │ │ │ ├── generate.rs
│ │ │ │ ├── lib.rs
│ │ │ │ ├── mpfloat.rs
│ │ │ │ ├── num.rs
│ │ │ │ ├── op.rs
│ │ │ │ ├── precision.rs
│ │ │ │ ├── run_cfg.rs
│ │ │ │ └── test_traits.rs
│ │ │ └── tests/
│ │ │ ├── check_coverage.rs
│ │ │ ├── compare_built_musl.rs
│ │ │ ├── multiprecision.rs
│ │ │ ├── standalone.rs
│ │ │ ├── u256.rs
│ │ │ └── z_extensive/
│ │ │ ├── main.rs
│ │ │ └── run.rs
│ │ ├── rust-version
│ │ └── triagebot.toml
│ ├── core/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── alloc/
│ │ │ ├── global.rs
│ │ │ ├── layout.rs
│ │ │ └── mod.rs
│ │ ├── any.rs
│ │ ├── arch.rs
│ │ ├── array/
│ │ │ ├── ascii.rs
│ │ │ ├── drain.rs
│ │ │ ├── equality.rs
│ │ │ ├── iter/
│ │ │ │ └── iter_inner.rs
│ │ │ ├── iter.rs
│ │ │ └── mod.rs
│ │ ├── ascii/
│ │ │ └── ascii_char.rs
│ │ ├── ascii.rs
│ │ ├── asserting.rs
│ │ ├── async_iter/
│ │ │ ├── async_iter.rs
│ │ │ ├── from_iter.rs
│ │ │ └── mod.rs
│ │ ├── bool.rs
│ │ ├── borrow.rs
│ │ ├── bstr/
│ │ │ ├── mod.rs
│ │ │ └── traits.rs
│ │ ├── cell/
│ │ │ ├── lazy.rs
│ │ │ └── once.rs
│ │ ├── cell.rs
│ │ ├── char/
│ │ │ ├── convert.rs
│ │ │ ├── decode.rs
│ │ │ ├── methods.rs
│ │ │ └── mod.rs
│ │ ├── clone/
│ │ │ └── uninit.rs
│ │ ├── clone.rs
│ │ ├── cmp/
│ │ │ └── bytewise.rs
│ │ ├── cmp.rs
│ │ ├── contracts.rs
│ │ ├── convert/
│ │ │ ├── mod.rs
│ │ │ └── num.rs
│ │ ├── default.rs
│ │ ├── error.md
│ │ ├── error.rs
│ │ ├── escape.rs
│ │ ├── ffi/
│ │ │ ├── c_char.md
│ │ │ ├── c_double.md
│ │ │ ├── c_float.md
│ │ │ ├── c_int.md
│ │ │ ├── c_long.md
│ │ │ ├── c_longlong.md
│ │ │ ├── c_schar.md
│ │ │ ├── c_short.md
│ │ │ ├── c_str.rs
│ │ │ ├── c_uchar.md
│ │ │ ├── c_uint.md
│ │ │ ├── c_ulong.md
│ │ │ ├── c_ulonglong.md
│ │ │ ├── c_ushort.md
│ │ │ ├── c_void.md
│ │ │ ├── mod.rs
│ │ │ ├── primitives.rs
│ │ │ └── va_list.rs
│ │ ├── field.rs
│ │ ├── fmt/
│ │ │ ├── builders.rs
│ │ │ ├── float.rs
│ │ │ ├── fmt_trait_method_doc.md
│ │ │ ├── mod.rs
│ │ │ ├── nofloat.rs
│ │ │ ├── num.rs
│ │ │ ├── num_buffer.rs
│ │ │ └── rt.rs
│ │ ├── future/
│ │ │ ├── async_drop.rs
│ │ │ ├── future.rs
│ │ │ ├── into_future.rs
│ │ │ ├── join.rs
│ │ │ ├── mod.rs
│ │ │ ├── pending.rs
│ │ │ ├── poll_fn.rs
│ │ │ └── ready.rs
│ │ ├── hash/
│ │ │ ├── mod.rs
│ │ │ └── sip.rs
│ │ ├── hint.rs
│ │ ├── index.rs
│ │ ├── internal_macros.rs
│ │ ├── intrinsics/
│ │ │ ├── bounds.rs
│ │ │ ├── fallback.rs
│ │ │ ├── gpu.rs
│ │ │ ├── mir.rs
│ │ │ ├── mod.rs
│ │ │ └── simd.rs
│ │ ├── io/
│ │ │ ├── borrowed_buf.rs
│ │ │ └── mod.rs
│ │ ├── iter/
│ │ │ ├── adapters/
│ │ │ │ ├── array_chunks.rs
│ │ │ │ ├── by_ref_sized.rs
│ │ │ │ ├── chain.rs
│ │ │ │ ├── cloned.rs
│ │ │ │ ├── copied.rs
│ │ │ │ ├── cycle.rs
│ │ │ │ ├── enumerate.rs
│ │ │ │ ├── filter.rs
│ │ │ │ ├── filter_map.rs
│ │ │ │ ├── flatten.rs
│ │ │ │ ├── fuse.rs
│ │ │ │ ├── inspect.rs
│ │ │ │ ├── intersperse.rs
│ │ │ │ ├── map.rs
│ │ │ │ ├── map_while.rs
│ │ │ │ ├── map_windows.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── peekable.rs
│ │ │ │ ├── rev.rs
│ │ │ │ ├── scan.rs
│ │ │ │ ├── skip.rs
│ │ │ │ ├── skip_while.rs
│ │ │ │ ├── step_by.rs
│ │ │ │ ├── take.rs
│ │ │ │ ├── take_while.rs
│ │ │ │ └── zip.rs
│ │ │ ├── mod.rs
│ │ │ ├── range.rs
│ │ │ ├── sources/
│ │ │ │ ├── empty.rs
│ │ │ │ ├── from_coroutine.rs
│ │ │ │ ├── from_fn.rs
│ │ │ │ ├── generator.rs
│ │ │ │ ├── once.rs
│ │ │ │ ├── once_with.rs
│ │ │ │ ├── repeat.rs
│ │ │ │ ├── repeat_n.rs
│ │ │ │ ├── repeat_with.rs
│ │ │ │ └── successors.rs
│ │ │ ├── sources.rs
│ │ │ └── traits/
│ │ │ ├── accum.rs
│ │ │ ├── collect.rs
│ │ │ ├── double_ended.rs
│ │ │ ├── exact_size.rs
│ │ │ ├── iterator.rs
│ │ │ ├── marker.rs
│ │ │ ├── mod.rs
│ │ │ └── unchecked_iterator.rs
│ │ ├── lib.miri.rs
│ │ ├── lib.rs
│ │ ├── macros/
│ │ │ ├── mod.rs
│ │ │ └── panic.md
│ │ ├── marker/
│ │ │ └── variance.rs
│ │ ├── marker.rs
│ │ ├── mem/
│ │ │ ├── alignment.rs
│ │ │ ├── drop_guard.rs
│ │ │ ├── manually_drop.rs
│ │ │ ├── maybe_dangling.rs
│ │ │ ├── maybe_uninit.rs
│ │ │ ├── mod.rs
│ │ │ ├── transmutability.rs
│ │ │ └── type_info.rs
│ │ ├── net/
│ │ │ ├── display_buffer.rs
│ │ │ ├── ip_addr.rs
│ │ │ ├── mod.rs
│ │ │ ├── parser.rs
│ │ │ └── socket_addr.rs
│ │ ├── num/
│ │ │ ├── error.rs
│ │ │ ├── f128.rs
│ │ │ ├── f16.rs
│ │ │ ├── f32.rs
│ │ │ ├── f64.rs
│ │ │ ├── float_parse.rs
│ │ │ ├── imp/
│ │ │ │ ├── bignum.rs
│ │ │ │ ├── dec2flt/
│ │ │ │ │ ├── common.rs
│ │ │ │ │ ├── decimal.rs
│ │ │ │ │ ├── decimal_seq.rs
│ │ │ │ │ ├── fpu.rs
│ │ │ │ │ ├── lemire.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── parse.rs
│ │ │ │ │ ├── slow.rs
│ │ │ │ │ └── table.rs
│ │ │ │ ├── diy_float.rs
│ │ │ │ ├── flt2dec/
│ │ │ │ │ ├── decoder.rs
│ │ │ │ │ ├── estimator.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── strategy/
│ │ │ │ │ ├── dragon.rs
│ │ │ │ │ └── grisu.rs
│ │ │ │ ├── fmt.rs
│ │ │ │ ├── int_bits.rs
│ │ │ │ ├── int_log10.rs
│ │ │ │ ├── int_sqrt.rs
│ │ │ │ ├── libm.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── overflow_panic.rs
│ │ │ │ └── traits.rs
│ │ │ ├── int_macros.rs
│ │ │ ├── mod.rs
│ │ │ ├── niche_types.rs
│ │ │ ├── nonzero.rs
│ │ │ ├── saturating.rs
│ │ │ ├── shells/
│ │ │ │ └── legacy_int_modules.rs
│ │ │ ├── traits.rs
│ │ │ ├── uint_macros.rs
│ │ │ └── wrapping.rs
│ │ ├── ops/
│ │ │ ├── arith.rs
│ │ │ ├── async_function.rs
│ │ │ ├── bit.rs
│ │ │ ├── control_flow.rs
│ │ │ ├── coroutine.rs
│ │ │ ├── deref.rs
│ │ │ ├── drop.rs
│ │ │ ├── function.rs
│ │ │ ├── index.rs
│ │ │ ├── index_range.rs
│ │ │ ├── mod.rs
│ │ │ ├── range.rs
│ │ │ ├── reborrow.rs
│ │ │ ├── try_trait.rs
│ │ │ └── unsize.rs
│ │ ├── option.rs
│ │ ├── os/
│ │ │ ├── darwin/
│ │ │ │ ├── mod.rs
│ │ │ │ └── objc.rs
│ │ │ └── mod.rs
│ │ ├── panic/
│ │ │ ├── location.rs
│ │ │ ├── panic_info.rs
│ │ │ └── unwind_safe.rs
│ │ ├── panic.rs
│ │ ├── panicking.rs
│ │ ├── pat.rs
│ │ ├── pin/
│ │ │ └── unsafe_pinned.rs
│ │ ├── pin.rs
│ │ ├── prelude/
│ │ │ ├── mod.rs
│ │ │ └── v1.rs
│ │ ├── primitive.rs
│ │ ├── primitive_docs.rs
│ │ ├── profiling.rs
│ │ ├── ptr/
│ │ │ ├── const_ptr.rs
│ │ │ ├── docs/
│ │ │ │ ├── INFO.md
│ │ │ │ ├── add.md
│ │ │ │ ├── addr.md
│ │ │ │ ├── as_ref.md
│ │ │ │ ├── as_uninit_ref.md
│ │ │ │ ├── as_uninit_slice.md
│ │ │ │ ├── is_null.md
│ │ │ │ └── offset.md
│ │ │ ├── metadata.rs
│ │ │ ├── mod.rs
│ │ │ ├── mut_ptr.rs
│ │ │ ├── non_null.rs
│ │ │ └── unique.rs
│ │ ├── random.rs
│ │ ├── range/
│ │ │ ├── iter.rs
│ │ │ └── legacy.rs
│ │ ├── range.rs
│ │ ├── result.rs
│ │ ├── slice/
│ │ │ ├── ascii.rs
│ │ │ ├── cmp.rs
│ │ │ ├── index.rs
│ │ │ ├── iter/
│ │ │ │ └── macros.rs
│ │ │ ├── iter.rs
│ │ │ ├── memchr.rs
│ │ │ ├── mod.rs
│ │ │ ├── raw.rs
│ │ │ ├── rotate.rs
│ │ │ ├── sort/
│ │ │ │ ├── mod.rs
│ │ │ │ ├── select.rs
│ │ │ │ ├── shared/
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── pivot.rs
│ │ │ │ │ └── smallsort.rs
│ │ │ │ ├── stable/
│ │ │ │ │ ├── drift.rs
│ │ │ │ │ ├── merge.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── quicksort.rs
│ │ │ │ │ └── tiny.rs
│ │ │ │ └── unstable/
│ │ │ │ ├── heapsort.rs
│ │ │ │ ├── mod.rs
│ │ │ │ └── quicksort.rs
│ │ │ └── specialize.rs
│ │ ├── str/
│ │ │ ├── converts.rs
│ │ │ ├── count.rs
│ │ │ ├── error.rs
│ │ │ ├── iter.rs
│ │ │ ├── lossy.rs
│ │ │ ├── mod.rs
│ │ │ ├── pattern.rs
│ │ │ ├── traits.rs
│ │ │ └── validations.rs
│ │ ├── sync/
│ │ │ ├── atomic.rs
│ │ │ ├── exclusive.rs
│ │ │ └── mod.rs
│ │ ├── task/
│ │ │ ├── mod.rs
│ │ │ ├── poll.rs
│ │ │ ├── ready.rs
│ │ │ └── wake.rs
│ │ ├── time.rs
│ │ ├── tuple.rs
│ │ ├── ub_checks.rs
│ │ ├── unicode/
│ │ │ ├── mod.rs
│ │ │ ├── printable.py
│ │ │ ├── printable.rs
│ │ │ └── unicode_data.rs
│ │ ├── unit.rs
│ │ ├── unsafe_binder.rs
│ │ └── wtf8.rs
│ ├── coretests/
│ │ ├── Cargo.toml
│ │ ├── benches/
│ │ │ ├── any.rs
│ │ │ ├── array.rs
│ │ │ ├── ascii/
│ │ │ │ └── is_ascii.rs
│ │ │ ├── ascii.rs
│ │ │ ├── char/
│ │ │ │ ├── methods.rs
│ │ │ │ └── mod.rs
│ │ │ ├── fmt.rs
│ │ │ ├── hash/
│ │ │ │ ├── mod.rs
│ │ │ │ └── sip.rs
│ │ │ ├── iter.rs
│ │ │ ├── lib.rs
│ │ │ ├── net/
│ │ │ │ ├── addr_parser.rs
│ │ │ │ └── mod.rs
│ │ │ ├── num/
│ │ │ │ ├── dec2flt/
│ │ │ │ │ └── mod.rs
│ │ │ │ ├── flt2dec/
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── strategy/
│ │ │ │ │ ├── dragon.rs
│ │ │ │ │ └── grisu.rs
│ │ │ │ ├── int_bits/
│ │ │ │ │ └── mod.rs
│ │ │ │ ├── int_log/
│ │ │ │ │ └── mod.rs
│ │ │ │ ├── int_pow/
│ │ │ │ │ └── mod.rs
│ │ │ │ ├── int_sqrt/
│ │ │ │ │ └── mod.rs
│ │ │ │ └── mod.rs
│ │ │ ├── ops.rs
│ │ │ ├── pattern.rs
│ │ │ ├── slice.rs
│ │ │ ├── str/
│ │ │ │ ├── char_count.rs
│ │ │ │ ├── corpora.rs
│ │ │ │ ├── debug.rs
│ │ │ │ ├── eq_ignore_ascii_case.rs
│ │ │ │ └── iter.rs
│ │ │ ├── str.rs
│ │ │ └── tuple.rs
│ │ ├── lib.rs
│ │ └── tests/
│ │ ├── alloc.rs
│ │ ├── any.rs
│ │ ├── array.rs
│ │ ├── ascii.rs
│ │ ├── ascii_char.rs
│ │ ├── asserting.rs
│ │ ├── async_iter/
│ │ │ └── mod.rs
│ │ ├── atomic.rs
│ │ ├── bool.rs
│ │ ├── bstr.rs
│ │ ├── cell.rs
│ │ ├── char.rs
│ │ ├── clone.rs
│ │ ├── cmp.rs
│ │ ├── const_ptr.rs
│ │ ├── convert.rs
│ │ ├── error.rs
│ │ ├── ffi/
│ │ │ └── cstr.rs
│ │ ├── ffi.rs
│ │ ├── fmt/
│ │ │ ├── builders.rs
│ │ │ ├── float.rs
│ │ │ ├── mod.rs
│ │ │ └── num.rs
│ │ ├── future.rs
│ │ ├── hash/
│ │ │ ├── mod.rs
│ │ │ └── sip.rs
│ │ ├── hint.rs
│ │ ├── index.rs
│ │ ├── intrinsics.rs
│ │ ├── io/
│ │ │ ├── borrowed_buf.rs
│ │ │ └── mod.rs
│ │ ├── iter/
│ │ │ ├── adapters/
│ │ │ │ ├── array_chunks.rs
│ │ │ │ ├── by_ref_sized.rs
│ │ │ │ ├── chain.rs
│ │ │ │ ├── cloned.rs
│ │ │ │ ├── copied.rs
│ │ │ │ ├── cycle.rs
│ │ │ │ ├── enumerate.rs
│ │ │ │ ├── filter.rs
│ │ │ │ ├── filter_map.rs
│ │ │ │ ├── flat_map.rs
│ │ │ │ ├── flatten.rs
│ │ │ │ ├── fuse.rs
│ │ │ │ ├── inspect.rs
│ │ │ │ ├── intersperse.rs
│ │ │ │ ├── map.rs
│ │ │ │ ├── map_windows.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── peekable.rs
│ │ │ │ ├── scan.rs
│ │ │ │ ├── skip.rs
│ │ │ │ ├── skip_while.rs
│ │ │ │ ├── step_by.rs
│ │ │ │ ├── take.rs
│ │ │ │ ├── take_while.rs
│ │ │ │ └── zip.rs
│ │ │ ├── mod.rs
│ │ │ ├── range.rs
│ │ │ ├── sources.rs
│ │ │ └── traits/
│ │ │ ├── accum.rs
│ │ │ ├── double_ended.rs
│ │ │ ├── iterator.rs
│ │ │ ├── mod.rs
│ │ │ └── step.rs
│ │ ├── lazy.rs
│ │ ├── lib.rs
│ │ ├── macros.rs
│ │ ├── manually_drop.rs
│ │ ├── mem/
│ │ │ ├── fn_ptr.rs
│ │ │ ├── trait_info_of.rs
│ │ │ └── type_info.rs
│ │ ├── mem.rs
│ │ ├── net/
│ │ │ ├── ip_addr.rs
│ │ │ ├── mod.rs
│ │ │ ├── parser.rs
│ │ │ └── socket_addr.rs
│ │ ├── nonzero.rs
│ │ ├── num/
│ │ │ ├── bignum.rs
│ │ │ ├── carryless_mul.rs
│ │ │ ├── clamp_magnitude.rs
│ │ │ ├── const_from.rs
│ │ │ ├── dec2flt/
│ │ │ │ ├── decimal.rs
│ │ │ │ ├── decimal_seq.rs
│ │ │ │ ├── float.rs
│ │ │ │ ├── lemire.rs
│ │ │ │ ├── mod.rs
│ │ │ │ └── parse.rs
│ │ │ ├── float_ieee754_flt2dec_dec2flt.rs
│ │ │ ├── float_iter_sum_identity.rs
│ │ │ ├── floats.rs
│ │ │ ├── flt2dec/
│ │ │ │ ├── estimator.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── random.rs
│ │ │ │ └── strategy/
│ │ │ │ ├── dragon.rs
│ │ │ │ └── grisu.rs
│ │ │ ├── i128.rs
│ │ │ ├── i16.rs
│ │ │ ├── i32.rs
│ │ │ ├── i64.rs
│ │ │ ├── i8.rs
│ │ │ ├── int_log.rs
│ │ │ ├── int_macros.rs
│ │ │ ├── int_sqrt.rs
│ │ │ ├── midpoint.rs
│ │ │ ├── mod.rs
│ │ │ ├── nan.rs
│ │ │ ├── niche_types.rs
│ │ │ ├── ops.rs
│ │ │ ├── u128.rs
│ │ │ ├── u16.rs
│ │ │ ├── u32.rs
│ │ │ ├── u64.rs
│ │ │ ├── u8.rs
│ │ │ ├── uint_macros.rs
│ │ │ └── wrapping.rs
│ │ ├── ops/
│ │ │ ├── control_flow.rs
│ │ │ └── from_residual.rs
│ │ ├── ops.rs
│ │ ├── option.rs
│ │ ├── panic/
│ │ │ ├── location/
│ │ │ │ ├── file_a.rs
│ │ │ │ ├── file_b.rs
│ │ │ │ └── file_c.rs
│ │ │ └── location.rs
│ │ ├── panic.rs
│ │ ├── pattern.rs
│ │ ├── pin.rs
│ │ ├── pin_macro.rs
│ │ ├── ptr.rs
│ │ ├── result.rs
│ │ ├── simd.rs
│ │ ├── slice.rs
│ │ ├── str.rs
│ │ ├── str_lossy.rs
│ │ ├── task.rs
│ │ ├── time.rs
│ │ ├── tuple.rs
│ │ ├── unicode/
│ │ │ └── test_data.rs
│ │ ├── unicode.rs
│ │ ├── waker.rs
│ │ └── wtf8.rs
│ ├── panic_abort/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── android.rs
│ │ ├── lib.rs
│ │ └── zkvm.rs
│ ├── panic_unwind/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── dummy.rs
│ │ ├── emcc.rs
│ │ ├── gcc.rs
│ │ ├── hermit.rs
│ │ ├── lib.rs
│ │ ├── miri.rs
│ │ └── seh.rs
│ ├── portable-simd/
│ │ ├── .github/
│ │ │ ├── ISSUE_TEMPLATE/
│ │ │ │ ├── blank_issue.md
│ │ │ │ ├── bug_report.md
│ │ │ │ ├── config.yml
│ │ │ │ └── feature_request.md
│ │ │ ├── PULL_REQUEST_TEMPLATE.md
│ │ │ └── workflows/
│ │ │ ├── ci.yml
│ │ │ └── doc.yml
│ │ ├── .gitignore
│ │ ├── CONTRIBUTING.md
│ │ ├── Cargo.toml
│ │ ├── Cross.toml
│ │ ├── LICENSE-APACHE
│ │ ├── LICENSE-MIT
│ │ ├── README.md
│ │ ├── beginners-guide.md
│ │ ├── crates/
│ │ │ ├── core_simd/
│ │ │ │ ├── Cargo.toml
│ │ │ │ ├── LICENSE-APACHE
│ │ │ │ ├── LICENSE-MIT
│ │ │ │ ├── examples/
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── dot_product.rs
│ │ │ │ │ ├── matrix_inversion.rs
│ │ │ │ │ ├── nbody.rs
│ │ │ │ │ └── spectral_norm.rs
│ │ │ │ ├── src/
│ │ │ │ │ ├── alias.rs
│ │ │ │ │ ├── cast.rs
│ │ │ │ │ ├── core_simd_docs.md
│ │ │ │ │ ├── fmt.rs
│ │ │ │ │ ├── iter.rs
│ │ │ │ │ ├── lib.rs
│ │ │ │ │ ├── masks.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── ops/
│ │ │ │ │ │ ├── assign.rs
│ │ │ │ │ │ ├── deref.rs
│ │ │ │ │ │ ├── shift_scalar.rs
│ │ │ │ │ │ └── unary.rs
│ │ │ │ │ ├── ops.rs
│ │ │ │ │ ├── select.rs
│ │ │ │ │ ├── simd/
│ │ │ │ │ │ ├── cmp/
│ │ │ │ │ │ │ ├── eq.rs
│ │ │ │ │ │ │ └── ord.rs
│ │ │ │ │ │ ├── cmp.rs
│ │ │ │ │ │ ├── num/
│ │ │ │ │ │ │ ├── float.rs
│ │ │ │ │ │ │ ├── int.rs
│ │ │ │ │ │ │ └── uint.rs
│ │ │ │ │ │ ├── num.rs
│ │ │ │ │ │ ├── prelude.rs
│ │ │ │ │ │ ├── ptr/
│ │ │ │ │ │ │ ├── const_ptr.rs
│ │ │ │ │ │ │ └── mut_ptr.rs
│ │ │ │ │ │ └── ptr.rs
│ │ │ │ │ ├── swizzle.rs
│ │ │ │ │ ├── swizzle_dyn.rs
│ │ │ │ │ ├── to_bytes.rs
│ │ │ │ │ ├── vector.rs
│ │ │ │ │ ├── vendor/
│ │ │ │ │ │ ├── arm.rs
│ │ │ │ │ │ ├── loongarch64.rs
│ │ │ │ │ │ ├── powerpc.rs
│ │ │ │ │ │ ├── wasm32.rs
│ │ │ │ │ │ └── x86.rs
│ │ │ │ │ └── vendor.rs
│ │ │ │ ├── tests/
│ │ │ │ │ ├── autoderef.rs
│ │ │ │ │ ├── cast.rs
│ │ │ │ │ ├── f32_ops.rs
│ │ │ │ │ ├── f64_ops.rs
│ │ │ │ │ ├── i16_ops.rs
│ │ │ │ │ ├── i32_ops.rs
│ │ │ │ │ ├── i64_ops.rs
│ │ │ │ │ ├── i8_ops.rs
│ │ │ │ │ ├── isize_ops.rs
│ │ │ │ │ ├── layout.rs
│ │ │ │ │ ├── mask_ops.rs
│ │ │ │ │ ├── mask_ops_impl/
│ │ │ │ │ │ ├── mask16.rs
│ │ │ │ │ │ ├── mask32.rs
│ │ │ │ │ │ ├── mask64.rs
│ │ │ │ │ │ ├── mask8.rs
│ │ │ │ │ │ ├── mask_macros.rs
│ │ │ │ │ │ ├── masksize.rs
│ │ │ │ │ │ └── mod.rs
│ │ │ │ │ ├── masked_load_store.rs
│ │ │ │ │ ├── masks.rs
│ │ │ │ │ ├── ops_macros.rs
│ │ │ │ │ ├── pointers.rs
│ │ │ │ │ ├── round.rs
│ │ │ │ │ ├── swizzle.rs
│ │ │ │ │ ├── swizzle_dyn.rs
│ │ │ │ │ ├── to_bytes.rs
│ │ │ │ │ ├── try_from_slice.rs
│ │ │ │ │ ├── u16_ops.rs
│ │ │ │ │ ├── u32_ops.rs
│ │ │ │ │ ├── u64_ops.rs
│ │ │ │ │ ├── u8_ops.rs
│ │ │ │ │ └── usize_ops.rs
│ │ │ │ └── webdriver.json
│ │ │ ├── std_float/
│ │ │ │ ├── Cargo.toml
│ │ │ │ ├── src/
│ │ │ │ │ └── lib.rs
│ │ │ │ └── tests/
│ │ │ │ └── float.rs
│ │ │ └── test_helpers/
│ │ │ ├── Cargo.toml
│ │ │ └── src/
│ │ │ ├── approxeq.rs
│ │ │ ├── array.rs
│ │ │ ├── biteq.rs
│ │ │ ├── lib.rs
│ │ │ ├── subnormals.rs
│ │ │ └── wasm.rs
│ │ ├── rust-toolchain.toml
│ │ └── subtree-sync.sh
│ ├── proc_macro/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── bridge/
│ │ │ ├── arena.rs
│ │ │ ├── buffer.rs
│ │ │ ├── client.rs
│ │ │ ├── closure.rs
│ │ │ ├── fxhash.rs
│ │ │ ├── handle.rs
│ │ │ ├── mod.rs
│ │ │ ├── rpc.rs
│ │ │ ├── selfless_reify.rs
│ │ │ ├── server.rs
│ │ │ └── symbol.rs
│ │ ├── diagnostic.rs
│ │ ├── escape.rs
│ │ ├── lib.rs
│ │ ├── quote.rs
│ │ └── to_tokens.rs
│ ├── profiler_builtins/
│ │ ├── Cargo.toml
│ │ ├── build.rs
│ │ └── src/
│ │ └── lib.rs
│ ├── rtstartup/
│ │ ├── rsbegin.rs
│ │ └── rsend.rs
│ ├── rustc-std-workspace-alloc/
│ │ ├── Cargo.toml
│ │ └── lib.rs
│ ├── rustc-std-workspace-core/
│ │ ├── Cargo.toml
│ │ ├── README.md
│ │ └── lib.rs
│ ├── rustc-std-workspace-std/
│ │ ├── Cargo.toml
│ │ ├── README.md
│ │ └── lib.rs
│ ├── std/
│ │ ├── Cargo.toml
│ │ ├── benches/
│ │ │ ├── hash/
│ │ │ │ ├── map.rs
│ │ │ │ ├── mod.rs
│ │ │ │ └── set_ops.rs
│ │ │ ├── lib.rs
│ │ │ ├── path.rs
│ │ │ └── time.rs
│ │ ├── build.rs
│ │ ├── src/
│ │ │ ├── alloc.rs
│ │ │ ├── ascii.rs
│ │ │ ├── backtrace/
│ │ │ │ └── tests.rs
│ │ │ ├── backtrace.rs
│ │ │ ├── bstr.rs
│ │ │ ├── collections/
│ │ │ │ ├── hash/
│ │ │ │ │ ├── map/
│ │ │ │ │ │ └── tests.rs
│ │ │ │ │ ├── map.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── set/
│ │ │ │ │ │ └── tests.rs
│ │ │ │ │ └── set.rs
│ │ │ │ └── mod.rs
│ │ │ ├── env.rs
│ │ │ ├── error.rs
│ │ │ ├── ffi/
│ │ │ │ ├── c_str.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── os_str/
│ │ │ │ │ └── tests.rs
│ │ │ │ └── os_str.rs
│ │ │ ├── fs/
│ │ │ │ └── tests.rs
│ │ │ ├── fs.rs
│ │ │ ├── hash/
│ │ │ │ ├── mod.rs
│ │ │ │ └── random.rs
│ │ │ ├── io/
│ │ │ │ ├── buffered/
│ │ │ │ │ ├── bufreader/
│ │ │ │ │ │ └── buffer.rs
│ │ │ │ │ ├── bufreader.rs
│ │ │ │ │ ├── bufwriter.rs
│ │ │ │ │ ├── linewriter.rs
│ │ │ │ │ ├── linewritershim.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── tests.rs
│ │ │ │ ├── copy/
│ │ │ │ │ └── tests.rs
│ │ │ │ ├── copy.rs
│ │ │ │ ├── cursor/
│ │ │ │ │ └── tests.rs
│ │ │ │ ├── cursor.rs
│ │ │ │ ├── error/
│ │ │ │ │ ├── repr_bitpacked.rs
│ │ │ │ │ ├── repr_unpacked.rs
│ │ │ │ │ └── tests.rs
│ │ │ │ ├── error.rs
│ │ │ │ ├── impls/
│ │ │ │ │ └── tests.rs
│ │ │ │ ├── impls.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── pipe/
│ │ │ │ │ └── tests.rs
│ │ │ │ ├── pipe.rs
│ │ │ │ ├── prelude.rs
│ │ │ │ ├── stdio/
│ │ │ │ │ └── tests.rs
│ │ │ │ ├── stdio.rs
│ │ │ │ ├── tests.rs
│ │ │ │ ├── util/
│ │ │ │ │ └── tests.rs
│ │ │ │ └── util.rs
│ │ │ ├── keyword_docs.rs
│ │ │ ├── lib.miri.rs
│ │ │ ├── lib.rs
│ │ │ ├── macros/
│ │ │ │ └── tests.rs
│ │ │ ├── macros.rs
│ │ │ ├── net/
│ │ │ │ ├── hostname.rs
│ │ │ │ ├── ip_addr/
│ │ │ │ │ └── tests.rs
│ │ │ │ ├── ip_addr.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── socket_addr/
│ │ │ │ │ └── tests.rs
│ │ │ │ ├── socket_addr.rs
│ │ │ │ ├── tcp/
│ │ │ │ │ └── tests.rs
│ │ │ │ ├── tcp.rs
│ │ │ │ ├── test.rs
│ │ │ │ ├── udp/
│ │ │ │ │ └── tests.rs
│ │ │ │ └── udp.rs
│ │ │ ├── num/
│ │ │ │ ├── f128.rs
│ │ │ │ ├── f16.rs
│ │ │ │ ├── f32.rs
│ │ │ │ ├── f64.rs
│ │ │ │ └── mod.rs
│ │ │ ├── os/
│ │ │ │ ├── aix/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── android/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── net.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── cygwin/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── net.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── darwin/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── objc.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── dragonfly/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── emscripten/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── espidf/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── fd/
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── net.rs
│ │ │ │ │ ├── owned.rs
│ │ │ │ │ ├── raw.rs
│ │ │ │ │ ├── stdio.rs
│ │ │ │ │ └── tests.rs
│ │ │ │ ├── fortanix_sgx/
│ │ │ │ │ ├── arch.rs
│ │ │ │ │ ├── ffi.rs
│ │ │ │ │ ├── io.rs
│ │ │ │ │ └── mod.rs
│ │ │ │ ├── freebsd/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── net.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── fuchsia/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── haiku/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── hermit/
│ │ │ │ │ ├── ffi.rs
│ │ │ │ │ ├── io/
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ └── net.rs
│ │ │ │ │ └── mod.rs
│ │ │ │ ├── horizon/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── hurd/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── illumos/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── net.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── ios/
│ │ │ │ │ └── mod.rs
│ │ │ │ ├── l4re/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── linux/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── net.rs
│ │ │ │ │ ├── process.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── macos/
│ │ │ │ │ └── mod.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── motor/
│ │ │ │ │ ├── ffi.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── process.rs
│ │ │ │ ├── net/
│ │ │ │ │ ├── linux_ext/
│ │ │ │ │ │ ├── addr.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── socket.rs
│ │ │ │ │ │ ├── tcp.rs
│ │ │ │ │ │ └── tests.rs
│ │ │ │ │ └── mod.rs
│ │ │ │ ├── netbsd/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── net.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── nto/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── nuttx/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── openbsd/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── raw/
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── tests.rs
│ │ │ │ ├── redox/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── rtems/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── solaris/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── net.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── solid/
│ │ │ │ │ ├── ffi.rs
│ │ │ │ │ ├── io.rs
│ │ │ │ │ └── mod.rs
│ │ │ │ ├── trusty/
│ │ │ │ │ ├── io/
│ │ │ │ │ │ └── mod.rs
│ │ │ │ │ └── mod.rs
│ │ │ │ ├── uefi/
│ │ │ │ │ ├── env.rs
│ │ │ │ │ └── mod.rs
│ │ │ │ ├── unix/
│ │ │ │ │ ├── ffi/
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ └── os_str.rs
│ │ │ │ │ ├── fs/
│ │ │ │ │ │ └── tests.rs
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── io/
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ └── tests.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── net/
│ │ │ │ │ │ ├── addr.rs
│ │ │ │ │ │ ├── ancillary.rs
│ │ │ │ │ │ ├── datagram.rs
│ │ │ │ │ │ ├── listener.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── stream.rs
│ │ │ │ │ │ ├── tests.rs
│ │ │ │ │ │ ├── ucred/
│ │ │ │ │ │ │ └── tests.rs
│ │ │ │ │ │ └── ucred.rs
│ │ │ │ │ ├── process.rs
│ │ │ │ │ ├── raw.rs
│ │ │ │ │ └── thread.rs
│ │ │ │ ├── vita/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── vxworks/
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── raw.rs
│ │ │ │ ├── wasi/
│ │ │ │ │ ├── ffi.rs
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── io/
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ └── tests.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── net/
│ │ │ │ │ └── mod.rs
│ │ │ │ ├── wasip2/
│ │ │ │ │ └── mod.rs
│ │ │ │ ├── windows/
│ │ │ │ │ ├── ffi.rs
│ │ │ │ │ ├── fs.rs
│ │ │ │ │ ├── io/
│ │ │ │ │ │ ├── handle.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── raw.rs
│ │ │ │ │ │ ├── socket.rs
│ │ │ │ │ │ └── tests.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── net/
│ │ │ │ │ │ ├── addr.rs
│ │ │ │ │ │ ├── listener.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ └── stream.rs
│ │ │ │ │ ├── process.rs
│ │ │ │ │ ├── raw.rs
│ │ │ │ │ └── thread.rs
│ │ │ │ └── xous/
│ │ │ │ ├── ffi/
│ │ │ │ │ ├── definitions/
│ │ │ │ │ │ └── memoryflags.rs
│ │ │ │ │ └── definitions.rs
│ │ │ │ ├── ffi.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── services/
│ │ │ │ │ ├── dns.rs
│ │ │ │ │ ├── log.rs
│ │ │ │ │ ├── net.rs
│ │ │ │ │ ├── systime.rs
│ │ │ │ │ └── ticktimer.rs
│ │ │ │ └── services.rs
│ │ │ ├── panic.rs
│ │ │ ├── panicking.rs
│ │ │ ├── pat.rs
│ │ │ ├── path.rs
│ │ │ ├── prelude/
│ │ │ │ ├── mod.rs
│ │ │ │ └── v1.rs
│ │ │ ├── process/
│ │ │ │ └── tests.rs
│ │ │ ├── process.rs
│ │ │ ├── random.rs
│ │ │ ├── rt.rs
│ │ │ ├── sync/
│ │ │ │ ├── barrier.rs
│ │ │ │ ├── lazy_lock.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── mpmc/
│ │ │ │ │ ├── array.rs
│ │ │ │ │ ├── context.rs
│ │ │ │ │ ├── counter.rs
│ │ │ │ │ ├── error.rs
│ │ │ │ │ ├── list.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── select.rs
│ │ │ │ │ ├── tests.rs
│ │ │ │ │ ├── utils.rs
│ │ │ │ │ ├── waker.rs
│ │ │ │ │ └── zero.rs
│ │ │ │ ├── mpsc.rs
│ │ │ │ ├── nonpoison/
│ │ │ │ │ ├── condvar.rs
│ │ │ │ │ ├── mutex.rs
│ │ │ │ │ └── rwlock.rs
│ │ │ │ ├── nonpoison.rs
│ │ │ │ ├── once.rs
│ │ │ │ ├── once_lock.rs
│ │ │ │ ├── oneshot.rs
│ │ │ │ ├── poison/
│ │ │ │ │ ├── condvar.rs
│ │ │ │ │ ├── mutex.rs
│ │ │ │ │ └── rwlock.rs
│ │ │ │ ├── poison.rs
│ │ │ │ └── reentrant_lock.rs
│ │ │ ├── sys/
│ │ │ │ ├── alloc/
│ │ │ │ │ ├── hermit.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── motor.rs
│ │ │ │ │ ├── sgx.rs
│ │ │ │ │ ├── solid.rs
│ │ │ │ │ ├── uefi.rs
│ │ │ │ │ ├── unix.rs
│ │ │ │ │ ├── vexos.rs
│ │ │ │ │ ├── wasm.rs
│ │ │ │ │ ├── windows/
│ │ │ │ │ │ └── tests.rs
│ │ │ │ │ ├── windows.rs
│ │ │ │ │ ├── xous.rs
│ │ │ │ │ └── zkvm.rs
│ │ │ │ ├── args/
│ │ │ │ │ ├── common.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── motor.rs
│ │ │ │ │ ├── sgx.rs
│ │ │ │ │ ├── uefi.rs
│ │ │ │ │ ├── unix.rs
│ │ │ │ │ ├── unsupported.rs
│ │ │ │ │ ├── wasip1.rs
│ │ │ │ │ ├── wasip2.rs
│ │ │ │ │ ├── windows/
│ │ │ │ │ │ └── tests.rs
│ │ │ │ │ ├── windows.rs
│ │ │ │ │ ├── xous.rs
│ │ │ │ │ └── zkvm.rs
│ │ │ │ ├── backtrace.rs
│ │ │ │ ├── cmath.rs
│ │ │ │ ├── configure_builtins.rs
│ │ │ │ ├── env/
│ │ │ │ │ ├── common.rs
│ │ │ │ │ ├── hermit.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── motor.rs
│ │ │ │ │ ├── sgx.rs
│ │ │ │ │ ├── solid.rs
│ │ │ │ │ ├── uefi.rs
│ │ │ │ │ ├── unix.rs
│ │ │ │ │ ├── unsupported.rs
│ │ │ │ │ ├── wasi.rs
│ │ │ │ │ ├── windows.rs
│ │ │ │ │ ├── xous.rs
│ │ │ │ │ └── zkvm.rs
│ │ │ │ ├── env_consts.rs
│ │ │ │ ├── exit.rs
│ │ │ │ ├── fd/
│ │ │ │ │ ├── hermit.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── motor.rs
│ │ │ │ │ ├── sgx.rs
│ │ │ │ │ ├── unix/
│ │ │ │ │ │ └── tests.rs
│ │ │ │ │ └── unix.rs
│ │ │ │ ├── fs/
│ │ │ │ │ ├── common.rs
│ │ │ │ │ ├── hermit.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── motor.rs
│ │ │ │ │ ├── solid.rs
│ │ │ │ │ ├── uefi.rs
│ │ │ │ │ ├── unix/
│ │ │ │ │ │ ├── dir.rs
│ │ │ │ │ │ └── tests.rs
│ │ │ │ │ ├── unix.rs
│ │ │ │ │ ├── unsupported.rs
│ │ │ │ │ ├── vexos.rs
│ │ │ │ │ ├── windows/
│ │ │ │ │ │ ├── dir.rs
│ │ │ │ │ │ └── remove_dir_all.rs
│ │ │ │ │ └── windows.rs
│ │ │ │ ├── helpers/
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── small_c_string.rs
│ │ │ │ │ ├── tests.rs
│ │ │ │ │ └── wstr.rs
│ │ │ │ ├── io/
│ │ │ │ │ ├── error/
│ │ │ │ │ │ ├── generic.rs
│ │ │ │ │ │ ├── hermit.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── motor.rs
│ │ │ │ │ │ ├── sgx.rs
│ │ │ │ │ │ ├── solid.rs
│ │ │ │ │ │ ├── teeos.rs
│ │ │ │ │ │ ├── uefi.rs
│ │ │ │ │ │ ├── unix.rs
│ │ │ │ │ │ ├── wasi.rs
│ │ │ │ │ │ ├── windows/
│ │ │ │ │ │ │ └── tests.rs
│ │ │ │ │ │ ├── windows.rs
│ │ │ │ │ │ └── xous.rs
│ │ │ │ │ ├── io_slice/
│ │ │ │ │ │ ├── iovec.rs
│ │ │ │ │ │ ├── uefi.rs
│ │ │ │ │ │ ├── unsupported.rs
│ │ │ │ │ │ └── windows.rs
│ │ │ │ │ ├── is_terminal/
│ │ │ │ │ │ ├── hermit.rs
│ │ │ │ │ │ ├── isatty.rs
│ │ │ │ │ │ ├── motor.rs
│ │ │ │ │ │ ├── unsupported.rs
│ │ │ │ │ │ └── windows.rs
│ │ │ │ │ ├── kernel_copy/
│ │ │ │ │ │ ├── linux/
│ │ │ │ │ │ │ └── tests.rs
│ │ │ │ │ │ ├── linux.rs
│ │ │ │ │ │ └── mod.rs
│ │ │ │ │ └── mod.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── net/
│ │ │ │ │ ├── connection/
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── motor.rs
│ │ │ │ │ │ ├── sgx.rs
│ │ │ │ │ │ ├── socket/
│ │ │ │ │ │ │ ├── hermit.rs
│ │ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ │ ├── solid.rs
│ │ │ │ │ │ │ ├── tests.rs
│ │ │ │ │ │ │ ├── unix.rs
│ │ │ │ │ │ │ └── windows.rs
│ │ │ │ │ │ ├── uefi/
│ │ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ │ ├── tcp.rs
│ │ │ │ │ │ │ └── tcp4.rs
│ │ │ │ │ │ ├── unsupported.rs
│ │ │ │ │ │ ├── wasip1.rs
│ │ │ │ │ │ └── xous/
│ │ │ │ │ │ ├── dns.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── tcplistener.rs
│ │ │ │ │ │ ├── tcpstream.rs
│ │ │ │ │ │ └── udp.rs
│ │ │ │ │ ├── hostname/
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── unix.rs
│ │ │ │ │ │ ├── unsupported.rs
│ │ │ │ │ │ └── windows.rs
│ │ │ │ │ └── mod.rs
│ │ │ │ ├── os_str/
│ │ │ │ │ ├── bytes/
│ │ │ │ │ │ └── tests.rs
│ │ │ │ │ ├── bytes.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── utf8.rs
│ │ │ │ │ └── wtf8.rs
│ │ │ │ ├── pal/
│ │ │ │ │ ├── hermit/
│ │ │ │ │ │ ├── futex.rs
│ │ │ │ │ │ └── mod.rs
│ │ │ │ │ ├── itron/
│ │ │ │ │ │ ├── abi.rs
│ │ │ │ │ │ ├── error.rs
│ │ │ │ │ │ ├── spin.rs
│ │ │ │ │ │ ├── task.rs
│ │ │ │ │ │ ├── thread_parking.rs
│ │ │ │ │ │ ├── time/
│ │ │ │ │ │ │ └── tests.rs
│ │ │ │ │ │ └── time.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── motor/
│ │ │ │ │ │ └── mod.rs
│ │ │ │ │ ├── sgx/
│ │ │ │ │ │ ├── abi/
│ │ │ │ │ │ │ ├── entry.S
│ │ │ │ │ │ │ ├── mem.rs
│ │ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ │ ├── panic.rs
│ │ │ │ │ │ │ ├── reloc.rs
│ │ │ │ │ │ │ ├── thread.rs
│ │ │ │ │ │ │ ├── tls/
│ │ │ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ │ │ ├── sync_bitset/
│ │ │ │ │ │ │ │ │ └── tests.rs
│ │ │ │ │ │ │ │ └── sync_bitset.rs
│ │ │ │ │ │ │ └── usercalls/
│ │ │ │ │ │ │ ├── alloc.rs
│ │ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ │ ├── raw.rs
│ │ │ │ │ │ │ └── tests.rs
│ │ │ │ │ │ ├── libunwind_integration.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── thread_parking.rs
│ │ │ │ │ │ └── waitqueue/
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── spin_mutex/
│ │ │ │ │ │ │ └── tests.rs
│ │ │ │ │ │ ├── spin_mutex.rs
│ │ │ │ │ │ ├── tests.rs
│ │ │ │ │ │ ├── unsafe_list/
│ │ │ │ │ │ │ └── tests.rs
│ │ │ │ │ │ └── unsafe_list.rs
│ │ │ │ │ ├── solid/
│ │ │ │ │ │ ├── abi/
│ │ │ │ │ │ │ ├── fs.rs
│ │ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ │ └── sockets.rs
│ │ │ │ │ │ ├── error.rs
│ │ │ │ │ │ └── mod.rs
│ │ │ │ │ ├── teeos/
│ │ │ │ │ │ ├── conf.rs
│ │ │ │ │ │ └── mod.rs
│ │ │ │ │ ├── trusty/
│ │ │ │ │ │ └── mod.rs
│ │ │ │ │ ├── uefi/
│ │ │ │ │ │ ├── helpers.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── system_time.rs
│ │ │ │ │ │ └── tests.rs
│ │ │ │ │ ├── unix/
│ │ │ │ │ │ ├── conf/
│ │ │ │ │ │ │ └── tests.rs
│ │ │ │ │ │ ├── conf.rs
│ │ │ │ │ │ ├── fuchsia.rs
│ │ │ │ │ │ ├── futex.rs
│ │ │ │ │ │ ├── linux/
│ │ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ │ ├── pidfd/
│ │ │ │ │ │ │ │ └── tests.rs
│ │ │ │ │ │ │ └── pidfd.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── stack_overflow/
│ │ │ │ │ │ │ └── thread_info.rs
│ │ │ │ │ │ ├── stack_overflow.rs
│ │ │ │ │ │ ├── sync/
│ │ │ │ │ │ │ ├── condvar.rs
│ │ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ │ └── mutex.rs
│ │ │ │ │ │ ├── thread_parking.rs
│ │ │ │ │ │ ├── time.rs
│ │ │ │ │ │ └── weak/
│ │ │ │ │ │ ├── dlsym.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── syscall.rs
│ │ │ │ │ │ ├── tests.rs
│ │ │ │ │ │ └── weak_linkage.rs
│ │ │ │ │ ├── unsupported/
│ │ │ │ │ │ ├── common.rs
│ │ │ │ │ │ └── mod.rs
│ │ │ │ │ ├── vexos/
│ │ │ │ │ │ └── mod.rs
│ │ │ │ │ ├── wasi/
│ │ │ │ │ │ ├── cabi_realloc.rs
│ │ │ │ │ │ ├── conf.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ └── stack_overflow.rs
│ │ │ │ │ ├── wasm/
│ │ │ │ │ │ ├── atomics/
│ │ │ │ │ │ │ └── futex.rs
│ │ │ │ │ │ └── mod.rs
│ │ │ │ │ ├── windows/
│ │ │ │ │ │ ├── api/
│ │ │ │ │ │ │ └── tests.rs
│ │ │ │ │ │ ├── api.rs
│ │ │ │ │ │ ├── c/
│ │ │ │ │ │ │ ├── README.md
│ │ │ │ │ │ │ ├── bindings.txt
│ │ │ │ │ │ │ └── windows_sys.rs
│ │ │ │ │ │ ├── c.rs
│ │ │ │ │ │ ├── compat.rs
│ │ │ │ │ │ ├── futex.rs
│ │ │ │ │ │ ├── handle.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── stack_overflow.rs
│ │ │ │ │ │ ├── stack_overflow_uwp.rs
│ │ │ │ │ │ ├── time.rs
│ │ │ │ │ │ └── winsock.rs
│ │ │ │ │ ├── xous/
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── params/
│ │ │ │ │ │ │ └── tests.rs
│ │ │ │ │ │ └── params.rs
│ │ │ │ │ └── zkvm/
│ │ │ │ │ ├── abi.rs
│ │ │ │ │ └── mod.rs
│ │ │ │ ├── path/
│ │ │ │ │ ├── cygwin.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── sgx.rs
│ │ │ │ │ ├── uefi.rs
│ │ │ │ │ ├── unix.rs
│ │ │ │ │ ├── unsupported_backslash.rs
│ │ │ │ │ ├── windows/
│ │ │ │ │ │ └── tests.rs
│ │ │ │ │ ├── windows.rs
│ │ │ │ │ └── windows_prefix.rs
│ │ │ │ ├── paths/
│ │ │ │ │ ├── hermit.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── motor.rs
│ │ │ │ │ ├── sgx.rs
│ │ │ │ │ ├── uefi.rs
│ │ │ │ │ ├── unix.rs
│ │ │ │ │ ├── unsupported.rs
│ │ │ │ │ ├── wasi.rs
│ │ │ │ │ └── windows.rs
│ │ │ │ ├── personality/
│ │ │ │ │ ├── dwarf/
│ │ │ │ │ │ ├── eh.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ └── tests.rs
│ │ │ │ │ ├── emcc.rs
│ │ │ │ │ ├── gcc.rs
│ │ │ │ │ └── mod.rs
│ │ │ │ ├── pipe/
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── motor.rs
│ │ │ │ │ ├── unix.rs
│ │ │ │ │ ├── unsupported.rs
│ │ │ │ │ └── windows.rs
│ │ │ │ ├── platform_version/
│ │ │ │ │ ├── darwin/
│ │ │ │ │ │ ├── core_foundation.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── public_extern.rs
│ │ │ │ │ │ └── tests.rs
│ │ │ │ │ └── mod.rs
│ │ │ │ ├── process/
│ │ │ │ │ ├── env.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── motor.rs
│ │ │ │ │ ├── uefi.rs
│ │ │ │ │ ├── unix/
│ │ │ │ │ │ ├── common/
│ │ │ │ │ │ │ ├── cstring_array.rs
│ │ │ │ │ │ │ └── tests.rs
│ │ │ │ │ │ ├── common.rs
│ │ │ │ │ │ ├── fuchsia.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── unix/
│ │ │ │ │ │ │ └── tests.rs
│ │ │ │ │ │ ├── unix.rs
│ │ │ │ │ │ ├── unsupported/
│ │ │ │ │ │ │ ├── wait_status/
│ │ │ │ │ │ │ │ └── tests.rs
│ │ │ │ │ │ │ └── wait_status.rs
│ │ │ │ │ │ ├── unsupported.rs
│ │ │ │ │ │ └── vxworks.rs
│ │ │ │ │ ├── unsupported.rs
│ │ │ │ │ ├── windows/
│ │ │ │ │ │ ├── child_pipe.rs
│ │ │ │ │ │ └── tests.rs
│ │ │ │ │ └── windows.rs
│ │ │ │ ├── random/
│ │ │ │ │ ├── apple.rs
│ │ │ │ │ ├── arc4random.rs
│ │ │ │ │ ├── espidf.rs
│ │ │ │ │ ├── fuchsia.rs
│ │ │ │ │ ├── getentropy.rs
│ │ │ │ │ ├── getrandom.rs
│ │ │ │ │ ├── hermit.rs
│ │ │ │ │ ├── linux.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── motor.rs
│ │ │ │ │ ├── redox.rs
│ │ │ │ │ ├── sgx.rs
│ │ │ │ │ ├── solid.rs
│ │ │ │ │ ├── teeos.rs
│ │ │ │ │ ├── trusty.rs
│ │ │ │ │ ├── uefi.rs
│ │ │ │ │ ├── unix_legacy.rs
│ │ │ │ │ ├── unsupported.rs
│ │ │ │ │ ├── vxworks.rs
│ │ │ │ │ ├── wasip1.rs
│ │ │ │ │ ├── wasip2.rs
│ │ │ │ │ ├── windows.rs
│ │ │ │ │ └── zkvm.rs
│ │ │ │ ├── stdio/
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── motor.rs
│ │ │ │ │ ├── sgx.rs
│ │ │ │ │ ├── solid.rs
│ │ │ │ │ ├── teeos.rs
│ │ │ │ │ ├── trusty.rs
│ │ │ │ │ ├── uefi.rs
│ │ │ │ │ ├── unix.rs
│ │ │ │ │ ├── unsupported.rs
│ │ │ │ │ ├── vexos.rs
│ │ │ │ │ ├── windows/
│ │ │ │ │ │ └── tests.rs
│ │ │ │ │ ├── windows.rs
│ │ │ │ │ ├── xous.rs
│ │ │ │ │ └── zkvm.rs
│ │ │ │ ├── sync/
│ │ │ │ │ ├── condvar/
│ │ │ │ │ │ ├── futex.rs
│ │ │ │ │ │ ├── itron.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── no_threads.rs
│ │ │ │ │ │ ├── pthread.rs
│ │ │ │ │ │ ├── sgx.rs
│ │ │ │ │ │ ├── windows7.rs
│ │ │ │ │ │ └── xous.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── mutex/
│ │ │ │ │ │ ├── fuchsia.rs
│ │ │ │ │ │ ├── futex.rs
│ │ │ │ │ │ ├── itron.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── no_threads.rs
│ │ │ │ │ │ ├── pthread.rs
│ │ │ │ │ │ ├── sgx.rs
│ │ │ │ │ │ ├── windows7.rs
│ │ │ │ │ │ └── xous.rs
│ │ │ │ │ ├── once/
│ │ │ │ │ │ ├── futex.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── no_threads.rs
│ │ │ │ │ │ └── queue.rs
│ │ │ │ │ ├── once_box.rs
│ │ │ │ │ ├── rwlock/
│ │ │ │ │ │ ├── futex.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── no_threads.rs
│ │ │ │ │ │ ├── queue.rs
│ │ │ │ │ │ └── solid.rs
│ │ │ │ │ └── thread_parking/
│ │ │ │ │ ├── darwin.rs
│ │ │ │ │ ├── futex.rs
│ │ │ │ │ ├── id.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── pthread.rs
│ │ │ │ │ ├── unsupported.rs
│ │ │ │ │ ├── windows7.rs
│ │ │ │ │ └── xous.rs
│ │ │ │ ├── thread/
│ │ │ │ │ ├── hermit.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── motor.rs
│ │ │ │ │ ├── sgx.rs
│ │ │ │ │ ├── solid.rs
│ │ │ │ │ ├── teeos.rs
│ │ │ │ │ ├── uefi.rs
│ │ │ │ │ ├── unix.rs
│ │ │ │ │ ├── unsupported.rs
│ │ │ │ │ ├── vexos.rs
│ │ │ │ │ ├── wasm.rs
│ │ │ │ │ ├── windows.rs
│ │ │ │ │ └── xous.rs
│ │ │ │ ├── thread_local/
│ │ │ │ │ ├── destructors/
│ │ │ │ │ │ ├── linux_like.rs
│ │ │ │ │ │ └── list.rs
│ │ │ │ │ ├── guard/
│ │ │ │ │ │ ├── apple.rs
│ │ │ │ │ │ ├── key.rs
│ │ │ │ │ │ ├── solid.rs
│ │ │ │ │ │ └── windows.rs
│ │ │ │ │ ├── key/
│ │ │ │ │ │ ├── racy.rs
│ │ │ │ │ │ ├── sgx.rs
│ │ │ │ │ │ ├── tests.rs
│ │ │ │ │ │ ├── unix.rs
│ │ │ │ │ │ ├── windows.rs
│ │ │ │ │ │ └── xous.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── native/
│ │ │ │ │ │ ├── eager.rs
│ │ │ │ │ │ ├── lazy.rs
│ │ │ │ │ │ └── mod.rs
│ │ │ │ │ ├── no_threads.rs
│ │ │ │ │ └── os.rs
│ │ │ │ └── time/
│ │ │ │ ├── hermit.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── sgx.rs
│ │ │ │ ├── solid.rs
│ │ │ │ ├── uefi.rs
│ │ │ │ ├── unix.rs
│ │ │ │ ├── unsupported.rs
│ │ │ │ ├── vexos.rs
│ │ │ │ ├── windows.rs
│ │ │ │ └── xous.rs
│ │ │ ├── test_helpers.rs
│ │ │ ├── thread/
│ │ │ │ ├── builder.rs
│ │ │ │ ├── current.rs
│ │ │ │ ├── functions.rs
│ │ │ │ ├── id.rs
│ │ │ │ ├── join_handle.rs
│ │ │ │ ├── lifecycle.rs
│ │ │ │ ├── local.rs
│ │ │ │ ├── main_thread.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── scoped.rs
│ │ │ │ ├── spawnhook.rs
│ │ │ │ ├── tests.rs
│ │ │ │ └── thread.rs
│ │ │ └── time.rs
│ │ └── tests/
│ │ ├── ambiguous-hash_map.rs
│ │ ├── builtin-clone.rs
│ │ ├── common/
│ │ │ └── mod.rs
│ │ ├── create_dir_all_bare.rs
│ │ ├── env.rs
│ │ ├── env_modify.rs
│ │ ├── eq-multidispatch.rs
│ │ ├── error.rs
│ │ ├── istr.rs
│ │ ├── log-knows-the-names-of-variants-in-std.rs
│ │ ├── minmax-stability-issue-23687.rs
│ │ ├── num.rs
│ │ ├── panic.rs
│ │ ├── path.rs
│ │ ├── pipe_subprocess.rs
│ │ ├── process_spawning.rs
│ │ ├── run-time-detect.rs
│ │ ├── seq-compare.rs
│ │ ├── slice-from-array-issue-113238.rs
│ │ ├── switch-stdout.rs
│ │ ├── sync/
│ │ │ ├── barrier.rs
│ │ │ ├── condvar.rs
│ │ │ ├── lazy_lock.rs
│ │ │ ├── lib.rs
│ │ │ ├── mpmc.rs
│ │ │ ├── mpsc.rs
│ │ │ ├── mpsc_sync.rs
│ │ │ ├── mutex.rs
│ │ │ ├── once.rs
│ │ │ ├── once_lock.rs
│ │ │ ├── oneshot.rs
│ │ │ ├── reentrant_lock.rs
│ │ │ └── rwlock.rs
│ │ ├── thread.rs
│ │ ├── thread_local/
│ │ │ ├── dynamic_tests.rs
│ │ │ ├── lib.rs
│ │ │ └── tests.rs
│ │ ├── time.rs
│ │ ├── type-name-unsized.rs
│ │ ├── volatile-fat-ptr.rs
│ │ ├── win_delete_self.rs
│ │ ├── windows.rs
│ │ └── windows_unix_socket.rs
│ ├── std_detect/
│ │ ├── Cargo.toml
│ │ ├── README.md
│ │ ├── src/
│ │ │ ├── detect/
│ │ │ │ ├── arch/
│ │ │ │ │ ├── aarch64.rs
│ │ │ │ │ ├── arm.rs
│ │ │ │ │ ├── loongarch.rs
│ │ │ │ │ ├── mips.rs
│ │ │ │ │ ├── mips64.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── powerpc.rs
│ │ │ │ │ ├── powerpc64.rs
│ │ │ │ │ ├── riscv.rs
│ │ │ │ │ ├── s390x.rs
│ │ │ │ │ └── x86.rs
│ │ │ │ ├── bit.rs
│ │ │ │ ├── cache.rs
│ │ │ │ ├── macros.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── os/
│ │ │ │ │ ├── aarch64.rs
│ │ │ │ │ ├── darwin/
│ │ │ │ │ │ └── aarch64.rs
│ │ │ │ │ ├── freebsd/
│ │ │ │ │ │ ├── aarch64.rs
│ │ │ │ │ │ ├── arm.rs
│ │ │ │ │ │ ├── auxvec.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ └── powerpc.rs
│ │ │ │ │ ├── linux/
│ │ │ │ │ │ ├── aarch64/
│ │ │ │ │ │ │ └── tests.rs
│ │ │ │ │ │ ├── aarch64.rs
│ │ │ │ │ │ ├── arm.rs
│ │ │ │ │ │ ├── auxvec/
│ │ │ │ │ │ │ └── tests.rs
│ │ │ │ │ │ ├── auxvec.rs
│ │ │ │ │ │ ├── loongarch.rs
│ │ │ │ │ │ ├── mips.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── powerpc.rs
│ │ │ │ │ │ ├── riscv.rs
│ │ │ │ │ │ └── s390x.rs
│ │ │ │ │ ├── openbsd/
│ │ │ │ │ │ ├── aarch64.rs
│ │ │ │ │ │ ├── auxvec.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ └── powerpc.rs
│ │ │ │ │ ├── other.rs
│ │ │ │ │ ├── riscv/
│ │ │ │ │ │ └── tests.rs
│ │ │ │ │ ├── riscv.rs
│ │ │ │ │ ├── windows/
│ │ │ │ │ │ └── aarch64.rs
│ │ │ │ │ └── x86.rs
│ │ │ │ └── test_data/
│ │ │ │ ├── linux-artificial-aarch64.auxv
│ │ │ │ ├── linux-empty-hwcap2-aarch64.auxv
│ │ │ │ ├── linux-hwcap2-aarch64.auxv
│ │ │ │ ├── linux-no-hwcap2-aarch64.auxv
│ │ │ │ ├── linux-rpi3.auxv
│ │ │ │ └── macos-virtualbox-linux-x86-4850HQ.auxv
│ │ │ └── lib.rs
│ │ └── tests/
│ │ ├── cpu-detection.rs
│ │ ├── macro_trailing_commas.rs
│ │ └── x86-specific.rs
│ ├── stdarch/
│ │ ├── .git-blame-ignore-revs
│ │ ├── .github/
│ │ │ └── workflows/
│ │ │ ├── main.yml
│ │ │ └── rustc-pull.yml
│ │ ├── .gitignore
│ │ ├── .gitmodules
│ │ ├── CONTRIBUTING.md
│ │ ├── Cargo.toml
│ │ ├── LICENSE-APACHE
│ │ ├── LICENSE-MIT
│ │ ├── README.md
│ │ ├── ci/
│ │ │ ├── docker/
│ │ │ │ ├── aarch64-unknown-linux-gnu/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── aarch64_be-unknown-linux-gnu/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── amdgcn-amd-amdhsa/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── arm-unknown-linux-gnueabihf/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── armv7-unknown-linux-gnueabihf/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── hexagon-unknown-linux-musl/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── i586-unknown-linux-gnu/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── i686-unknown-linux-gnu/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── loongarch64-unknown-linux-gnu/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── mips-unknown-linux-gnu/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── mips64-unknown-linux-gnuabi64/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── mips64el-unknown-linux-gnuabi64/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── mipsel-unknown-linux-musl/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── nvptx64-nvidia-cuda/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── powerpc-unknown-linux-gnu/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── powerpc64-unknown-linux-gnu/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── powerpc64le-unknown-linux-gnu/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── riscv32gc-unknown-linux-gnu/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── riscv64gc-unknown-linux-gnu/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── s390x-unknown-linux-gnu/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── wasm32-wasip1/
│ │ │ │ │ └── Dockerfile
│ │ │ │ └── x86_64-unknown-linux-gnu/
│ │ │ │ ├── Dockerfile
│ │ │ │ └── cpuid.def
│ │ │ ├── dox.sh
│ │ │ ├── intrinsic-test-docker.sh
│ │ │ ├── intrinsic-test.sh
│ │ │ ├── run-docker.sh
│ │ │ ├── run.sh
│ │ │ └── style.sh
│ │ ├── crates/
│ │ │ ├── assert-instr-macro/
│ │ │ │ ├── Cargo.toml
│ │ │ │ ├── build.rs
│ │ │ │ └── src/
│ │ │ │ └── lib.rs
│ │ │ ├── core_arch/
│ │ │ │ ├── Cargo.toml
│ │ │ │ ├── LICENSE-APACHE
│ │ │ │ ├── LICENSE-MIT
│ │ │ │ ├── MISSING.md
│ │ │ │ ├── README.md
│ │ │ │ ├── missing-x86.md
│ │ │ │ ├── rustfmt.toml
│ │ │ │ └── src/
│ │ │ │ ├── aarch64/
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── mte.rs
│ │ │ │ │ ├── neon/
│ │ │ │ │ │ ├── generated.rs
│ │ │ │ │ │ └── mod.rs
│ │ │ │ │ ├── prefetch.rs
│ │ │ │ │ ├── rand.rs
│ │ │ │ │ └── test_support.rs
│ │ │ │ ├── amdgpu/
│ │ │ │ │ └── mod.rs
│ │ │ │ ├── arm/
│ │ │ │ │ ├── dsp.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── neon.rs
│ │ │ │ │ ├── sat.rs
│ │ │ │ │ └── simd32.rs
│ │ │ │ ├── arm_shared/
│ │ │ │ │ ├── barrier/
│ │ │ │ │ │ ├── common.rs
│ │ │ │ │ │ ├── cp15.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── not_mclass.rs
│ │ │ │ │ │ └── v8.rs
│ │ │ │ │ ├── hints.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── neon/
│ │ │ │ │ │ ├── generated.rs
│ │ │ │ │ │ ├── load_tests.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── shift_and_insert_tests.rs
│ │ │ │ │ │ ├── store_tests.rs
│ │ │ │ │ │ └── table_lookup_tests.rs
│ │ │ │ │ └── test_support.rs
│ │ │ │ ├── core_arch_docs.md
│ │ │ │ ├── hexagon/
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── v128.rs
│ │ │ │ │ └── v64.rs
│ │ │ │ ├── lib.rs
│ │ │ │ ├── loongarch32/
│ │ │ │ │ └── mod.rs
│ │ │ │ ├── loongarch64/
│ │ │ │ │ ├── lasx/
│ │ │ │ │ │ ├── generated.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── tests.rs
│ │ │ │ │ │ └── types.rs
│ │ │ │ │ ├── lsx/
│ │ │ │ │ │ ├── generated.rs
│ │ │ │ │ │ ├── mod.rs
│ │ │ │ │ │ ├── tests.rs
│ │ │ │ │ │ └── types.rs
│ │ │ │ │ └── mod.rs
│ │ │ │ ├── loongarch_shared/
│ │ │ │ │ └── mod.rs
│ │ │ │ ├── macros.rs
│ │ │ │ ├── mips/
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── msa.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── nvptx/
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── packed.rs
│ │ │ │ ├── powerpc/
│ │ │ │ │ ├── altivec.rs
│ │ │ │ │ ├── macros.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── vsx.rs
│ │ │ │ ├── powerpc64/
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── vsx.rs
│ │ │ │ ├── riscv32/
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── zk.rs
│ │ │ │ ├── riscv64/
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── zk.rs
│ │ │ │ ├── riscv_shared/
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── p.rs
│ │ │ │ │ ├── zb.rs
│ │ │ │ │ └── zk.rs
│ │ │ │ ├── s390x/
│ │ │ │ │ ├── macros.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── vector.rs
│ │ │ │ ├── simd.rs
│ │ │ │ ├── test.rs
│ │ │ │ ├── wasm32/
│ │ │ │ │ ├── atomic.rs
│ │ │ │ │ ├── memory.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── relaxed_simd.rs
│ │ │ │ │ └── simd128.rs
│ │ │ │ ├── x86/
│ │ │ │ │ ├── abm.rs
│ │ │ │ │ ├── adx.rs
│ │ │ │ │ ├── aes.rs
│ │ │ │ │ ├── avx.rs
│ │ │ │ │ ├── avx2.rs
│ │ │ │ │ ├── avx512bf16.rs
│ │ │ │ │ ├── avx512bitalg.rs
│ │ │ │ │ ├── avx512bw.rs
│ │ │ │ │ ├── avx512cd.rs
│ │ │ │ │ ├── avx512dq.rs
│ │ │ │ │ ├── avx512f.rs
│ │ │ │ │ ├── avx512fp16.rs
│ │ │ │ │ ├── avx512ifma.rs
│ │ │ │ │ ├── avx512vbmi.rs
│ │ │ │ │ ├── avx512vbmi2.rs
│ │ │ │ │ ├── avx512vnni.rs
│ │ │ │ │ ├── avx512vpopcntdq.rs
│ │ │ │ │ ├── avxneconvert.rs
│ │ │ │ │ ├── bmi1.rs
│ │ │ │ │ ├── bmi2.rs
│ │ │ │ │ ├── bswap.rs
│ │ │ │ │ ├── bt.rs
│ │ │ │ │ ├── cpuid.rs
│ │ │ │ │ ├── eflags.rs
│ │ │ │ │ ├── f16c.rs
│ │ │ │ │ ├── fma.rs
│ │ │ │ │ ├── fxsr.rs
│ │ │ │ │ ├── gfni.rs
│ │ │ │ │ ├── kl.rs
│ │ │ │ │ ├── macros.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ ├── movrs.rs
│ │ │ │ │ ├── pclmulqdq.rs
│ │ │ │ │ ├── rdrand.rs
│ │ │ │ │ ├── rdtsc.rs
│ │ │ │ │ ├── rtm.rs
│ │ │ │ │ ├── sha.rs
│ │ │ │ │ ├── sse.rs
│ │ │ │ │ ├── sse2.rs
│ │ │ │ │ ├── sse3.rs
│ │ │ │ │ ├── sse41.rs
│ │ │ │ │ ├── sse42.rs
│ │ │ │ │ ├── sse4a.rs
│ │ │ │ │ ├── ssse3.rs
│ │ │ │ │ ├── tbm.rs
│ │ │ │ │ ├── test.rs
│ │ │ │ │ ├── vaes.rs
│ │ │ │ │ ├── vpclmulqdq.rs
│ │ │ │ │ └── xsave.rs
│ │ │ │ └── x86_64/
│ │ │ │ ├── abm.rs
│ │ │ │ ├── adx.rs
│ │ │ │ ├── amx.rs
│ │ │ │ ├── avx.rs
│ │ │ │ ├── avx512bw.rs
│ │ │ │ ├── avx512f.rs
│ │ │ │ ├── avx512fp16.rs
│ │ │ │ ├── bmi.rs
│ │ │ │ ├── bmi2.rs
│ │ │ │ ├── bswap.rs
│ │ │ │ ├── bt.rs
│ │ │ │ ├── cmpxchg16b.rs
│ │ │ │ ├── fxsr.rs
│ │ │ │ ├── macros.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── movrs.rs
│ │ │ │ ├── rdrand.rs
│ │ │ │ ├── sse.rs
│ │ │ │ ├── sse2.rs
│ │ │ │ ├── sse41.rs
│ │ │ │ ├── sse42.rs
│ │ │ │ ├── tbm.rs
│ │ │ │ └── xsave.rs
│ │ │ ├── intrinsic-test/
│ │ │ │ ├── Cargo.toml
│ │ │ │ ├── LICENSE-APACHE
│ │ │ │ ├── LICENSE-MIT
│ │ │ │ ├── README.md
│ │ │ │ ├── missing_aarch64.txt
│ │ │ │ ├── missing_aarch64_be.txt
│ │ │ │ ├── missing_arm.txt
│ │ │ │ ├── missing_x86.txt
│ │ │ │ └── src/
│ │ │ │ ├── arm/
│ │ │ │ │ ├── argument.rs
│ │ │ │ │ ├── compile.rs
│ │ │ │ │ ├── config.rs
│ │ │ │ │ ├── intrinsic.rs
│ │ │ │ │ ├── json_parser.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── types.rs
│ │ │ │ ├── common/
│ │ │ │ │ ├── argument.rs
│ │ │ │ │ ├── cli.rs
│ │ │ │ │ ├── compare.rs
│ │ │ │ │ ├── compile_c.rs
│ │ │ │ │ ├── constraint.rs
│ │ │ │ │ ├── gen_c.rs
│ │ │ │ │ ├── gen_rust.rs
│ │ │ │ │ ├── indentation.rs
│ │ │ │ │ ├── intrinsic.rs
│ │ │ │ │ ├── intrinsic_helpers.rs
│ │ │ │ │ ├── mod.rs
│ │ │ │ │ └── values.rs
│ │ │ │ ├── main.rs
│ │ │ │ └── x86/
│ │ │ │ ├── compile.rs
│ │ │ │ ├── config.rs
│ │ │ │ ├── constraint.rs
│ │ │ │ ├── intrinsic.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── types.rs
│ │ │ │ └── xml_parser.rs
│ │ │ ├── simd-test-macro/
│ │ │ │ ├── Cargo.toml
│ │ │ │ └── src/
│ │ │ │ └── lib.rs
│ │ │ ├── stdarch-gen-arm/
│ │ │ │ ├── Cargo.toml
│ │ │ │ ├── README.md
│ │ │ │ ├── spec/
│ │ │ │ │ └── neon/
│ │ │ │ │ ├── aarch64.spec.yml
│ │ │ │ │ └── arm_shared.spec.yml
│ │ │ │ └── src/
│ │ │ │ ├── assert_instr.rs
│ │ │ │ ├── big_endian.rs
│ │ │ │ ├── context.rs
│ │ │ │ ├── expression.rs
│ │ │ │ ├── fn_suffix.rs
│ │ │ │ ├── input.rs
│ │ │ │ ├── intrinsic.rs
│ │ │ │ ├── load_store_tests.rs
│ │ │ │ ├── main.rs
│ │ │ │ ├── matching.rs
│ │ │ │ ├── predicate_forms.rs
│ │ │ │ ├── typekinds.rs
│ │ │ │ ├── wildcards.rs
│ │ │ │ └── wildstring.rs
│ │ │ ├── stdarch-gen-hexagon/
│ │ │ │ ├── Cargo.toml
│ │ │ │ ├── hvx_hexagon_protos.h
│ │ │ │ └── src/
│ │ │ │ └── main.rs
│ │ │ ├── stdarch-gen-loongarch/
│ │ │ │ ├── Cargo.toml
│ │ │ │ ├── README.md
│ │ │ │ ├── lasx.spec
│ │ │ │ ├── lasxintrin.h
│ │ │ │ ├── lsx.spec
│ │ │ │ ├── lsxintrin.h
│ │ │ │ └── src/
│ │ │ │ └── main.rs
│ │ │ ├── stdarch-test/
│ │ │ │ ├── Cargo.toml
│ │ │ │ └── src/
│ │ │ │ ├── disassembly.rs
│ │ │ │ ├── lib.rs
│ │ │ │ └── wasm.rs
│ │ │ └── stdarch-verify/
│ │ │ ├── .gitattributes
│ │ │ ├── Cargo.toml
│ │ │ ├── build.rs
│ │ │ ├── mips-msa.h
│ │ │ ├── src/
│ │ │ │ └── lib.rs
│ │ │ └── tests/
│ │ │ ├── arm.rs
│ │ │ ├── mips.rs
│ │ │ └── x86-intel.rs
│ │ ├── examples/
│ │ │ ├── Cargo.toml
│ │ │ ├── connect5.rs
│ │ │ ├── gaussian.rs
│ │ │ ├── hex.rs
│ │ │ └── wasm.rs
│ │ ├── intrinsics_data/
│ │ │ ├── arm_intrinsics.json
│ │ │ └── x86-intel.xml
│ │ ├── josh-sync.toml
│ │ ├── rust-version
│ │ ├── rustfmt.toml
│ │ ├── triagebot.toml
│ │ └── vendor.yml
│ ├── sysroot/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ └── lib.rs
│ ├── test/
│ │ ├── Cargo.toml
│ │ ├── build.rs
│ │ └── src/
│ │ ├── bench.rs
│ │ ├── cli.rs
│ │ ├── console.rs
│ │ ├── event.rs
│ │ ├── formatters/
│ │ │ ├── json.rs
│ │ │ ├── junit.rs
│ │ │ ├── mod.rs
│ │ │ ├── pretty.rs
│ │ │ └── terse.rs
│ │ ├── helpers/
│ │ │ ├── concurrency.rs
│ │ │ ├── metrics.rs
│ │ │ ├── mod.rs
│ │ │ └── shuffle.rs
│ │ ├── lib.rs
│ │ ├── options.rs
│ │ ├── stats/
│ │ │ └── tests.rs
│ │ ├── stats.rs
│ │ ├── term/
│ │ │ ├── terminfo/
│ │ │ │ ├── mod.rs
│ │ │ │ ├── parm/
│ │ │ │ │ └── tests.rs
│ │ │ │ ├── parm.rs
│ │ │ │ ├── parser/
│ │ │ │ │ ├── compiled/
│ │ │ │ │ │ └── tests.rs
│ │ │ │ │ └── compiled.rs
│ │ │ │ ├── searcher/
│ │ │ │ │ └── tests.rs
│ │ │ │ └── searcher.rs
│ │ │ └── win.rs
│ │ ├── term.rs
│ │ ├── test_result.rs
│ │ ├── tests.rs
│ │ ├── time.rs
│ │ └── types.rs
│ ├── unwind/
│ │ ├── Cargo.toml
│ │ └── src/
│ │ ├── lib.rs
│ │ ├── libunwind.rs
│ │ ├── unwinding.rs
│ │ └── wasm.rs
│ └── windows_link/
│ ├── Cargo.toml
│ └── src/
│ └── lib.rs
├── license-metadata.json
├── package.json
├── rust-bors.toml
├── rustfmt.toml
├── src/
│ ├── README.md
│ ├── bootstrap/
│ │ ├── Cargo.toml
│ │ ├── README.md
│ │ ├── bootstrap.py
│ │ ├── bootstrap_test.py
│ │ ├── build.rs
│ │ ├── configure.py
│ │ ├── defaults/
│ │ │ ├── README.md
│ │ │ ├── bootstrap.compiler.toml
│ │ │ ├── bootstrap.dist.toml
│ │ │ ├── bootstrap.library.toml
│ │ │ └── bootstrap.tools.toml
│ │ ├── download-ci-gcc-stamp
│ │ ├── download-ci-llvm-stamp
│ │ ├── mk/
│ │ │ └── Makefile.in
│ │ └── src/
│ │ ├── bin/
│ │ │ ├── main.rs
│ │ │ ├── rustc.rs
│ │ │ └── rustdoc.rs
│ │ ├── core/
│ │ │ ├── android.rs
│ │ │ ├── build_steps/
│ │ │ │ ├── check.rs
│ │ │ │ ├── clean.rs
│ │ │ │ ├── clippy.rs
│ │ │ │ ├── compile.rs
│ │ │ │ ├── dist.rs
│ │ │ │ ├── doc.rs
│ │ │ │ ├── format.rs
│ │ │ │ ├── gcc.rs
│ │ │ │ ├── install.rs
│ │ │ │ ├── llvm.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── perf.rs
│ │ │ │ ├── run.rs
│ │ │ │ ├── setup/
│ │ │ │ │ ├── hashes.json
│ │ │ │ │ └── tests.rs
│ │ │ │ ├── setup.rs
│ │ │ │ ├── synthetic_targets.rs
│ │ │ │ ├── test/
│ │ │ │ │ └── compiletest.rs
│ │ │ │ ├── test.rs
│ │ │ │ ├── tool.rs
│ │ │ │ ├── toolstate.rs
│ │ │ │ └── vendor.rs
│ │ │ ├── builder/
│ │ │ │ ├── cargo.rs
│ │ │ │ ├── cli_paths/
│ │ │ │ │ ├── snapshots/
│ │ │ │ │ │ ├── x_bench.snap
│ │ │ │ │ │ ├── x_build.snap
│ │ │ │ │ │ ├── x_build_compiler.snap
│ │ │ │ │ │ ├── x_build_compiletest.snap
│ │ │ │ │ │ ├── x_build_library.snap
│ │ │ │ │ │ ├── x_build_llvm.snap
│ │ │ │ │ │ ├── x_build_rustc.snap
│ │ │ │ │ │ ├── x_build_rustc_llvm.snap
│ │ │ │ │ │ ├── x_build_rustdoc.snap
│ │ │ │ │ │ ├── x_build_sysroot.snap
│ │ │ │ │ │ ├── x_check.snap
│ │ │ │ │ │ ├── x_check_bootstrap.snap
│ │ │ │ │ │ ├── x_check_compiler.snap
│ │ │ │ │ │ ├── x_check_compiletest.snap
│ │ │ │ │ │ ├── x_check_compiletest_include_default_paths.snap
│ │ │ │ │ │ ├── x_check_library.snap
│ │ │ │ │ │ ├── x_check_rustc.snap
│ │ │ │ │ │ ├── x_check_rustdoc.snap
│ │ │ │ │ │ ├── x_clean.snap
│ │ │ │ │ │ ├── x_clippy.snap
│ │ │ │ │ │ ├── x_dist.snap
│ │ │ │ │ │ ├── x_doc.snap
│ │ │ │ │ │ ├── x_fix.snap
│ │ │ │ │ │ ├── x_fmt.snap
│ │ │ │ │ │ ├── x_install.snap
│ │ │ │ │ │ ├── x_miri.snap
│ │ │ │ │ │ ├── x_run.snap
│ │ │ │ │ │ ├── x_setup.snap
│ │ │ │ │ │ ├── x_test.snap
│ │ │ │ │ │ ├── x_test_coverage.snap
│ │ │ │ │ │ ├── x_test_coverage_map.snap
│ │ │ │ │ │ ├── x_test_coverage_run.snap
│ │ │ │ │ │ ├── x_test_coverage_skip_coverage_run.snap
│ │ │ │ │ │ ├── x_test_debuginfo.snap
│ │ │ │ │ │ ├── x_test_library.snap
│ │ │ │ │ │ ├── x_test_librustdoc.snap
│ │ │ │ │ │ ├── x_test_librustdoc_rustdoc.snap
│ │ │ │ │ │ ├── x_test_librustdoc_rustdoc_html.snap
│ │ │ │ │ │ ├── x_test_rustdoc.snap
│ │ │ │ │ │ ├── x_test_rustdoc_html.snap
│ │ │ │ │ │ ├── x_test_skip_coverage.snap
│ │ │ │ │ │ ├── x_test_skip_tests.snap
│ │ │ │ │ │ ├── x_test_skip_tests_etc.snap
│ │ │ │ │ │ ├── x_test_tests.snap
│ │ │ │ │ │ ├── x_test_tests_skip_coverage.snap
│ │ │ │ │ │ ├── x_test_tests_ui.snap
│ │ │ │ │ │ ├── x_test_tidy.snap
│ │ │ │ │ │ ├── x_test_tidyselftest.snap
│ │ │ │ │ │ ├── x_test_ui.snap
│ │ │ │ │ │ └── x_vendor.snap
│ │ │ │ │ └── tests.rs
│ │ │ │ ├── cli_paths.rs
│ │ │ │ ├── mod.rs
│ │ │ │ └── tests.rs
│ │ │ ├── config/
│ │ │ │ ├── config.rs
│ │ │ │ ├── flags.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── target_selection.rs
│ │ │ │ ├── tests.rs
│ │ │ │ └── toml/
│ │ │ │ ├── build.rs
│ │ │ │ ├── change_id.rs
│ │ │ │ ├── dist.rs
│ │ │ │ ├── gcc.rs
│ │ │ │ ├── install.rs
│ │ │ │ ├── llvm.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── rust.rs
│ │ │ │ └── target.rs
│ │ │ ├── debuggers/
│ │ │ │ ├── cdb.rs
│ │ │ │ ├── gdb.rs
│ │ │ │ ├── lldb.rs
│ │ │ │ └── mod.rs
│ │ │ ├── download.rs
│ │ │ ├── metadata.rs
│ │ │ ├── mod.rs
│ │ │ └── sanity.rs
│ │ ├── lib.rs
│ │ └── utils/
│ │ ├── build_stamp/
│ │ │ └── tests.rs
│ │ ├── build_stamp.rs
│ │ ├── cache/
│ │ │ └── tests.rs
│ │ ├── cache.rs
│ │ ├── cc_detect/
│ │ │ └── tests.rs
│ │ ├── cc_detect.rs
│ │ ├── change_tracker/
│ │ │ └── tests.rs
│ │ ├── change_tracker.rs
│ │ ├── channel.rs
│ │ ├── exec.rs
│ │ ├── helpers/
│ │ │ └── tests.rs
│ │ ├── helpers.rs
│ │ ├── job.rs
│ │ ├── metrics.rs
│ │ ├── mod.rs
│ │ ├── proc_macro_deps.rs
│ │ ├── render_tests.rs
│ │ ├── shared_helpers.rs
│ │ ├── step_graph.rs
│ │ ├── tarball.rs
│ │ ├── tests/
│ │ │ ├── git.rs
│ │ │ ├── mod.rs
│ │ │ └── shared_helpers_tests.rs
│ │ └── tracing.rs
│ ├── build_helper/
│ │ ├── Cargo.toml
│ │ ├── README.md
│ │ └── src/
│ │ ├── ci.rs
│ │ ├── drop_bomb/
│ │ │ ├── mod.rs
│ │ │ └── tests.rs
│ │ ├── fs/
│ │ │ ├── mod.rs
│ │ │ └── tests.rs
│ │ ├── git.rs
│ │ ├── lib.rs
│ │ ├── metrics.rs
│ │ ├── npm.rs
│ │ ├── stage0_parser.rs
│ │ ├── targets.rs
│ │ └── util.rs
│ ├── ci/
│ │ ├── channel
│ │ ├── citool/
│ │ │ ├── Cargo.toml
│ │ │
================================================
FILE CONTENTS
================================================
================================================
FILE: .clang-format
================================================
BasedOnStyle: LLVM
================================================
FILE: .editorconfig
================================================
# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# editorconfig.org
root = true
[*]
end_of_line = lf
charset = utf-8
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 4
[*.css]
indent_style = tab
# some tests need trailing whitespace in output snapshots
[tests/**]
trim_trailing_whitespace = false
# for actual source code files of test, we still don't want trailing whitespace
[tests/**.{rs,js}]
trim_trailing_whitespace = true
# these specific source files need to have trailing whitespace.
[tests/ui/{frontmatter/frontmatter-whitespace-3.rs,parser/shebang/shebang-space.rs}]
trim_trailing_whitespace = false
[src/llvm-project]
indent_style = unset
indent_size = unset
[*.rs]
max_line_length = 100
[*.md]
# double whitespace at end of line
# denotes a line break in Markdown
trim_trailing_whitespace = false
[*.yml]
indent_size = 2
[Makefile]
indent_style = tab
================================================
FILE: .git-blame-ignore-revs
================================================
# Use `git config blame.ignorerevsfile .git-blame-ignore-revs` to make `git blame` ignore the following commits.
# format the world
a06baa56b95674fc626b3c3fd680d6a65357fe60
# format libcore
95e00bfed801e264e9c4ac817004153ca0f19eb6
# reformat with new rustfmt
971c549ca334b7b7406e61e958efcca9c4152822
# refactor infcx building
283abbf0e7d20176f76006825b5c52e9a4234e4c
# format libstd/sys
c34fbfaad38cf5829ef5cfe780dc9d58480adeaa
# move tests
cf2dff2b1e3fa55fa5415d524200070d0d7aacfe
# Run rustfmt on bootstrap
b39a1d6f1a30ba29f25d7141038b9a5bf0126e36
# reorder fluent message files
f97fddab91fbf290ea5b691fe355d6f915220b6e
# format let-else
cc907f80b95c6ec530c5ee1b05b044a468f07eca
# format let-chains
b2d2184edea578109a48ec3d8decbee5948e8f35
# test directives migration
6e48b96692d63a79a14563f27fe5185f122434f8
ec2cc761bc7067712ecc7734502f703fe3b024c8
# format use declarations
84ac80f1921afc243d71fd0caaa4f2838c294102
# bless mir-opt tests to add `copy`
99cb0c6bc399fb94a0ddde7e9b38e9c00d523bad
# reformat with rustfmt edition 2024
c682aa162b0d41e21cc6748f4fecfe01efb69d1f
# reformat with updated edition 2024
1fcae03369abb4c2cc180cd5a49e1f4440a81300
# Breaking up of compiletest runtest.rs
60600a6fa403216bfd66e04f948b1822f6450af7
================================================
FILE: .gitattributes
================================================
[attr]rust text eol=lf whitespace=tab-in-indent,trailing-space,tabwidth=4
* text=auto eol=lf
*.cpp rust
*.h rust
*.rs rust diff=rust
*.fixed linguist-language=Rust
*.pp linguist-language=Rust
*.mir linguist-language=Rust
src/etc/installer/gfx/* binary
src/vendor/** -text
Cargo.lock linguist-generated=false
# Older git versions try to fix line endings on images and fonts, this prevents it.
*.png binary
*.ico binary
*.woff binary
*.woff2 binary
================================================
FILE: .github/FUNDING.yml
================================================
custom: ["rust-lang.org/funding"]
================================================
FILE: .github/ISSUE_TEMPLATE/bootstrap.md
================================================
---
name: Bootstrap (Rust Build System) Report
about: Issues encountered on bootstrap build system
labels: C-bug, T-bootstrap
---
<!--
Thank you for submitting a bootstrap report! Please provide detailed information to help us reproduce and diagnose the issue.
-->
### Summary
<!--
Provide a brief description of the problem you are experiencing.
-->
### Command used
```sh
<command>
```
### Expected behaviour
<!--
Describe what you expected to happen.
-->
### Actual behaviour
<!--
Describe what actually happened.
-->
### Bootstrap configuration (bootstrap.toml)
```toml
<config>
```
### Operating system
<!--
e.g., Ubuntu 22.04, macOS 12, Windows 10
-->
### HEAD
<!--
Output of `git rev-parse HEAD` command, or content of the `git-commit-hash` file if using a tarball source.
-->
### Additional context
<!--
Include any other relevant information (e.g., if you have custom patches or modifications on the project).
-->
<!--
Include the complete build log in the section below.
Enable backtrace and verbose mode if possible for more detailed information e.g., with `RUST_BACKTRACE=1 ./x build -v`.
-->
<details><summary>Build Log</summary>
<p>
```txt
<log>
```
</p>
</details>
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug Report
about: Create a bug report for Rust.
labels: C-bug
---
<!--
Thank you for filing a bug report! 🐛 Please provide a short summary of the bug,
along with any information you feel relevant to replicating the bug.
-->
I tried this code:
```rust
<code>
```
I expected to see this happen: *explanation*
Instead, this happened: *explanation*
### Meta
<!--
If you're using the stable version of the compiler, you should also check if the
bug also exists in the beta or nightly versions.
-->
`rustc --version --verbose`:
```
<version>
```
<!--
Include a backtrace in the code block by setting `RUST_BACKTRACE=1` in your
environment. E.g. `RUST_BACKTRACE=1 cargo build`.
-->
<details><summary>Backtrace</summary>
<p>
```
<backtrace>
```
</p>
</details>
================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: true
contact_links:
- name: Question
url: https://users.rust-lang.org
about: Please ask and answer questions about Rust on the user forum.
- name: Feature Request
url: https://internals.rust-lang.org/
about: Please discuss language feature requests on the internals forum.
- name: Clippy Bug
url: https://github.com/rust-lang/rust-clippy/issues/new/choose
about: Please report Clippy bugs such as false positives in the Clippy repo.
================================================
FILE: .github/ISSUE_TEMPLATE/diagnostics.yaml
================================================
name: Diagnostic issue
description: Create a bug report or feature request for a change to `rustc`'s error output
labels: ["A-diagnostics", "T-compiler"]
body:
- type: markdown
attributes:
value: |
Thank you for filing a diagnostics bug report! 🐛
Please provide a short summary of the bug, along with any information you feel relevant to replicating the bug.
If you cannot produce a minimal reproduction case (something that would work in isolation), please provide the steps or even link to a repository that causes the problematic output to occur.
- type: textarea
id: code
attributes:
label: Code
description: Please provide code that can reproduce the problem
placeholder: code
render: Rust
validations:
required: true
- type: textarea
id: output
attributes:
label: Current output
description: Please provide the `rustc` output you see
placeholder: rustc output
render: Shell
validations:
required: true
- type: textarea
id: desired-output
attributes:
label: Desired output
description: Please provide what the output *should* be
placeholder: proposed output
render: Shell
validations:
required: false
- type: textarea
id: rationale
attributes:
label: Rationale and extra context
description: If the problem is not self-explanatory, please provide a rationale for the change.
validations:
required: false
- type: textarea
id: other-output
attributes:
label: Other cases
description: If dramatically different output is caused by small changes, consider also adding them here.
render: Rust
validations:
required: false
- type: textarea
id: version
attributes:
label: Rust Version
description: Please provide the `rustc` version, `rustc --version --verbose`. Make sure that you're using the latest version of the compiler, and not an outdated stable or nightly release!
placeholder: |
$ rustc --version --verbose
rustc 1.XX.Y (SHORTHASH DATE)
binary: rustc
commit-hash: LONGHASHVALUE
commit-date: DATE
host: PLATFORMTRIPLE
release: 1.XX.Y
LLVM version: XX.YY.ZZ
render: Shell
validations:
required: true
- type: textarea
id: extra
attributes:
label: Anything else?
description: If you have more details you want to give us to reproduce this issue, please add it here
validations:
required: false
================================================
FILE: .github/ISSUE_TEMPLATE/documentation.yaml
================================================
name: Documentation problem
description: Report an issue with documentation content.
labels: ["A-docs"]
body:
- type: markdown
attributes:
value: |
Thank you for finding a documentation problem! 📚
Documentation problems might be grammatical issues, typos, or unclear wording, please provide details regarding the documentation including where it is present.
Note: If your issue is for one of these, please use their dedicated issue tracker instead:
- [The Rust Book](https://github.com/rust-lang/book/issues)
- [Rust by Example](https://github.com/rust-lang/rust-by-example/issues)
- [The Edition Guide](https://github.com/rust-lang/edition-guide/issues)
- [The Cargo Book](https://github.com/rust-lang/cargo/issues)
- [The Clippy Book](https://github.com/rust-lang/rust-clippy/issues)
- [The Reference](https://github.com/rust-lang/reference/issues)
- [The Rustonomicon](https://github.com/rust-lang/nomicon/issues)
- [The Embedded Book](https://github.com/rust-embedded/book/issues)
Or, if you find an issue related to rustdoc (e.g. doctest, rustdoc UI), please use the rustdoc issue template instead.
All other documentation issues should be filed here.
- type: textarea
id: location
attributes:
label: Location (URL)
validations:
required: true
- type: textarea
id: summary
attributes:
label: Summary
validations:
required: true
================================================
FILE: .github/ISSUE_TEMPLATE/ice.md
================================================
---
name: Internal Compiler Error
about: Create a report for an internal compiler error in rustc.
labels: C-bug, I-ICE, T-compiler
title: "[ICE]: "
---
<!--
Thank you for finding an Internal Compiler Error! 🧊 If possible, try to provide
a minimal verifiable example. You can read "Rust Bug Minimization Patterns" for
how to create smaller examples.
http://blog.pnkfx.org/blog/2019/11/18/rust-bug-minimization-patterns/
-->
### Code
```Rust
<code>
```
### Meta
<!--
If you're using the stable version of the compiler, you should also check if the
bug also exists in the beta or nightly versions.
-->
`rustc --version --verbose`:
```
<version>
```
### Error output
```
<output>
```
<!--
Include a backtrace in the code block by setting `RUST_BACKTRACE=1` in your
environment. E.g. `RUST_BACKTRACE=1 cargo build`.
-->
<details><summary><strong>Backtrace</strong></summary>
<p>
```
<backtrace>
```
</p>
</details>
================================================
FILE: .github/ISSUE_TEMPLATE/ice.yaml
================================================
name: Internal Compiler Error (for use by automated tooling)
description: For now, you'll want to use the other ICE template, as GitHub forms have strict limits on the size of fields so backtraces cannot be pasted directly.
labels: ["C-bug", "I-ICE", "T-compiler"]
title: "[ICE]: "
body:
- type: markdown
attributes:
value: |
Thank you for finding an Internal Compiler Error! 🧊
If possible, try to provide a minimal verifiable example.
You can read "[Rust Bug Minimization Patterns](http://blog.pnkfx.org/blog/2019/11/18/rust-bug-minimization-patterns/)" for how to create smaller examples.
- type: textarea
id: code
attributes:
label: Code
description: Please provide code or a link to a repository that can reproduce the problem
placeholder: code
render: Rust
validations:
required: false
- type: checkboxes
attributes:
label: Affected release channels
description: If you're using the stable version of the compiler, you should also check if the bug also exists in the beta or nightly versions
options:
- label: Previous Stable
required: false
- label: Current Stable
required: false
- label: Current Beta
required: false
- label: Current Nightly
required: false
- type: textarea
id: version
attributes:
label: Rust Version
description: Please provide the `rustc` version, `rustc --version --verbose`. Make sure that you're using the latest version of the compiler, and not an outdated stable or nightly release!
placeholder: |
$ rustc --version --verbose
rustc 1.XX.Y (SHORTHASH DATE)
binary: rustc
commit-hash: LONGHASHVALUE
commit-date: DATE
host: PLATFORMTRIPLE
release: 1.XX.Y
LLVM version: XX.YY.ZZ
render: Shell
validations:
required: true
- type: textarea
id: output
attributes:
label: Current error output
description: Please provide the `rustc` output you see
placeholder: output
render: Shell
validations:
required: false
- type: textarea
id: backtrace
attributes:
label: Backtrace
description: Include a backtrace in the code block by setting `RUST_BACKTRACE=full` in your environment, e.g. `RUST_BACKTRACE=full cargo build`
render: Shell
validations:
required: true
- type: textarea
id: extra
attributes:
label: Anything else?
description: If you have more details you want to give us to reproduce this issue, please add it here
validations:
required: false
================================================
FILE: .github/ISSUE_TEMPLATE/library_tracking_issue.md
================================================
---
name: Library Tracking Issue
about: A tracking issue for an unstable library feature.
title: Tracking Issue for XXX
labels: C-tracking-issue, T-libs-api, S-tracking-unimplemented
---
<!--
Thank you for creating a tracking issue!
Tracking issues are for tracking a feature from implementation to stabilization.
Make sure to include the relevant RFC for the feature if it has one.
If the new feature is small, it may be fine to skip the RFC process. In that
case, you can use `issue = "none"` in your initial implementation PR. The
reviewer will ask you to open a tracking issue if they agree your feature can be
added without an RFC.
-->
Feature gate: `#![feature(...)]`
This is a tracking issue for ...
<!--
Include a short description of the feature.
-->
### Public API
<!--
For most library features, it'd be useful to include a summarized version of the public API.
(E.g. just the public function signatures without their doc comments or implementation.)
-->
```rust
// core::magic
pub struct Magic;
impl Magic {
pub fn magic(self);
}
```
### Steps / History
<!--
For larger features, more steps might be involved.
If the feature is changed later, please add those PRs here as well.
-->
(Remember to update the `S-tracking-*` label when checking boxes.)
- [ ] ACP: rust-lang/libs-team#...
- [ ] Implementation: #...
- [ ] Final comment period (FCP)[^1]
- [ ] Stabilization PR
<!--
Once the feature has gone through a few release cycles and there are no
unresolved questions left, the feature might be ready for stabilization.
If this feature didn't go through the RFC process, a final comment period
(FCP) is always needed before stabilization. This works as follows:
A library API team member can kick off the stabilization process, at which point
the rfcbot will ask all the team members to verify they agree with
stabilization. Once enough members agree and there are no concerns, the final
comment period begins: this issue will be marked as such and will be listed
in the next This Week in Rust newsletter. If no blocking concerns are raised in
that period of 10 days, a stabilization PR can be opened by anyone.
-->
### Unresolved Questions
<!--
Include any open questions that need to be answered before the feature can be
stabilised. If multiple (unrelated) big questions come up, it can be a good idea
to open a separate issue for each, to make it easier to keep track of the
discussions.
It's useful to link any relevant discussions and conclusions (whether on GitHub,
Zulip, or the internals forum) here.
-->
- None yet.
[^1]: https://std-dev-guide.rust-lang.org/feature-lifecycle/stabilization.html
================================================
FILE: .github/ISSUE_TEMPLATE/regression.md
================================================
---
name: Regression
about: Report something that unexpectedly changed between Rust versions.
labels: C-bug, regression-untriaged
---
<!--
Thank you for filing a regression report! 🐛 A regression is something that changed between versions of Rust but was not supposed to.
Please provide a short summary of the regression, along with any information you feel is relevant to replicate it.
-->
### Code
I tried this code:
```rust
<code>
```
I expected to see this happen: *explanation*
Instead, this happened: *explanation*
### Version it worked on
<!--
Provide the most recent version this worked on, for example:
It most recently worked on: Rust 1.47
-->
It most recently worked on: <!-- version -->
### Version with regression
<!--
Provide the version you are using that has the regression.
-->
`rustc --version --verbose`:
```
<version>
```
<!--
Did the compiler crash? If so, please provide a backtrace.
-->
### Backtrace
<!--
Include a backtrace in the code block by setting `RUST_BACKTRACE=1` in your
environment. E.g. `RUST_BACKTRACE=1 cargo build`.
-->
<details><summary>Backtrace</summary>
<p>
```
<backtrace>
```
</p>
</details>
<!--
If you know when this regression occurred, please add a line like below, replacing `{channel}` with one of stable, beta, or nightly.
@rustbot modify labels: +regression-from-stable-to-{channel} -regression-untriaged
-->
================================================
FILE: .github/ISSUE_TEMPLATE/rustdoc.md
================================================
---
name: Problem with rustdoc
about: Report an issue with how docs get generated.
labels: C-bug, T-rustdoc
---
<!--
Thank you for filing a rustdoc issue! Rustdoc is the tool that handles the generation of docs. It is usually invoked via `cargo doc`, but can also be used directly.
If you have an issue with the actual content of the docs, use the "Documentation problem" template instead.
-->
# Code
<!-- problematic snippet and/or link to repo and/or full path of standard library function -->
```rust
<code>
```
# Reproduction Steps
<!--
* command(s) to run, if any
* permalink to hosted documentation, if any
* search query, if any
-->
# Expected Outcome
<!--
What did you want to happen?
For GUI issues, feel free to provide a mockup image of what you want it to look like.
For diagnostics, please provide a mockup of the desired output in a code block.
-->
# Actual Output
<!--
* rustdoc console output
* browser screenshot of generated html
* rustdoc json (prettify by running through `jq` or running thorugh an online formatter)
-->
```console
<code>
```
# Version
<!--
Available via `rustdoc --version` or under the "Help" menu.
If the issue involves opening the documentation in a browser, please also provide the name and version of the browser used.
-->
# Additional Details
<!-- Anything else you think is relevant -->
================================================
FILE: .github/ISSUE_TEMPLATE/tracking_issue.md
================================================
---
name: Tracking Issue
about: A tracking issue for an accepted feature or RFC in Rust.
title: Tracking Issue for XXX
labels: C-tracking-issue
---
<!--
NOTE: For library features, please use the "Library Tracking Issue" template instead.
Thank you for creating a tracking issue! 📜 Tracking issues are for tracking a
feature from implementation to stabilisation. Make sure to include the relevant
RFC for the feature if it has one. Otherwise provide a short summary of the
feature and link any relevant PRs or issues, and remove any sections that are
not relevant to the feature.
Remember to add team labels to the tracking issue.
For a language team feature, this would e.g., be `T-lang`.
Such a feature should also be labeled with e.g., `F-my_feature`.
This label is used to associate issues (e.g., bugs and design questions) to the feature.
-->
This is a tracking issue for the RFC "XXX" (rust-lang/rfcs#NNN).
The feature gate for the issue is `#![feature(FFF)]`.
### About tracking issues
Tracking issues are used to record the overall progress of implementation.
They are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions.
A tracking issue is however *not* meant for large scale discussion, questions, or bug reports about a feature.
Instead, open a dedicated issue for the specific matter and add the relevant feature gate label.
Discussion comments will get marked as off-topic or deleted.
Repeated discussions on the tracking issue may lead to the tracking issue getting locked.
### Steps
<!--
Include each step required to complete the feature. Typically this is a PR
implementing a feature, followed by a PR that stabilises the feature. However
for larger features an implementation could be broken up into multiple PRs.
-->
- [ ] Implement the RFC (cc @rust-lang/XXX -- can anyone write up mentoring
instructions?)
- [ ] Adjust documentation ([see instructions on rustc-dev-guide][doc-guide])
- [ ] Style updates for any new syntax ([nightly-style-procedure])
- [ ] Style team decision on new formatting
- [ ] Formatting for new syntax has been added to the [Style Guide]
- [ ] (non-blocking) Formatting has been implemented in `rustfmt`
- [ ] Stabilization PR ([see instructions on rustc-dev-guide][stabilization-guide])
[stabilization-guide]: https://rustc-dev-guide.rust-lang.org/stabilization_guide.html#stabilization-pr
[doc-guide]: https://rustc-dev-guide.rust-lang.org/stabilization_guide.html#documentation-prs
[nightly-style-procedure]: https://github.com/rust-lang/style-team/blob/main/nightly-style-procedure.md
[Style Guide]: https://github.com/rust-lang/rust/tree/HEAD/src/doc/style-guide
### Unresolved Questions
<!--
Include any open questions that need to be answered before the feature can be
stabilised.
-->
XXX --- list all the "unresolved questions" found in the RFC to ensure they are
not forgotten
### Implementation history
<!--
Include a list of all the PRs that were involved in implementing the feature.
-->
================================================
FILE: .github/ISSUE_TEMPLATE/tracking_issue_future.md
================================================
---
name: Future Incompatibility Tracking Issue
about: A tracking issue for a future-incompatible lint
title: Tracking Issue for future-incompatibility lint XXX
labels: C-tracking-issue C-future-incompatibility T-compiler A-lints
---
<!--
Thank you for creating a future-incompatible tracking issue! 📜 These issues
are for lints that implement a future-incompatible warning.
Remember to add team labels to the tracking issue.
For something that affects the language, this would be `T-lang`, and for libs
it would be `T-libs-api`.
Also check for any `A-` labels to add.
-->
This is the **tracking issue** for the `YOUR_LINT_NAME_HERE` future-compatibility warning and other related errors. The goal of this page is to describe why this change was made and how you can fix code that is affected by it. It also provides a place to ask questions or register a complaint if you feel the change should not be made. For more information on the policy around future-compatibility warnings, see our [breaking change policy guidelines][guidelines].
[guidelines]: https://rustc-dev-guide.rust-lang.org/bug-fix-procedure.html
### What is the warning for?
*Describe the conditions that trigger the warning.*
### Why was this change made?
*Explain why this change was made. If there is additional context, like an MCP, link it here.*
### Example
```rust
// Include an example here.
```
### Recommendations
*Give some recommendations on how a user can avoid the lint.*
### When will this warning become a hard error?
*If known, describe the future plans. For example, how long you anticipate this being a warning, or if there are other factors that will influence the anticipated closure.*
### Steps
- [ ] Implement the lint
- [ ] Raise lint level to deny
- [ ] Change the lint to report in dependencies
- [ ] Switch to a hard error
### Implementation history
<!--
Include a list of all the PRs that were involved in implementing the lint.
-->
================================================
FILE: .github/pull_request_template.md
================================================
<!-- homu-ignore:start -->
<!--
If this PR is related to an unstable feature or an otherwise tracked effort,
please link to the relevant tracking issue here. If you don't know of a related
tracking issue or there are none, feel free to ignore this.
This PR will get automatically assigned to a reviewer. In case you would like
a specific user to review your work, you can assign it to them by using
r? <reviewer name>
-->
<!-- homu-ignore:end -->
================================================
FILE: .github/renovate.json5
================================================
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
// Let Renovatebot keep an opened issue that tracks our dependencies
"dependencyDashboard": true,
// Disable "normal" package updates
"enabledManagers": [],
// Update lockfiles once per week
"lockFileMaintenance": {
"enabled": true,
"schedule": [
"before 5am on Tuesday"
]
}
}
================================================
FILE: .github/workflows/ci.yml
================================================
# This file defines our primary CI workflow that runs on pull requests
# and also on pushes to special branches (auto, try).
#
# The actual definition of the executed jobs is calculated by the
# `src/ci/citool` crate, which
# uses job definition data from src/ci/github-actions/jobs.yml.
# You should primarily modify the `jobs.yml` file if you want to modify
# what jobs are executed in CI.
name: CI
on:
push:
branches:
- automation/bors/auto
- automation/bors/try
- try-perf
pull_request:
branches:
- "**"
permissions:
contents: read
packages: write
defaults:
run:
# On Linux, macOS, and Windows, use the system-provided bash as the default
# shell. (This should only make a difference on Windows, where the default
# shell is PowerShell.)
shell: bash
concurrency:
# For a given workflow, if we push to the same branch, cancel all previous builds on that branch.
# We add an exception for try builds (automation/bors/try branch) and unrolled rollup builds
# (try-perf), which are all triggered on the same branch, but which should be able to run
# concurrently.
group: ${{ github.workflow }}-${{ ((github.ref == 'refs/heads/try-perf' || github.ref == 'refs/heads/automation/bors/try') && github.sha) || github.ref }}
cancel-in-progress: true
env:
TOOLSTATE_REPO: "https://github.com/rust-lang-nursery/rust-toolstate"
# This will be empty in PR jobs.
TOOLSTATE_REPO_ACCESS_TOKEN: ${{ secrets.TOOLSTATE_REPO_ACCESS_TOKEN }}
jobs:
# The job matrix for `calculate_matrix` is defined in src/ci/github-actions/jobs.yml.
# It calculates which jobs should be executed, based on the data of the ${{ github }} context.
# If you want to modify CI jobs, take a look at src/ci/github-actions/jobs.yml.
calculate_matrix:
name: Calculate job matrix
runs-on: ubuntu-24.04-arm
outputs:
jobs: ${{ steps.jobs.outputs.jobs }}
run_type: ${{ steps.jobs.outputs.run_type }}
steps:
- name: Checkout the source code
uses: actions/checkout@v5
- name: Test citool
# Only test citool on the auto branch, to reduce latency of the calculate matrix job
# on PR/try builds.
if: ${{ github.ref == 'refs/heads/automation/bors/auto' }}
run: |
cd src/ci/citool
CARGO_INCREMENTAL=0 cargo test
- name: Calculate the CI job matrix
env:
COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
run: |
cd src/ci/citool
CARGO_INCREMENTAL=0 cargo run calculate-job-matrix >> $GITHUB_OUTPUT
id: jobs
job:
name: ${{ matrix.full_name }}
needs: [ calculate_matrix ]
runs-on: "${{ matrix.os }}"
timeout-minutes: 360
# The bors environment contains secrets required for elevated workflows (try and auto builds),
# which need to access e.g. S3 and upload artifacts. We want to provide access to that
# environment only on the try/auto branches, which are only accessible to bors.
# This also ensures that PR CI (which doesn't get write access to S3) works, as it cannot
# access the environment.
#
# We only enable the environment for the rust-lang/rust repository, so that CI works on forks.
environment: ${{ ((github.repository == 'rust-lang/rust' && (github.ref == 'refs/heads/try-perf' || github.ref == 'refs/heads/automation/bors/try' || github.ref == 'refs/heads/automation/bors/auto')) && 'bors') || '' }}
env:
CI_JOB_NAME: ${{ matrix.name }}
CI_JOB_DOC_URL: ${{ matrix.doc_url }}
GITHUB_WORKFLOW_RUN_ID: ${{ github.run_id }}
GITHUB_REPOSITORY: ${{ github.repository }}
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
# commit of PR sha or commit sha. `GITHUB_SHA` is not accurate for PRs.
HEAD_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
DOCKER_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SCCACHE_BUCKET: rust-lang-ci-sccache2
SCCACHE_REGION: us-west-1
CACHE_DOMAIN: ci-caches.rust-lang.org
continue-on-error: ${{ matrix.continue_on_error || false }}
strategy:
# If the user starts multiple jobs in a try build, let them all finish.
# Try builds are sometimes used to test several jobs at once, and it is useful to know which
# of them would succeed or not.
fail-fast: ${{ needs.calculate_matrix.outputs.run_type != 'try' }}
matrix:
# Check the `calculate_matrix` job to see how is the matrix defined.
include: ${{ fromJSON(needs.calculate_matrix.outputs.jobs) }}
steps:
- name: Install cargo in AWS CodeBuild
if: matrix.codebuild
run: |
# Check if cargo is installed
if ! command -v cargo &> /dev/null; then
echo "Cargo not found, installing Rust..."
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile=minimal
# Make cargo available in PATH
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
fi
- name: disable git crlf conversion
run: git config --global core.autocrlf false
- name: checkout the source code
uses: actions/checkout@v5
with:
fetch-depth: 2
# Free up disk space on Linux by removing preinstalled components that
# we do not need. We do this to enable some of the less resource
# intensive jobs to run on free runners, which however also have
# less disk space.
- name: free up disk space
run: src/ci/scripts/free-disk-space-linux.sh
if: matrix.free_disk
# If we don't need to free up disk space then just report how much space we have
- name: print disk usage
run: |
echo "disk usage:"
df -h
if: matrix.free_disk == false
# Rust Log Analyzer can't currently detect the PR number of a GitHub
# Actions build on its own, so a hint in the log message is needed to
# point it in the right direction.
- name: configure the PR in which the error message will be posted
run: echo "[CI_PR_NUMBER=$num]"
env:
num: ${{ github.event.number }}
if: needs.calculate_matrix.outputs.run_type == 'pr'
- name: add extra environment variables
run: src/ci/scripts/setup-environment.sh
env:
# Since it's not possible to merge `${{ matrix.env }}` with the other
# variables in `job.<name>.env`, the variables defined in the matrix
# are passed to the `setup-environment.sh` script encoded in JSON,
# which then uses log commands to actually set them.
EXTRA_VARIABLES: ${{ toJson(matrix.env) }}
- name: ensure the channel matches the target branch
run: src/ci/scripts/verify-channel.sh
- name: collect CPU statistics
run: src/ci/scripts/collect-cpu-stats.sh
- name: show the current environment
run: src/ci/scripts/dump-environment.sh
- name: install awscli
run: src/ci/scripts/install-awscli.sh
- name: install sccache
run: src/ci/scripts/install-sccache.sh
- name: install clang
run: src/ci/scripts/install-clang.sh
- name: install tidy
run: src/ci/scripts/install-tidy.sh
- name: install WIX
run: src/ci/scripts/install-wix.sh
- name: disable git crlf conversion
run: src/ci/scripts/disable-git-crlf-conversion.sh
- name: checkout submodules
run: src/ci/scripts/checkout-submodules.sh
- name: install MinGW
run: src/ci/scripts/install-mingw.sh
- name: install ninja
run: src/ci/scripts/install-ninja.sh
- name: enable ipv6 on Docker
# Don't run on codebuild because systemctl is not available
if: ${{ !matrix.codebuild }}
run: src/ci/scripts/enable-docker-ipv6.sh
# Disable automatic line ending conversion (again). On Windows, when we're
# installing dependencies, something switches the git configuration directory or
# re-enables autocrlf. We've not tracked down the exact cause -- and there may
# be multiple -- but this should ensure submodules are checked out with the
# appropriate line endings.
- name: disable git crlf conversion
run: src/ci/scripts/disable-git-crlf-conversion.sh
- name: ensure line endings are correct
run: src/ci/scripts/verify-line-endings.sh
- name: ensure backported commits are in upstream branches
run: src/ci/scripts/verify-backported-commits.sh
- name: ensure the stable version number is correct
run: src/ci/scripts/verify-stable-version-number.sh
# Show the environment just before we run the build
# This makes it easier to diagnose problems with the above install scripts.
- name: show the current environment
run: src/ci/scripts/dump-environment.sh
# Pre-build citool before the following step uninstalls rustup
# Build it into the build directory, to avoid modifying sources
- name: build citool
run: |
cd src/ci/citool
CARGO_INCREMENTAL=0 CARGO_TARGET_DIR=../../../build/citool cargo build
- name: run the build
run: |
set +e
# Redirect stderr to stdout to avoid reordering the two streams in the GHA logs.
src/ci/scripts/run-build-from-ci.sh 2>&1
STATUS=$?
set -e
if [[ "$STATUS" -ne 0 && -n "$CI_JOB_DOC_URL" ]]; then
echo "****************************************************************************"
echo "To find more information about this job, visit the following URL:"
echo "$CI_JOB_DOC_URL"
echo "****************************************************************************"
fi
exit ${STATUS}
env:
AWS_ACCESS_KEY_ID: ${{ secrets.CACHES_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CACHES_AWS_SECRET_ACCESS_KEY }}
- name: create github artifacts
run: src/ci/scripts/create-doc-artifacts.sh
- name: print disk usage
# We also want to know the disk usage when the job fails.
if: always()
run: |
echo "disk usage:"
df -h
- name: upload artifacts to github
uses: actions/upload-artifact@v4
with:
# name is set in previous step
name: ${{ env.DOC_ARTIFACT_NAME }}
path: obj/artifacts/doc
if-no-files-found: ignore
retention-days: 5
- name: upload artifacts to S3
run: src/ci/scripts/upload-artifacts.sh
env:
AWS_ACCESS_KEY_ID: ${{ secrets.ARTIFACTS_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.ARTIFACTS_AWS_SECRET_ACCESS_KEY }}
# Adding a condition on DEPLOY=1 or DEPLOY_ALT=1 is not needed as all deploy
# builders *should* have the AWS credentials available. Still, explicitly
# adding the condition is helpful as this way CI will not silently skip
# deploying artifacts from a dist builder if the variables are misconfigured,
# erroring about invalid credentials instead.
if: github.event_name == 'push' || env.DEPLOY == '1' || env.DEPLOY_ALT == '1'
- name: postprocess metrics into the summary
# This step is not critical, and if some I/O problem happens, we don't want
# to cancel the build.
continue-on-error: true
run: |
if [ -f build/metrics.json ]; then
METRICS=build/metrics.json
elif [ -f obj/build/metrics.json ]; then
METRICS=obj/build/metrics.json
else
echo "No metrics.json found"
exit 0
fi
# Get closest bors merge commit
PARENT_COMMIT=`git rev-list --author='bors@rust-lang.org' --author='122020455+rust-bors\[bot\]@users.noreply.github.com' -n1 --first-parent HEAD^1`
./build/citool/debug/citool postprocess-metrics \
--job-name ${CI_JOB_NAME} \
--parent ${PARENT_COMMIT} \
${METRICS} >> ${GITHUB_STEP_SUMMARY}
- name: upload job metrics to DataDog
# This step is not critical, and if some I/O problem happens, we don't want
# to cancel the build.
continue-on-error: true
if: needs.calculate_matrix.outputs.run_type != 'pr'
env:
DATADOG_API_KEY: ${{ secrets.DATADOG_API_KEY }}
DD_GITHUB_JOB_NAME: ${{ matrix.full_name }}
run: ./build/citool/debug/citool upload-build-metrics build/cpu-usage.csv
# This job is used to publish toolstate for successful auto builds.
outcome:
name: publish toolstate
runs-on: ubuntu-24.04
needs: [ calculate_matrix, job ]
if: ${{ needs.calculate_matrix.outputs.run_type == 'auto' }}
environment: ${{ (github.repository == 'rust-lang/rust' && 'bors') || '' }}
steps:
- name: checkout the source code
uses: actions/checkout@v5
with:
fetch-depth: 2
# Publish the toolstate if an auto build succeeds (just before push to the default branch)
- name: publish toolstate
run: src/ci/publish_toolstate.sh
shell: bash
env:
TOOLSTATE_ISSUES_API_URL: https://api.github.com/repos/rust-lang/rust/issues
TOOLSTATE_PUBLISH: 1
================================================
FILE: .github/workflows/dependencies.yml
================================================
# Automatically run `cargo update` periodically
---
name: Bump dependencies in Cargo.lock
on:
schedule:
# Run weekly
- cron: '0 0 * * Sun'
workflow_dispatch:
# Needed so we can run it manually
permissions:
contents: read
defaults:
run:
shell: bash
env:
# So cargo doesn't complain about unstable features
RUSTC_BOOTSTRAP: 1
PR_TITLE: Weekly `cargo update`
PR_MESSAGE: |
Automation to keep dependencies in `Cargo.lock` current.
r? dep-bumps
The following is the output from `cargo update`:
COMMIT_MESSAGE: "cargo update \n\n"
jobs:
not-waiting-on-bors:
if: github.repository_owner == 'rust-lang'
name: skip if S-waiting-on-bors
runs-on: ubuntu-24.04
steps:
- env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Fetch state and labels of PR
# Or exit successfully if PR does not exist
JSON=$(gh pr view cargo_update --repo $GITHUB_REPOSITORY --json labels,state || exit 0)
STATE=$(echo "$JSON" | jq -r '.state')
WAITING_ON_BORS=$(echo "$JSON" | jq '.labels[] | any(.name == "S-waiting-on-bors"; .)')
# Exit with error if open and S-waiting-on-bors
if [[ "$STATE" == "OPEN" && "$WAITING_ON_BORS" == "true" ]]; then
exit 1
fi
update:
if: github.repository_owner == 'rust-lang'
name: update dependencies
needs: not-waiting-on-bors
runs-on: ubuntu-24.04
steps:
- name: checkout the source code
uses: actions/checkout@v5
with:
submodules: recursive
- name: install the bootstrap toolchain
run: |
# Extract the stage0 version
TOOLCHAIN=$(awk -F= '{a[$1]=$2} END {print(a["compiler_version"] "-" a["compiler_date"])}' src/stage0)
# Install and set as default
rustup toolchain install --no-self-update --profile minimal $TOOLCHAIN
rustup default $TOOLCHAIN
- name: cargo update
run: ./src/tools/update-lockfile.sh
- name: upload Cargo.lock artifact for use in PR
uses: actions/upload-artifact@v4
with:
name: Cargo-lock
path: |
Cargo.lock
library/Cargo.lock
src/tools/rustbook/Cargo.lock
retention-days: 1
- name: upload cargo-update log artifact for use in PR
uses: actions/upload-artifact@v4
with:
name: cargo-updates
path: cargo_update.log
retention-days: 1
pr:
if: github.repository_owner == 'rust-lang'
name: amend PR
needs: update
runs-on: ubuntu-24.04
permissions:
contents: write
pull-requests: write
steps:
- name: checkout the source code
uses: actions/checkout@v5
- name: download Cargo.lock from update job
uses: actions/download-artifact@v4
with:
name: Cargo-lock
- name: download cargo-update log from update job
uses: actions/download-artifact@v4
with:
name: cargo-updates
- name: craft PR body and commit message
run: |
echo "${COMMIT_MESSAGE}" > commit.txt
cat cargo_update.log >> commit.txt
echo "${PR_MESSAGE}" > body.md
echo '```txt' >> body.md
cat cargo_update.log >> body.md
echo '```' >> body.md
- name: commit
run: |
git config user.name github-actions
git config user.email github-actions@github.com
git switch --force-create cargo_update
git add ./Cargo.lock ./library/Cargo.lock ./src/tools/rustbook/Cargo.lock
git commit --no-verify --file=commit.txt
- name: push
run: git push --no-verify --force --set-upstream origin cargo_update
- name: edit existing open pull request
id: edit
# Don't fail job if we need to open new PR
continue-on-error: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Exit with error if PR is closed
STATE=$(gh pr view cargo_update --repo $GITHUB_REPOSITORY --json state --jq '.state')
if [[ "$STATE" != "OPEN" ]]; then
exit 1
fi
gh pr edit cargo_update --title "${PR_TITLE}" --body-file body.md --repo $GITHUB_REPOSITORY
- name: open new pull request
# Only run if there wasn't an existing PR
if: steps.edit.outcome != 'success'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh pr create --title "${PR_TITLE}" --body-file body.md --repo $GITHUB_REPOSITORY
================================================
FILE: .github/workflows/ghcr.yml
================================================
# Mirror DockerHub images used by the Rust project to ghcr.io.
# Images are available at https://github.com/orgs/rust-lang/packages.
#
# In some CI jobs, we pull images from ghcr.io instead of Docker Hub because
# Docker Hub has a rate limit, while ghcr.io doesn't.
# Those images are pushed to ghcr.io by this job.
#
# While Docker Hub rate limit *shouldn't* be an issue on GitHub Actions,
# it certainly is for AWS codebuild.
#
# Note that authenticating to DockerHub or other registries isn't possible
# for PR jobs, because forks can't access secrets.
# That's why we use ghcr.io: it has no rate limit and it doesn't require authentication.
name: GHCR image mirroring
on:
workflow_dispatch:
schedule:
# Run daily at midnight UTC
- cron: '0 0 * * *'
jobs:
mirror:
name: DockerHub mirror
runs-on: ubuntu-24.04
if: github.repository == 'rust-lang/rust'
permissions:
# Needed to write to the ghcr.io registry
packages: write
steps:
- uses: actions/checkout@v5
with:
persist-credentials: false
- name: Log in to registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.repository_owner }} --password-stdin
# Download crane in the current directory.
# We use crane because it copies the docker image for all the architectures available in
# DockerHub for the image.
# Learn more about crane at
# https://github.com/google/go-containerregistry/blob/main/cmd/crane/README.md
- name: Download crane
run: |
curl -sL "https://github.com/google/go-containerregistry/releases/download/${VERSION}/go-containerregistry_${OS}_${ARCH}.tar.gz" | tar -xzf -
env:
VERSION: v0.20.2
OS: Linux
ARCH: x86_64
- name: Mirror DockerHub
run: |
# List of DockerHub images to mirror to ghcr.io
images=(
# Mirrored because used by the tidy job, which doesn't cache Docker images
"ubuntu:22.04"
# Mirrored because used by x86-64-gnu-miri
"ubuntu:24.04"
# Mirrored because used by all linux CI jobs, including tidy
"moby/buildkit:buildx-stable-1"
# Mirrored because used when CI is running inside a Docker container
"alpine:3.4"
# Mirrored because used by dist-x86_64-linux
"centos:7"
)
# Mirror each image from DockerHub to ghcr.io
for img in "${images[@]}"; do
echo "Mirroring ${img}..."
# Remove namespace from the image if any.
# E.g. "moby/buildkit:buildx-stable-1" becomes "buildkit:buildx-stable-1"
dest_image=$(echo "${img}" | cut -d'/' -f2-)
./crane copy \
"docker.io/${img}" \
"ghcr.io/${{ github.repository_owner }}/${dest_image}"
done
================================================
FILE: .github/workflows/post-merge.yml
================================================
# Workflow that runs after a merge to the default branch, analyses changes in test executions
# and posts the result to the merged PR.
name: Post merge analysis
on:
push:
branches:
- main
jobs:
analysis:
runs-on: ubuntu-24.04
if: github.repository == 'rust-lang/rust'
permissions:
pull-requests: write
steps:
- uses: actions/checkout@v5
with:
# Make sure that we have enough commits to find the parent merge commit.
# Since all merges should be through merge commits, fetching two commits
# should be enough to get the parent bors merge commit.
fetch-depth: 2
- name: Perform analysis and send PR
env:
GH_TOKEN: ${{ github.token }}
run: |
# Give GitHub some time to propagate the information that the PR was merged
sleep 60
# Get closest bors merge commit
PARENT_COMMIT=`git rev-list --author='bors@rust-lang.org' --author='122020455+rust-bors\[bot\]@users.noreply.github.com' -n1 --first-parent HEAD^1`
echo "Parent: ${PARENT_COMMIT}"
# Find PR for the current commit
HEAD_PR=`gh pr list --search "${{ github.sha }}" --state merged --json number --jq '.[0].number'`
if [ -z "${HEAD_PR}" ]; then
echo "PR for commit SHA ${{ github.sha }} not found, exiting"
exit 1
fi
echo "HEAD: ${{ github.sha }} (#${HEAD_PR})"
cd src/ci/citool
printf "<details>\n<summary>What is this?</summary>\n" >> output.log
printf "This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.\n" >> output.log
printf "</details>\n\n" >> output.log
cargo run --release post-merge-report ${PARENT_COMMIT} ${{ github.sha }} >> output.log
cat output.log
gh pr comment ${HEAD_PR} -F output.log
================================================
FILE: .gitignore
================================================
# This file should only ignore things that are generated during a `x.py` build,
# generated by common IDEs, and optional files controlled by the user that
# affect the build (such as bootstrap.toml).
# In particular, things like `mir_dump` should not be listed here; they are only
# created during manual debugging and many people like to clean up instead of
# having git ignore such leftovers. You can use `.git/info/exclude` to
# configure your local ignore list.
## File system
.DS_Store
desktop.ini
## Editor
*.swp
*.swo
Session.vim
.cproject
.idea
*.iml
.vscode
.project
.vim/
.helix/
.zed/
.favorites.json
.settings/
.vs/
.dir-locals.el
## Tool
.valgrindrc
.cargo
# Included because it is part of the test case
!/tests/run-make/thumb-none-qemu/example/.cargo
## Configuration
/bootstrap.toml
/config.toml
/Makefile
config.mk
config.stamp
no_llvm_build
## Build
/dl/
/doc/
/inst/
/llvm/
/mingw-build/
/build
/build-rust-analyzer
/dist/
/unicode-downloads
/target
/library/target
/src/bootstrap/target
/src/ci/citool/target
/src/tools/x/target
# Created by `x vendor`
/vendor
# Created by default with `src/ci/docker/run.sh`
/obj/
# Created by nix dev shell / .envrc
src/tools/nix-dev-shell/flake.lock
## ICE reports
rustc-ice-*.txt
## Temporary files
*~
\#*
\#*\#
.#*
## Tags
tags
tags.*
TAGS
TAGS.*
## Python
__pycache__/
*.py[cod]
*$py.class
## Node
node_modules
/src/doc/rustc-dev-guide/mermaid.min.js
## Rustdoc GUI tests
tests/rustdoc-gui/src/**.lock
## Test dashboard
.citool-cache/
test-dashboard/
## direnv
/.envrc
/.direnv/
## nix
/flake.nix
flake.lock
/default.nix
# Before adding new lines, see the comment at the top.
================================================
FILE: .gitmodules
================================================
[submodule "src/doc/nomicon"]
path = src/doc/nomicon
url = https://github.com/rust-lang/nomicon.git
shallow = true
[submodule "src/tools/cargo"]
path = src/tools/cargo
url = https://github.com/rust-lang/cargo.git
shallow = true
[submodule "src/doc/reference"]
path = src/doc/reference
url = https://github.com/rust-lang/reference.git
shallow = true
[submodule "src/doc/book"]
path = src/doc/book
url = https://github.com/rust-lang/book.git
shallow = true
[submodule "src/doc/rust-by-example"]
path = src/doc/rust-by-example
url = https://github.com/rust-lang/rust-by-example.git
shallow = true
[submodule "src/doc/edition-guide"]
path = src/doc/edition-guide
url = https://github.com/rust-lang/edition-guide.git
shallow = true
[submodule "src/llvm-project"]
path = src/llvm-project
url = https://github.com/rust-lang/llvm-project.git
branch = rustc/22.1-2026-01-27
shallow = true
[submodule "src/doc/embedded-book"]
path = src/doc/embedded-book
url = https://github.com/rust-embedded/book.git
shallow = true
[submodule "library/backtrace"]
path = library/backtrace
url = https://github.com/rust-lang/backtrace-rs.git
shallow = true
[submodule "src/tools/rustc-perf"]
path = src/tools/rustc-perf
url = https://github.com/rust-lang/rustc-perf.git
shallow = true
[submodule "src/tools/enzyme"]
path = src/tools/enzyme
url = https://github.com/rust-lang/enzyme.git
shallow = true
[submodule "src/gcc"]
path = src/gcc
url = https://github.com/rust-lang/gcc.git
shallow = true
================================================
FILE: .ignore
================================================
# Make vscode *not* count `bootstrap.toml` and `config.toml` as ignored, so it is included in search
!/bootstrap.toml
!/config.toml
================================================
FILE: .mailmap
================================================
#
# This list is used by git-shortlog to aggregate contributions. It is
# necessary when either the author's full name is not always written
# the same way, and/or the same author contributes from different
# email addresses.
#
Aaron Todd <github@opprobrio.us>
Abhishek Chanda <abhishek.becs@gmail.com> Abhishek Chanda <abhishek@cloudscaling.com>
Abhijeet Bhagat <abhijeet.bhagat@gmx.com>
Abroskin Alexander <arkweid@evilmartians.com>
Adolfo Ochagavía <aochagavia92@gmail.com> <github@adolfo.ochagavia.xyz>
Adrian Heine né Lang <mail@adrianheine.de>
Adrien Tétar <adri-from-59@hotmail.fr>
Ahmed Charles <ahmedcharles@gmail.com> <acharles@outlook.com>
Alan Egerton <eggyal@gmail.com>
Alan Stoate <alan.stoate@gmail.com>
Albert Larsan <albert.larsan@gmail.com> <74931857+albertlarsan68@users.noreply.github.com>
Alessandro Decina <alessandro.d@gmail.com>
Alex Burka <durka42+github@gmail.com> Alex Burka <aburka@seas.upenn.edu>
Alex Hansen <ahansen2@trinity.edu>
Alex Lyon <arcterus@mail.com> <Arcterus@mail.com>
Alex Newman <posix4e@gmail.com> Alex HotShot Newman <posix4e@gmail.com>
Alex Rønne Petersen <alex@lycus.org>
Alex Vlasov <alex.m.vlasov@gmail.com>
Alex von Gluck IV <kallisti5@unixzen.com>
Alexander Light <allight@cs.brown.edu> Alexander Light <scialexlight@gmail.com>
Alexander Ronald Altman <alexanderaltman@me.com>
Alexandre Martin <martin.alex32@hotmail.fr>
Alexis Beingessner <a.beingessner@gmail.com>
Alfie John <alfie@alfie.wtf> Alfie John <alfiej@fastmail.fm>
Alona Enraght-Moony <code@alona.page> <nixon.emoony@gmail.com>
Alona Enraght-Moony <code@alona.page> <nixon@caminus.local>
Alona Enraght-Moony <code@alona.page> <contact@alona.page>
Amanda Stjerna <mail@amandastjerna.se> <albin.stjerna@gmail.com>
Amanda Stjerna <mail@amandastjerna.se> <amanda.stjerna@it.uu.se>
Amanieu d'Antras <amanieu@gmail.com> <amanieu.dantras@huawei.com>
Amos Onn <amosonn@gmail.com>
Amos Wenger <amoswenger@gmail.com> <fasterthanlime@users.noreply.github.com>
Ana-Maria Mihalache <mihalacheana.maria@yahoo.com>
Anatoly Ikorsky <aikorsky@gmail.com>
Andre Bogus <bogusandre@gmail.com>
Andre Bogus <bogusandre@gmail.com> <andre.bogus@aleph-alpha.de>
Andre Bogus <bogusandre@gmail.com> <andre.bogus@ankordata.de>
Andrea Ciliberti <meziu210@icloud.com>
Andreas Gal <gal@mozilla.com> <andreas.gal@gmail.com>
Andreas Jonson <andjo403@users.noreply.github.com>
Andrew Gauger <andygauge@gmail.com>
Andrew Kuchev <0coming.soon@gmail.com> Andrew <0coming.soon@gmail.com>
Andrew Lamb <andrew@nerdnetworks.org>
Andrew Poelstra <asp11@sfu.ca> <apoelstra@wpsoftware.net>
Anhad Singh <andypythonappdeveloper@gmail.com>
Antoine Plaskowski <antoine.plaskowski@epitech.eu>
Anton Löfgren <anton.lofgren@gmail.com> <alofgren@op5.com>
apiraino <apiraino@users.noreply.github.com> <apiraino@protonmail.com>
Araam Borhanian <avborhanian@gmail.com>
Araam Borhanian <avborhanian@gmail.com> <dobbybabee@gmail.com>
Areski Belaid <areski@gmail.com> areski <areski@gmail.com>
Ariel Ben-Yehuda <arielb1@mail.tau.ac.il> Ariel Ben-Yehuda <ariel.byd@gmail.com>
Ariel Ben-Yehuda <arielb1@mail.tau.ac.il> arielb1 <arielb1@mail.tau.ac.il>
Artem Chernyak <artemchernyak@gmail.com>
Arthur Cohen <arthur.cohen@epita.fr>
Arthur Silva <arthurprs@gmail.com>
Arthur Woimbée <arthur.woimbee@gmail.com>
Artyom Pavlov <newpavlov@gmail.com>
Austin Seipp <mad.one@gmail.com> <as@hacks.yi.org>
Ayaz Hafiz <ayaz.hafiz.1@gmail.com>
Aydin Kim <ladinjin@hanmail.net> aydin.kim <aydin.kim@samsung.com>
Ayush Mishra <ayushmishra2005@gmail.com>
Ashley Mannix <kodraus@hey.com> <ashleymannix@live.com.au>
asrar <aszenz@gmail.com>
b-naber <bn263@gmx.de>
b-naber <bn263@gmx.de> <b_naber@gmx.de>
BaoshanPang <pangbw@gmail.com>
Barosl Lee <vcs@barosl.com> Barosl LEE <github@barosl.com>
Bastian Kersting <bastian@cmbt.de>
Bastien Orivel <eijebong@bananium.fr>
Ben Alpert <ben@benalpert.com> <spicyjalapeno@gmail.com>
Ben Lewis <benlewisj@gmail.com>
Ben Sago <ogham@users.noreply.github.com>
Ben Sago <ogham@users.noreply.github.com> <ogham@bsago.me>
Ben Striegel <ben.striegel@gmail.com>
Benjamin Jackman <ben@jackman.biz>
Benoît Cortier <benoit.cortier@fried-world.eu>
binarycat <binarycat@envs.net> lolbinarycat <dogedoge61+github@gmail.com>
binarycat <binarycat@envs.net> lolbinarycat <dogedoge61@gmail.com>
Bheesham Persaud <bheesham123@hotmail.com> Bheesham Persaud <bheesham.persaud@live.ca>
bjorn3 <17426603+bjorn3@users.noreply.github.com> <bjorn3@users.noreply.github.com>
bjorn3 <17426603+bjorn3@users.noreply.github.com> <bjorn3_gh@protonmail.com>
Björn Steinbrink <bsteinbr@gmail.com> <B.Steinbrink@gmx.de>
blake2-ppc <ulrik.sverdrup@gmail.com> <blake2-ppc>
Alejandra González <blyxyas@goose.love> blyxyas <blyxyas@gmail.com>
Alejandra González <blyxyas@goose.love> blyxyas <blyxyas@goose.love>
Alejandra González <blyxyas@goose.love> Alejandra González <blyxyas@gmail.com>
boolean_coercion <booleancoercion@gmail.com>
Boris Egorov <jightuse@gmail.com> <egorov@linux.com>
bors <bors@rust-lang.org> bors[bot] <26634292+bors[bot]@users.noreply.github.com>
bors <bors@rust-lang.org> bors[bot] <bors[bot]@users.noreply.github.com>
bors <bors@rust-lang.org> <122020455+rust-bors[bot]@users.noreply.github.com>
BoxyUwU <rust@boxyuwu.dev>
BoxyUwU <rust@boxyuwu.dev> <supbscripter@gmail.com>
Braden Nelson <moonheart08@users.noreply.github.com>
Brandon Sanderson <singingboyo@gmail.com> Brandon Sanderson <singingboyo@hotmail.com>
Brett Cannon <brett@python.org> Brett Cannon <brettcannon@users.noreply.github.com>
Brian Anderson <banderson@mozilla.com> <andersrb@gmail.com>
Brian Anderson <banderson@mozilla.com> <banderson@mozilla.org>
Brian Bowman <seeker14491@gmail.com>
Brian Cain <brian.cain@gmail.com>
Brian Dawn <brian.t.dawn@gmail.com>
Brian Leibig <brian@brianleibig.com> Brian Leibig <brian.leibig@gmail.com>
Caleb Cartwright <caleb.cartwright@outlook.com>
Caleb Jones <code@calebjones.net>
Noah Lev <camelidcamel@gmail.com>
Noah Lev <camelidcamel@gmail.com> <37223377+camelid@users.noreply.github.com>
Catherine <catherine3.flores@gmail.com>
Catherine <catherine3.flores@gmail.com> <catherine.3.flores@gmail.com>
cameron1024 <cameron.studdstreet@gmail.com>
Camille Gillot <gillot.camille@gmail.com>
Carl-Anton Ingmarsson <mail@carlanton.se> <ca.ingmarsson@gmail.com>
Carlo Teubner <carlo.teubner@gmail.com>
Carol (Nichols || Goulding) <carol.nichols@gmail.com> <193874+carols10cents@users.noreply.github.com>
Carol (Nichols || Goulding) <carol.nichols@gmail.com> <carol.nichols@gmail.com>
Carol (Nichols || Goulding) <carol.nichols@gmail.com> <cnichols@thinkthroughmath.com>
Carol Willing <carolcode@willingconsulting.com>
Chandler Deng <chandde@microsoft.com>
Charles Lew <crlf0710@gmail.com> CrLF0710 <crlf0710@gmail.com>
Chris C Cerami <chrisccerami@users.noreply.github.com> Chris C Cerami <chrisccerami@gmail.com>
Chris Denton <chris@chrisdenton.dev> <christophersdenton@gmail.com>
Chris Denton <chris@chrisdenton.dev> Chris Denton <ChrisDenton@users.noreply.github.com>
Chris Gregory <czipperz@gmail.com>
Chris Pardy <chrispardy36@gmail.com>
Chris Pressey <cpressey@gmail.com>
Chris Thorn <chris@thorn.co> Chris Thorn <thorn@thoughtbot.com>
Chris Vittal <christopher.vittal@gmail.com> Christopher Vittal <christopher.vittal@gmail.com>
Christiaan Dirkx <christiaan@dirkx.email> <christiaan@dirkx.com>
Christiaan Dirkx <christiaan@dirkx.email> CDirkx <christiaan@dirkx.com>
Christiaan Dirkx <christiaan@dirkx.email> CDirkx <christiaan@dirkx.email>
Christian Poveda <git@pvdrz.com> <christianpoveda@protonmail.com>
Christian Poveda <git@pvdrz.com> <cn.poveda.ruiz@gmail.com>
Christian Poveda <git@pvdrz.com> <z1mvader@protonmail.com>
Christian Poveda <git@pvdrz.com> <cpovedar@fnal.gov>
Christian Poveda <git@pvdrz.com> <git@christianpoveda.xyz>
Christian Poveda <git@pvdrz.com> <31802960+christianpoveda@users.noreply.github.com>
Christian Poveda <git@pvdrz.com> <christianpoveda@uhura.edef.eu>
Christian Vallentin <vallentinsource@gmail.com>
Christoffer Buchholz <chris@chrisbuchholz.me>
Clark Gaebel <cg.wowus.cg@gmail.com> <cgaebel@mozilla.com>
Clement Miao <clementmiao@gmail.com>
Clément Renault <renault.cle@gmail.com>
Cliff Dyer <jcd@sdf.org>
Clinton Ryan <clint.ryan3@gmail.com>
Taylor Cramer <cramertaylorj@gmail.com> <cramertj@google.com>
ember arlynx <ember@lunar.town> <corey@octayn.net>
Crazycolorz5 <Crazycolorz5@gmail.com>
Crystal Durham <cad97@cad97.com>
csmoe <35686186+csmoe@users.noreply.github.com>
Cyryl Płotnicki <cyplo@cyplo.net>
Damien Schoof <damien.schoof@gmail.com>
Dan Gohman <dev@sunfishcode.online> <sunfish@mozilla.com>
Dan Robertson <danlrobertson89@gmail.com>
Daniel Campoverde <alx741@riseup.net>
Daniel J Rollins <drollins@financialforce.com>
Daniel Mueller <deso@posteo.net>
Daniel Ramos <dan@daramos.com>
Daniele D'Orazio <d.dorazio96@gmail.com>
Dante Broggi <34220985+Dante-Broggi@users.noreply.github.com>
David Carlier <devnexen@gmail.com>
David Klein <david.klein@baesystemsdetica.com>
David Manescu <david.manescu@gmail.com> <dman2626@uni.sydney.edu.au>
David Ross <daboross@daboross.net>
David Wood <david@davidtw.co> <Q0KPU0H1YOEPHRY1R2SN5B5RL@david.davidtw.co>
David Wood <david@davidtw.co> <agile.lion3441@fuligin.ink>
David Wood <david@davidtw.co> <david.wood2@arm.com>
David Wood <david@davidtw.co> <david.wood@huawei.com>
Deadbeef <ent3rm4n@gmail.com>
Deadbeef <ent3rm4n@gmail.com> <fee1-dead-beef@protonmail.com>
dependabot[bot] <dependabot[bot]@users.noreply.github.com> <27856297+dependabot-preview[bot]@users.noreply.github.com>
dependabot[bot] <dependabot[bot]@users.noreply.github.com> <49699333+dependabot[bot]@users.noreply.github.com>
dependabot[bot] <dependabot[bot]@users.noreply.github.com> <dependabot-preview[bot]@users.noreply.github.com>
dependabot[bot] <dependabot[bot]@users.noreply.github.com> <support@dependabot.com>
Derek Chiang <derekchiang93@gmail.com> Derek Chiang (Enchi Jiang) <derekchiang93@gmail.com>
DeveloperC <DeveloperC@protonmail.com>
Devin Ragotzy <devin.ragotzy@gmail.com>
Dharma Saputra Wijaya <dswijj@gmail.com>
Diggory Hardy <diggory.hardy@gmail.com> Diggory Hardy <github@dhardy.name>
Dileep Bapat <dileepbapat@gmail.com>
Donough Liu <ldm2993593805@163.com> <donoughliu@gmail.com>
Donough Liu <ldm2993593805@163.com> DingMing Liu <liudingming@bupt.edu.cn>
Dustin Bensing <dustin.bensing@googlemail.com>
DutchGhost <kasper199914@gmail.com>
Dylan Braithwaite <dylanbraithwaite1@gmail.com> <mail@dylanb.me>
Dylan DPC <dylan.dpc@gmail.com>
Dylan MacKenzie <ecstaticmorse@gmail.com>
Dzmitry Malyshau <kvarkus@gmail.com>
E. Dunham <edunham@mozilla.com> edunham <edunham@mozilla.com>
Ed Barnard <eabarnard@gmail.com>
Eduard-Mihai Burtescu <edy.burt@gmail.com>
Eduard-Mihai Burtescu <edy.burt@gmail.com> <eddyb@lyken.rs>
Eduardo Bautista <me@eduardobautista.com> <=>
Eduardo Bautista <me@eduardobautista.com> <mail@eduardobautista.com>
Eduardo Broto <ebroto@tutanota.com>
Edward Shen <code@eddie.sh> <xes@meta.com>
Jacob Finkelman <eh2406@wayne.edu>
Jacob Finkelman <eh2406@wayne.edu> <YeomanYaacov@gmail.com>
Jacob Finkelman <eh2406@wayne.edu> <jfinkelm@amazon.com>
Jacob Finkelman <eh2406@wayne.edu> <finkelman@semcog.org>
Jacob Finkelman <eh2406@wayne.edu> <Eh2406@users.noreply.github.com>
Elliott Slaughter <elliottslaughter@gmail.com> <eslaughter@mozilla.com>
Elly Fong-Jones <elly@leptoquark.net>
Eric Holk <eric.holk@gmail.com> <eholk@cs.indiana.edu>
Eric Holk <eric.holk@gmail.com> <eholk@mozilla.com>
Eric Holk <eric.holk@gmail.com> <eric@theincredibleholk.org>
Eric Holk <eric.holk@gmail.com> <ericholk@microsoft.com>
Eric Holmes <eric@ejholmes.net>
Eric Reed <ecreed@cs.washington.edu> <ereed@mozilla.com>
Erick Tryzelaar <erick.tryzelaar@gmail.com> <etryzelaar@iqt.org>
Erik Desjardins <erikdesjardins@users.noreply.github.com>
Erik Jensen <erikjensen@rkjnsn.net>
Erin Power <xampprocky@gmail.com>
Erin Power <xampprocky@gmail.com> <xampprocky@icloud.com>
Erin Power <xampprocky@gmail.com> <theaaronepower@gmail.com>
Erin Power <xampprocky@gmail.com> <Aaronepower@users.noreply.github.com>
Esteban Küber <esteban@kuber.com.ar>
Esteban Küber <esteban@kuber.com.ar> <esteban@commure.com>
Esteban Küber <esteban@kuber.com.ar> <estebank@users.noreply.github.com>
Esteban Küber <esteban@kuber.com.ar> <github@kuber.com.ar>
Ethan Dagner <napen123@gmail.com>
Evgeny Sologubov
F001 <changchun.fan@qq.com>
Fabian Kössel <fkjogu@users.noreply.github.com>
Falco Hirschenberger <falco.hirschenberger@gmail.com> <hirschen@itwm.fhg.de>
Felix S. Klock II <pnkfelix@pnkfx.org> Felix S Klock II <pnkfelix@pnkfx.org>
Felix S. Klock II <pnkfelix@pnkfx.org> <pnkfelix@mozilla.com>
Félix Saparelli <felix@passcod.name>
Flaper Fesp <flaper87@gmail.com>
Florian Berger <fbergr@gmail.com>
Florian Gilcher <florian.gilcher@asquera.de> <flo@andersground.net>
Florian Wilkens <mrfloya_github@outlook.com> Florian Wilkens <floya@live.de>
François Mockers <mockersf@gmail.com>
Frank Steffahn <fdsteffahn@gmail.com> <frank.steffahn@stu.uni-kiel.de>
Fridtjof Stoldt <xFrednet@gmail.com>
fukatani <nannyakannya@gmail.com>
Fuqiao Xue <xfq.free@gmail.com>
Gareth Daniel Smith <garethdanielsmith@gmail.com> gareth <gareth@gareth-N56VM.(none)>
Gareth Daniel Smith <garethdanielsmith@gmail.com> Gareth Smith <garethdanielsmith@gmail.com>
Gauri Kholkar <f2013002@goa.bits-pilani.ac.in>
Georges Dubus <georges.dubus@gmail.com> <georges.dubus@compiletoi.net>
Ghost <ghost> <jonasschievink@gmail.com>
Ghost <ghost> <jonas.schievink@ferrous-systems.com>
Ghost <ghost> <jonas@schievink.net>
Ghost <ghost> <Jonas.Schievink@sony.com>
Giles Cope <gilescope@gmail.com>
Glen De Cauwsemaecker <decauwsemaecker.glen@gmail.com>
Graham Fawcett <graham.fawcett@gmail.com> Graham Fawcett <fawcett@uwindsor.ca>
Graydon Hoare <graydon@pobox.com> Graydon Hoare <graydon@mozilla.com>
Greg V <greg@unrelenting.technology>
Gregor Peach <gregorpeach@gmail.com>
Grzegorz Bartoszek <grzegorz.bartoszek@thaumatec.com>
Guanqun Lu <guanqun.lu@gmail.com>
Guillaume Gomez <guillaume1.gomez@gmail.com>
Guillaume Gomez <guillaume1.gomez@gmail.com> ggomez <ggomez@ggo.ifr.lan>
Guillaume Gomez <guillaume1.gomez@gmail.com> Guillaume Gomez <ggomez@ggo.ifr.lan>
Guillaume Gomez <guillaume1.gomez@gmail.com> Guillaume Gomez <guillaume.gomez@huawei.com>
Guillaume Gomez <guillaume1.gomez@gmail.com> Guillaume Gomez <contact@guillaume-gomez.fr>
gnzlbg <gonzalobg88@gmail.com> <gnzlbg@users.noreply.github.com>
hamidreza kalbasi <hamidrezakalbasi@protonmail.com>
Hanna Kruppe <hanna.kruppe@gmail.com> <robin.kruppe@gmail.com>
Heather <heather@cynede.net> <Cynede@Gentoo.org>
Heather <heather@cynede.net> <Heather@cynede.net>
Herman J. Radtke III <herman@hermanradtke.com> Herman J. Radtke III <hermanradtke@gmail.com>
Hirochika Matsumoto <git@hkmatsumoto.com> <matsujika@gmail.com>
Hrvoje Nikšić <hniksic@gmail.com>
Hsiang-Cheng Yang <rick68@users.noreply.github.com>
Huon Wilson <dbau.pp@gmail.com>
Huon Wilson <dbau.pp@gmail.com> <wilson.huon@gmail.com>
Ian Jackson <ijackson@chiark.greenend.org.uk> <ian.jackson@citrix.com>
Ian Jackson <ijackson@chiark.greenend.org.uk> <ijackson+github@slimy.greenend.org.uk>
Ian Jackson <ijackson@chiark.greenend.org.uk> <iwj@xenproject.org>
Ibraheem Ahmed <ibraheem@ibraheem.ca> <ibrah1440@gmail.com>
Ilyong Cho <ilyoan@gmail.com>
inquisitivecrystal <22333129+inquisitivecrystal@users.noreply.github.com>
Irina Popa <irinagpopa@gmail.com>
Ivan Ivaschenko <defuz.net@gmail.com>
ivan tkachenko <me@ratijas.tk>
J. J. Weber <jjweber@gmail.com>
Jack Huey <jackh726@gmail.com> <jack.huey@umassmed.edu>
Jack Huey <jackh726@gmail.com> <31162821+jackh726@users.noreply.github.com>
Jacob <jacob.macritchie@gmail.com>
Jacob Hoffman-Andrews <rust@hoffman-andrews.com> <github@hoffman-andrews.com>
Jacob Greenfield <xales@naveria.com>
Jacob Pratt <jacob@jhpratt.dev> <the.z.cuber@gmail.com>
Jacob Pratt <jacob@jhpratt.dev> <jacopratt@tesla.com>
Jake Goulding <jake.goulding@integer32.com>
Jake Goulding <jake.goulding@integer32.com> <jake.goulding@gmail.com>
Jake Goulding <jake.goulding@integer32.com> <shepmaster@mac.com>
Jake Vossen <jake@vossen.dev>
Jakob Degen <jakob.e.degen@gmail.com> <jakob@degen.com>
Jakob Lautrup Nysom <jako3047@gmail.com>
Jakub Adam Wieczorek <jakub.adam.wieczorek@gmail.com>
Jakub Adam Wieczorek <jakub.adam.wieczorek@gmail.com> <jakub.bukaj@yahoo.com>
Jakub Adam Wieczorek <jakub.adam.wieczorek@gmail.com> <jakub@jakub.cc>
Jakub Adam Wieczorek <jakub.adam.wieczorek@gmail.com> <jakubw@jakubw.net>
Jakub Adam Wieczorek <jakub.adam.wieczorek@gmail.com> <ja.wieczorek@student.uw.edu.pl>
Jakub Adam Wieczorek <jakub.adam.wieczorek@gmail.com> <software@jacobadam.net>
Jakub Beránek <berykubik@gmail.com> <jakub.beranek@vsb.cz>
James [Undefined] <tpzker@thepuzzlemaker.info>
James Deng <cnjamesdeng@gmail.com> <cnJamesDeng@gmail.com>
James Hinshelwood <jameshinshelwood1@gmail.com> <james.hinshelwood@bigpayme.com>
James Miller <bladeon@gmail.com> <james@aatch.net>
James Perry <james.austin.perry@gmail.com>
James Sanderson <zofrex@gmail.com>
Jamie Hill-Daniel <jamie@hill-daniel.co.uk> <clubby789@gmail.com>
Jana Dönszelmann <jana@donsz.nl>
Jana Dönszelmann <jana@donsz.nl> <jonathan@donsz.nl>
Jana Dönszelmann <jana@donsz.nl> <jonabent@gmail.com>
Jane Lusby <jlusby42@gmail.com> <jlusby@yaah.dev>
Jan-Erik Rediger <janerik@fnordig.de> <badboy@archlinux.us>
Jaro Fietz <jaro.fietz@gmx.de>
Jason Fager <jfager@gmail.com>
Jason Liquorish <jason@liquori.sh> <Bassetts@users.noreply.github.com>
Jason Orendorff <jorendorff@mozilla.com> <jason.orendorff@gmail.com>
Jason Orendorff <jorendorff@mozilla.com> <jason@mozmac-2.local>
Jason Toffaletti <toffaletti@gmail.com> Jason Toffaletti <jason@topsy.com>
Jauhien Piatlicki <jauhien@gentoo.org> Jauhien Piatlicki <jpiatlicki@zertisa.com>
Jay True <glacjay@gmail.com>
Jeremy Letang <letang.jeremy@gmail.com>
Jeremy Soller <jackpot51@gmail.com> <jeremy@system76.com>
Jeremy Sorensen <jeremy.a.sorensen@gmail.com>
Jeremy Stucki <dev@jeremystucki.ch> <stucki.jeremy@gmail.com>
Jeremy Stucki <dev@jeremystucki.ch> <jeremy@myelin.ch>
Jeremy Stucki <dev@jeremystucki.ch>
Jerry Hardee <hardeejj9@gmail.com>
Jesús Rubio <jesusprubio@gmail.com>
Jethro Beekman <github@jbeekman.nl>
Jian Zeng <knight42@mail.ustc.edu.cn>
Jieyou Xu <jieyouxu@outlook.com>
Jieyou Xu <jieyouxu@outlook.com> <39484203+jieyouxu@users.noreply.github.com>
Jihyun Yu <j.yu@navercorp.com> <yjh0502@gmail.com>
Jihyun Yu <j.yu@navercorp.com> jihyun <jihyun@nablecomm.com>
Jihyun Yu <j.yu@navercorp.com> Jihyun Yu <jihyun@nclab.kaist.ac.kr>
João Oliveira <hello@jxs.pt> joaoxsouls <joaoxsouls@gmail.com>
joboet <jonasboettiger@icloud.com>
Johann Hofmann <git@johann-hofmann.com> Johann <git@johann-hofmann.com>
John Clements <clements@racket-lang.org> <clements@brinckerhoff.org>
John Hodge <acessdev@gmail.com> John Hodge <tpg@mutabah.net>
John Hörnvall <trolledwoods@gmail.com>
John Kåre Alsaker <john.kare.alsaker@gmail.com>
John Kåre Alsaker <john.kare.alsaker@gmail.com> <zoxc32@gmail.com>
John Talling <inrustwetrust@users.noreply.github.com>
John Van Enk <vanenkj@gmail.com>
Jon Gjengset <jon@thesquareplanet.com> <jongje@amazon.com>
Jonas Tepe <jonasprogrammer@gmail.com>
Jonathan Bailey <jbailey@mozilla.com> <jbailey@jbailey-20809.local>
Jonathan Chan Kwan Yin <sofe2038@gmail.com>
Jonathan L <Xmasreturns@users.noreply.github.com>
Jonathan S <gereeter@gmail.com> Jonathan S <gereeter+code@gmail.com>
Jonathan Sieber <mail@strfry.org>
Jonathan Turner <probata@hotmail.com>
Jorge Aparicio <japaric@linux.com> <japaricious@gmail.com>
Josef Reinhard Brandl <mail@josefbrandl.de>
Joseph Dunne <jd@lambda.tech>
Joseph Martin <pythoner6@gmail.com>
Joseph Richey <joerichey@google.com>
Joseph T. Lyons <JosephTLyons@gmail.com>
Joseph T. Lyons <JosephTLyons@gmail.com> <josephtlyons@gmail.com>
Joseph T. Lyons <JosephTLyons@gmail.com> <JosephTLyons@users.noreply.github.com>
Josh Cotton <jcotton42@outlook.com>
Josh Driver <keeperofdakeys@gmail.com>
Josh Holmer <jholmer.in@gmail.com>
Josh Stone <cuviper@gmail.com> <jistone@redhat.com>
Josh Stone <cuviper@gmail.com> <jistone@fedoraproject.org>
Julia Ryan <juliaryan3.14@gmail.com> <josephryan3.14@gmail.com>
Jubilee Young <workingjubilee@gmail.com> <46493976+workingjubilee@users.noreply.github.com>
Jubilee Young <workingjubilee@gmail.com>
Julian Knodt <julianknodt@gmail.com>
jumbatm <jumbatm@gmail.com> <30644300+jumbatm@users.noreply.github.com>
Junyoung Cho <june0.cho@samsung.com>
Jynn Nelson <github@jyn.dev> <rust@jyn.dev>
Jynn Nelson <github@jyn.dev> <jyn514@gmail.com>
Jynn Nelson <github@jyn.dev> <joshua@yottadb.com>
Jynn Nelson <github@jyn.dev> <jyn.nelson@redjack.com>
Jynn Nelson <github@jyn.dev> <jnelson@cloudflare.com>
Jynn Nelson <github@jyn.dev>
Jyun-Yan You <jyyou.tw@gmail.com> <jyyou@cs.nctu.edu.tw>
Kalita Alexey <kalita.alexey@outlook.com>
Kampfkarren <boynedmaster@gmail.com>
Kang Seonghoon <kang.seonghoon@mearie.org> <public+git@mearie.org>
Karim Snj <karim.snj@gmail.com>
Katze <binary@benary.org>
Keegan McAllister <mcallister.keegan@gmail.com> <kmcallister@mozilla.com>
Kerem Kat <keremkat@gmail.com>
Kevin Butler <haqkrs@gmail.com>
Kevin Reid <kpreid@switchb.org> <kpreid@google.com>
Kevin Jiang <kwj2104@columbia.edu>
Kornel Lesiński <kornel@geekhood.net>
Krishna Sai Veera Reddy <veerareddy@email.arizona.edu>
Kyeongwoon Lee <kyeongwoon.lee@samsung.com>
Kyle J Strand <batmanaod@gmail.com> <BatmanAoD@users.noreply.github.com>
Kyle J Strand <batmanaod@gmail.com> <kyle.j.strand@gmail.com>
Kyle J Strand <batmanaod@gmail.com> <kyle.strand@pieinsurance.com>
Kyle J Strand <batmanaod@gmail.com> <kyle.strand@rms.com>
Laurențiu Nicola <lnicola@dend.ro> Laurentiu Nicola <lnicola@dend.ro>
Laurențiu Nicola <lnicola@dend.ro> <lnicola@users.noreply.github.com>
lcnr <rust@lcnr.de> <bastian_kauschke@hotmail.de>
Lee Jeffery <leejeffery@gmail.com> Lee Jeffery <lee@leejeffery.co.uk>
Lee Wondong <wdlee91@gmail.com>
lengyijun <sjtu5140809011@gmail.com>
Lennart Kudling <github@kudling.de>
Léo Lanteri Thauvin <leseulartichaut@gmail.com>
Léo Lanteri Thauvin <leseulartichaut@gmail.com> <38361244+LeSeulArtichaut@users.noreply.github.com>
Léo Testard <leo.testard@gmail.com>
León Orell Valerian Liehr <me@fmease.dev> <liehr.exchange@gmx.net>
Leonardo Yvens <leoyvens@gmail.com>
Liigo Zhuang <liigo@qq.com>
Lily Ballard <lily@ballards.net> <kevin@sb.org>
Lindsey Kuper <lindsey@composition.al> <lindsey@rockstargirl.org>
Lindsey Kuper <lindsey@composition.al> <lkuper@mozilla.com>
Liu Dingming <liudingming@bytedance.com>
Loo Maclin <loo.maclin@protonmail.com>
Urgau <urgau@numericable.fr>
Urgau <urgau@numericable.fr> <lolo.branstett@numericable.fr>
Urgau <urgau@numericable.fr> <3616612+Urgau@users.noreply.github.com>
Lucy <luxx4x@protonmail.com>
Lukas H. <lukaramu@users.noreply.github.com>
Lukas Lueg <lukas.lueg@gmail.com>
Lukas Wirth <lukastw97@gmail.com> <lukas.wirth@ferrous-systems.com>
Lukas Wirth <lukastw97@gmail.com> <me@lukaswirth.dev>
Luke Metz <luke.metz@students.olin.edu>
Luqman Aden <me@luqman.ca> <laden@csclub.uwaterloo.ca>
Luqman Aden <me@luqman.ca> <laden@mozilla.com>
Luqman Aden <me@luqman.ca> <rust@luqman.ca>
Lzu Tao <taolzu@gmail.com>
Maik Klein <maikklein@googlemail.com>
Maja Kądziołka <maya@compilercrim.es> <github@compilercrim.es>
Maja Kądziołka <maya@compilercrim.es> <kuba@kadziolka.net>
Makai <m4kai410@gmail.com>
Malo Jaffré <jaffre.malo@gmail.com>
Manish Goregaokar <manishsmail@gmail.com>
Mara Bos <m-ou.se@m-ou.se>
Marcell Pardavi <marcell.pardavi@gmail.com>
Marco Ieni <marcoieni@rustfoundation.org> <11428655+MarcoIeni@users.noreply.github.com>
Marcus Klaas de Vries <mail@marcusklaas.nl>
Margaret Meyerhofer <mmeyerho@andrew.cmu.edu> <mmeyerho@andrew>
Marijn Schouten <mhkbst@gmail.com> <hkBst@users.noreply.github.com>
Mark Mansi <markm@cs.wisc.edu>
Mark Mansi <markm@cs.wisc.edu> <m.mim95@gmail.com>
Mark Rousskov <mark.simulacrum@gmail.com>
Mark Sinclair <mark.edward.x@gmail.com>
Mark Sinclair <mark.edward.x@gmail.com> =Mark Sinclair <=125axel125@gmail.com>
Markus Legner <markus@legner.ch>
Markus Westerlind <marwes91@gmail.com> Markus <marwes91@gmail.com>
Martin Carton <cartonmartin+git@gmail.com>
Martin Carton <cartonmartin+git@gmail.com> <cartonmartin@gmail.com>
Martin Habovštiak <martin.habovstiak@gmail.com>
Martin Hafskjold Thoresen <martinhath@gmail.com>
Martin Nordholts <martin.nordholts@codetale.se> <enselic@gmail.com>
Matej Lach <matej.lach@gmail.com> Matej Ľach <matej.lach@gmail.com>
Mateusz Mikuła <oss@mateuszmikula.dev>
Mateusz Mikuła <oss@mateuszmikula.dev> <mati865@gmail.com>
Mateusz Mikuła <oss@mateuszmikula.dev> <mati865@users.noreply.github.com>
Mateusz Mikuła <oss@mateuszmikula.dev> <matti@marinelayer.io>
Matt Brubeck <mbrubeck@limpet.net> <mbrubeck@cs.hmc.edu>
Matthew Auld <matthew.auld@intel.com>
Matthew Jasper <mjjasper1@gmail.com>
Matthew Kraai <kraai@ftbfs.org>
Matthew Kraai <kraai@ftbfs.org> <matt.kraai@abbott.com>
Matthew Kraai <kraai@ftbfs.org> <mkraai@its.jnj.com>
Matthew McPherrin <matthew@mcpherrin.ca> <matt@mcpherrin.ca>
Matthew Tran <0e4ef622@gmail.com>
Matthijs Hofstra <thiezz@gmail.com>
Max Sharnoff <github@max.sharnoff.org>
Max Wase <max.vvase@gmail.com>
Mazdak Farrokhzad <twingoow@gmail.com>
Meade Kincke <thedarkula2049@gmail.com>
Melody Horn <melody@boringcactus.com> <mathphreak@gmail.com>
Mendes <pedro.mendes.26@gmail.com>
mental <m3nta1@yahoo.com>
mibac138 <5672750+mibac138@users.noreply.github.com>
Michael Howell <michael@notriddle.com> <notriddle+rust-mod@protonmail.com>
Michael Williams <m.t.williams@live.com>
Michael Woerister <michaelwoerister@posteo> <michaelwoerister@gmail>
Michael Woerister <michaelwoerister@posteo> <michaelwoerister@gmail.com>
Michael Woerister <michaelwoerister@posteo> <michaelwoerister@users.noreply.github.com>
Michael Woerister <michaelwoerister@posteo> <michaelwoerister@posteo.net>
Michael Zhang <hmperson1@gmail.com>
Michał Krasnoborski <mkrdln@gmail.com>
Michiel De Muynck <michieldemuynck@gmail.com>
Mickaël Raybaud-Roig <raybaudroigm@gmail.com> m-r-r <raybaudroigm@gmail.com>
Mikhail Babenko <misha-babenko@yandex.ru>
Milan Landaverde <milanlandaverde@gmail.com>
mjptree <michael.prantl@hotmail.de>
Ms2ger <ms2ger@gmail.com> <Ms2ger@gmail.com>
msizanoen1 <qtmlabs@protonmail.com>
Mukilan Thiagarajan <mukilanthiagarajan@gmail.com>
Nadrieril Feneanar <Nadrieril@users.noreply.github.com>
Nadrieril Feneanar <Nadrieril@users.noreply.github.com> <nadrieril+rust@gmail.com>
Nadrieril Feneanar <Nadrieril@users.noreply.github.com> <nadrieril+git@gmail.com>
NAKASHIMA, Makoto <makoto.nksm+github@gmail.com> <makoto.nksm@gmail.com>
NAKASHIMA, Makoto <makoto.nksm+github@gmail.com> <makoto.nksm+github@gmail.com>
Nathan Ringo <remexre@gmail.com>
Nathan West <Lucretiel@gmail.com> <lucretiel@gmail.com>
Nathan Whitaker <nathan.whitaker01@gmail.com>
Nathan Wilson <wilnathan@gmail.com>
Nathaniel Hamovitz <18648574+nhamovitz@users.noreply.github.com>
Nathaniel Herman <nherman@post.harvard.edu> Nathaniel Herman <nherman@college.harvard.edu>
Neil Pankey <npankey@gmail.com> <neil@wire.im>
Ngo Iok Ui (Wu Yu Wei) <wusyong9104@gmail.com>
Nicholas Baron <nicholas.baron.ten@gmail.com>
Nicholas Bishop <nbishop@nbishop.net> <nicholasbishop@gmail.com>
Nicholas Bishop <nbishop@nbishop.net> <nicholasbishop@google.com>
Nicholas Nethercote <n.nethercote@gmail.com> <nnethercote@apple.com>
Nicholas Nethercote <n.nethercote@gmail.com> <nnethercote@mozilla.com>
Nick Cameron <nrc@ncameron.org> <ncameron@mozilla.com>
Nick Fitzgerald <fitzgen@gmail.com> <nfitzgerald@mozilla.com>
Nick Platt <platt.nicholas@gmail.com>
Niclas Schwarzlose <15schnic@gmail.com>
Nicolas Abram <abramlujan@gmail.com>
Nicole Mazzuca <npmazzuca@gmail.com>
Niko Matsakis <rust@nikomatsakis.com>
Niko Matsakis <rust@nikomatsakis.com> <niko@alum.mit.edu>
Niko Matsakis <rust@nikomatsakis.com> <nikomat@amazon.com>
Noratrieb <48135649+Noratrieb@users.noreply.github.com>
Noratrieb <48135649+Noratrieb@users.noreply.github.com> <48135649+Nilstrieb@users.noreply.github.com>
Noratrieb <48135649+Noratrieb@users.noreply.github.com> <nilstrieb@gmail.com>
Noratrieb <48135649+Noratrieb@users.noreply.github.com> <rust@noratrieb.dev>
Noratrieb <48135649+Noratrieb@users.noreply.github.com> <nora@noratrieb.dev>
Nif Ward <nif.ward@gmail.com>
Nika Layzell <nika@thelayzells.com> <michael@thelayzells.com>
Nikita Popov <nikita.ppv@gmail.com>
Nikita Popov <nikita.ppv@gmail.com> <npopov@redhat.com>
NODA Kai <nodakai@gmail.com>
Oğuz Ağcayazı <oguz.agcayazi@gmail.com> <oguz.agcayazi@gmail.com>
Oğuz Ağcayazı <oguz.agcayazi@gmail.com> <ouz.agz@gmail.com>
oliver <16816606+o752d@users.noreply.github.com>
Oliver Middleton <olliemail27@gmail.com> <ollie27@users.noreply.github.com>
Oliver Scherer <oli-obk@users.noreply.github.com> <git-spam-no-reply9815368754983@oli-obk.de>
Oliver Scherer <oli-obk@users.noreply.github.com> <git-spam9815368754983@oli-obk.de>
Oliver Scherer <oli-obk@users.noreply.github.com> <github333195615777966@oli-obk.de>
Oliver Scherer <oli-obk@users.noreply.github.com> <rust19446194516@oli-obk.de>
Oliver Scherer <oli-obk@users.noreply.github.com> <git-no-reply-9879165716479413131@oli-obk.de>
Oliver Scherer <oli-obk@users.noreply.github.com> <git1984941651981@oli-obk.de>
Oliver Scherer <oli-obk@users.noreply.github.com> <github35764891676564198441@oli-obk.de>
Oliver Scherer <oli-obk@users.noreply.github.com> <github6541940@oli-obk.de>
Oliver Scherer <oli-obk@users.noreply.github.com> <public.oliver.schneider@kit.edu>
Oliver Scherer <oli-obk@users.noreply.github.com> <oliver.schneider@kit.edu>
Oliver Scherer <oli-obk@users.noreply.github.com> <obk8176014uqher834@olio-obk.de>
Oliver Scherer <oli-obk@users.noreply.github.com> <rustc-contact@oli-obk.de>
Oliver Scherer <oli-obk@users.noreply.github.com>
Onur Özkan <onurozkan.dev@outlook.com> <contact@onurozkan.dev>
Onur Özkan <onurozkan.dev@outlook.com> <work@onurozkan.dev>
Onur Özkan <onurozkan.dev@outlook.com>
Ömer Sinan Ağacan <omeragacan@gmail.com>
Ophir LOJKINE <pere.jobs@gmail.com>
Ožbolt Menegatti <ozbolt.menegatti@gmail.com> gareins <ozbolt.menegatti@gmail.com>
Pankaj Chaudhary <pankajchaudhary172@gmail.com>
Paul Faria <paul_faria@ultimatesoftware.com> Paul Faria <Nashenas88@gmail.com>
Peer Aramillo Irizar <peer.aramillo.irizar@gmail.com> parir <peer.aramillo.irizar@gmail.com>
Peter Elmers <peter.elmers@yahoo.com> <peter.elmers@rice.edu>
Peter Liniker <peter.liniker+github@gmail.com>
Phil Dawes <phil@phildawes.net> Phil Dawes <pdawes@drw.com>
Phil Hansch <dev@phansch.net>
Philipp Brüschweiler <blei42@gmail.com> <blei42@gmail.com>
Philipp Brüschweiler <blei42@gmail.com> <bruphili@student.ethz.ch>
Philipp Krones <hello@philkrones.com>
Philipp Krones <hello@philkrones.com> <9744647+flip1995@users.noreply.github.com>
Philipp Krones <hello@philkrones.com> <philipp.krones@embecosm.com>
Philipp Krones <hello@philkrones.com> <uwdkn@student.kit.edu>
Philipp Matthias Schäfer <philipp.matthias.schaefer@posteo.de>
phosphorus <steepout@qq.com>
Pierre Krieger <pierre.krieger1708@gmail.com>
pierwill <pierwill@users.noreply.github.com> <19642016+pierwill@users.noreply.github.com>
Pietro Albini <pietro@pietroalbini.org> <pietro@pietroalbini.io>
Pietro Albini <pietro@pietroalbini.org> <pietro.albini@ferrous-systems.com>
Pradyumna Rahul <prkinformed@gmail.com>
Przemysław Wesołek <jest@go.art.pl> Przemek Wesołek <jest@go.art.pl>
r00ster <r00ster91@protonmail.com>
Rafael Ávila de Espíndola <respindola@mozilla.com> Rafael Avila de Espindola <espindola@dream.(none)>
rail <12975677+rail-rain@users.noreply.github.com>
Ralph Giles <giles@thaumas.net> Ralph Giles <giles@mozilla.com>
Ramkumar Ramachandra <r@artagnon.com> <artagnon@gmail.com>
Raphaël Huchet <rap2hpoutre@users.noreply.github.com>
rChaser53 <tayoshizawa29@gmail.com>
Redddy <rust@redddy.com>
Redddy <rust@redddy.com> <midzy0228@gmail.com>
Redddy <rust@redddy.com> <78539407+reddevilmidzy@users.noreply.github.com>
Rémy Rakic <remy.rakic@gmail.com>
Rémy Rakic <remy.rakic@gmail.com> <remy.rakic@arm.com>
Rémy Rakic <remy.rakic@gmail.com> <remy.rakic+github@gmail.com>
Rémy Rakic <remy.rakic@gmail.com> <remy.rakic+rust@gmail.com>
Rémy Rakic <remy.rakic@gmail.com> <lqd@users.noreply.github.com>
Renato Riccieri Santos Zannon <renato@rrsz.com.br>
Richard Diamond <wichard@vitalitystudios.com> <wichard@hahbee.co>
Ricky Hosfelt <ricky@hosfelt.io>
Ritiek Malhotra <ritiekmalhotra123@gmail.com>
Rob Arnold <robarnold@cs.cmu.edu>
Rob Arnold <robarnold@cs.cmu.edu> Rob Arnold <robarnold@68-26-94-7.pools.spcsdns.net>
Robert Collins <robertc@robertcollins.net> <robertc+rust@robertcollins.net>
Robert Foss <dev@robertfoss.se> robertfoss <dev@robertfoss.se>
Robert Gawdzik <rgawdzik@hotmail.com> Robert Gawdzik ☢ <rgawdzik@hotmail.com>
Robert Habermeier <rphmeier@gmail.com>
Robert Millar <robert.millar@cantab.net>
Roc Yu <rocyu@protonmail.com>
Rohit Joshi <rohitjoshi@users.noreply.github.com> Rohit Joshi <rohit.joshi@capitalone.com>
Ross Smyth <18294397+RossSmyth@users.noreply.github.com>
Ross Smyth <18294397+RossSmyth@users.noreply.github.com> <crs2017@gmail.com>
Ross Smyth <18294397+RossSmyth@users.noreply.github.com> <rsmyth@electrocraft.com>
Roxane Fruytier <roxane.fruytier@hotmail.com>
Rui <xiongmao86dev@sina.com>
Russell Johnston <rpjohnst@gmail.com>
Rustin-Liu <rustin.liu@gmail.com>
Rusty Blitzerr <rusty.blitzerr@gmail.com>
RustyYato <rustyyato@gmail.com>
Ruud van Asseldonk <dev@veniogames.com> Ruud van Asseldonk <ruuda@google.com>
Ryan Leung <rleungx@gmail.com>
Ryan Levick <me@ryanlevick.com> <rylev@users.noreply.github.com>
Ryan Scheel <ryan.havvy@gmail.com>
Ryan Sullivant <rsulli55@gmail.com>
Ryan Wiedemann <Ryan1729@gmail.com>
S Pradeep Kumar <gohanpra@gmail.com>
Sam Radhakrishnan <sk09idm@gmail.com>
Samuel Tardieu <sam@rfc1149.net>
Santiago Pastorino <spastorino@gmail.com>
Santiago Pastorino <spastorino@gmail.com> <santiago@wyeworks.com>
Sasha Pourcelot <sasha.pourcelot@protonmail.com> Sasha <sasha.pourcelot@protonmail.com>
Scott McMurray <scottmcm@users.noreply.github.com>
Scott McMurray <scottmcm@users.noreply.github.com> <smcmurray@acm.org>
Scott Olson <scott@solson.me> Scott Olson <scott@scott-olson.org>
Sean Gillespie <sean.william.g@gmail.com> swgillespie <sean.william.g@gmail.com>
Seiichi Uchida <seuchida@gmail.com>
Seonghyun Kim <sh8281.kim@samsung.com>
Shohei Wada <pc@wada314.jp>
Shotaro Yamada <sinkuu@sinkuu.xyz>
Shotaro Yamada <sinkuu@sinkuu.xyz> <sinkuu@users.noreply.github.com>
Shyam Sundar B <shyambaskaran@outlook.com>
Sidney Cammeresi <sac@cheesecake.org> <sac@readyset.io>
Simon Barber-Dueck <sbarberdueck@gmail.com> Simon BD <simon@server>
Simon Sapin <simon@exyr.org> <simon.sapin@exyr.org>
Simonas Kazlauskas <git@kazlauskas.me> Simonas Kazlauskas <github@kazlauskas.me>
Simonas Kazlauskas <git@kazlauskas.me> <simonas+t-compiler@kazlauskas.me>
Siva Prasad <sivaauturic@gmail.com>
Skgland <3877590+Skgland@users.noreply.github.com>
Skgland <3877590+Skgland@users.noreply.github.com> <bb-github@t-online.de>
Skgland <3877590+Skgland@users.noreply.github.com> <bennet.blessmann+github@googlemail.com>
Smittyvb <me@smitop.com>
Sophia June Turner <547158+sophiajt@users.noreply.github.com>
Sophia June Turner <547158+sophiajt@users.noreply.github.com> <547158+jntrnr@users.noreply.github.com>
Sophia June Turner <547158+sophiajt@users.noreply.github.com> <jonathandturner@users.noreply.github.com>
Sophia June Turner <547158+sophiajt@users.noreply.github.com> <jturner@mozilla.com>
Sophia June Turner <547158+sophiajt@users.noreply.github.com> <jonathan.d.turner@gmail.com>
Srinivas Reddy Thatiparthy <thatiparthysreenivas@gmail.com>
Stanislav Tkach <stanislav.tkach@gmail.com>
startling <tdixon51793@gmail.com>
Stepan Koltsov <stepan.koltsov@gmail.com> Stepan Koltsov <nga@yandex-team.ru>
Steve Klabnik <steve@steveklabnik.com>
Steven Fackler <sfackler@gmail.com> <sfackler@palantir.com>
Steven Malis <smmalis37@gmail.com>
Steven Stewart-Gallus <sstewartgallus00@langara.bc.ca> <sstewartgallus00@mylangara.bc.ca>
Stuart Pernsteiner <stuart@pernsteiner.org> Stuart Pernsteiner <spernsteiner@mozilla.com>
Suyash458 <suyash.behera458@gmail.com>
Sébastien Marie <semarie@online.fr>
Takashi Idobe <idobetakashi@gmail.com>
Takayuki Maeda <takoyaki0316@gmail.com>
Tamir Duberstein <tamird@gmail.com> Tamir Duberstein <tamird@squareup.com>
Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
Tau Gärtli <git@tau.garden> <ruben.schmidmeister@icloud.com>
Tero Hänninen <lgvz@users.noreply.github.com> Tero Hänninen <tejohann@kapsi.fi>
The8472 <git@infinite-source.de>
The8472 <git@infinite-source.de> <the8472.rs@infinite-source.de>
The8472 <git@infinite-source.de> <the8472@users.noreply.github.com>
Theo Belaire <theo.belaire@gmail.com> Theo Belaire <tyr.god.of.war.42@gmail.com>
Theodore Luo Wang <wangtheo662@gmail.com>
Thiago Pontes <email@thiago.me> thiagopnts <thiagopnts@gmail.com>
Thomas Bracht Laumann Jespersen <laumann.thomas@gmail.com>
Tibo Delor <delor.thibault@gmail.com>
Ticki <Ticki@users.noreply.github.com> Ticki <@>
Tim Brooks <brooks@cern.ch> Tim Brooks <tim.brooks@staples.com>
Tim Chevalier <chevalier@alum.wellesley.edu> <catamorphism@gmail.com>
Tim Diekmann <t.diekmann.3dv@gmail.com>
Tim Hutt <tdhutt@gmail.com>
Tim JIANG <p90eri@gmail.com>
Tim Joseph Dumol <tim@timdumol.com>
Tim Neumann <mail@timnn.me> <timnn@google.com>
Timothy Maloney <tmaloney@pdx.edu>
Tomas Koutsky <tomas@stepnivlk.net>
Tomasz Miąsko <tomasz.miasko@gmail.com>
Torsten Weber <TorstenWeber12@gmail.com>
Torsten Weber <TorstenWeber12@gmail.com> <torstenweber12@gmail.com>
Trevor Gross <tmgross@umich.edu> <t.gross35@gmail.com>
Trevor Gross <tmgross@umich.edu> <tgross@intrepidcs.com>
Trevor Spiteri <tspiteri@ieee.org> <trevor.spiteri@um.edu.mt>
Tshepang Mbambo <hopsi@tuta.io> <tshepang@gmail.com>
Ty Overby <ty@pre-alpha.com>
Tyler Mandry <tmandry@gmail.com> <tmandry@google.com>
Tyler Ruckinger <t.ruckinger@gmail.com>
Ulrik Sverdrup <bluss@users.noreply.github.com> bluss <bluss@users.noreply.github.com>
Ulrik Sverdrup <bluss@users.noreply.github.com> bluss <bluss>
Ulrik Sverdrup <bluss@users.noreply.github.com> Ulrik Sverdrup <root@localhost>
Vadim Petrochenkov <vadim.petrochenkov@gmail.com>
Vadim Petrochenkov <vadim.petrochenkov@gmail.com> petrochenkov <vadim.petrochenkov@gmail.com>
Val Markovic <val@markovic.io>
Valerii Lashmanov <vflashm@gmail.com>
Vitali Haravy <HumaneProgrammer@gmail.com> Vitali Haravy <humaneprogrammer@gmail.com>
Vitaly Shukela <vi0oss@gmail.com>
Waffle Lapkin <waffle.lapkin@gmail.com>
Waffle Lapkin <waffle.lapkin@gmail.com> <Waffle Lapkin>
Waffle Lapkin <waffle.lapkin@gmail.com> <waffle.lapkin@tasking.com>
Weihang Lo <me@weihanglo.tw>
Weihang Lo <me@weihanglo.tw> <weihanglo@users.noreply.github.com>
Wesley Wiser <wwiser@gmail.com> <wesleywiser@microsoft.com>
whitequark <whitequark@whitequark.org>
Will Crichton <crichton.will@gmail.com> <wcrichto@stanford.edu>
Will Crichton <crichton.will@gmail.com> <wcrichto@cs.stanford.edu>
William Ting <io@williamting.com> <william.h.ting@gmail.com>
Wim Looman <wim@nemo157.com> <rust-lang@nemo157.com>
Wim Looman <wim@nemo157.com> <git@nemo157.com>
Without Boats <woboats@gmail.com>
Without Boats <woboats@gmail.com> <boats@mozilla.com>
Xinye Tao <xy.tao@outlook.com>
Xuefeng Wu <benewu@gmail.com> Xuefeng Wu <xfwu@thoughtworks.com>
Xuefeng Wu <benewu@gmail.com> XuefengWu <benewu@gmail.com>
York Xiang <bombless@126.com>
Yoshua Wuyts <yoshuawuyts@gmail.com> <yoshuawuyts+github@gmail.com>
Yoshua Wuyts <yoshuawuyts@gmail.com> <2467194+yoshuawuyts@users.noreply.github.com>
Yotam Ofek <yotam.ofek@gmail.com> <yotamofek@microsoft.com>
Youngsoo Son <ysson83@gmail.com> <ysoo.son@samsung.com>
Youngsuk Kim <joseph942010@gmail.com>
Yuki Okushi <jtitor@2k36.org>
Yuki Okushi <jtitor@2k36.org> <huyuumi.dev@gmail.com>
Yuki Okushi <jtitor@2k36.org> <yuki.okushi@huawei.com>
Yuning Zhang <codeworm96@outlook.com>
Zach Pomerantz <zmp@umich.edu>
Zack Corr <zack@z0w0.me> <zackcorr95@gmail.com>
Zack Slayton <zack.slayton@gmail.com>
Zbigniew Siciarz <zbigniew@siciarz.net> Zbigniew Siciarz <antyqjon@gmail.com>
y21 <30553356+y21@users.noreply.github.com>
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# The Rust Code of Conduct
The Code of Conduct for this repository [can be found online](https://www.rust-lang.org/conduct.html).
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to Rust
Thank you for your interest in contributing to Rust! There are many ways to contribute
and we appreciate all of them.
The best way to get started is by asking for help in the [#new
members](https://rust-lang.zulipchat.com/#narrow/stream/122652-new-members)
Zulip stream. We have a lot of documentation below on how to get started on your own, but
the Zulip stream is the best place to *ask* for help.
Documentation for contributing to the compiler or tooling is located in the [Guide to Rustc
Development][rustc-dev-guide], commonly known as the [rustc-dev-guide]. Documentation for the
standard library is in the [Standard library developers Guide][std-dev-guide], commonly known as the [std-dev-guide].
## Making changes to subtrees and submodules
For submodules, changes need to be made against the repository corresponding to the
submodule, and not the main `rust-lang/rust` repository.
For subtrees, prefer sending a PR against the subtree's repository if it does
not need to be made against the main `rust-lang/rust` repository (e.g. a
rustc-dev-guide change that does not accompany a compiler change).
## About the [rustc-dev-guide]
The [rustc-dev-guide] is meant to help document how rustc –the Rust compiler– works,
as well as to help new contributors get involved in rustc development. It is recommended
that you read and understand the [rustc-dev-guide] before making a contribution. This guide
talks about the different bots in the Rust ecosystem, the Rust development tools,
bootstrapping, the compiler architecture, source code representation, and more.
## [Getting help](https://rustc-dev-guide.rust-lang.org/getting-started.html#asking-questions)
There are many ways you can get help when you're stuck. Rust has two platforms for this:
[internals] and [rust-zulip]. It is recommended to ask for help on
the [rust-zulip], but any of these platforms are great ways to seek help and even
find a mentor! You can learn more about asking questions and getting help in the
[Asking Questions](https://rustc-dev-guide.rust-lang.org/getting-started.html#asking-questions) chapter of the [rustc-dev-guide].
## Bug reports
Did a compiler error message tell you to come here? If you want to create an ICE report,
refer to [this section][contributing-bug-reports] and [open an issue][issue template].
[rustc-dev-guide]: https://rustc-dev-guide.rust-lang.org/
[std-dev-guide]: https://std-dev-guide.rust-lang.org/
[contributing-bug-reports]: https://rustc-dev-guide.rust-lang.org/contributing.html#bug-reports
[issue template]: https://github.com/rust-lang/rust/issues/new/choose
[internals]: https://internals.rust-lang.org
[rust-zulip]: https://rust-lang.zulipchat.com
================================================
FILE: COPYRIGHT
================================================
Short version for non-lawyers:
The Rust Project is dual-licensed under Apache 2.0 and MIT
terms.
It is Copyright (c) The Rust Project Contributors.
Longer version:
Copyrights in the Rust project are retained by their contributors. No
copyright assignment is required to contribute to the Rust project.
Some files include explicit copyright notices and/or license notices.
For full authorship information, see the version control history or
<https://thanks.rust-lang.org>
Except as otherwise noted, Rust is licensed under the Apache License, Version
2.0 <LICENSE-APACHE> or <http://www.apache.org/licenses/LICENSE-2.0> or the MIT
license <LICENSE-MIT> or <http://opensource.org/licenses/MIT>, at your option.
We track licenses for third-party materials in two ways:
* We use [REUSE](https://reuse.software) to track license information for
in-tree source files - both those authored by the Rust project and those
authored by third parties. See `REUSE.toml`, and our cached output of the
`reuse` tool which is committed to `license-metadata.json`.
* We use `cargo` to track license information for out-of-tree dependencies.
These two sources of information are collected by the tool `generate-copyright`
into a file called `COPYRIGHT.html`, which is shipped with each binary release
of Rust. Please refer to that file for detailed information as to the components of
any given Rust release. We also produce a `COPYRIGHT-library.html` file which only
covers the subset of source code used in the Rust Standard Library, as opposed
to the toolchain as a whole.
================================================
FILE: Cargo.toml
================================================
[workspace]
resolver = "2"
members = [
# tidy-alphabetical-start
"compiler/rustc",
"src/build_helper",
"src/rustc-std-workspace/rustc-std-workspace-alloc",
"src/rustc-std-workspace/rustc-std-workspace-core",
"src/rustc-std-workspace/rustc-std-workspace-std",
"src/rustdoc-json-types",
"src/tools/build-manifest",
"src/tools/bump-stage0",
"src/tools/cargotest",
"src/tools/clippy",
"src/tools/clippy/clippy_dev",
"src/tools/collect-license-metadata",
"src/tools/compiletest",
"src/tools/coverage-dump",
"src/tools/features-status-dump",
"src/tools/generate-copyright",
"src/tools/generate-windows-sys",
"src/tools/html-checker",
"src/tools/jsondocck",
"src/tools/jsondoclint",
"src/tools/linkchecker",
"src/tools/lint-docs",
"src/tools/lld-wrapper",
"src/tools/llvm-bitcode-linker",
"src/tools/miri",
"src/tools/miri/cargo-miri",
"src/tools/miropt-test-tools",
"src/tools/opt-dist",
"src/tools/remote-test-client",
"src/tools/remote-test-server",
"src/tools/replace-version-placeholder",
"src/tools/run-make-support",
"src/tools/rust-installer",
"src/tools/rustdoc",
"src/tools/rustdoc-gui-test",
"src/tools/rustdoc-themes",
"src/tools/rustfmt",
"src/tools/test-float-parse",
"src/tools/tidy",
"src/tools/tier-check",
"src/tools/unicode-table-generator",
"src/tools/unstable-book-gen",
"src/tools/wasm-component-ld",
"src/tools/x",
# tidy-alphabetical-end
]
exclude = [
"build",
"compiler/rustc_codegen_cranelift",
"compiler/rustc_codegen_gcc",
"src/bootstrap",
"tests/rustdoc-gui",
# HACK(eddyb) This hardcodes the fact that our CI uses `/checkout/obj`.
"obj",
]
[profile.release.package.rustc_thread_pool]
# The rustc fork of Rayon has deadlock detection code which intermittently
# causes overflows in the CI (see https://github.com/rust-lang/rust/issues/90227)
# so we turn overflow checks off for now.
# FIXME: This workaround should be removed once #90227 is fixed.
overflow-checks = false
# These are very thin wrappers around executing lld with the right binary name.
# Basically nothing within them can go wrong without having been explicitly logged anyway.
# We ship these in every rustc tarball and even after compression they add up
# to around 0.6MB of data every user needs to download (and 15MB on disk).
[profile.release.package.lld-wrapper]
debug = 0
strip = true
[profile.release.package.wasm-component-ld-wrapper]
debug = 0
strip = true
# Bigint libraries are slow without optimization, speed up testing
[profile.dev.package.test-float-parse]
opt-level = 3
# Speed up the binary as much as possible
[profile.release.package.test-float-parse]
opt-level = 3
codegen-units = 1
# FIXME: LTO cannot be enabled for binaries in a workspace
# <https://github.com/rust-lang/cargo/issues/9330>
# lto = true
# If you want to use a crate with local modifications, you can set a path or git dependency here.
# For git dependencies, also add your source to ALLOWED_SOURCES in src/tools/tidy/src/extdeps.rs.
#[patch.crates-io]
================================================
FILE: INSTALL.md
================================================
# Installing from Source
**Note: This document describes _building_ Rust _from source_.
This is _not recommended_ if you don't know what you're doing.
If you just want to install Rust, check out the [README.md](README.md) instead.**
The Rust build system uses a Python script called `x.py` to build the compiler,
which manages the bootstrapping process. It lives at the root of the project.
It also uses a file named `bootstrap.toml` to determine various configuration
settings for the build. You can see a full list of options in
`bootstrap.example.toml`.
The `x.py` command can be run directly on most Unix systems in the following
format:
```sh
./x.py <subcommand> [flags]
```
This is how the documentation and examples assume you are running `x.py`.
See the [rustc dev guide][rustcguidebuild] if this does not work on your
platform.
More information about `x.py` can be found by running it with the `--help` flag
or reading the [rustc dev guide][rustcguidebuild].
[gettingstarted]: https://rustc-dev-guide.rust-lang.org/getting-started.html
[rustcguidebuild]: https://rustc-dev-guide.rust-lang.org/building/how-to-build-and-run.html#what-is-xpy
## Dependencies
Make sure you have installed the dependencies:
* `python` 3 or 2.7
* `git`
* A C compiler (when building for the host, `cc` is enough; cross-compiling may
need additional compilers)
* `curl` (not needed on Windows)
* `pkg-config` if you are compiling on Linux and targeting Linux
* `libiconv` (already included with glibc on Debian-based distros)
To build Cargo, you'll also need OpenSSL (`libssl-dev` or `openssl-devel` on
most Unix distros).
If building LLVM from source, you'll need additional tools:
* `g++`, `clang++`, or MSVC with versions listed on
[LLVM's documentation](https://llvm.org/docs/GettingStarted.html#host-c-toolchain-both-compiler-and-standard-library)
* `ninja`, or GNU `make` 3.81 or later (Ninja is recommended, especially on
Windows)
* `cmake` version listed on [LLVM's documentation](https://llvm.org/docs/GettingStarted.html#software)
* `libstdc++-static` may be required on some Linux distributions such as Fedora
and Ubuntu
On tier 1 or tier 2 with host tools platforms, you can also choose to download
LLVM by setting `llvm.download-ci-llvm = true`.
Otherwise, you'll need LLVM installed and `llvm-config` in your path.
See [the rustc-dev-guide for more info][sysllvm].
[sysllvm]: https://rustc-dev-guide.rust-lang.org/building/new-target.html#using-pre-built-llvm
## Building on a Unix-like system
### Build steps
1. Clone the [source] with `git`:
```sh
git clone https://github.com/rust-lang/rust.git
cd rust
```
[source]: https://github.com/rust-lang/rust
2. Configure the build settings:
If you're unsure which build configurations to use and need a good default, you
can run the interactive `x.py setup` command. This will guide you through selecting
a config profile, setting up the LSP, configuring a Git hook, etc.
With `configure` script, you can handle multiple configurations in a single
command which is useful to create complex/advanced config files. For example:
```sh
./configure --build=aarch64-unknown-linux-gnu \
--enable-full-tools \
--enable-profiler \
--enable-sanitizers \
--enable-compiler-docs \
--set target.aarch64-unknown-linux-gnu.linker=clang \
--set target.aarch64-unknown-linux-gnu.ar=/rustroot/bin/llvm-ar \
--set target.aarch64-unknown-linux-gnu.ranlib=/rustroot/bin/llvm-ranlib \
--set llvm.link-shared=true \
--set llvm.thin-lto=true \
--set llvm.libzstd=true \
--set llvm.ninja=false \
--set rust.debug-assertions=false \
--set rust.jemalloc \
--set rust.bootstrap-override-lld=true \
--set rust.lto=thin \
--set rust.codegen-units=1
```
If you plan to use `x.py install` to create an installation, you can either
set `DESTDIR` environment variable to your custom directory path:
```bash
export DESTDIR=<path>
```
or set `prefix` and `sysconfdir` in the `[install]` section to your custom
directory path:
```sh
./configure --set install.prefix=<path> --set install.sysconfdir=<path>
```
When the `DESTDIR` environment variable is present, the `prefix` and
`sysconfdir` values are combined with the path from the `DESTDIR`
environment variable.
3. Build and install:
```sh
./x.py build && ./x.py install
```
When complete, `./x.py install` will place several programs into
`$PREFIX/bin`: `rustc`, the Rust compiler, and `rustdoc`, the
API-documentation tool. By default, it will also include [Cargo], Rust's
package manager. You can disable this behavior by passing
`--set build.extended=false` to `./configure`.
[Cargo]: https://github.com/rust-lang/cargo
### Configure and Make
This project provides a configure script and makefile (the latter of which just
invokes `x.py`). `./configure` is the recommended way to programmatically
generate a `bootstrap.toml`. `make` is not recommended (we suggest using `x.py`
directly), but it is supported and we try not to break it unnecessarily.
```sh
./configure
make && sudo make install
```
`configure` generates a `bootstrap.toml` which can also be used with normal `x.py`
invocations.
## Building on Windows
On Windows, we suggest using [winget] to install dependencies by running the
following in a terminal:
```powershell
winget install -e Python.Python.3
winget install -e Kitware.CMake
winget install -e Git.Git
```
Then edit your system's `PATH` variable and add: `C:\Program Files\CMake\bin`.
See
[this guide on editing the system `PATH`](https://www.java.com/en/download/help/path.html)
from the Java documentation.
[winget]: https://github.com/microsoft/winget-cli
There are two prominent ABIs in use on Windows: the native (MSVC) ABI used by
Visual Studio and the GNU ABI used by the GCC toolchain. Which version of Rust
you need depends largely on what C/C++ libraries you want to interoperate with.
Use the MSVC build of Rust to interop with software produced by Visual Studio
and the GNU build to interop with GNU software built using the MinGW/MSYS2
toolchain.
### MinGW
[MSYS2][msys2] can be used to easily build Rust on Windows:
[msys2]: https://www.msys2.org/
1. Download the latest [MSYS2 installer][msys2] and go through the installer.
2. Download and install [Git for Windows](https://git-scm.com/download/win).
Make sure that it's in your Windows PATH. To enable access to it from within
MSYS2, edit the relevant `mingw[32|64].ini` file in your MSYS2 installation
directory and uncomment the line `MSYS2_PATH_TYPE=inherit`.
You could install and use MSYS2's version of git instead with `pacman`,
however this is not recommended as it's excruciatingly slow, and not frequently
tested for compatibility.
3. Start a MINGW64 or MINGW32 shell (depending on whether you want 32-bit
or 64-bit Rust) either from your start menu, or by running `mingw64.exe`
or `mingw32.exe` from your MSYS2 installation directory (e.g. `C:\msys64`).
4. From this terminal, install the required tools:
```sh
# Update package mirrors (may be needed if you have a fresh install of MSYS2)
pacman -Sy pacman-mirrors
# Install build tools needed for Rust. If you're building a 32-bit compiler,
# then replace "x86_64" below with "i686".
# Note that it is important that you do **not** use the 'python2', 'cmake',
# and 'ninja' packages from the 'msys2' subsystem.
# The build has historically been known to fail with these packages.
pacman -S make \
diffutils \
tar \
mingw-w64-x86_64-python \
mingw-w64-x86_64-cmake \
mingw-w64-x86_64-gcc \
mingw-w64-x86_64-ninja
```
5. Navigate to Rust's source code (or clone it), then build it:
```sh
python x.py setup dist && python x.py build && python x.py install
```
If you want to try the native Windows versions of Python or CMake, you can remove
them from the above pacman command and install them from another source. Follow
the instructions in step 2 to get them on PATH.
Using Windows native Python can be helpful if you get errors when building LLVM.
You may also want to use Git for Windows, as it is often *much* faster. Turning
off real-time protection in the Windows Virus & Threat protections settings can
also help with long run times (although note that it will automatically turn
itself back on after some time).
### MSVC
MSVC builds of Rust additionally require an installation of:
- Visual Studio 2022 (or later) build tools so `rustc` can use its linker. Older
Visual Studio versions such as 2019 *may* work but aren't actively tested.
- A recent Windows 10 or 11 SDK.
The simplest way is to get [Visual Studio], check the "C++ build tools".
[Visual Studio]: https://visualstudio.microsoft.com/downloads/
(If you're installing CMake yourself, be careful that "C++ CMake tools for
Windows" doesn't get included under "Individual components".)
With these dependencies installed, you can build the compiler in a `cmd.exe`
shell with:
```sh
python x.py setup user
python x.py build
```
Right now, building Rust only works with some known versions of Visual Studio.
If you have a more recent version installed and the build system doesn't
understand, you may need to force bootstrap to use an older version.
This can be done by manually calling the appropriate vcvars file before running
the bootstrap.
```batch
CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
python x.py build
```
### Specifying an ABI
Each specific ABI can also be used from either environment (for example, using
the GNU ABI in PowerShell) by using an explicit build triple. The available
Windows build triples are:
- GNU ABI (using GCC)
- `i686-pc-windows-gnu`
- `x86_64-pc-windows-gnu`
- The MSVC ABI
- `i686-pc-windows-msvc`
- `x86_64-pc-windows-msvc`
The build triple can be specified by either specifying `--build=<triple>` when
invoking `x.py` commands, or by creating a `bootstrap.toml` file (as described in
[Building on a Unix-like system](#building-on-a-unix-like-system)), and passing
`--set build.build=<triple>` to `./configure`.
## Building Documentation
If you'd like to build the documentation, it's almost the same:
```sh
./x.py doc
```
The generated documentation will appear under `doc` in the `build` directory for
the ABI used. That is, if the ABI was `x86_64-pc-windows-msvc`, the directory
will be `build\x86_64-pc-windows-msvc\doc`.
## Notes
Since the Rust compiler is written in Rust, it must be built by a precompiled
"snapshot" version of itself (made in an earlier stage of development).
As such, source builds require an Internet connection to fetch snapshots, and an
OS that can execute the available snapshot binaries.
See https://doc.rust-lang.org/nightly/rustc/platform-support.html for a list of
supported platforms.
Only "host tools" platforms have a pre-compiled snapshot binary available; to
compile for a platform without host tools you must cross-compile.
You may find that other platforms work, but these are our officially supported
build environments that are most likely to work.
================================================
FILE: LICENSE-APACHE
================================================
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
================================================
FILE: LICENSE-MIT
================================================
Copyright (c) The Rust Project Contributors
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.
================================================
FILE: LICENSES/Apache-2.0.txt
================================================
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.
================================================
FILE: LICENSES/BSD-2-Clause.txt
================================================
Copyright (c) <year> <owner>
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.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT HOLDER OR CONTRIBUTORS 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.
================================================
FILE: LICENSES/CC-BY-SA-4.0.txt
================================================
Attribution-ShareAlike 4.0 International
=======================================================================
Creative Commons Corporation ("Creative Commons") is not a law firm and
does not provide legal services or legal advice. Distribution of
Creative Commons public licenses does not create a lawyer-client or
other relationship. Creative Commons makes its licenses and related
information available on an "as-is" basis. Creative Commons gives no
warranties regarding its licenses, any material licensed under their
terms and conditions, or any related information. Creative Commons
disclaims all liability for damages resulting from their use to the
fullest extent possible.
Using Creative Commons Public Licenses
Creative Commons public licenses provide a standard set of terms and
conditions that creators and other rights holders may use to share
original works of authorship and other material subject to copyright
and certain other rights specified in the public license below. The
following considerations are for informational purposes only, are not
exhaustive, and do not form part of our licenses.
Considerations for licensors: Our public licenses are
intended for use by those authorized to give the public
permission to use material in ways otherwise restricted by
copyright and certain other rights. Our licenses are
irrevocable. Licensors should read and understand the terms
and conditions of the license they choose before applying it.
Licensors should also secure all rights necessary before
applying our licenses so that the public can reuse the
material as expected. Licensors should clearly mark any
material not subject to the license. This includes other CC-
licensed material, or material used under an exception or
limitation to copyright. More considerations for licensors:
wiki.creativecommons.org/Considerations_for_licensors
Considerations for the public: By using one of our public
licenses, a licensor grants the public permission to use the
licensed material under specified terms and conditions. If
the licensor's permission is not necessary for any reason--for
example, because of any applicable exception or limitation to
copyright--then that use is not regulated by the license. Our
licenses grant only permissions under copyright and certain
other rights that a licensor has authority to grant. Use of
the licensed material may still be restricted for other
reasons, including because others have copyright or other
rights in the material. A licensor may make special requests,
such as asking that all changes be marked or described.
Although not required by our licenses, you are encouraged to
respect those requests where reasonable. More considerations
for the public:
wiki.creativecommons.org/Considerations_for_licensees
=======================================================================
Creative Commons Attribution-ShareAlike 4.0 International Public
License
By exercising the Licensed Rights (defined below), You accept and agree
to be bound by the terms and conditions of this Creative Commons
Attribution-ShareAlike 4.0 International Public License ("Public
License"). To the extent this Public License may be interpreted as a
contract, You are granted the Licensed Rights in consideration of Your
acceptance of these terms and conditions, and the Licensor grants You
such rights in consideration of benefits the Licensor receives from
making the Licensed Material available under these terms and
conditions.
Section 1 -- Definitions.
a. Adapted Material means material subject to Copyright and Similar
Rights that is derived from or based upon the Licensed Material
and in which the Licensed Material is translated, altered,
arranged, transformed, or otherwise modified in a manner requiring
permission under the Copyright and Similar Rights held by the
Licensor. For purposes of this Public License, where the Licensed
Material is a musical work, performance, or sound recording,
Adapted Material is always produced where the Licensed Material is
synched in timed relation with a moving image.
b. Adapter's License means the license You apply to Your Copyright
and Similar Rights in Your contributions to Adapted Material in
accordance with the terms and conditions of this Public License.
c. BY-SA Compatible License means a license listed at
creativecommons.org/compatiblelicenses, approved by Creative
Commons as essentially the equivalent of this Public License.
d. Copyright and Similar Rights means copyright and/or similar rights
closely related to copyright including, without limitation,
performance, broadcast, sound recording, and Sui Generis Database
Rights, without regard to how the rights are labeled or
categorized. For purposes of this Public License, the rights
specified in Section 2(b)(1)-(2) are not Copyright and Similar
Rights.
e. Effective Technological Measures means those measures that, in the
absence of proper authority, may not be circumvented under laws
fulfilling obligations under Article 11 of the WIPO Copyright
Treaty adopted on December 20, 1996, and/or similar international
agreements.
f. Exceptions and Limitations means fair use, fair dealing, and/or
any other exception or limitation to Copyright and Similar Rights
that applies to Your use of the Licensed Material.
g. License Elements means the license attributes listed in the name
of a Creative Commons Public License. The License Elements of this
Public License are Attribution and ShareAlike.
h. Licensed Material means the artistic or literary work, database,
or other material to which the Licensor applied this Public
License.
i. Licensed Rights means the rights granted to You subject to the
terms and conditions of this Public License, which are limited to
all Copyright and Similar Rights that apply to Your use of the
Licensed Material and that the Licensor has authority to license.
j. Licensor means the individual(s) or entity(ies) granting rights
under this Public License.
k. Share means to provide material to the public by any means or
process that requires permission under the Licensed Rights, such
as reproduction, public display, public performance, distribution,
dissemination, communication, or importation, and to make material
available to the public including in ways that members of the
public may access the material from a place and at a time
individually chosen by them.
l. Sui Generis Database Rights means rights other than copyright
resulting from Directive 96/9/EC of the European Parliament and of
the Council of 11 March 1996 on the legal protection of databases,
as amended and/or succeeded, as well as other essentially
equivalent rights anywhere in the world.
m. You means the individual or entity exercising the Licensed Rights
under this Public License. Your has a corresponding meaning.
Section 2 -- Scope.
a. License grant.
1. Subject to the terms and conditions of this Public License,
the Licensor hereby grants You a worldwide, royalty-free,
non-sublicensable, non-exclusive, irrevocable license to
exercise the Licensed Rights in the Licensed Material to:
a. reproduce and Share the Licensed Material, in whole or
in part; and
b. produce, reproduce, and Share Adapted Material.
2. Exceptions and Limitations. For the avoidance of doubt, where
Exceptions and Limitations apply to Your use, this Public
License does not apply, and You do not need to comply with
its terms and conditions.
3. Term. The term of this Public License is specified in Section
6(a).
4. Media and formats; technical modifications allowed. The
Licensor authorizes You to exercise the Licensed Rights in
all media and formats whether now known or hereafter created,
and to make technical modifications necessary to do so. The
Licensor waives and/or agrees not to assert any right or
authority to forbid You from making technical modifications
necessary to exercise the Licensed Rights, including
technical modifications necessary to circumvent Effective
Technological Measures. For purposes of this Public License,
simply making modifications authorized by this Section 2(a)
(4) never produces Adapted Material.
5. Downstream recipients.
a. Offer from the Licensor -- Licensed Material. Every
recipient of the Licensed Material automatically
receives an offer from the Licensor to exercise the
Licensed Rights under the terms and conditions of this
Public License.
b. Additional offer from the Licensor -- Adapted Material.
Every recipient of Adapted Material from You
automatically receives an offer from the Licensor to
exercise the Licensed Rights in the Adapted Material
under the conditions of the Adapter's License You apply.
c. No downstream restrictions. You may not offer or impose
any additional or different terms or conditions on, or
apply any Effective Technological Measures to, the
Licensed Material if doing so restricts exercise of the
Licensed Rights by any recipient of the Licensed
Material.
6. No endorsement. Nothing in this Public License constitutes or
may be construed as permission to assert or imply that You
are, or that Your use of the Licensed Material is, connected
with, or sponsored, endorsed, or granted official status by,
the Licensor or others designated to receive attribution as
provided in Section 3(a)(1)(A)(i).
b. Other rights.
1. Moral rights, such as the right of integrity, are not
licensed under this Public License, nor are publicity,
privacy, and/or other similar personality rights; however, to
the extent possible, the Licensor waives and/or agrees not to
assert any such rights held by the Licensor to the limited
extent necessary to allow You to exercise the Licensed
Rights, but not otherwise.
2. Patent and trademark rights are not licensed under this
Public License.
3. To the extent possible, the Licensor waives any right to
collect royalties from You for the exercise of the Licensed
Rights, whether directly or through a collecting society
under any voluntary or waivable statutory or compulsory
licensing scheme. In all other cases the Licensor expressly
reserves any right to collect such royalties.
Section 3 -- License Conditions.
Your exercise of the Licensed Rights is expressly made subject to the
following conditions.
a. Attribution.
1. If You Share the Licensed Material (including in modified
form), You must:
a. retain the following if it is supplied by the Licensor
with the Licensed Material:
i. identification of the creator(s) of the Licensed
Material and any others designated to receive
attribution, in any reasonable manner requested by
the Licensor (including by pseudonym if
designated);
ii. a copyright notice;
iii. a notice that refers to this Public License;
iv. a notice that refers to the disclaimer of
warranties;
v. a URI or hyperlink to the Licensed Material to the
extent reasonably practicable;
b. indicate if You modified the Licensed Material and
retain an indication of any previous modifications; and
c. indicate the Licensed Material is licensed under this
Public License, and include the text of, or the URI or
hyperlink to, this Public License.
2. You may satisfy the conditions in Section 3(a)(1) in any
reasonable manner based on the medium, means, and context in
which You Share the Licensed Material. For example, it may be
reasonable to satisfy the conditions by providing a URI or
hyperlink to a resource that includes the required
information.
3. If requested by the Licensor, You must remove any of the
information required by Section 3(a)(1)(A) to the extent
reasonably practicable.
b. ShareAlike.
In addition to the conditions in Section 3(a), if You Share
Adapted Material You produce, the following conditions also apply.
1. The Adapter's License You apply must be a Creative Commons
license with the same License Elements, this version or
later, or a BY-SA Compatible License.
2. You must include the text of, or the URI or hyperlink to, the
Adapter's License You apply. You may satisfy this condition
in any reasonable manner based on the medium, means, and
context in which You Share Adapted Material.
3. You may not offer or impose any additional or different terms
or conditions on, or apply any Effective Technological
Measures to, Adapted Material that restrict exercise of the
rights granted under the Adapter's License You apply.
Section 4 -- Sui Generis Database Rights.
Where the Licensed Rights include Sui Generis Database Rights that
apply to Your use of the Licensed Material:
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
to extract, reuse, reproduce, and Share all or a substantial
portion of the contents of the database;
b. if You include all or a substantial portion of the database
contents in a database in which You have Sui Generis Database
Rights, then the database in which You have Sui Generis Database
Rights (but not its individual contents) is Adapted Material,
including for purposes of Section 3(b); and
c. You must comply with the conditions in Section 3(a) if You Share
all or a substantial portion of the contents of the database.
For the avoidance of doubt, this Section 4 supplements and does not
replace Your obligations under this Public License where the Licensed
Rights include other Copyright and Similar Rights.
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
c. The disclaimer of warranties and limitation of liability provided
above shall be interpreted in a manner that, to the extent
possible, most closely approximates an absolute disclaimer and
waiver of all liability.
Section 6 -- Term and Termination.
a. This Public License applies for the term of the Copyright and
Similar Rights licensed here. However, if You fail to comply with
this Public License, then Your rights under this Public License
terminate automatically.
b. Where Your right to use the Licensed Material has terminated under
Section 6(a), it reinstates:
1. automatically as of the date the violation is cured, provided
it is cured within 30 days of Your discovery of the
violation; or
2. upon express reinstatement by the Licensor.
For the avoidance of doubt, this Section 6(b) does not affect any
right the Licensor may have to seek remedies for Your violations
of this Public License.
c. For the avoidance of doubt, the Licensor may also offer the
Licensed Material under separate terms or conditions or stop
distributing the Licensed Material at any time; however, doing so
will not terminate this Public License.
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
License.
Section 7 -- Other Terms and Conditions.
a. The Licensor shall not be bound by any additional or different
terms or conditions communicated by You unless expressly agreed.
b. Any arrangements, understandings, or agreements regarding the
Licensed Material not stated herein are separate from and
independent of the terms and conditions of this Public License.
Section 8 -- Interpretation.
a. For the avoidance of doubt, this Public License does not, and
shall not be interpreted to, reduce, limit, restrict, or impose
conditions on any use of the Licensed Material that could lawfully
be made without permission under this Public License.
b. To the extent possible, if any provision of this Public License is
deemed unenforceable, it shall be automatically reformed to the
minimum extent necessary to make it enforceable. If the provision
cannot be reformed, it shall be severed from this Public License
without affecting the enforceability of the remaining terms and
conditions.
c. No term or condition of this Public License will be waived and no
failure to comply consented to unless expressly agreed to by the
Licensor.
d. Nothing in this Public License constitutes or may be interpreted
as a limitation upon, or waiver of, any privileges and immunities
that apply to the Licensor or You, including from the legal
processes of any jurisdiction or authority.
=======================================================================
Creative Commons is not a party to its public
licenses. Notwithstanding, Creative Commons may elect to apply one of
its public licenses to material it publishes and in those instances
will be considered the “Licensor.” The text of the Creative Commons
public licenses is dedicated to the public domain under the CC0 Public
Domain Dedication. Except for the limited purpose of indicating that
material is shared under a Creative Commons public license or as
otherwise permitted by the Creative Commons policies published at
creativecommons.org/policies, Creative Commons does not authorize the
use of the trademark "Creative Commons" or any other trademark or logo
of Creative Commons without its prior written consent including,
without limitation, in connection with any unauthorized modifications
to any of its public licenses or any other arrangements,
understandings, or agreements concerning use of licensed material. For
the avoidance of doubt, this paragraph does not form part of the
public licenses.
Creative Commons may be contacted at creativecommons.org.
================================================
FILE: LICENSES/GCC-exception-3.1.txt
================================================
GCC RUNTIME LIBRARY EXCEPTION
Version 3.1, 31 March 2009
Copyright © 2009 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
This GCC Runtime Library Exception ("Exception") is an additional permission under section 7 of the GNU General Public License, version 3 ("GPLv3"). It applies to a given file (the "Runtime Library") that bears a notice placed by the copyright holder of the file stating that the file is governed by GPLv3 along with this Exception.
When you use GCC to compile a program, GCC may combine portions of certain GCC header files and runtime libraries with the compiled program. The purpose of this Exception is to allow compilation of non-GPL (including proprietary) programs to use, in this way, the header files and runtime libraries covered by this Exception.
0. Definitions.
A file is an "Independent Module" if it either requires the Runtime Library for execution after a Compilation Process, or makes use of an interface provided by the Runtime Library, but is not otherwise based on the Runtime Library.
"GCC" means a version of the GNU Compiler Collection, with or without modifications, governed by version 3 (or a specified later version) of the GNU General Public License (GPL) with the option of using any subsequent versions published by the FSF.
"GPL-compatible Software" is software whose conditions of propagation, modification and use would permit combination with GCC in accord with the license of GCC.
"Target Code" refers to output from any compiler for a real or virtual target processor architecture, in executable form or suitable for input to an assembler, loader, linker and/or execution phase. Notwithstanding that, Target Code does not include data in any format that is used as a compiler intermediate representation, or used for producing a compiler intermediate representation.
The "Compilation Process" transforms code entirely represented in non-intermediate languages designed for human-written code, and/or in Java Virtual Machine byte code, into Target Code. Thus, for example, use of source code generators and preprocessors need not be considered part of the Compilation Process, since the Compilation Process can be understood as starting with the output of the generators or preprocessors.
A Compilation Process is "Eligible" if it is done using GCC, alone or with other GPL-compatible software, or if it is done without using any work based on GCC. For example, using non-GPL-compatible Software to optimize any GCC intermediate representations would not qualify as an Eligible Compilation Process.
1. Grant of Additional Permission.
You have permission to propagate a work of Target Code formed by combining the Runtime Library with Independent Modules, even if such propagation would otherwise violate the terms of GPLv3, provided that all Target Code was generated by Eligible Compilation Processes. You may then convey such a combination under terms of your choice, consistent with the licensing of the Independent Modules.
2. No Weakening of GCC Copyleft.
The availability of this Exception does not imply any general presumption that third-party software is unaffected by the copyleft requirements of the license of GCC.
================================================
FILE: LICENSES/GPL-2.0-only.txt
================================================
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.
Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and modification follow.
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
one line to give the program's name and an idea of what it does.
Copyright (C) yyyy name of author
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
type `show w'. This is free software, and you are welcome
to redistribute it under certain conditions; type `show c'
for details.
The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright
interest in the program `Gnomovision'
(which makes passes at compilers) written
by James Hacker.
signature of Ty Coon, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License.
================================================
FILE: LICENSES/GPL-3.0-or-later.txt
================================================
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright © 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for software and other kinds of works.
The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions.
Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based on the Program.
To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work.
A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.
The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.
The Corresponding Source for a work in source code form is that same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.
When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified it, and giving a relevant date.
b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices".
c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.
A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:
a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.
d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.
A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.
"Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.
If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).
The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or authors of the material; or
e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.
All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).
However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.
Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to prop
Showing preview only (3,556K chars total). Download the full file or copy to clipboard to get everything.
gitextract_551zv354/ ├── .clang-format ├── .editorconfig ├── .git-blame-ignore-revs ├── .gitattributes ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bootstrap.md │ │ ├── bug_report.md │ │ ├── config.yml │ │ ├── diagnostics.yaml │ │ ├── documentation.yaml │ │ ├── ice.md │ │ ├── ice.yaml │ │ ├── library_tracking_issue.md │ │ ├── regression.md │ │ ├── rustdoc.md │ │ ├── tracking_issue.md │ │ └── tracking_issue_future.md │ ├── pull_request_template.md │ ├── renovate.json5 │ └── workflows/ │ ├── ci.yml │ ├── dependencies.yml │ ├── ghcr.yml │ └── post-merge.yml ├── .gitignore ├── .gitmodules ├── .ignore ├── .mailmap ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── COPYRIGHT ├── Cargo.toml ├── INSTALL.md ├── LICENSE-APACHE ├── LICENSE-MIT ├── LICENSES/ │ ├── Apache-2.0.txt │ ├── BSD-2-Clause.txt │ ├── CC-BY-SA-4.0.txt │ ├── GCC-exception-3.1.txt │ ├── GPL-2.0-only.txt │ ├── GPL-3.0-or-later.txt │ ├── ISC.txt │ ├── LLVM-exception.txt │ ├── MIT.txt │ ├── NCSA.txt │ ├── OFL-1.1.txt │ └── Unicode-3.0.txt ├── README.md ├── RELEASES.md ├── REUSE.toml ├── bootstrap.example.toml ├── compiler/ │ ├── rustc/ │ │ ├── Cargo.toml │ │ ├── Windows Manifest.xml │ │ ├── build.rs │ │ └── src/ │ │ └── main.rs │ ├── rustc_abi/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── callconv/ │ │ │ └── reg.rs │ │ ├── callconv.rs │ │ ├── canon_abi.rs │ │ ├── extern_abi/ │ │ │ └── tests.rs │ │ ├── extern_abi.rs │ │ ├── layout/ │ │ │ ├── coroutine.rs │ │ │ ├── simple.rs │ │ │ └── ty.rs │ │ ├── layout.rs │ │ ├── lib.rs │ │ └── tests.rs │ ├── rustc_arena/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── lib.rs │ │ └── tests.rs │ ├── rustc_ast/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ └── src/ │ │ ├── ast.rs │ │ ├── ast_traits.rs │ │ ├── attr/ │ │ │ ├── data_structures.rs │ │ │ ├── mod.rs │ │ │ └── version.rs │ │ ├── entry.rs │ │ ├── expand/ │ │ │ ├── allocator.rs │ │ │ ├── autodiff_attrs.rs │ │ │ ├── mod.rs │ │ │ └── typetree.rs │ │ ├── format.rs │ │ ├── lib.rs │ │ ├── mut_visit.rs │ │ ├── node_id.rs │ │ ├── token.rs │ │ ├── tokenstream.rs │ │ ├── util/ │ │ │ ├── case.rs │ │ │ ├── classify.rs │ │ │ ├── comments/ │ │ │ │ └── tests.rs │ │ │ ├── comments.rs │ │ │ ├── literal.rs │ │ │ ├── parser.rs │ │ │ └── unicode.rs │ │ └── visit.rs │ ├── rustc_ast_ir/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── lib.rs │ │ └── visit.rs │ ├── rustc_ast_lowering/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── asm.rs │ │ ├── block.rs │ │ ├── contract.rs │ │ ├── delegation/ │ │ │ └── generics.rs │ │ ├── delegation.rs │ │ ├── errors.rs │ │ ├── expr.rs │ │ ├── format.rs │ │ ├── index.rs │ │ ├── item.rs │ │ ├── lib.rs │ │ ├── pat.rs │ │ ├── path.rs │ │ └── stability.rs │ ├── rustc_ast_passes/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── ast_validation.rs │ │ ├── errors.rs │ │ ├── feature_gate.rs │ │ └── lib.rs │ ├── rustc_ast_pretty/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── helpers.rs │ │ ├── lib.rs │ │ ├── pp/ │ │ │ ├── convenience.rs │ │ │ └── ring.rs │ │ ├── pp.rs │ │ └── pprust/ │ │ ├── mod.rs │ │ ├── state/ │ │ │ ├── expr.rs │ │ │ ├── fixup.rs │ │ │ └── item.rs │ │ ├── state.rs │ │ └── tests.rs │ ├── rustc_attr_parsing/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── attributes/ │ │ │ ├── allow_unstable.rs │ │ │ ├── autodiff.rs │ │ │ ├── body.rs │ │ │ ├── cfg.rs │ │ │ ├── cfg_select.rs │ │ │ ├── cfi_encoding.rs │ │ │ ├── codegen_attrs.rs │ │ │ ├── confusables.rs │ │ │ ├── crate_level.rs │ │ │ ├── debugger.rs │ │ │ ├── deprecation.rs │ │ │ ├── diagnostic/ │ │ │ │ ├── do_not_recommend.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── on_const.rs │ │ │ │ ├── on_move.rs │ │ │ │ └── on_unimplemented.rs │ │ │ ├── doc.rs │ │ │ ├── dummy.rs │ │ │ ├── inline.rs │ │ │ ├── instruction_set.rs │ │ │ ├── link_attrs.rs │ │ │ ├── lint_helpers.rs │ │ │ ├── loop_match.rs │ │ │ ├── macro_attrs.rs │ │ │ ├── mod.rs │ │ │ ├── must_not_suspend.rs │ │ │ ├── must_use.rs │ │ │ ├── no_implicit_prelude.rs │ │ │ ├── no_link.rs │ │ │ ├── non_exhaustive.rs │ │ │ ├── path.rs │ │ │ ├── pin_v2.rs │ │ │ ├── prelude.rs │ │ │ ├── proc_macro_attrs.rs │ │ │ ├── prototype.rs │ │ │ ├── repr.rs │ │ │ ├── rustc_allocator.rs │ │ │ ├── rustc_dump.rs │ │ │ ├── rustc_internal.rs │ │ │ ├── semantics.rs │ │ │ ├── stability.rs │ │ │ ├── test_attrs.rs │ │ │ ├── traits.rs │ │ │ ├── transparency.rs │ │ │ └── util.rs │ │ ├── context.rs │ │ ├── early_parsed.rs │ │ ├── errors.rs │ │ ├── interface.rs │ │ ├── lib.rs │ │ ├── parser.rs │ │ ├── safety.rs │ │ ├── session_diagnostics.rs │ │ ├── target_checking.rs │ │ └── validate_attr.rs │ ├── rustc_baked_icu_data/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── data/ │ │ │ ├── list_and_v1.rs.data │ │ │ └── mod.rs │ │ └── lib.rs │ ├── rustc_borrowck/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── borrow_set.rs │ │ ├── borrowck_errors.rs │ │ ├── constraints/ │ │ │ ├── graph.rs │ │ │ └── mod.rs │ │ ├── consumers.rs │ │ ├── dataflow.rs │ │ ├── def_use.rs │ │ ├── diagnostics/ │ │ │ ├── bound_region_errors.rs │ │ │ ├── conflict_errors.rs │ │ │ ├── explain_borrow.rs │ │ │ ├── find_all_local_uses.rs │ │ │ ├── find_use.rs │ │ │ ├── mod.rs │ │ │ ├── move_errors.rs │ │ │ ├── mutability_errors.rs │ │ │ ├── opaque_types.rs │ │ │ ├── outlives_suggestion.rs │ │ │ ├── region_errors.rs │ │ │ ├── region_name.rs │ │ │ └── var_name.rs │ │ ├── handle_placeholders.rs │ │ ├── lib.rs │ │ ├── nll.rs │ │ ├── path_utils.rs │ │ ├── place_ext.rs │ │ ├── places_conflict.rs │ │ ├── polonius/ │ │ │ ├── constraints.rs │ │ │ ├── dump.rs │ │ │ ├── legacy/ │ │ │ │ ├── accesses.rs │ │ │ │ ├── facts.rs │ │ │ │ ├── loan_invalidations.rs │ │ │ │ ├── loan_kills.rs │ │ │ │ ├── location.rs │ │ │ │ └── mod.rs │ │ │ ├── liveness_constraints.rs │ │ │ └── mod.rs │ │ ├── prefixes.rs │ │ ├── region_infer/ │ │ │ ├── dump_mir.rs │ │ │ ├── graphviz.rs │ │ │ ├── mod.rs │ │ │ ├── opaque_types/ │ │ │ │ ├── member_constraints.rs │ │ │ │ ├── mod.rs │ │ │ │ └── region_ctxt.rs │ │ │ ├── reverse_sccs.rs │ │ │ └── values.rs │ │ ├── renumber.rs │ │ ├── root_cx.rs │ │ ├── session_diagnostics.rs │ │ ├── type_check/ │ │ │ ├── canonical.rs │ │ │ ├── constraint_conversion.rs │ │ │ ├── free_region_relations.rs │ │ │ ├── input_output.rs │ │ │ ├── liveness/ │ │ │ │ ├── local_use_map.rs │ │ │ │ ├── mod.rs │ │ │ │ └── trace.rs │ │ │ ├── mod.rs │ │ │ └── relate_tys.rs │ │ ├── universal_regions.rs │ │ └── used_muts.rs │ ├── rustc_builtin_macros/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── alloc_error_handler.rs │ │ ├── asm.rs │ │ ├── assert/ │ │ │ └── context.rs │ │ ├── assert.rs │ │ ├── autodiff.rs │ │ ├── cfg.rs │ │ ├── cfg_accessible.rs │ │ ├── cfg_eval.rs │ │ ├── cfg_select.rs │ │ ├── cmdline_attrs.rs │ │ ├── compile_error.rs │ │ ├── concat.rs │ │ ├── concat_bytes.rs │ │ ├── contracts.rs │ │ ├── define_opaque.rs │ │ ├── derive.rs │ │ ├── deriving/ │ │ │ ├── bounds.rs │ │ │ ├── clone.rs │ │ │ ├── cmp/ │ │ │ │ ├── eq.rs │ │ │ │ ├── ord.rs │ │ │ │ ├── partial_eq.rs │ │ │ │ └── partial_ord.rs │ │ │ ├── coerce_pointee.rs │ │ │ ├── debug.rs │ │ │ ├── default.rs │ │ │ ├── from.rs │ │ │ ├── generic/ │ │ │ │ ├── mod.rs │ │ │ │ └── ty.rs │ │ │ ├── hash.rs │ │ │ └── mod.rs │ │ ├── edition_panic.rs │ │ ├── eii.rs │ │ ├── env.rs │ │ ├── errors.rs │ │ ├── format.rs │ │ ├── format_foreign/ │ │ │ ├── printf/ │ │ │ │ └── tests.rs │ │ │ └── shell/ │ │ │ └── tests.rs │ │ ├── format_foreign.rs │ │ ├── global_allocator.rs │ │ ├── iter.rs │ │ ├── lib.rs │ │ ├── log_syntax.rs │ │ ├── pattern_type.rs │ │ ├── proc_macro_harness.rs │ │ ├── source_util.rs │ │ ├── standard_library_imports.rs │ │ ├── test.rs │ │ ├── test_harness.rs │ │ ├── trace_macros.rs │ │ └── util.rs │ ├── rustc_codegen_cranelift/ │ │ ├── .cirrus.yml │ │ ├── .gitattributes │ │ ├── .github/ │ │ │ ├── scripts/ │ │ │ │ └── free-disk-space.sh │ │ │ └── workflows/ │ │ │ ├── abi-cafe.yml │ │ │ ├── main.yml │ │ │ └── rustc.yml │ │ ├── .gitignore │ │ ├── Cargo.toml │ │ ├── LICENSE-APACHE │ │ ├── LICENSE-MIT │ │ ├── Readme.md │ │ ├── build_system/ │ │ │ ├── Cargo.toml │ │ │ ├── abi_cafe.rs │ │ │ ├── bench.rs │ │ │ ├── build_backend.rs │ │ │ ├── build_sysroot.rs │ │ │ ├── config.rs │ │ │ ├── main.rs │ │ │ ├── path.rs │ │ │ ├── prepare.rs │ │ │ ├── rustc_info.rs │ │ │ ├── shared_utils.rs │ │ │ ├── tests.rs │ │ │ ├── todo.rs │ │ │ ├── usage.txt │ │ │ └── utils.rs │ │ ├── clean_all.sh │ │ ├── config.txt │ │ ├── docs/ │ │ │ ├── dwarf.md │ │ │ ├── rustc_testing.md │ │ │ └── usage.md │ │ ├── example/ │ │ │ ├── arbitrary_self_types_pointers_and_wrappers.rs │ │ │ ├── dst-field-align.rs │ │ │ ├── example.rs │ │ │ ├── float-minmax-pass.rs │ │ │ ├── gen_block_iterate.rs │ │ │ ├── issue-59326.rs │ │ │ ├── issue-72793.rs │ │ │ ├── mini_core.rs │ │ │ ├── mini_core_hello_world.rs │ │ │ ├── neon.rs │ │ │ ├── raw-dylib.rs │ │ │ ├── std_example.rs │ │ │ ├── subslice-patterns-const-eval.rs │ │ │ └── track-caller-attribute.rs │ │ ├── patches/ │ │ │ ├── 0027-stdlib-128bit-atomic-operations.patch │ │ │ ├── 0027-sysroot_tests-128bit-atomic-operations.patch │ │ │ ├── 0028-sysroot_tests-Disable-long-running-tests.patch │ │ │ ├── 0029-sysroot_tests-disable-f16-math.patch │ │ │ ├── rand-lock.toml │ │ │ └── regex-lock.toml │ │ ├── rust-toolchain.toml │ │ ├── rustfmt.toml │ │ ├── scripts/ │ │ │ ├── Readme.md │ │ │ ├── abi-cafe-rules.toml │ │ │ ├── cargo-clif.rs │ │ │ ├── filter_profile.rs │ │ │ ├── jit-helpers.py │ │ │ ├── rustc-clif.rs │ │ │ ├── rustdoc-clif.rs │ │ │ ├── rustup.sh │ │ │ ├── setup_rust_fork.sh │ │ │ ├── test_bootstrap.sh │ │ │ └── test_rustc_tests.sh │ │ ├── src/ │ │ │ ├── abi/ │ │ │ │ ├── comments.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── pass_mode.rs │ │ │ │ └── returning.rs │ │ │ ├── allocator.rs │ │ │ ├── analyze.rs │ │ │ ├── base.rs │ │ │ ├── cast.rs │ │ │ ├── codegen_f16_f128.rs │ │ │ ├── codegen_i128.rs │ │ │ ├── common.rs │ │ │ ├── compiler_builtins.rs │ │ │ ├── concurrency_limiter.rs │ │ │ ├── config.rs │ │ │ ├── constant.rs │ │ │ ├── debuginfo/ │ │ │ │ ├── emit.rs │ │ │ │ ├── gcc_except_table.rs │ │ │ │ ├── line_info.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── object.rs │ │ │ │ ├── types.rs │ │ │ │ └── unwind.rs │ │ │ ├── discriminant.rs │ │ │ ├── driver/ │ │ │ │ ├── aot.rs │ │ │ │ ├── jit.rs │ │ │ │ └── mod.rs │ │ │ ├── global_asm.rs │ │ │ ├── inline_asm.rs │ │ │ ├── intrinsics/ │ │ │ │ ├── llvm.rs │ │ │ │ ├── llvm_aarch64.rs │ │ │ │ ├── llvm_x86.rs │ │ │ │ ├── mod.rs │ │ │ │ └── simd.rs │ │ │ ├── lib.rs │ │ │ ├── linkage.rs │ │ │ ├── main_shim.rs │ │ │ ├── num.rs │ │ │ ├── optimize/ │ │ │ │ ├── mod.rs │ │ │ │ └── peephole.rs │ │ │ ├── pointer.rs │ │ │ ├── pretty_clif.rs │ │ │ ├── toolchain.rs │ │ │ ├── unsize.rs │ │ │ ├── unwind_module.rs │ │ │ ├── value_and_place.rs │ │ │ └── vtable.rs │ │ ├── test.sh │ │ ├── triagebot.toml │ │ ├── y.cmd │ │ ├── y.ps1 │ │ └── y.sh │ ├── rustc_codegen_gcc/ │ │ ├── .cspell.json │ │ ├── .gitattributes │ │ ├── .github/ │ │ │ └── workflows/ │ │ │ ├── ci.yml │ │ │ ├── failures.yml │ │ │ ├── gcc12.yml │ │ │ ├── m68k.yml │ │ │ ├── release.yml │ │ │ └── stdarch.yml │ │ ├── .gitignore │ │ ├── .ignore │ │ ├── .rustfmt.toml │ │ ├── CONTRIBUTING.md │ │ ├── Cargo.toml │ │ ├── LICENSE-APACHE │ │ ├── LICENSE-MIT │ │ ├── Readme.md │ │ ├── _typos.toml │ │ ├── build_system/ │ │ │ ├── Cargo.toml │ │ │ └── src/ │ │ │ ├── abi_test.rs │ │ │ ├── build.rs │ │ │ ├── clean.rs │ │ │ ├── clone_gcc.rs │ │ │ ├── config.rs │ │ │ ├── fmt.rs │ │ │ ├── fuzz/ │ │ │ │ └── reduce.rs │ │ │ ├── fuzz.rs │ │ │ ├── info.rs │ │ │ ├── main.rs │ │ │ ├── prepare.rs │ │ │ ├── rust_tools.rs │ │ │ ├── rustc_info.rs │ │ │ ├── test.rs │ │ │ └── utils.rs │ │ ├── config.example.toml │ │ ├── doc/ │ │ │ ├── add-attribute.md │ │ │ ├── debugging-libgccjit.md │ │ │ ├── debugging.md │ │ │ ├── errors.md │ │ │ ├── sending-gcc-patch.md │ │ │ ├── subtree.md │ │ │ ├── tests.md │ │ │ └── tips.md │ │ ├── example/ │ │ │ ├── alloc_example.rs │ │ │ ├── alloc_system.rs │ │ │ ├── arbitrary_self_types_pointers_and_wrappers.rs │ │ │ ├── dst-field-align.rs │ │ │ ├── example.rs │ │ │ ├── mini_core.rs │ │ │ ├── mini_core_hello_world.rs │ │ │ ├── std_example.rs │ │ │ ├── subslice-patterns-const-eval.rs │ │ │ └── track-caller-attribute.rs │ │ ├── libgccjit.version │ │ ├── patches/ │ │ │ ├── 0001-Add-stdarch-Cargo.toml-for-testing.patch │ │ │ ├── 0028-core-Disable-long-running-tests.patch │ │ │ ├── crates/ │ │ │ │ └── 0001-Remove-deny-warnings.patch │ │ │ ├── cross_patches/ │ │ │ │ └── 0001-Disable-libstd-and-libtest-dylib.patch │ │ │ └── libgccjit12/ │ │ │ └── 0001-core-Disable-portable-simd-test.patch │ │ ├── rust-toolchain │ │ ├── src/ │ │ │ ├── abi.rs │ │ │ ├── allocator.rs │ │ │ ├── asm.rs │ │ │ ├── attributes.rs │ │ │ ├── back/ │ │ │ │ ├── lto.rs │ │ │ │ ├── mod.rs │ │ │ │ └── write.rs │ │ │ ├── base.rs │ │ │ ├── builder.rs │ │ │ ├── callee.rs │ │ │ ├── common.rs │ │ │ ├── consts.rs │ │ │ ├── context.rs │ │ │ ├── coverageinfo.rs │ │ │ ├── debuginfo.rs │ │ │ ├── declare.rs │ │ │ ├── errors.rs │ │ │ ├── gcc_util.rs │ │ │ ├── int.rs │ │ │ ├── intrinsic/ │ │ │ │ ├── archs.rs │ │ │ │ ├── llvm.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── old_archs.rs │ │ │ │ └── simd.rs │ │ │ ├── lib.rs │ │ │ ├── mono_item.rs │ │ │ ├── type_.rs │ │ │ └── type_of.rs │ │ ├── target_specs/ │ │ │ └── m68k-unknown-linux-gnu.json │ │ ├── tests/ │ │ │ ├── cross_lang_lto/ │ │ │ │ ├── Cargo.toml │ │ │ │ ├── add.c │ │ │ │ └── src/ │ │ │ │ └── main.rs │ │ │ ├── failing-ice-tests.txt │ │ │ ├── failing-lto-tests.txt │ │ │ ├── failing-run-make-tests.txt │ │ │ ├── failing-ui-tests-without-128bit-integers.txt │ │ │ ├── failing-ui-tests.txt │ │ │ ├── failing-ui-tests12.txt │ │ │ ├── hello-world/ │ │ │ │ ├── Cargo.toml │ │ │ │ ├── mylib/ │ │ │ │ │ ├── Cargo.toml │ │ │ │ │ └── src/ │ │ │ │ │ └── lib.rs │ │ │ │ └── src/ │ │ │ │ └── main.rs │ │ │ ├── lang_tests_common.rs │ │ │ ├── lang_tests_debug.rs │ │ │ ├── lang_tests_release.rs │ │ │ └── run/ │ │ │ ├── abort1.rs │ │ │ ├── abort2.rs │ │ │ ├── always_inline.rs │ │ │ ├── array.rs │ │ │ ├── asm.rs │ │ │ ├── assign.rs │ │ │ ├── call-llvm-intrinsics.rs │ │ │ ├── closure.rs │ │ │ ├── condition.rs │ │ │ ├── empty_main.rs │ │ │ ├── exit.rs │ │ │ ├── exit_code.rs │ │ │ ├── float.rs │ │ │ ├── fun_ptr.rs │ │ │ ├── gep.rs │ │ │ ├── int.rs │ │ │ ├── int_intrinsics.rs │ │ │ ├── int_overflow.rs │ │ │ ├── mut_ref.rs │ │ │ ├── operations.rs │ │ │ ├── packed_u128.rs │ │ │ ├── ptr_cast.rs │ │ │ ├── return-tuple.rs │ │ │ ├── simd-ffi.rs │ │ │ ├── slice.rs │ │ │ ├── static.rs │ │ │ ├── structs.rs │ │ │ ├── switchint_128bit.rs │ │ │ ├── tuple.rs │ │ │ ├── unreachable-function.rs │ │ │ ├── volatile.rs │ │ │ └── volatile2.rs │ │ ├── tools/ │ │ │ ├── check_intrinsics_duplicates.py │ │ │ ├── cspell_dicts/ │ │ │ │ ├── rust.txt │ │ │ │ └── rustc_codegen_gcc.txt │ │ │ └── generate_intrinsics.py │ │ ├── triagebot.toml │ │ └── y.sh │ ├── rustc_codegen_llvm/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ └── src/ │ │ ├── abi.rs │ │ ├── allocator.rs │ │ ├── asm.rs │ │ ├── attributes.rs │ │ ├── back/ │ │ │ ├── archive.rs │ │ │ ├── lto.rs │ │ │ ├── mod.rs │ │ │ ├── owned_target_machine.rs │ │ │ ├── profiling.rs │ │ │ └── write.rs │ │ ├── base.rs │ │ ├── builder/ │ │ │ ├── autodiff.rs │ │ │ └── gpu_offload.rs │ │ ├── builder.rs │ │ ├── callee.rs │ │ ├── common.rs │ │ ├── consts.rs │ │ ├── context.rs │ │ ├── coverageinfo/ │ │ │ ├── ffi.rs │ │ │ ├── llvm_cov.rs │ │ │ ├── mapgen/ │ │ │ │ ├── covfun.rs │ │ │ │ ├── spans.rs │ │ │ │ └── unused.rs │ │ │ ├── mapgen.rs │ │ │ └── mod.rs │ │ ├── debuginfo/ │ │ │ ├── create_scope_map.rs │ │ │ ├── di_builder.rs │ │ │ ├── doc.md │ │ │ ├── dwarf_const.rs │ │ │ ├── gdb.rs │ │ │ ├── metadata/ │ │ │ │ ├── enums/ │ │ │ │ │ ├── cpp_like.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── native.rs │ │ │ │ └── type_map.rs │ │ │ ├── metadata.rs │ │ │ ├── mod.rs │ │ │ ├── namespace.rs │ │ │ └── utils.rs │ │ ├── declare.rs │ │ ├── errors.rs │ │ ├── intrinsic.rs │ │ ├── lib.rs │ │ ├── llvm/ │ │ │ ├── conversions.rs │ │ │ ├── diagnostic.rs │ │ │ ├── enzyme_ffi.rs │ │ │ ├── ffi.rs │ │ │ ├── metadata_kind.rs │ │ │ └── mod.rs │ │ ├── llvm_util.rs │ │ ├── macros.rs │ │ ├── mono_item.rs │ │ ├── type_.rs │ │ ├── type_of.rs │ │ ├── typetree.rs │ │ ├── va_arg.rs │ │ └── value.rs │ ├── rustc_codegen_ssa/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ └── src/ │ │ ├── assert_module_sources.rs │ │ ├── back/ │ │ │ ├── apple/ │ │ │ │ └── tests.rs │ │ │ ├── apple.rs │ │ │ ├── archive.rs │ │ │ ├── command.rs │ │ │ ├── link/ │ │ │ │ └── raw_dylib.rs │ │ │ ├── link.rs │ │ │ ├── linker/ │ │ │ │ └── tests.rs │ │ │ ├── linker.rs │ │ │ ├── lto.rs │ │ │ ├── metadata.rs │ │ │ ├── mod.rs │ │ │ ├── rpath/ │ │ │ │ └── tests.rs │ │ │ ├── rpath.rs │ │ │ ├── symbol_export.rs │ │ │ └── write.rs │ │ ├── base.rs │ │ ├── codegen_attrs.rs │ │ ├── common.rs │ │ ├── debuginfo/ │ │ │ ├── mod.rs │ │ │ └── type_names.rs │ │ ├── errors.rs │ │ ├── lib.rs │ │ ├── meth.rs │ │ ├── mir/ │ │ │ ├── analyze.rs │ │ │ ├── block.rs │ │ │ ├── constant.rs │ │ │ ├── coverageinfo.rs │ │ │ ├── debuginfo.rs │ │ │ ├── intrinsic.rs │ │ │ ├── locals.rs │ │ │ ├── mod.rs │ │ │ ├── naked_asm.rs │ │ │ ├── operand.rs │ │ │ ├── place.rs │ │ │ ├── rvalue.rs │ │ │ └── statement.rs │ │ ├── mono_item.rs │ │ ├── size_of_val.rs │ │ ├── target_features.rs │ │ └── traits/ │ │ ├── abi.rs │ │ ├── asm.rs │ │ ├── backend.rs │ │ ├── builder.rs │ │ ├── consts.rs │ │ ├── coverageinfo.rs │ │ ├── debuginfo.rs │ │ ├── declare.rs │ │ ├── intrinsic.rs │ │ ├── misc.rs │ │ ├── mod.rs │ │ ├── statics.rs │ │ ├── type_.rs │ │ └── write.rs │ ├── rustc_const_eval/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── check_consts/ │ │ │ ├── check.rs │ │ │ ├── mod.rs │ │ │ ├── ops.rs │ │ │ ├── post_drop_elaboration.rs │ │ │ ├── qualifs.rs │ │ │ └── resolver.rs │ │ ├── const_eval/ │ │ │ ├── dummy_machine.rs │ │ │ ├── dyn_trait.rs │ │ │ ├── error.rs │ │ │ ├── eval_queries.rs │ │ │ ├── fn_queries.rs │ │ │ ├── machine.rs │ │ │ ├── mod.rs │ │ │ ├── type_info/ │ │ │ │ └── adt.rs │ │ │ ├── type_info.rs │ │ │ └── valtrees.rs │ │ ├── errors.rs │ │ ├── interpret/ │ │ │ ├── call.rs │ │ │ ├── cast.rs │ │ │ ├── discriminant.rs │ │ │ ├── eval_context.rs │ │ │ ├── intern.rs │ │ │ ├── intrinsics/ │ │ │ │ └── simd.rs │ │ │ ├── intrinsics.rs │ │ │ ├── machine.rs │ │ │ ├── memory.rs │ │ │ ├── mod.rs │ │ │ ├── operand.rs │ │ │ ├── operator.rs │ │ │ ├── place.rs │ │ │ ├── projection.rs │ │ │ ├── stack.rs │ │ │ ├── step.rs │ │ │ ├── traits.rs │ │ │ ├── util.rs │ │ │ ├── validity.rs │ │ │ └── visitor.rs │ │ ├── lib.rs │ │ └── util/ │ │ ├── alignment.rs │ │ ├── caller_location.rs │ │ ├── check_validity_requirement.rs │ │ ├── compare_types.rs │ │ ├── mod.rs │ │ └── type_name.rs │ ├── rustc_data_structures/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── aligned.rs │ │ ├── atomic_ref.rs │ │ ├── base_n/ │ │ │ └── tests.rs │ │ ├── base_n.rs │ │ ├── binary_search_util/ │ │ │ ├── mod.rs │ │ │ └── tests.rs │ │ ├── fingerprint/ │ │ │ └── tests.rs │ │ ├── fingerprint.rs │ │ ├── flat_map_in_place.rs │ │ ├── flock/ │ │ │ ├── linux.rs │ │ │ ├── unix.rs │ │ │ ├── unsupported.rs │ │ │ └── windows.rs │ │ ├── flock.rs │ │ ├── frozen.rs │ │ ├── fx.rs │ │ ├── graph/ │ │ │ ├── dominators/ │ │ │ │ ├── mod.rs │ │ │ │ └── tests.rs │ │ │ ├── iterate/ │ │ │ │ ├── mod.rs │ │ │ │ └── tests.rs │ │ │ ├── linked_graph/ │ │ │ │ ├── mod.rs │ │ │ │ └── tests.rs │ │ │ ├── mod.rs │ │ │ ├── reference.rs │ │ │ ├── reversed.rs │ │ │ ├── scc/ │ │ │ │ ├── mod.rs │ │ │ │ └── tests.rs │ │ │ ├── tests.rs │ │ │ └── vec_graph/ │ │ │ ├── mod.rs │ │ │ └── tests.rs │ │ ├── intern/ │ │ │ └── tests.rs │ │ ├── intern.rs │ │ ├── jobserver.rs │ │ ├── lib.rs │ │ ├── marker.rs │ │ ├── memmap.rs │ │ ├── obligation_forest/ │ │ │ ├── graphviz.rs │ │ │ ├── mod.rs │ │ │ └── tests.rs │ │ ├── owned_slice/ │ │ │ └── tests.rs │ │ ├── owned_slice.rs │ │ ├── packed.rs │ │ ├── profiling/ │ │ │ └── tests.rs │ │ ├── profiling.rs │ │ ├── sharded.rs │ │ ├── small_c_str/ │ │ │ └── tests.rs │ │ ├── small_c_str.rs │ │ ├── snapshot_map/ │ │ │ ├── mod.rs │ │ │ └── tests.rs │ │ ├── sorted_map/ │ │ │ ├── index_map.rs │ │ │ └── tests.rs │ │ ├── sorted_map.rs │ │ ├── sso/ │ │ │ ├── map.rs │ │ │ ├── mod.rs │ │ │ └── set.rs │ │ ├── stable_hasher/ │ │ │ └── tests.rs │ │ ├── stable_hasher.rs │ │ ├── stack.rs │ │ ├── steal.rs │ │ ├── svh.rs │ │ ├── sync/ │ │ │ ├── freeze.rs │ │ │ ├── lock.rs │ │ │ ├── parallel.rs │ │ │ ├── vec.rs │ │ │ └── worker_local.rs │ │ ├── sync.rs │ │ ├── tagged_ptr/ │ │ │ └── tests.rs │ │ ├── tagged_ptr.rs │ │ ├── temp_dir.rs │ │ ├── thinvec.rs │ │ ├── thousands/ │ │ │ ├── mod.rs │ │ │ └── tests.rs │ │ ├── transitive_relation/ │ │ │ └── tests.rs │ │ ├── transitive_relation.rs │ │ ├── unhash.rs │ │ ├── union_find/ │ │ │ └── tests.rs │ │ ├── union_find.rs │ │ ├── unord.rs │ │ ├── vec_cache/ │ │ │ └── tests.rs │ │ ├── vec_cache.rs │ │ └── work_queue.rs │ ├── rustc_driver/ │ │ ├── Cargo.toml │ │ ├── build.rs │ │ └── src/ │ │ └── lib.rs │ ├── rustc_driver_impl/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ └── src/ │ │ ├── args.rs │ │ ├── highlighter.rs │ │ ├── lib.rs │ │ ├── pretty.rs │ │ ├── print.rs │ │ ├── session_diagnostics.rs │ │ └── signal_handler.rs │ ├── rustc_error_codes/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── error_codes/ │ │ │ ├── E0001.md │ │ │ ├── E0002.md │ │ │ ├── E0004.md │ │ │ ├── E0005.md │ │ │ ├── E0007.md │ │ │ ├── E0009.md │ │ │ ├── E0010.md │ │ │ ├── E0013.md │ │ │ ├── E0014.md │ │ │ ├── E0015.md │ │ │ ├── E0023.md │ │ │ ├── E0025.md │ │ │ ├── E0026.md │ │ │ ├── E0027.md │ │ │ ├── E0029.md │ │ │ ├── E0030.md │ │ │ ├── E0033.md │ │ │ ├── E0034.md │ │ │ ├── E0038.md │ │ │ ├── E0040.md │ │ │ ├── E0044.md │ │ │ ├── E0045.md │ │ │ ├── E0046.md │ │ │ ├── E0049.md │ │ │ ├── E0050.md │ │ │ ├── E0053.md │ │ │ ├── E0054.md │ │ │ ├── E0055.md │ │ │ ├── E0057.md │ │ │ ├── E0059.md │ │ │ ├── E0060.md │ │ │ ├── E0061.md │ │ │ ├── E0062.md │ │ │ ├── E0063.md │ │ │ ├── E0067.md │ │ │ ├── E0069.md │ │ │ ├── E0070.md │ │ │ ├── E0071.md │ │ │ ├── E0072.md │ │ │ ├── E0073.md │ │ │ ├── E0074.md │ │ │ ├── E0075.md │ │ │ ├── E0076.md │ │ │ ├── E0077.md │ │ │ ├── E0080.md │ │ │ ├── E0081.md │ │ │ ├── E0084.md │ │ │ ├── E0087.md │ │ │ ├── E0088.md │ │ │ ├── E0089.md │ │ │ ├── E0090.md │ │ │ ├── E0091.md │ │ │ ├── E0092.md │ │ │ ├── E0093.md │ │ │ ├── E0094.md │ │ │ ├── E0106.md │ │ │ ├── E0107.md │ │ │ ├── E0109.md │ │ │ ├── E0110.md │ │ │ ├── E0116.md │ │ │ ├── E0117.md │ │ │ ├── E0118.md │ │ │ ├── E0119.md │ │ │ ├── E0120.md │ │ │ ├── E0121.md │ │ │ ├── E0124.md │ │ │ ├── E0128.md │ │ │ ├── E0130.md │ │ │ ├── E0131.md │ │ │ ├── E0132.md │ │ │ ├── E0133.md │ │ │ ├── E0136.md │ │ │ ├── E0137.md │ │ │ ├── E0138.md │ │ │ ├── E0139.md │ │ │ ├── E0152.md │ │ │ ├── E0154.md │ │ │ ├── E0158.md │ │ │ ├── E0161.md │ │ │ ├── E0162.md │ │ │ ├── E0164.md │ │ │ ├── E0165.md │ │ │ ├── E0170.md │ │ │ ├── E0178.md │ │ │ ├── E0183.md │ │ │ ├── E0184.md │ │ │ ├── E0185.md │ │ │ ├── E0186.md │ │ │ ├── E0191.md │ │ │ ├── E0192.md │ │ │ ├── E0193.md │ │ │ ├── E0195.md │ │ │ ├── E0197.md │ │ │ ├── E0198.md │ │ │ ├── E0199.md │ │ │ ├── E0200.md │ │ │ ├── E0201.md │ │ │ ├── E0203.md │ │ │ ├── E0204.md │ │ │ ├── E0205.md │ │ │ ├── E0206.md │ │ │ ├── E0207.md │ │ │ ├── E0208.md │ │ │ ├── E0210.md │ │ │ ├── E0211.md │ │ │ ├── E0212.md │ │ │ ├── E0214.md │ │ │ ├── E0220.md │ │ │ ├── E0221.md │ │ │ ├── E0222.md │ │ │ ├── E0223.md │ │ │ ├── E0224.md │ │ │ ├── E0225.md │ │ │ ├── E0226.md │ │ │ ├── E0227.md │ │ │ ├── E0228.md │ │ │ ├── E0229.md │ │ │ ├── E0230.md │ │ │ ├── E0231.md │ │ │ ├── E0232.md │ │ │ ├── E0243.md │ │ │ ├── E0244.md │ │ │ ├── E0251.md │ │ │ ├── E0252.md │ │ │ ├── E0253.md │ │ │ ├── E0254.md │ │ │ ├── E0255.md │ │ │ ├── E0256.md │ │ │ ├── E0259.md │ │ │ ├── E0260.md │ │ │ ├── E0261.md │ │ │ ├── E0262.md │ │ │ ├── E0263.md │ │ │ ├── E0264.md │ │ │ ├── E0267.md │ │ │ ├── E0268.md │ │ │ ├── E0271.md │ │ │ ├── E0275.md │ │ │ ├── E0276.md │ │ │ ├── E0277.md │ │ │ ├── E0281.md │ │ │ ├── E0282.md │ │ │ ├── E0283.md │ │ │ ├── E0284.md │ │ │ ├── E0297.md │ │ │ ├── E0301.md │ │ │ ├── E0302.md │ │ │ ├── E0303.md │ │ │ ├── E0307.md │ │ │ ├── E0308.md │ │ │ ├── E0309.md │ │ │ ├── E0310.md │ │ │ ├── E0311.md │ │ │ ├── E0312.md │ │ │ ├── E0316.md │ │ │ ├── E0317.md │ │ │ ├── E0320.md │ │ │ ├── E0321.md │ │ │ ├── E0322.md │ │ │ ├── E0323.md │ │ │ ├── E0324.md │ │ │ ├── E0325.md │ │ │ ├── E0326.md │ │ │ ├── E0328.md │ │ │ ├── E0329.md │ │ │ ├── E0364.md │ │ │ ├── E0365.md │ │ │ ├── E0366.md │ │ │ ├── E0367.md │ │ │ ├── E0368.md │ │ │ ├── E0369.md │ │ │ ├── E0370.md │ │ │ ├── E0371.md │ │ │ ├── E0373.md │ │ │ ├── E0374.md │ │ │ ├── E0375.md │ │ │ ├── E0376.md │ │ │ ├── E0377.md │ │ │ ├── E0378.md │ │ │ ├── E0379.md │ │ │ ├── E0380.md │ │ │ ├── E0381.md │ │ │ ├── E0382.md │ │ │ ├── E0383.md │ │ │ ├── E0384.md │ │ │ ├── E0386.md │ │ │ ├── E0387.md │ │ │ ├── E0388.md │ │ │ ├── E0389.md │ │ │ ├── E0390.md │ │ │ ├── E0391.md │ │ │ ├── E0392.md │ │ │ ├── E0393.md │ │ │ ├── E0398.md │ │ │ ├── E0399.md │ │ │ ├── E0401.md │ │ │ ├── E0403.md │ │ │ ├── E0404.md │ │ │ ├── E0405.md │ │ │ ├── E0407.md │ │ │ ├── E0408.md │ │ │ ├── E0409.md │ │ │ ├── E0411.md │ │ │ ├── E0412.md │ │ │ ├── E0415.md │ │ │ ├── E0416.md │ │ │ ├── E0422.md │ │ │ ├── E0423.md │ │ │ ├── E0424.md │ │ │ ├── E0425.md │ │ │ ├── E0426.md │ │ │ ├── E0428.md │ │ │ ├── E0429.md │ │ │ ├── E0430.md │ │ │ ├── E0431.md │ │ │ ├── E0432.md │ │ │ ├── E0433.md │ │ │ ├── E0434.md │ │ │ ├── E0435.md │ │ │ ├── E0436.md │ │ │ ├── E0437.md │ │ │ ├── E0438.md │ │ │ ├── E0439.md │ │ │ ├── E0445.md │ │ │ ├── E0446.md │ │ │ ├── E0447.md │ │ │ ├── E0448.md │ │ │ ├── E0449.md │ │ │ ├── E0451.md │ │ │ ├── E0452.md │ │ │ ├── E0453.md │ │ │ ├── E0454.md │ │ │ ├── E0455.md │ │ │ ├── E0457.md │ │ │ ├── E0458.md │ │ │ ├── E0459.md │ │ │ ├── E0460.md │ │ │ ├── E0461.md │ │ │ ├── E0462.md │ │ │ ├── E0463.md │ │ │ ├── E0464.md │ │ │ ├── E0466.md │ │ │ ├── E0468.md │ │ │ ├── E0469.md │ │ │ ├── E0472.md │ │ │ ├── E0476.md │ │ │ ├── E0477.md │ │ │ ├── E0478.md │ │ │ ├── E0482.md │ │ │ ├── E0491.md │ │ │ ├── E0492.md │ │ │ ├── E0493.md │ │ │ ├── E0495.md │ │ │ ├── E0496.md │ │ │ ├── E0497.md │ │ │ ├── E0498.md │ │ │ ├── E0499.md │ │ │ ├── E0500.md │ │ │ ├── E0501.md │ │ │ ├── E0502.md │ │ │ ├── E0503.md │ │ │ ├── E0504.md │ │ │ ├── E0505.md │ │ │ ├── E0506.md │ │ │ ├── E0507.md │ │ │ ├── E0508.md │ │ │ ├── E0509.md │ │ │ ├── E0510.md │ │ │ ├── E0511.md │ │ │ ├── E0512.md │ │ │ ├── E0514.md │ │ │ ├── E0515.md │ │ │ ├── E0516.md │ │ │ ├── E0517.md │ │ │ ├── E0518.md │ │ │ ├── E0519.md │ │ │ ├── E0520.md │ │ │ ├── E0521.md │ │ │ ├── E0522.md │ │ │ ├── E0523.md │ │ │ ├── E0524.md │ │ │ ├── E0525.md │ │ │ ├── E0527.md │ │ │ ├── E0528.md │ │ │ ├── E0529.md │ │ │ ├── E0530.md │ │ │ ├── E0531.md │ │ │ ├── E0532.md │ │ │ ├── E0533.md │ │ │ ├── E0534.md │ │ │ ├── E0535.md │ │ │ ├── E0536.md │ │ │ ├── E0537.md │ │ │ ├── E0538.md │ │ │ ├── E0539.md │ │ │ ├── E0541.md │ │ │ ├── E0542.md │ │ │ ├── E0543.md │ │ │ ├── E0544.md │ │ │ ├── E0545.md │ │ │ ├── E0546.md │ │ │ ├── E0547.md │ │ │ ├── E0549.md │ │ │ ├── E0550.md │ │ │ ├── E0551.md │ │ │ ├── E0552.md │ │ │ ├── E0554.md │ │ │ ├── E0556.md │ │ │ ├── E0557.md │ │ │ ├── E0559.md │ │ │ ├── E0560.md │ │ │ ├── E0561.md │ │ │ ├── E0562.md │ │ │ ├── E0565.md │ │ │ ├── E0566.md │ │ │ ├── E0567.md │ │ │ ├── E0568.md │ │ │ ├── E0569.md │ │ │ ├── E0570.md │ │ │ ├── E0571.md │ │ │ ├── E0572.md │ │ │ ├── E0573.md │ │ │ ├── E0574.md │ │ │ ├── E0575.md │ │ │ ├── E0576.md │ │ │ ├── E0577.md │ │ │ ├── E0578.md │ │ │ ├── E0579.md │ │ │ ├── E0580.md │ │ │ ├── E0581.md │ │ │ ├── E0582.md │ │ │ ├── E0583.md │ │ │ ├── E0584.md │ │ │ ├── E0585.md │ │ │ ├── E0586.md │ │ │ ├── E0587.md │ │ │ ├── E0588.md │ │ │ ├── E0589.md │ │ │ ├── E0590.md │ │ │ ├── E0591.md │ │ │ ├── E0592.md │ │ │ ├── E0593.md │ │ │ ├── E0594.md │ │ │ ├── E0595.md │ │ │ ├── E0596.md │ │ │ ├── E0597.md │ │ │ ├── E0599.md │ │ │ ├── E0600.md │ │ │ ├── E0601.md │ │ │ ├── E0602.md │ │ │ ├── E0603.md │ │ │ ├── E0604.md │ │ │ ├── E0605.md │ │ │ ├── E0606.md │ │ │ ├── E0607.md │ │ │ ├── E0608.md │ │ │ ├── E0609.md │ │ │ ├── E0610.md │ │ │ ├── E0614.md │ │ │ ├── E0615.md │ │ │ ├── E0616.md │ │ │ ├── E0617.md │ │ │ ├── E0618.md │ │ │ ├── E0619.md │ │ │ ├── E0620.md │ │ │ ├── E0621.md │ │ │ ├── E0622.md │ │ │ ├── E0623.md │ │ │ ├── E0624.md │ │ │ ├── E0625.md │ │ │ ├── E0626.md │ │ │ ├── E0627.md │ │ │ ├── E0628.md │ │ │ ├── E0631.md │ │ │ ├── E0632.md │ │ │ ├── E0633.md │ │ │ ├── E0634.md │ │ │ ├── E0635.md │ │ │ ├── E0636.md │ │ │ ├── E0637.md │ │ │ ├── E0638.md │ │ │ ├── E0639.md │ │ │ ├── E0640.md │ │ │ ├── E0641.md │ │ │ ├── E0642.md │ │ │ ├── E0643.md │ │ │ ├── E0644.md │ │ │ ├── E0646.md │ │ │ ├── E0647.md │ │ │ ├── E0648.md │ │ │ ├── E0657.md │ │ │ ├── E0658.md │ │ │ ├── E0659.md │ │ │ ├── E0660.md │ │ │ ├── E0661.md │ │ │ ├── E0662.md │ │ │ ├── E0663.md │ │ │ ├── E0664.md │ │ │ ├── E0665.md │ │ │ ├── E0666.md │ │ │ ├── E0667.md │ │ │ ├── E0668.md │ │ │ ├── E0669.md │ │ │ ├── E0670.md │ │ │ ├── E0671.md │ │ │ ├── E0687.md │ │ │ ├── E0688.md │ │ │ ├── E0689.md │ │ │ ├── E0690.md │ │ │ ├── E0691.md │ │ │ ├── E0692.md │ │ │ ├── E0693.md │ │ │ ├── E0695.md │ │ │ ├── E0696.md │ │ │ ├── E0697.md │ │ │ ├── E0698.md │ │ │ ├── E0699.md │ │ │ ├── E0700.md │ │ │ ├── E0701.md │ │ │ ├── E0703.md │ │ │ ├── E0704.md │ │ │ ├── E0705.md │ │ │ ├── E0706.md │ │ │ ├── E0708.md │ │ │ ├── E0710.md │ │ │ ├── E0711.md │ │ │ ├── E0712.md │ │ │ ├── E0713.md │ │ │ ├── E0714.md │ │ │ ├── E0715.md │ │ │ ├── E0716.md │ │ │ ├── E0717.md │ │ │ ├── E0718.md │ │ │ ├── E0719.md │ │ │ ├── E0720.md │ │ │ ├── E0722.md │ │ │ ├── E0724.md │ │ │ ├── E0725.md │ │ │ ├── E0726.md │ │ │ ├── E0727.md │ │ │ ├── E0728.md │ │ │ ├── E0729.md │ │ │ ├── E0730.md │ │ │ ├── E0731.md │ │ │ ├── E0732.md │ │ │ ├── E0733.md │ │ │ ├── E0734.md │ │ │ ├── E0735.md │ │ │ ├── E0736.md │ │ │ ├── E0737.md │ │ │ ├── E0739.md │ │ │ ├── E0740.md │ │ │ ├── E0741.md │ │ │ ├── E0742.md │ │ │ ├── E0743.md │ │ │ ├── E0744.md │ │ │ ├── E0745.md │ │ │ ├── E0746.md │ │ │ ├── E0747.md │ │ │ ├── E0748.md │ │ │ ├── E0749.md │ │ │ ├── E0750.md │ │ │ ├── E0751.md │ │ │ ├── E0752.md │ │ │ ├── E0753.md │ │ │ ├── E0754.md │ │ │ ├── E0755.md │ │ │ ├── E0756.md │ │ │ ├── E0757.md │ │ │ ├── E0758.md │ │ │ ├── E0759.md │ │ │ ├── E0760.md │ │ │ ├── E0761.md │ │ │ ├── E0762.md │ │ │ ├── E0763.md │ │ │ ├── E0764.md │ │ │ ├── E0765.md │ │ │ ├── E0766.md │ │ │ ├── E0767.md │ │ │ ├── E0768.md │ │ │ ├── E0769.md │ │ │ ├── E0770.md │ │ │ ├── E0771.md │ │ │ ├── E0772.md │ │ │ ├── E0773.md │ │ │ ├── E0774.md │ │ │ ├── E0775.md │ │ │ ├── E0776.md │ │ │ ├── E0777.md │ │ │ ├── E0778.md │ │ │ ├── E0779.md │ │ │ ├── E0780.md │ │ │ ├── E0781.md │ │ │ ├── E0782.md │ │ │ ├── E0783.md │ │ │ ├── E0784.md │ │ │ ├── E0785.md │ │ │ ├── E0786.md │ │ │ ├── E0787.md │ │ │ ├── E0788.md │ │ │ ├── E0789.md │ │ │ ├── E0790.md │ │ │ ├── E0791.md │ │ │ ├── E0792.md │ │ │ ├── E0793.md │ │ │ ├── E0794.md │ │ │ ├── E0795.md │ │ │ ├── E0796.md │ │ │ ├── E0797.md │ │ │ ├── E0798.md │ │ │ ├── E0799.md │ │ │ ├── E0800.md │ │ │ ├── E0801.md │ │ │ ├── E0802.md │ │ │ ├── E0803.md │ │ │ ├── E0804.md │ │ │ ├── E0805.md │ │ │ └── E0806.md │ │ └── lib.rs │ ├── rustc_error_messages/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── diagnostic_impls.rs │ │ └── lib.rs │ ├── rustc_errors/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── annotate_snippet_emitter_writer.rs │ │ ├── codes.rs │ │ ├── decorate_diag.rs │ │ ├── diagnostic.rs │ │ ├── diagnostic_impls.rs │ │ ├── emitter.rs │ │ ├── formatting.rs │ │ ├── json/ │ │ │ └── tests.rs │ │ ├── json.rs │ │ ├── lib.rs │ │ ├── lock.rs │ │ ├── markdown/ │ │ │ ├── mod.rs │ │ │ ├── parse.rs │ │ │ ├── term.rs │ │ │ └── tests/ │ │ │ ├── input.md │ │ │ ├── output.stdout │ │ │ ├── parse.rs │ │ │ └── term.rs │ │ └── timings.rs │ ├── rustc_expand/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── base.rs │ │ ├── build.rs │ │ ├── config.rs │ │ ├── errors.rs │ │ ├── expand.rs │ │ ├── lib.rs │ │ ├── mbe/ │ │ │ ├── diagnostics.rs │ │ │ ├── macro_check.rs │ │ │ ├── macro_parser.rs │ │ │ ├── macro_rules.rs │ │ │ ├── metavar_expr.rs │ │ │ ├── quoted.rs │ │ │ └── transcribe.rs │ │ ├── mbe.rs │ │ ├── module.rs │ │ ├── placeholders.rs │ │ ├── proc_macro.rs │ │ ├── proc_macro_server.rs │ │ └── stats.rs │ ├── rustc_feature/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── accepted.rs │ │ ├── builtin_attrs.rs │ │ ├── lib.rs │ │ ├── removed.rs │ │ ├── tests.rs │ │ └── unstable.rs │ ├── rustc_fs_util/ │ │ ├── Cargo.toml │ │ └── src/ │ │ └── lib.rs │ ├── rustc_graphviz/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── lib.rs │ │ └── tests.rs │ ├── rustc_hashes/ │ │ ├── Cargo.toml │ │ └── src/ │ │ └── lib.rs │ ├── rustc_hir/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── arena.rs │ │ ├── attrs/ │ │ │ ├── data_structures.rs │ │ │ ├── diagnostic.rs │ │ │ ├── encode_cross_crate.rs │ │ │ ├── mod.rs │ │ │ └── pretty_printing.rs │ │ ├── def.rs │ │ ├── def_path_hash_map.rs │ │ ├── definitions.rs │ │ ├── diagnostic_items.rs │ │ ├── hir/ │ │ │ └── tests.rs │ │ ├── hir.rs │ │ ├── intravisit.rs │ │ ├── lang_items.rs │ │ ├── lib.rs │ │ ├── limit.rs │ │ ├── lints.rs │ │ ├── pat_util.rs │ │ ├── stability.rs │ │ ├── stable_hash_impls.rs │ │ ├── target.rs │ │ ├── tests.rs │ │ └── weak_lang_items.rs │ ├── rustc_hir_analysis/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ └── src/ │ │ ├── autoderef.rs │ │ ├── check/ │ │ │ ├── always_applicable.rs │ │ │ ├── check.rs │ │ │ ├── compare_eii.rs │ │ │ ├── compare_impl_item/ │ │ │ │ └── refine.rs │ │ │ ├── compare_impl_item.rs │ │ │ ├── entry.rs │ │ │ ├── intrinsic.rs │ │ │ ├── mod.rs │ │ │ ├── region.rs │ │ │ └── wfcheck.rs │ │ ├── check_unused.rs │ │ ├── coherence/ │ │ │ ├── builtin.rs │ │ │ ├── inherent_impls.rs │ │ │ ├── inherent_impls_overlap.rs │ │ │ ├── mod.rs │ │ │ ├── orphan.rs │ │ │ └── unsafety.rs │ │ ├── collect/ │ │ │ ├── dump.rs │ │ │ ├── generics_of.rs │ │ │ ├── item_bounds.rs │ │ │ ├── predicates_of.rs │ │ │ ├── resolve_bound_vars.rs │ │ │ ├── type_of/ │ │ │ │ └── opaque.rs │ │ │ └── type_of.rs │ │ ├── collect.rs │ │ ├── constrained_generic_params.rs │ │ ├── delegation.rs │ │ ├── errors/ │ │ │ ├── precise_captures.rs │ │ │ └── wrong_number_of_generic_args.rs │ │ ├── errors.rs │ │ ├── hir_ty_lowering/ │ │ │ ├── bounds.rs │ │ │ ├── cmse.rs │ │ │ ├── dyn_trait.rs │ │ │ ├── errors.rs │ │ │ ├── generics.rs │ │ │ └── mod.rs │ │ ├── hir_wf_check.rs │ │ ├── impl_wf_check/ │ │ │ └── min_specialization.rs │ │ ├── impl_wf_check.rs │ │ ├── lib.rs │ │ ├── outlives/ │ │ │ ├── dump.rs │ │ │ ├── explicit.rs │ │ │ ├── implicit_infer.rs │ │ │ ├── mod.rs │ │ │ └── utils.rs │ │ └── variance/ │ │ ├── constraints.rs │ │ ├── dump.rs │ │ ├── mod.rs │ │ ├── solve.rs │ │ └── terms.rs │ ├── rustc_hir_id/ │ │ ├── Cargo.toml │ │ └── src/ │ │ └── lib.rs │ ├── rustc_hir_pretty/ │ │ ├── Cargo.toml │ │ └── src/ │ │ └── lib.rs │ ├── rustc_hir_typeck/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── _match.rs │ │ ├── autoderef.rs │ │ ├── callee.rs │ │ ├── cast.rs │ │ ├── check.rs │ │ ├── closure.rs │ │ ├── coercion.rs │ │ ├── demand.rs │ │ ├── diverges.rs │ │ ├── errors.rs │ │ ├── expectation.rs │ │ ├── expr.rs │ │ ├── expr_use_visitor.rs │ │ ├── fallback.rs │ │ ├── fn_ctxt/ │ │ │ ├── _impl.rs │ │ │ ├── adjust_fulfillment_errors.rs │ │ │ ├── arg_matrix.rs │ │ │ ├── checks.rs │ │ │ ├── inspect_obligations.rs │ │ │ ├── mod.rs │ │ │ └── suggestions.rs │ │ ├── gather_locals.rs │ │ ├── inline_asm.rs │ │ ├── intrinsicck.rs │ │ ├── lib.rs │ │ ├── loops.rs │ │ ├── method/ │ │ │ ├── confirm.rs │ │ │ ├── mod.rs │ │ │ ├── prelude_edition_lints.rs │ │ │ ├── probe.rs │ │ │ └── suggest.rs │ │ ├── naked_functions.rs │ │ ├── op.rs │ │ ├── opaque_types.rs │ │ ├── pat.rs │ │ ├── place_op.rs │ │ ├── typeck_root_ctxt.rs │ │ ├── upvar.rs │ │ └── writeback.rs │ ├── rustc_incremental/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── assert_dep_graph.rs │ │ ├── errors.rs │ │ ├── lib.rs │ │ └── persist/ │ │ ├── README.md │ │ ├── clean.rs │ │ ├── data.rs │ │ ├── file_format.rs │ │ ├── fs/ │ │ │ └── tests.rs │ │ ├── fs.rs │ │ ├── load.rs │ │ ├── mod.rs │ │ ├── save.rs │ │ └── work_product.rs │ ├── rustc_index/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── bit_set/ │ │ │ └── tests.rs │ │ ├── bit_set.rs │ │ ├── idx.rs │ │ ├── interval/ │ │ │ └── tests.rs │ │ ├── interval.rs │ │ ├── lib.rs │ │ ├── slice.rs │ │ ├── vec/ │ │ │ └── tests.rs │ │ └── vec.rs │ ├── rustc_index_macros/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── lib.rs │ │ └── newtype.rs │ ├── rustc_infer/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── errors.rs │ │ ├── infer/ │ │ │ ├── at.rs │ │ │ ├── canonical/ │ │ │ │ ├── canonicalizer.rs │ │ │ │ ├── instantiate.rs │ │ │ │ ├── mod.rs │ │ │ │ └── query_response.rs │ │ │ ├── context.rs │ │ │ ├── free_regions.rs │ │ │ ├── freshen.rs │ │ │ ├── lexical_region_resolve/ │ │ │ │ ├── README.md │ │ │ │ ├── indexed_edges.rs │ │ │ │ └── mod.rs │ │ │ ├── mod.rs │ │ │ ├── opaque_types/ │ │ │ │ ├── mod.rs │ │ │ │ └── table.rs │ │ │ ├── outlives/ │ │ │ │ ├── env.rs │ │ │ │ ├── for_liveness.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── obligations.rs │ │ │ │ ├── test_type_match.rs │ │ │ │ └── verify.rs │ │ │ ├── projection.rs │ │ │ ├── region_constraints/ │ │ │ │ ├── README.md │ │ │ │ ├── leak_check.rs │ │ │ │ └── mod.rs │ │ │ ├── relate/ │ │ │ │ ├── generalize.rs │ │ │ │ ├── higher_ranked.rs │ │ │ │ ├── lattice.rs │ │ │ │ ├── mod.rs │ │ │ │ └── type_relating.rs │ │ │ ├── resolve.rs │ │ │ ├── snapshot/ │ │ │ │ ├── fudge.rs │ │ │ │ ├── mod.rs │ │ │ │ └── undo_log.rs │ │ │ ├── type_variable.rs │ │ │ └── unify_key.rs │ │ ├── lib.rs │ │ └── traits/ │ │ ├── engine.rs │ │ ├── mod.rs │ │ ├── project.rs │ │ ├── structural_impls.rs │ │ └── util.rs │ ├── rustc_interface/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── callbacks.rs │ │ ├── errors.rs │ │ ├── interface.rs │ │ ├── lib.rs │ │ ├── limits.rs │ │ ├── passes.rs │ │ ├── proc_macro_decls.rs │ │ ├── queries.rs │ │ ├── tests.rs │ │ └── util.rs │ ├── rustc_lexer/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── lib.rs │ │ └── tests.rs │ ├── rustc_lint/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── async_closures.rs │ │ ├── async_fn_in_trait.rs │ │ ├── autorefs.rs │ │ ├── builtin.rs │ │ ├── context.rs │ │ ├── dangling.rs │ │ ├── default_could_be_derived.rs │ │ ├── deref_into_dyn_supertrait.rs │ │ ├── disallowed_pass_by_ref.rs │ │ ├── drop_forget_useless.rs │ │ ├── early/ │ │ │ ├── diagnostics/ │ │ │ │ └── check_cfg.rs │ │ │ └── diagnostics.rs │ │ ├── early.rs │ │ ├── enum_intrinsics_non_enums.rs │ │ ├── errors.rs │ │ ├── expect.rs │ │ ├── for_loops_over_fallibles.rs │ │ ├── foreign_modules.rs │ │ ├── function_cast_as_integer.rs │ │ ├── gpukernel_abi.rs │ │ ├── if_let_rescope.rs │ │ ├── impl_trait_overcaptures.rs │ │ ├── interior_mutable_consts.rs │ │ ├── internal.rs │ │ ├── invalid_from_utf8.rs │ │ ├── late.rs │ │ ├── let_underscore.rs │ │ ├── levels.rs │ │ ├── lib.rs │ │ ├── lifetime_syntax.rs │ │ ├── lints.rs │ │ ├── macro_expr_fragment_specifier_2024_migration.rs │ │ ├── map_unit_fn.rs │ │ ├── multiple_supertrait_upcastable.rs │ │ ├── non_ascii_idents.rs │ │ ├── non_fmt_panic.rs │ │ ├── non_local_def.rs │ │ ├── nonstandard_style/ │ │ │ └── tests.rs │ │ ├── nonstandard_style.rs │ │ ├── noop_method_call.rs │ │ ├── opaque_hidden_inferred_bound.rs │ │ ├── passes.rs │ │ ├── precedence.rs │ │ ├── ptr_nulls.rs │ │ ├── redundant_semicolon.rs │ │ ├── reference_casting.rs │ │ ├── shadowed_into_iter.rs │ │ ├── static_mut_refs.rs │ │ ├── tests.rs │ │ ├── traits.rs │ │ ├── transmute.rs │ │ ├── types/ │ │ │ ├── improper_ctypes.rs │ │ │ └── literal.rs │ │ ├── types.rs │ │ ├── unit_bindings.rs │ │ ├── unqualified_local_imports.rs │ │ ├── unused/ │ │ │ └── must_use.rs │ │ ├── unused.rs │ │ └── utils.rs │ ├── rustc_lint_defs/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── builtin.rs │ │ └── lib.rs │ ├── rustc_llvm/ │ │ ├── Cargo.toml │ │ ├── build.rs │ │ ├── llvm-wrapper/ │ │ │ ├── .editorconfig │ │ │ ├── CoverageMappingWrapper.cpp │ │ │ ├── LLVMWrapper.h │ │ │ ├── Linker.cpp │ │ │ ├── PassWrapper.cpp │ │ │ ├── README │ │ │ ├── RustWrapper.cpp │ │ │ ├── SuppressLLVMWarnings.h │ │ │ └── SymbolWrapper.cpp │ │ └── src/ │ │ └── lib.rs │ ├── rustc_log/ │ │ ├── Cargo.toml │ │ └── src/ │ │ └── lib.rs │ ├── rustc_macros/ │ │ ├── Cargo.toml │ │ ├── build.rs │ │ └── src/ │ │ ├── current_version.rs │ │ ├── diagnostics/ │ │ │ ├── diagnostic.rs │ │ │ ├── diagnostic_builder.rs │ │ │ ├── error.rs │ │ │ ├── message.rs │ │ │ ├── mod.rs │ │ │ ├── msg_macro.rs │ │ │ ├── subdiagnostic.rs │ │ │ └── utils.rs │ │ ├── extension.rs │ │ ├── hash_stable.rs │ │ ├── lib.rs │ │ ├── lift.rs │ │ ├── print_attribute.rs │ │ ├── query.rs │ │ ├── serialize.rs │ │ ├── symbols/ │ │ │ └── tests.rs │ │ ├── symbols.rs │ │ ├── type_foldable.rs │ │ ├── type_visitable.rs │ │ └── visitable.rs │ ├── rustc_metadata/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── creader.rs │ │ ├── dependency_format.rs │ │ ├── eii.rs │ │ ├── errors.rs │ │ ├── foreign_modules.rs │ │ ├── fs.rs │ │ ├── lib.rs │ │ ├── locator.rs │ │ ├── native_libs.rs │ │ └── rmeta/ │ │ ├── decoder/ │ │ │ └── cstore_impl.rs │ │ ├── decoder.rs │ │ ├── def_path_hash_map.rs │ │ ├── encoder.rs │ │ ├── mod.rs │ │ ├── parameterized.rs │ │ └── table.rs │ ├── rustc_middle/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ └── src/ │ │ ├── arena.rs │ │ ├── dep_graph/ │ │ │ ├── README.md │ │ │ ├── debug.rs │ │ │ ├── dep_node.rs │ │ │ ├── dep_node_key.rs │ │ │ ├── edges.rs │ │ │ ├── graph.rs │ │ │ ├── mod.rs │ │ │ ├── retained.rs │ │ │ └── serialized.rs │ │ ├── error.rs │ │ ├── hir/ │ │ │ ├── map.rs │ │ │ ├── mod.rs │ │ │ ├── nested_filter.rs │ │ │ └── place.rs │ │ ├── hooks/ │ │ │ └── mod.rs │ │ ├── ich/ │ │ │ ├── hcx.rs │ │ │ ├── impls_syntax.rs │ │ │ └── mod.rs │ │ ├── infer/ │ │ │ ├── canonical.rs │ │ │ └── mod.rs │ │ ├── lib.rs │ │ ├── lint.rs │ │ ├── macros.rs │ │ ├── metadata.rs │ │ ├── middle/ │ │ │ ├── codegen_fn_attrs.rs │ │ │ ├── debugger_visualizer.rs │ │ │ ├── deduced_param_attrs.rs │ │ │ ├── dependency_format.rs │ │ │ ├── exported_symbols.rs │ │ │ ├── lang_items.rs │ │ │ ├── mod.rs │ │ │ ├── privacy.rs │ │ │ ├── region.rs │ │ │ ├── resolve_bound_vars.rs │ │ │ └── stability.rs │ │ ├── mir/ │ │ │ ├── basic_blocks.rs │ │ │ ├── consts.rs │ │ │ ├── coverage.rs │ │ │ ├── generic_graph.rs │ │ │ ├── generic_graphviz.rs │ │ │ ├── graphviz.rs │ │ │ ├── interpret/ │ │ │ │ ├── allocation/ │ │ │ │ │ ├── init_mask/ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ ├── init_mask.rs │ │ │ │ │ └── provenance_map.rs │ │ │ │ ├── allocation.rs │ │ │ │ ├── error.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── pointer.rs │ │ │ │ ├── queries.rs │ │ │ │ └── value.rs │ │ │ ├── loops.rs │ │ │ ├── mod.rs │ │ │ ├── mono.rs │ │ │ ├── pretty.rs │ │ │ ├── query.rs │ │ │ ├── statement.rs │ │ │ ├── syntax.rs │ │ │ ├── terminator.rs │ │ │ ├── traversal.rs │ │ │ └── visit.rs │ │ ├── queries.rs │ │ ├── query/ │ │ │ ├── arena_cached.rs │ │ │ ├── caches.rs │ │ │ ├── erase.rs │ │ │ ├── inner.rs │ │ │ ├── into_query_key.rs │ │ │ ├── job.rs │ │ │ ├── keys.rs │ │ │ ├── mod.rs │ │ │ ├── modifiers.rs │ │ │ ├── on_disk_cache.rs │ │ │ ├── plumbing.rs │ │ │ └── stack.rs │ │ ├── tests.rs │ │ ├── thir/ │ │ │ └── visit.rs │ │ ├── thir.rs │ │ ├── traits/ │ │ │ ├── cache.rs │ │ │ ├── mod.rs │ │ │ ├── query.rs │ │ │ ├── select.rs │ │ │ ├── solve.rs │ │ │ ├── specialization_graph.rs │ │ │ └── structural_impls.rs │ │ ├── ty/ │ │ │ ├── abstract_const.rs │ │ │ ├── adjustment.rs │ │ │ ├── adt.rs │ │ │ ├── assoc.rs │ │ │ ├── cast.rs │ │ │ ├── closure.rs │ │ │ ├── codec.rs │ │ │ ├── consts/ │ │ │ │ ├── int.rs │ │ │ │ ├── kind.rs │ │ │ │ ├── lit.rs │ │ │ │ └── valtree.rs │ │ │ ├── consts.rs │ │ │ ├── context/ │ │ │ │ ├── impl_interner.rs │ │ │ │ └── tls.rs │ │ │ ├── context.rs │ │ │ ├── diagnostics.rs │ │ │ ├── elaborate_impl.rs │ │ │ ├── erase_regions.rs │ │ │ ├── error.rs │ │ │ ├── fast_reject.rs │ │ │ ├── fold.rs │ │ │ ├── generic_args.rs │ │ │ ├── generics.rs │ │ │ ├── impls_ty.rs │ │ │ ├── inhabitedness/ │ │ │ │ ├── inhabited_predicate.rs │ │ │ │ └── mod.rs │ │ │ ├── instance.rs │ │ │ ├── intrinsic.rs │ │ │ ├── layout.rs │ │ │ ├── list.rs │ │ │ ├── mod.rs │ │ │ ├── normalize_erasing_regions.rs │ │ │ ├── offload_meta.rs │ │ │ ├── opaque_types.rs │ │ │ ├── pattern.rs │ │ │ ├── predicate.rs │ │ │ ├── print/ │ │ │ │ ├── mod.rs │ │ │ │ └── pretty.rs │ │ │ ├── region.rs │ │ │ ├── relate.rs │ │ │ ├── significant_drop_order.rs │ │ │ ├── structural_impls.rs │ │ │ ├── sty.rs │ │ │ ├── trait_def.rs │ │ │ ├── typeck_results.rs │ │ │ ├── util.rs │ │ │ ├── visit.rs │ │ │ └── vtable.rs │ │ ├── util/ │ │ │ ├── bug.rs │ │ │ └── mod.rs │ │ └── verify_ich.rs │ ├── rustc_mir_build/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── builder/ │ │ │ ├── block.rs │ │ │ ├── cfg.rs │ │ │ ├── coverageinfo.rs │ │ │ ├── custom/ │ │ │ │ ├── mod.rs │ │ │ │ ├── parse/ │ │ │ │ │ └── instruction.rs │ │ │ │ └── parse.rs │ │ │ ├── expr/ │ │ │ │ ├── as_constant.rs │ │ │ │ ├── as_operand.rs │ │ │ │ ├── as_place.rs │ │ │ │ ├── as_rvalue.rs │ │ │ │ ├── as_temp.rs │ │ │ │ ├── category.rs │ │ │ │ ├── into.rs │ │ │ │ ├── mod.rs │ │ │ │ └── stmt.rs │ │ │ ├── matches/ │ │ │ │ ├── buckets.rs │ │ │ │ ├── match_pair.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── test.rs │ │ │ │ ├── user_ty.rs │ │ │ │ └── util.rs │ │ │ ├── misc.rs │ │ │ ├── mod.rs │ │ │ └── scope.rs │ │ ├── check_tail_calls.rs │ │ ├── check_unsafety.rs │ │ ├── errors.rs │ │ ├── lib.rs │ │ └── thir/ │ │ ├── constant.rs │ │ ├── cx/ │ │ │ ├── block.rs │ │ │ ├── expr.rs │ │ │ └── mod.rs │ │ ├── mod.rs │ │ ├── pattern/ │ │ │ ├── check_match.rs │ │ │ ├── const_to_pat.rs │ │ │ ├── migration.rs │ │ │ └── mod.rs │ │ ├── print.rs │ │ └── util.rs │ ├── rustc_mir_dataflow/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── debuginfo.rs │ │ ├── drop_flag_effects.rs │ │ ├── errors.rs │ │ ├── framework/ │ │ │ ├── cursor.rs │ │ │ ├── direction.rs │ │ │ ├── fmt.rs │ │ │ ├── graphviz.rs │ │ │ ├── lattice.rs │ │ │ ├── mod.rs │ │ │ ├── results.rs │ │ │ ├── tests.rs │ │ │ └── visitor.rs │ │ ├── impls/ │ │ │ ├── borrowed_locals.rs │ │ │ ├── initialized.rs │ │ │ ├── liveness.rs │ │ │ ├── mod.rs │ │ │ └── storage_liveness.rs │ │ ├── lib.rs │ │ ├── move_paths/ │ │ │ ├── builder.rs │ │ │ └── mod.rs │ │ ├── points.rs │ │ ├── rustc_peek.rs │ │ ├── un_derefer.rs │ │ └── value_analysis.rs │ ├── rustc_mir_transform/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── abort_unwinding_calls.rs │ │ ├── add_call_guards.rs │ │ ├── add_moves_for_packed_drops.rs │ │ ├── add_retag.rs │ │ ├── add_subtyping_projections.rs │ │ ├── check_alignment.rs │ │ ├── check_call_recursion.rs │ │ ├── check_const_item_mutation.rs │ │ ├── check_enums.rs │ │ ├── check_inline.rs │ │ ├── check_inline_always_target_features.rs │ │ ├── check_null.rs │ │ ├── check_packed_ref.rs │ │ ├── check_pointers.rs │ │ ├── cleanup_post_borrowck.rs │ │ ├── copy_prop.rs │ │ ├── coroutine/ │ │ │ ├── by_move_body.rs │ │ │ └── drop.rs │ │ ├── coroutine.rs │ │ ├── cost_checker.rs │ │ ├── coverage/ │ │ │ ├── counters/ │ │ │ │ ├── balanced_flow.rs │ │ │ │ ├── node_flow/ │ │ │ │ │ └── tests.rs │ │ │ │ └── node_flow.rs │ │ │ ├── counters.rs │ │ │ ├── expansion.rs │ │ │ ├── from_mir.rs │ │ │ ├── graph.rs │ │ │ ├── hir_info.rs │ │ │ ├── mappings.rs │ │ │ ├── mod.rs │ │ │ ├── query.rs │ │ │ ├── spans.rs │ │ │ └── tests.rs │ │ ├── cross_crate_inline.rs │ │ ├── ctfe_limit.rs │ │ ├── dataflow_const_prop.rs │ │ ├── dead_store_elimination.rs │ │ ├── deduce_param_attrs.rs │ │ ├── deref_separator.rs │ │ ├── dest_prop.rs │ │ ├── dump_mir.rs │ │ ├── early_otherwise_branch.rs │ │ ├── elaborate_box_derefs.rs │ │ ├── elaborate_drop.rs │ │ ├── elaborate_drops.rs │ │ ├── erase_deref_temps.rs │ │ ├── errors.rs │ │ ├── ffi_unwind_calls.rs │ │ ├── function_item_references.rs │ │ ├── gvn.rs │ │ ├── impossible_predicates.rs │ │ ├── inline/ │ │ │ └── cycle.rs │ │ ├── inline.rs │ │ ├── instsimplify.rs │ │ ├── jump_threading.rs │ │ ├── known_panics_lint.rs │ │ ├── large_enums.rs │ │ ├── lib.rs │ │ ├── lint.rs │ │ ├── lint_tail_expr_drop_order.rs │ │ ├── liveness.rs │ │ ├── lower_intrinsics.rs │ │ ├── lower_slice_len.rs │ │ ├── match_branches.rs │ │ ├── mentioned_items.rs │ │ ├── multiple_return_terminators.rs │ │ ├── pass_manager.rs │ │ ├── patch.rs │ │ ├── post_analysis_normalize.rs │ │ ├── post_drop_elaboration.rs │ │ ├── prettify.rs │ │ ├── promote_consts.rs │ │ ├── ref_prop.rs │ │ ├── remove_noop_landing_pads.rs │ │ ├── remove_place_mention.rs │ │ ├── remove_storage_markers.rs │ │ ├── remove_uninit_drops.rs │ │ ├── remove_unneeded_drops.rs │ │ ├── remove_zsts.rs │ │ ├── required_consts.rs │ │ ├── sanity_check.rs │ │ ├── shim/ │ │ │ └── async_destructor_ctor.rs │ │ ├── shim.rs │ │ ├── simplify.rs │ │ ├── simplify_branches.rs │ │ ├── simplify_comparison_integral.rs │ │ ├── single_use_consts.rs │ │ ├── sroa.rs │ │ ├── ssa.rs │ │ ├── ssa_range_prop.rs │ │ ├── strip_debuginfo.rs │ │ ├── trivial_const.rs │ │ ├── unreachable_enum_branching.rs │ │ ├── unreachable_prop.rs │ │ └── validate.rs │ ├── rustc_monomorphize/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── collector.rs │ │ ├── errors.rs │ │ ├── graph_checks/ │ │ │ ├── mod.rs │ │ │ └── statics.rs │ │ ├── lib.rs │ │ ├── mono_checks/ │ │ │ ├── abi_check.rs │ │ │ ├── mod.rs │ │ │ └── move_check.rs │ │ ├── partitioning.rs │ │ └── util.rs │ ├── rustc_next_trait_solver/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── canonical/ │ │ │ ├── canonicalizer.rs │ │ │ └── mod.rs │ │ ├── coherence.rs │ │ ├── delegate.rs │ │ ├── lib.rs │ │ ├── placeholder.rs │ │ ├── resolve.rs │ │ └── solve/ │ │ ├── alias_relate.rs │ │ ├── assembly/ │ │ │ ├── mod.rs │ │ │ └── structural_traits.rs │ │ ├── effect_goals.rs │ │ ├── eval_ctxt/ │ │ │ ├── mod.rs │ │ │ └── probe.rs │ │ ├── inspect/ │ │ │ ├── build.rs │ │ │ └── mod.rs │ │ ├── mod.rs │ │ ├── normalizes_to/ │ │ │ ├── anon_const.rs │ │ │ ├── free_alias.rs │ │ │ ├── inherent.rs │ │ │ ├── mod.rs │ │ │ └── opaque_types.rs │ │ ├── project_goals.rs │ │ ├── search_graph.rs │ │ └── trait_goals.rs │ ├── rustc_parse/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── errors.rs │ │ ├── lexer/ │ │ │ ├── diagnostics.rs │ │ │ ├── mod.rs │ │ │ ├── tokentrees.rs │ │ │ ├── unescape_error_reporting.rs │ │ │ └── unicode_chars.rs │ │ ├── lib.rs │ │ └── parser/ │ │ ├── asm.rs │ │ ├── attr.rs │ │ ├── attr_wrapper.rs │ │ ├── cfg_select.rs │ │ ├── diagnostics.rs │ │ ├── expr.rs │ │ ├── generics.rs │ │ ├── item.rs │ │ ├── mod.rs │ │ ├── nonterminal.rs │ │ ├── pat.rs │ │ ├── path.rs │ │ ├── stmt.rs │ │ ├── tests.rs │ │ ├── token_type.rs │ │ ├── tokenstream/ │ │ │ └── tests.rs │ │ └── ty.rs │ ├── rustc_parse_format/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── lib.rs │ │ └── tests.rs │ ├── rustc_passes/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── abi_test.rs │ │ ├── check_attr.rs │ │ ├── check_export.rs │ │ ├── dead.rs │ │ ├── debugger_visualizer.rs │ │ ├── diagnostic_items.rs │ │ ├── eii.rs │ │ ├── entry.rs │ │ ├── errors.rs │ │ ├── hir_id_validator.rs │ │ ├── input_stats.rs │ │ ├── lang_items.rs │ │ ├── layout_test.rs │ │ ├── lib.rs │ │ ├── lib_features.rs │ │ ├── reachable.rs │ │ ├── stability.rs │ │ ├── upvars.rs │ │ └── weak_lang_items.rs │ ├── rustc_pattern_analysis/ │ │ ├── Cargo.toml │ │ ├── src/ │ │ │ ├── checks.rs │ │ │ ├── constructor.rs │ │ │ ├── errors.rs │ │ │ ├── lib.rs │ │ │ ├── lints.rs │ │ │ ├── pat.rs │ │ │ ├── pat_column.rs │ │ │ ├── rustc/ │ │ │ │ └── print.rs │ │ │ ├── rustc.rs │ │ │ └── usefulness.rs │ │ └── tests/ │ │ ├── common/ │ │ │ └── mod.rs │ │ ├── complexity.rs │ │ ├── exhaustiveness.rs │ │ └── intersection.rs │ ├── rustc_privacy/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── errors.rs │ │ └── lib.rs │ ├── rustc_proc_macro/ │ │ └── Cargo.toml │ ├── rustc_public/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── rust-toolchain.toml │ │ └── src/ │ │ ├── abi.rs │ │ ├── alloc.rs │ │ ├── compiler_interface.rs │ │ ├── crate_def.rs │ │ ├── error.rs │ │ ├── lib.rs │ │ ├── mir/ │ │ │ ├── alloc.rs │ │ │ ├── body.rs │ │ │ ├── mono.rs │ │ │ ├── pretty.rs │ │ │ └── visit.rs │ │ ├── mir.rs │ │ ├── rustc_internal/ │ │ │ ├── mod.rs │ │ │ └── pretty.rs │ │ ├── target.rs │ │ ├── tests.rs │ │ ├── ty.rs │ │ ├── unstable/ │ │ │ ├── convert/ │ │ │ │ ├── internal.rs │ │ │ │ ├── mod.rs │ │ │ │ └── stable/ │ │ │ │ ├── abi.rs │ │ │ │ ├── mir.rs │ │ │ │ ├── mod.rs │ │ │ │ └── ty.rs │ │ │ ├── internal_cx/ │ │ │ │ ├── helpers.rs │ │ │ │ └── mod.rs │ │ │ └── mod.rs │ │ └── visitor.rs │ ├── rustc_public_bridge/ │ │ ├── .gitignore │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── alloc.rs │ │ ├── bridge.rs │ │ ├── builder.rs │ │ ├── context/ │ │ │ ├── helpers.rs │ │ │ ├── impls.rs │ │ │ └── mod.rs │ │ └── lib.rs │ ├── rustc_query_impl/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── README.md │ │ ├── dep_kind_vtables.rs │ │ ├── error.rs │ │ ├── execution.rs │ │ ├── handle_cycle_error.rs │ │ ├── job.rs │ │ ├── lib.rs │ │ ├── plumbing.rs │ │ ├── profiling_support.rs │ │ └── query_impl.rs │ ├── rustc_resolve/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── build_reduced_graph.rs │ │ ├── check_unused.rs │ │ ├── def_collector.rs │ │ ├── diagnostics.rs │ │ ├── effective_visibilities.rs │ │ ├── errors.rs │ │ ├── ident.rs │ │ ├── imports.rs │ │ ├── late/ │ │ │ └── diagnostics.rs │ │ ├── late.rs │ │ ├── lib.rs │ │ ├── macros.rs │ │ ├── rustdoc/ │ │ │ └── tests.rs │ │ └── rustdoc.rs │ ├── rustc_sanitizers/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ └── src/ │ │ ├── cfi/ │ │ │ ├── mod.rs │ │ │ └── typeid/ │ │ │ ├── itanium_cxx_abi/ │ │ │ │ ├── encode.rs │ │ │ │ ├── mod.rs │ │ │ │ └── transform.rs │ │ │ └── mod.rs │ │ ├── kcfi/ │ │ │ ├── mod.rs │ │ │ └── typeid/ │ │ │ └── mod.rs │ │ └── lib.rs │ ├── rustc_serialize/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── int_overflow.rs │ │ ├── leb128/ │ │ │ └── tests.rs │ │ ├── leb128.rs │ │ ├── lib.rs │ │ ├── opaque/ │ │ │ ├── mem_encoder.rs │ │ │ └── tests.rs │ │ ├── opaque.rs │ │ └── serialize.rs │ ├── rustc_session/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── code_stats.rs │ │ ├── config/ │ │ │ ├── cfg.rs │ │ │ ├── externs/ │ │ │ │ └── tests.rs │ │ │ ├── externs.rs │ │ │ ├── native_libs/ │ │ │ │ └── tests.rs │ │ │ ├── native_libs.rs │ │ │ ├── print_request.rs │ │ │ └── sigpipe.rs │ │ ├── config.rs │ │ ├── cstore.rs │ │ ├── errors.rs │ │ ├── filesearch.rs │ │ ├── lib.rs │ │ ├── macros.rs │ │ ├── options.rs │ │ ├── output.rs │ │ ├── parse.rs │ │ ├── search_paths.rs │ │ ├── session.rs │ │ └── utils.rs │ ├── rustc_span/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── analyze_source_file/ │ │ │ └── tests.rs │ │ ├── analyze_source_file.rs │ │ ├── caching_source_map_view.rs │ │ ├── def_id.rs │ │ ├── edit_distance/ │ │ │ └── tests.rs │ │ ├── edit_distance.rs │ │ ├── edition.rs │ │ ├── fatal_error.rs │ │ ├── hygiene.rs │ │ ├── lib.rs │ │ ├── profiling.rs │ │ ├── source_map/ │ │ │ └── tests.rs │ │ ├── source_map.rs │ │ ├── span_encoding.rs │ │ ├── symbol/ │ │ │ └── tests.rs │ │ ├── symbol.rs │ │ └── tests.rs │ ├── rustc_symbol_mangling/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── errors.rs │ │ ├── export.rs │ │ ├── hashed.rs │ │ ├── legacy.rs │ │ ├── lib.rs │ │ ├── test.rs │ │ └── v0.rs │ ├── rustc_target/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ └── src/ │ │ ├── asm/ │ │ │ ├── aarch64.rs │ │ │ ├── arm.rs │ │ │ ├── avr.rs │ │ │ ├── bpf.rs │ │ │ ├── csky.rs │ │ │ ├── hexagon.rs │ │ │ ├── loongarch.rs │ │ │ ├── m68k.rs │ │ │ ├── mips.rs │ │ │ ├── mod.rs │ │ │ ├── msp430.rs │ │ │ ├── nvptx.rs │ │ │ ├── powerpc.rs │ │ │ ├── riscv.rs │ │ │ ├── s390x.rs │ │ │ ├── sparc.rs │ │ │ ├── spirv.rs │ │ │ ├── wasm.rs │ │ │ └── x86.rs │ │ ├── callconv/ │ │ │ ├── aarch64.rs │ │ │ ├── amdgpu.rs │ │ │ ├── arm.rs │ │ │ ├── avr.rs │ │ │ ├── bpf.rs │ │ │ ├── csky.rs │ │ │ ├── hexagon.rs │ │ │ ├── loongarch.rs │ │ │ ├── m68k.rs │ │ │ ├── mips.rs │ │ │ ├── mips64.rs │ │ │ ├── mod.rs │ │ │ ├── msp430.rs │ │ │ ├── nvptx64.rs │ │ │ ├── powerpc.rs │ │ │ ├── powerpc64.rs │ │ │ ├── riscv.rs │ │ │ ├── s390x.rs │ │ │ ├── sparc.rs │ │ │ ├── sparc64.rs │ │ │ ├── wasm.rs │ │ │ ├── x86.rs │ │ │ ├── x86_64.rs │ │ │ ├── x86_win32.rs │ │ │ ├── x86_win64.rs │ │ │ └── xtensa.rs │ │ ├── json.rs │ │ ├── lib.rs │ │ ├── spec/ │ │ │ ├── abi_map.rs │ │ │ ├── base/ │ │ │ │ ├── aix.rs │ │ │ │ ├── android.rs │ │ │ │ ├── apple/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── tests.rs │ │ │ │ ├── arm_none.rs │ │ │ │ ├── avr.rs │ │ │ │ ├── bpf.rs │ │ │ │ ├── cygwin.rs │ │ │ │ ├── dragonfly.rs │ │ │ │ ├── freebsd.rs │ │ │ │ ├── fuchsia.rs │ │ │ │ ├── haiku.rs │ │ │ │ ├── helenos.rs │ │ │ │ ├── hermit.rs │ │ │ │ ├── hurd.rs │ │ │ │ ├── hurd_gnu.rs │ │ │ │ ├── illumos.rs │ │ │ │ ├── l4re.rs │ │ │ │ ├── linux.rs │ │ │ │ ├── linux_gnu.rs │ │ │ │ ├── linux_musl.rs │ │ │ │ ├── linux_ohos.rs │ │ │ │ ├── linux_uclibc.rs │ │ │ │ ├── linux_wasm.rs │ │ │ │ ├── lynxos178.rs │ │ │ │ ├── managarm_mlibc.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── motor.rs │ │ │ │ ├── msvc.rs │ │ │ │ ├── netbsd.rs │ │ │ │ ├── nto_qnx.rs │ │ │ │ ├── openbsd.rs │ │ │ │ ├── redox.rs │ │ │ │ ├── solaris.rs │ │ │ │ ├── solid.rs │ │ │ │ ├── teeos.rs │ │ │ │ ├── uefi_msvc.rs │ │ │ │ ├── unikraft_linux_musl.rs │ │ │ │ ├── vxworks.rs │ │ │ │ ├── wasm.rs │ │ │ │ ├── windows_gnu.rs │ │ │ │ ├── windows_gnullvm.rs │ │ │ │ ├── windows_msvc.rs │ │ │ │ ├── windows_uwp_gnu.rs │ │ │ │ ├── windows_uwp_msvc.rs │ │ │ │ └── xtensa.rs │ │ │ ├── crt_objects.rs │ │ │ ├── json.rs │ │ │ ├── mod.rs │ │ │ └── targets/ │ │ │ ├── aarch64_apple_darwin.rs │ │ │ ├── aarch64_apple_ios.rs │ │ │ ├── aarch64_apple_ios_macabi.rs │ │ │ ├── aarch64_apple_ios_sim.rs │ │ │ ├── aarch64_apple_tvos.rs │ │ │ ├── aarch64_apple_tvos_sim.rs │ │ │ ├── aarch64_apple_visionos.rs │ │ │ ├── aarch64_apple_visionos_sim.rs │ │ │ ├── aarch64_apple_watchos.rs │ │ │ ├── aarch64_apple_watchos_sim.rs │ │ │ ├── aarch64_be_unknown_hermit.rs │ │ │ ├── aarch64_be_unknown_linux_gnu.rs │ │ │ ├── aarch64_be_unknown_linux_gnu_ilp32.rs │ │ │ ├── aarch64_be_unknown_linux_musl.rs │ │ │ ├── aarch64_be_unknown_netbsd.rs │ │ │ ├── aarch64_be_unknown_none_softfloat.rs │ │ │ ├── aarch64_kmc_solid_asp3.rs │ │ │ ├── aarch64_linux_android.rs │ │ │ ├── aarch64_nintendo_switch_freestanding.rs │ │ │ ├── aarch64_nintendo_switch_freestanding_linker_script.ld │ │ │ ├── aarch64_pc_windows_gnullvm.rs │ │ │ ├── aarch64_pc_windows_msvc.rs │ │ │ ├── aarch64_unknown_freebsd.rs │ │ │ ├── aarch64_unknown_fuchsia.rs │ │ │ ├── aarch64_unknown_helenos.rs │ │ │ ├── aarch64_unknown_hermit.rs │ │ │ ├── aarch64_unknown_illumos.rs │ │ │ ├── aarch64_unknown_linux_gnu.rs │ │ │ ├── aarch64_unknown_linux_gnu_ilp32.rs │ │ │ ├── aarch64_unknown_linux_musl.rs │ │ │ ├── aarch64_unknown_linux_ohos.rs │ │ │ ├── aarch64_unknown_managarm_mlibc.rs │ │ │ ├── aarch64_unknown_netbsd.rs │ │ │ ├── aarch64_unknown_none.rs │ │ │ ├── aarch64_unknown_none_softfloat.rs │ │ │ ├── aarch64_unknown_nto_qnx700.rs │ │ │ ├── aarch64_unknown_nto_qnx710.rs │ │ │ ├── aarch64_unknown_nto_qnx710_iosock.rs │ │ │ ├── aarch64_unknown_nto_qnx800.rs │ │ │ ├── aarch64_unknown_nuttx.rs │ │ │ ├── aarch64_unknown_openbsd.rs │ │ │ ├── aarch64_unknown_redox.rs │ │ │ ├── aarch64_unknown_teeos.rs │ │ │ ├── aarch64_unknown_trusty.rs │ │ │ ├── aarch64_unknown_uefi.rs │ │ │ ├── aarch64_uwp_windows_msvc.rs │ │ │ ├── aarch64_wrs_vxworks.rs │ │ │ ├── aarch64v8r_unknown_none.rs │ │ │ ├── aarch64v8r_unknown_none_softfloat.rs │ │ │ ├── amdgcn_amd_amdhsa.rs │ │ │ ├── arm64_32_apple_watchos.rs │ │ │ ├── arm64e_apple_darwin.rs │ │ │ ├── arm64e_apple_ios.rs │ │ │ ├── arm64e_apple_tvos.rs │ │ │ ├── arm64ec_pc_windows_msvc.rs │ │ │ ├── arm_linux_androideabi.rs │ │ │ ├── arm_unknown_linux_gnueabi.rs │ │ │ ├── arm_unknown_linux_gnueabihf.rs │ │ │ ├── arm_unknown_linux_musleabi.rs │ │ │ ├── arm_unknown_linux_musleabihf.rs │ │ │ ├── armeb_unknown_linux_gnueabi.rs │ │ │ ├── armebv7r_none_eabi.rs │ │ │ ├── armebv7r_none_eabihf.rs │ │ │ ├── armv4t_none_eabi.rs │ │ │ ├── armv4t_unknown_linux_gnueabi.rs │ │ │ ├── armv5te_none_eabi.rs │ │ │ ├── armv5te_unknown_linux_gnueabi.rs │ │ │ ├── armv5te_unknown_linux_musleabi.rs │ │ │ ├── armv5te_unknown_linux_uclibceabi.rs │ │ │ ├── armv6_none_eabi.rs │ │ │ ├── armv6_none_eabihf.rs │ │ │ ├── armv6_unknown_freebsd.rs │ │ │ ├── armv6_unknown_netbsd_eabihf.rs │ │ │ ├── armv6k_nintendo_3ds.rs │ │ │ ├── armv7_linux_androideabi.rs │ │ │ ├── armv7_rtems_eabihf.rs │ │ │ ├── armv7_sony_vita_newlibeabihf.rs │ │ │ ├── armv7_unknown_freebsd.rs │ │ │ ├── armv7_unknown_linux_gnueabi.rs │ │ │ ├── armv7_unknown_linux_gnueabihf.rs │ │ │ ├── armv7_unknown_linux_musleabi.rs │ │ │ ├── armv7_unknown_linux_musleabihf.rs │ │ │ ├── armv7_unknown_linux_ohos.rs │ │ │ ├── armv7_unknown_linux_uclibceabi.rs │ │ │ ├── armv7_unknown_linux_uclibceabihf.rs │ │ │ ├── armv7_unknown_netbsd_eabihf.rs │ │ │ ├── armv7_unknown_trusty.rs │ │ │ ├── armv7_wrs_vxworks_eabihf.rs │ │ │ ├── armv7a_kmc_solid_asp3_eabi.rs │ │ │ ├── armv7a_kmc_solid_asp3_eabihf.rs │ │ │ ├── armv7a_none_eabi.rs │ │ │ ├── armv7a_none_eabihf.rs │ │ │ ├── armv7a_nuttx_eabi.rs │ │ │ ├── armv7a_nuttx_eabihf.rs │ │ │ ├── armv7a_vex_v5.rs │ │ │ ├── armv7a_vex_v5_linker_script.ld │ │ │ ├── armv7k_apple_watchos.rs │ │ │ ├── armv7r_none_eabi.rs │ │ │ ├── armv7r_none_eabihf.rs │ │ │ ├── armv7s_apple_ios.rs │ │ │ ├── armv8r_none_eabihf.rs │ │ │ ├── avr_none.rs │ │ │ ├── bpfeb_unknown_none.rs │ │ │ ├── bpfel_unknown_none.rs │ │ │ ├── csky_unknown_linux_gnuabiv2.rs │ │ │ ├── csky_unknown_linux_gnuabiv2hf.rs │ │ │ ├── hexagon_unknown_linux_musl.rs │ │ │ ├── hexagon_unknown_none_elf.rs │ │ │ ├── hexagon_unknown_qurt.rs │ │ │ ├── i386_apple_ios.rs │ │ │ ├── i586_unknown_linux_gnu.rs │ │ │ ├── i586_unknown_linux_musl.rs │ │ │ ├── i586_unknown_netbsd.rs │ │ │ ├── i586_unknown_redox.rs │ │ │ ├── i686_apple_darwin.rs │ │ │ ├── i686_linux_android.rs │ │ │ ├── i686_pc_nto_qnx700.rs │ │ │ ├── i686_pc_windows_gnu.rs │ │ │ ├── i686_pc_windows_gnullvm.rs │ │ │ ├── i686_pc_windows_msvc.rs │ │ │ ├── i686_unknown_freebsd.rs │ │ │ ├── i686_unknown_haiku.rs │ │ │ ├── i686_unknown_helenos.rs │ │ │ ├── i686_unknown_hurd_gnu.rs │ │ │ ├── i686_unknown_linux_gnu.rs │ │ │ ├── i686_unknown_linux_musl.rs │ │ │ ├── i686_unknown_netbsd.rs │ │ │ ├── i686_unknown_openbsd.rs │ │ │ ├── i686_unknown_uefi.rs │ │ │ ├── i686_uwp_windows_gnu.rs │ │ │ ├── i686_uwp_windows_msvc.rs │ │ │ ├── i686_win7_windows_gnu.rs │ │ │ ├── i686_win7_windows_msvc.rs │ │ │ ├── i686_wrs_vxworks.rs │ │ │ ├── loongarch32_unknown_none.rs │ │ │ ├── loongarch32_unknown_none_softfloat.rs │ │ │ ├── loongarch64_unknown_linux_gnu.rs │ │ │ ├── loongarch64_unknown_linux_musl.rs │ │ │ ├── loongarch64_unknown_linux_ohos.rs │ │ │ ├── loongarch64_unknown_none.rs │ │ │ ├── loongarch64_unknown_none_softfloat.rs │ │ │ ├── m68k_unknown_linux_gnu.rs │ │ │ ├── m68k_unknown_none_elf.rs │ │ │ ├── mips64_openwrt_linux_musl.rs │ │ │ ├── mips64_unknown_linux_gnuabi64.rs │ │ │ ├── mips64_unknown_linux_muslabi64.rs │ │ │ ├── mips64el_unknown_linux_gnuabi64.rs │ │ │ ├── mips64el_unknown_linux_muslabi64.rs │ │ │ ├── mips_mti_none_elf.rs │ │ │ ├── mips_unknown_linux_gnu.rs │ │ │ ├── mips_unknown_linux_musl.rs │ │ │ ├── mips_unknown_linux_uclibc.rs │ │ │ ├── mipsel_mti_none_elf.rs │ │ │ ├── mipsel_sony_psp.rs │ │ │ ├── mipsel_sony_psp_linker_script.ld │ │ │ ├── mipsel_sony_psx.rs │ │ │ ├── mipsel_unknown_linux_gnu.rs │ │ │ ├── mipsel_unknown_linux_musl.rs │ │ │ ├── mipsel_unknown_linux_uclibc.rs │ │ │ ├── mipsel_unknown_netbsd.rs │ │ │ ├── mipsel_unknown_none.rs │ │ │ ├── mipsisa32r6_unknown_linux_gnu.rs │ │ │ ├── mipsisa32r6el_unknown_linux_gnu.rs │ │ │ ├── mipsisa64r6_unknown_linux_gnuabi64.rs │ │ │ ├── mipsisa64r6el_unknown_linux_gnuabi64.rs │ │ │ ├── msp430_none_elf.rs │ │ │ ├── nvptx64_nvidia_cuda.rs │ │ │ ├── powerpc64_ibm_aix.rs │ │ │ ├── powerpc64_unknown_freebsd.rs │ │ │ ├── powerpc64_unknown_linux_gnu.rs │ │ │ ├── powerpc64_unknown_linux_musl.rs │ │ │ ├── powerpc64_unknown_openbsd.rs │ │ │ ├── powerpc64_wrs_vxworks.rs │ │ │ ├── powerpc64le_unknown_freebsd.rs │ │ │ ├── powerpc64le_unknown_linux_gnu.rs │ │ │ ├── powerpc64le_unknown_linux_musl.rs │ │ │ ├── powerpc_unknown_freebsd.rs │ │ │ ├── powerpc_unknown_helenos.rs │ │ │ ├── powerpc_unknown_linux_gnu.rs │ │ │ ├── powerpc_unknown_linux_gnuspe.rs │ │ │ ├── powerpc_unknown_linux_musl.rs │ │ │ ├── powerpc_unknown_linux_muslspe.rs │ │ │ ├── powerpc_unknown_netbsd.rs │ │ │ ├── powerpc_unknown_openbsd.rs │ │ │ ├── powerpc_wrs_vxworks.rs │ │ │ ├── powerpc_wrs_vxworks_spe.rs │ │ │ ├── riscv32_wrs_vxworks.rs │ │ │ ├── riscv32e_unknown_none_elf.rs │ │ │ ├── riscv32em_unknown_none_elf.rs │ │ │ ├── riscv32emc_unknown_none_elf.rs │ │ │ ├── riscv32gc_unknown_linux_gnu.rs │ │ │ ├── riscv32gc_unknown_linux_musl.rs │ │ │ ├── riscv32i_unknown_none_elf.rs │ │ │ ├── riscv32im_risc0_zkvm_elf.rs │ │ │ ├── riscv32im_unknown_none_elf.rs │ │ │ ├── riscv32ima_unknown_none_elf.rs │ │ │ ├── riscv32imac_esp_espidf.rs │ │ │ ├── riscv32imac_unknown_none_elf.rs │ │ │ ├── riscv32imac_unknown_nuttx_elf.rs │ │ │ ├── riscv32imac_unknown_xous_elf.rs │ │ │ ├── riscv32imafc_esp_espidf.rs │ │ │ ├── riscv32imafc_unknown_none_elf.rs │ │ │ ├── riscv32imafc_unknown_nuttx_elf.rs │ │ │ ├── riscv32imc_esp_espidf.rs │ │ │ ├── riscv32imc_unknown_none_elf.rs │ │ │ ├── riscv32imc_unknown_nuttx_elf.rs │ │ │ ├── riscv64_linux_android.rs │ │ │ ├── riscv64_wrs_vxworks.rs │ │ │ ├── riscv64a23_unknown_linux_gnu.rs │ │ │ ├── riscv64gc_unknown_freebsd.rs │ │ │ ├── riscv64gc_unknown_fuchsia.rs │ │ │ ├── riscv64gc_unknown_hermit.rs │ │ │ ├── riscv64gc_unknown_linux_gnu.rs │ │ │ ├── riscv64gc_unknown_linux_musl.rs │ │ │ ├── riscv64gc_unknown_managarm_mlibc.rs │ │ │ ├── riscv64gc_unknown_netbsd.rs │ │ │ ├── riscv64gc_unknown_none_elf.rs │ │ │ ├── riscv64gc_unknown_nuttx_elf.rs │ │ │ ├── riscv64gc_unknown_openbsd.rs │ │ │ ├── riscv64gc_unknown_redox.rs │ │ │ ├── riscv64im_unknown_none_elf.rs │ │ │ ├── riscv64imac_unknown_none_elf.rs │ │ │ ├── riscv64imac_unknown_nuttx_elf.rs │ │ │ ├── s390x_unknown_linux_gnu.rs │ │ │ ├── s390x_unknown_linux_musl.rs │ │ │ ├── s390x_unknown_none_softfloat.rs │ │ │ ├── sparc64_unknown_helenos.rs │ │ │ ├── sparc64_unknown_linux_gnu.rs │ │ │ ├── sparc64_unknown_netbsd.rs │ │ │ ├── sparc64_unknown_openbsd.rs │ │ │ ├── sparc_unknown_linux_gnu.rs │ │ │ ├── sparc_unknown_none_elf.rs │ │ │ ├── sparcv9_sun_solaris.rs │ │ │ ├── thumbv4t_none_eabi.rs │ │ │ ├── thumbv5te_none_eabi.rs │ │ │ ├── thumbv6_none_eabi.rs │ │ │ ├── thumbv6m_none_eabi.rs │ │ │ ├── thumbv6m_nuttx_eabi.rs │ │ │ ├── thumbv7a_none_eabi.rs │ │ │ ├── thumbv7a_none_eabihf.rs │ │ │ ├── thumbv7a_nuttx_eabi.rs │ │ │ ├── thumbv7a_nuttx_eabihf.rs │ │ │ ├── thumbv7a_pc_windows_msvc.rs │ │ │ ├── thumbv7a_uwp_windows_msvc.rs │ │ │ ├── thumbv7em_none_eabi.rs │ │ │ ├── thumbv7em_none_eabihf.rs │ │ │ ├── thumbv7em_nuttx_eabi.rs │ │ │ ├── thumbv7em_nuttx_eabihf.rs │ │ │ ├── thumbv7m_none_eabi.rs │ │ │ ├── thumbv7m_nuttx_eabi.rs │ │ │ ├── thumbv7neon_linux_androideabi.rs │ │ │ ├── thumbv7neon_unknown_linux_gnueabihf.rs │ │ │ ├── thumbv7neon_unknown_linux_musleabihf.rs │ │ │ ├── thumbv7r_none_eabi.rs │ │ │ ├── thumbv7r_none_eabihf.rs │ │ │ ├── thumbv8m_base_none_eabi.rs │ │ │ ├── thumbv8m_base_nuttx_eabi.rs │ │ │ ├── thumbv8m_main_none_eabi.rs │ │ │ ├── thumbv8m_main_none_eabihf.rs │ │ │ ├── thumbv8m_main_nuttx_eabi.rs │ │ │ ├── thumbv8m_main_nuttx_eabihf.rs │ │ │ ├── thumbv8r_none_eabihf.rs │ │ │ ├── wasm32_unknown_emscripten.rs │ │ │ ├── wasm32_unknown_unknown.rs │ │ │ ├── wasm32_wali_linux_musl.rs │ │ │ ├── wasm32_wasip1.rs │ │ │ ├── wasm32_wasip1_threads.rs │ │ │ ├── wasm32_wasip2.rs │ │ │ ├── wasm32_wasip3.rs │ │ │ ├── wasm32v1_none.rs │ │ │ ├── wasm64_unknown_unknown.rs │ │ │ ├── x86_64_apple_darwin.rs │ │ │ ├── x86_64_apple_ios.rs │ │ │ ├── x86_64_apple_ios_macabi.rs │ │ │ ├── x86_64_apple_tvos.rs │ │ │ ├── x86_64_apple_watchos_sim.rs │ │ │ ├── x86_64_fortanix_unknown_sgx.rs │ │ │ ├── x86_64_linux_android.rs │ │ │ ├── x86_64_lynx_lynxos178.rs │ │ │ ├── x86_64_pc_cygwin.rs │ │ │ ├── x86_64_pc_nto_qnx710.rs │ │ │ ├── x86_64_pc_nto_qnx710_iosock.rs │ │ │ ├── x86_64_pc_nto_qnx800.rs │ │ │ ├── x86_64_pc_solaris.rs │ │ │ ├── x86_64_pc_windows_gnu.rs │ │ │ ├── x86_64_pc_windows_gnullvm.rs │ │ │ ├── x86_64_pc_windows_msvc.rs │ │ │ ├── x86_64_unikraft_linux_musl.rs │ │ │ ├── x86_64_unknown_dragonfly.rs │ │ │ ├── x86_64_unknown_freebsd.rs │ │ │ ├── x86_64_unknown_fuchsia.rs │ │ │ ├── x86_64_unknown_haiku.rs │ │ │ ├── x86_64_unknown_helenos.rs │ │ │ ├── x86_64_unknown_hermit.rs │ │ │ ├── x86_64_unknown_hurd_gnu.rs │ │ │ ├── x86_64_unknown_illumos.rs │ │ │ ├── x86_64_unknown_l4re_uclibc.rs │ │ │ ├── x86_64_unknown_linux_gnu.rs │ │ │ ├── x86_64_unknown_linux_gnuasan.rs │ │ │ ├── x86_64_unknown_linux_gnumsan.rs │ │ │ ├── x86_64_unknown_linux_gnutsan.rs │ │ │ ├── x86_64_unknown_linux_gnux32.rs │ │ │ ├── x86_64_unknown_linux_musl.rs │ │ │ ├── x86_64_unknown_linux_none.rs │ │ │ ├── x86_64_unknown_linux_ohos.rs │ │ │ ├── x86_64_unknown_managarm_mlibc.rs │ │ │ ├── x86_64_unknown_motor.rs │ │ │ ├── x86_64_unknown_netbsd.rs │ │ │ ├── x86_64_unknown_none.rs │ │ │ ├── x86_64_unknown_openbsd.rs │ │ │ ├── x86_64_unknown_redox.rs │ │ │ ├── x86_64_unknown_trusty.rs │ │ │ ├── x86_64_unknown_uefi.rs │ │ │ ├── x86_64_uwp_windows_gnu.rs │ │ │ ├── x86_64_uwp_windows_msvc.rs │ │ │ ├── x86_64_win7_windows_gnu.rs │ │ │ ├── x86_64_win7_windows_msvc.rs │ │ │ ├── x86_64_wrs_vxworks.rs │ │ │ ├── x86_64h_apple_darwin.rs │ │ │ ├── xtensa_esp32_espidf.rs │ │ │ ├── xtensa_esp32_none_elf.rs │ │ │ ├── xtensa_esp32s2_espidf.rs │ │ │ ├── xtensa_esp32s2_none_elf.rs │ │ │ ├── xtensa_esp32s3_espidf.rs │ │ │ └── xtensa_esp32s3_none_elf.rs │ │ ├── target_features.rs │ │ └── tests.rs │ ├── rustc_thread_pool/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── src/ │ │ │ ├── broadcast/ │ │ │ │ ├── mod.rs │ │ │ │ └── tests.rs │ │ │ ├── compile_fail/ │ │ │ │ ├── mod.rs │ │ │ │ ├── quicksort_race1.rs │ │ │ │ ├── quicksort_race2.rs │ │ │ │ ├── quicksort_race3.rs │ │ │ │ ├── rc_return.rs │ │ │ │ ├── rc_upvar.rs │ │ │ │ └── scope_join_bad.rs │ │ │ ├── job.rs │ │ │ ├── join/ │ │ │ │ ├── mod.rs │ │ │ │ └── tests.rs │ │ │ ├── latch.rs │ │ │ ├── lib.rs │ │ │ ├── private.rs │ │ │ ├── registry.rs │ │ │ ├── scope/ │ │ │ │ ├── mod.rs │ │ │ │ └── tests.rs │ │ │ ├── sleep/ │ │ │ │ ├── README.md │ │ │ │ ├── counters.rs │ │ │ │ └── mod.rs │ │ │ ├── spawn/ │ │ │ │ ├── mod.rs │ │ │ │ └── tests.rs │ │ │ ├── tests.rs │ │ │ ├── thread_pool/ │ │ │ │ ├── mod.rs │ │ │ │ └── tests.rs │ │ │ ├── tlv.rs │ │ │ ├── unwind.rs │ │ │ └── worker_local.rs │ │ └── tests/ │ │ ├── double_init_fail.rs │ │ ├── init_zero_threads.rs │ │ ├── scope_join.rs │ │ ├── scoped_threadpool.rs │ │ ├── simple_panic.rs │ │ └── stack_overflow_crash.rs │ ├── rustc_trait_selection/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── error_reporting/ │ │ │ ├── infer/ │ │ │ │ ├── mod.rs │ │ │ │ ├── need_type_info.rs │ │ │ │ ├── nice_region_error/ │ │ │ │ │ ├── different_lifetimes.rs │ │ │ │ │ ├── find_anon_type.rs │ │ │ │ │ ├── mismatched_static_lifetime.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── named_anon_conflict.rs │ │ │ │ │ ├── placeholder_error.rs │ │ │ │ │ ├── placeholder_relation.rs │ │ │ │ │ ├── static_impl_trait.rs │ │ │ │ │ ├── trait_impl_difference.rs │ │ │ │ │ └── util.rs │ │ │ │ ├── note_and_explain.rs │ │ │ │ ├── region.rs │ │ │ │ └── suggest.rs │ │ │ ├── mod.rs │ │ │ └── traits/ │ │ │ ├── ambiguity.rs │ │ │ ├── call_kind.rs │ │ │ ├── fulfillment_errors.rs │ │ │ ├── mod.rs │ │ │ ├── on_unimplemented.rs │ │ │ ├── overflow.rs │ │ │ └── suggestions.rs │ │ ├── errors/ │ │ │ └── note_and_explain.rs │ │ ├── errors.rs │ │ ├── infer.rs │ │ ├── lib.rs │ │ ├── opaque_types.rs │ │ ├── regions.rs │ │ ├── solve/ │ │ │ ├── delegate.rs │ │ │ ├── fulfill/ │ │ │ │ └── derive_errors.rs │ │ │ ├── fulfill.rs │ │ │ ├── inspect/ │ │ │ │ └── analyse.rs │ │ │ ├── inspect.rs │ │ │ ├── normalize.rs │ │ │ └── select.rs │ │ ├── solve.rs │ │ └── traits/ │ │ ├── auto_trait.rs │ │ ├── coherence.rs │ │ ├── const_evaluatable.rs │ │ ├── dyn_compatibility.rs │ │ ├── effects.rs │ │ ├── engine.rs │ │ ├── fulfill.rs │ │ ├── misc.rs │ │ ├── mod.rs │ │ ├── normalize.rs │ │ ├── outlives_bounds.rs │ │ ├── project.rs │ │ ├── query/ │ │ │ ├── dropck_outlives.rs │ │ │ ├── evaluate_obligation.rs │ │ │ ├── method_autoderef.rs │ │ │ ├── mod.rs │ │ │ ├── normalize.rs │ │ │ └── type_op/ │ │ │ ├── ascribe_user_type.rs │ │ │ ├── custom.rs │ │ │ ├── implied_outlives_bounds.rs │ │ │ ├── mod.rs │ │ │ ├── normalize.rs │ │ │ ├── outlives.rs │ │ │ └── prove_predicate.rs │ │ ├── select/ │ │ │ ├── _match.rs │ │ │ ├── candidate_assembly.rs │ │ │ ├── confirmation.rs │ │ │ └── mod.rs │ │ ├── specialize/ │ │ │ ├── mod.rs │ │ │ └── specialization_graph.rs │ │ ├── structural_normalize.rs │ │ ├── util.rs │ │ ├── vtable.rs │ │ └── wf.rs │ ├── rustc_traits/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── codegen.rs │ │ ├── coroutine_witnesses.rs │ │ ├── dropck_outlives.rs │ │ ├── evaluate_obligation.rs │ │ ├── implied_outlives_bounds.rs │ │ ├── lib.rs │ │ ├── normalize_erasing_regions.rs │ │ ├── normalize_projection_ty.rs │ │ └── type_op.rs │ ├── rustc_transmute/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── layout/ │ │ │ ├── dfa.rs │ │ │ ├── mod.rs │ │ │ ├── tree/ │ │ │ │ └── tests.rs │ │ │ └── tree.rs │ │ ├── lib.rs │ │ └── maybe_transmutable/ │ │ ├── mod.rs │ │ ├── query_context.rs │ │ └── tests.rs │ ├── rustc_ty_utils/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── abi.rs │ │ ├── assoc.rs │ │ ├── common_traits.rs │ │ ├── consts.rs │ │ ├── errors.rs │ │ ├── implied_bounds.rs │ │ ├── instance.rs │ │ ├── layout/ │ │ │ └── invariant.rs │ │ ├── layout.rs │ │ ├── lib.rs │ │ ├── needs_drop.rs │ │ ├── nested_bodies.rs │ │ ├── opaque_types.rs │ │ ├── representability.rs │ │ ├── sig_types.rs │ │ ├── structural_match.rs │ │ └── ty.rs │ ├── rustc_type_ir/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── binder.rs │ │ ├── canonical.rs │ │ ├── const_kind.rs │ │ ├── data_structures/ │ │ │ ├── delayed_map.rs │ │ │ └── mod.rs │ │ ├── elaborate.rs │ │ ├── error.rs │ │ ├── fast_reject.rs │ │ ├── flags.rs │ │ ├── fold.rs │ │ ├── generic_arg.rs │ │ ├── generic_visit.rs │ │ ├── infer_ctxt.rs │ │ ├── inherent.rs │ │ ├── interner.rs │ │ ├── ir_print.rs │ │ ├── lang_items.rs │ │ ├── lib.rs │ │ ├── lift.rs │ │ ├── macros.rs │ │ ├── opaque_ty.rs │ │ ├── outlives.rs │ │ ├── pattern.rs │ │ ├── predicate.rs │ │ ├── predicate_kind.rs │ │ ├── region_kind.rs │ │ ├── relate/ │ │ │ ├── combine.rs │ │ │ └── solver_relating.rs │ │ ├── relate.rs │ │ ├── search_graph/ │ │ │ ├── global_cache.rs │ │ │ ├── mod.rs │ │ │ └── stack.rs │ │ ├── solve/ │ │ │ ├── inspect.rs │ │ │ └── mod.rs │ │ ├── sty/ │ │ │ └── mod.rs │ │ ├── ty_info.rs │ │ ├── ty_kind/ │ │ │ └── closure.rs │ │ ├── ty_kind.rs │ │ ├── upcast.rs │ │ ├── visit.rs │ │ └── walk.rs │ ├── rustc_type_ir_macros/ │ │ ├── Cargo.toml │ │ └── src/ │ │ └── lib.rs │ └── rustc_windows_rc/ │ ├── Cargo.toml │ ├── rustc.rc.in │ └── src/ │ └── lib.rs ├── configure ├── library/ │ ├── Cargo.toml │ ├── alloc/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── alloc.rs │ │ ├── borrow.rs │ │ ├── boxed/ │ │ │ ├── convert.rs │ │ │ ├── iter.rs │ │ │ └── thin.rs │ │ ├── boxed.rs │ │ ├── bstr.rs │ │ ├── collections/ │ │ │ ├── binary_heap/ │ │ │ │ └── mod.rs │ │ │ ├── btree/ │ │ │ │ ├── append.rs │ │ │ │ ├── borrow/ │ │ │ │ │ └── tests.rs │ │ │ │ ├── borrow.rs │ │ │ │ ├── dedup_sorted_iter.rs │ │ │ │ ├── fix.rs │ │ │ │ ├── map/ │ │ │ │ │ ├── entry.rs │ │ │ │ │ └── tests.rs │ │ │ │ ├── map.rs │ │ │ │ ├── mem.rs │ │ │ │ ├── merge_iter.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── navigate.rs │ │ │ │ ├── node/ │ │ │ │ │ └── tests.rs │ │ │ │ ├── node.rs │ │ │ │ ├── remove.rs │ │ │ │ ├── search.rs │ │ │ │ ├── set/ │ │ │ │ │ ├── entry.rs │ │ │ │ │ └── tests.rs │ │ │ │ ├── set.rs │ │ │ │ ├── set_val.rs │ │ │ │ └── split.rs │ │ │ ├── linked_list/ │ │ │ │ └── tests.rs │ │ │ ├── linked_list.rs │ │ │ ├── mod.rs │ │ │ └── vec_deque/ │ │ │ ├── drain.rs │ │ │ ├── extract_if.rs │ │ │ ├── into_iter.rs │ │ │ ├── iter.rs │ │ │ ├── iter_mut.rs │ │ │ ├── macros.rs │ │ │ ├── mod.rs │ │ │ ├── spec_extend.rs │ │ │ ├── spec_from_iter.rs │ │ │ ├── splice.rs │ │ │ └── tests.rs │ │ ├── ffi/ │ │ │ ├── c_str.rs │ │ │ └── mod.rs │ │ ├── fmt.rs │ │ ├── intrinsics.rs │ │ ├── lib.miri.rs │ │ ├── lib.rs │ │ ├── macros.rs │ │ ├── raw_vec/ │ │ │ ├── mod.rs │ │ │ └── tests.rs │ │ ├── rc.rs │ │ ├── slice.rs │ │ ├── str.rs │ │ ├── string.rs │ │ ├── sync.rs │ │ ├── task.rs │ │ ├── vec/ │ │ │ ├── cow.rs │ │ │ ├── drain.rs │ │ │ ├── extract_if.rs │ │ │ ├── in_place_collect.rs │ │ │ ├── in_place_drop.rs │ │ │ ├── into_iter.rs │ │ │ ├── is_zero.rs │ │ │ ├── mod.rs │ │ │ ├── partial_eq.rs │ │ │ ├── peek_mut.rs │ │ │ ├── set_len_on_drop.rs │ │ │ ├── spec_extend.rs │ │ │ ├── spec_from_elem.rs │ │ │ ├── spec_from_iter.rs │ │ │ ├── spec_from_iter_nested.rs │ │ │ └── splice.rs │ │ └── wtf8/ │ │ ├── mod.rs │ │ └── tests.rs │ ├── alloctests/ │ │ ├── Cargo.toml │ │ ├── benches/ │ │ │ ├── binary_heap.rs │ │ │ ├── btree/ │ │ │ │ ├── map.rs │ │ │ │ ├── mod.rs │ │ │ │ └── set.rs │ │ │ ├── lib.rs │ │ │ ├── linked_list.rs │ │ │ ├── slice.rs │ │ │ ├── str.rs │ │ │ ├── string.rs │ │ │ ├── vec.rs │ │ │ ├── vec_deque.rs │ │ │ └── vec_deque_append.rs │ │ ├── lib.rs │ │ ├── testing/ │ │ │ ├── crash_test.rs │ │ │ ├── macros.rs │ │ │ ├── mod.rs │ │ │ ├── ord_chaos.rs │ │ │ └── rng.rs │ │ └── tests/ │ │ ├── alloc_test.rs │ │ ├── arc.rs │ │ ├── autotraits.rs │ │ ├── borrow.rs │ │ ├── boxed.rs │ │ ├── btree_set_hash.rs │ │ ├── c_str.rs │ │ ├── c_str2.rs │ │ ├── collections/ │ │ │ ├── binary_heap.rs │ │ │ ├── eq_diff_len.rs │ │ │ └── mod.rs │ │ ├── const_fns.rs │ │ ├── cow_str.rs │ │ ├── fmt.rs │ │ ├── heap.rs │ │ ├── lib.rs │ │ ├── linked_list.rs │ │ ├── misc_tests.rs │ │ ├── num.rs │ │ ├── rc.rs │ │ ├── slice.rs │ │ ├── sort/ │ │ │ ├── ffi_types.rs │ │ │ ├── known_good_stable_sort.rs │ │ │ ├── mod.rs │ │ │ ├── partial.rs │ │ │ ├── patterns.rs │ │ │ ├── tests.rs │ │ │ └── zipf.rs │ │ ├── str.rs │ │ ├── string.rs │ │ ├── sync.rs │ │ ├── task.rs │ │ ├── testing/ │ │ │ └── mod.rs │ │ ├── thin_box.rs │ │ ├── vec.rs │ │ ├── vec_deque.rs │ │ └── vec_deque_alloc_error.rs │ ├── compiler-builtins/ │ │ ├── .editorconfig │ │ ├── .git-blame-ignore-revs │ │ ├── .github/ │ │ │ └── workflows/ │ │ │ ├── main.yaml │ │ │ ├── publish.yaml │ │ │ └── rustc-pull.yml │ │ ├── .gitignore │ │ ├── .rustfmt.toml │ │ ├── CONTRIBUTING.md │ │ ├── Cargo.toml │ │ ├── LICENSE.txt │ │ ├── PUBLISHING.md │ │ ├── README.md │ │ ├── builtins-shim/ │ │ │ └── Cargo.toml │ │ ├── builtins-test/ │ │ │ ├── Cargo.toml │ │ │ ├── benches/ │ │ │ │ ├── float_add.rs │ │ │ │ ├── float_cmp.rs │ │ │ │ ├── float_conv.rs │ │ │ │ ├── float_div.rs │ │ │ │ ├── float_extend.rs │ │ │ │ ├── float_mul.rs │ │ │ │ ├── float_pow.rs │ │ │ │ ├── float_sub.rs │ │ │ │ ├── float_trunc.rs │ │ │ │ ├── mem.rs │ │ │ │ └── mem_icount.rs │ │ │ ├── build.rs │ │ │ ├── src/ │ │ │ │ ├── bench.rs │ │ │ │ └── lib.rs │ │ │ └── tests/ │ │ │ ├── addsub.rs │ │ │ ├── aeabi_memclr.rs │ │ │ ├── aeabi_memcpy.rs │ │ │ ├── aeabi_memset.rs │ │ │ ├── big.rs │ │ │ ├── cmp.rs │ │ │ ├── conv.rs │ │ │ ├── div_rem.rs │ │ │ ├── float_pow.rs │ │ │ ├── lse.rs │ │ │ ├── mem.rs │ │ │ ├── misc.rs │ │ │ ├── mul.rs │ │ │ └── shift.rs │ │ ├── builtins-test-intrinsics/ │ │ │ ├── Cargo.toml │ │ │ ├── build.rs │ │ │ └── src/ │ │ │ └── main.rs │ │ ├── ci/ │ │ │ ├── bench-icount.sh │ │ │ ├── bench-walltime.sh │ │ │ ├── ci-util.py │ │ │ ├── docker/ │ │ │ │ ├── aarch64-unknown-linux-gnu/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── arm-unknown-linux-gnueabi/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── arm-unknown-linux-gnueabihf/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── armv7-unknown-linux-gnueabihf/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── i586-unknown-linux-gnu/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── i686-unknown-linux-gnu/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── loongarch64-unknown-linux-gnu/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── mips-unknown-linux-gnu/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── mips64-unknown-linux-gnuabi64/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── mips64el-unknown-linux-gnuabi64/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── mipsel-unknown-linux-gnu/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── powerpc-unknown-linux-gnu/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── powerpc64-unknown-linux-gnu/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── powerpc64le-unknown-linux-gnu/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── riscv64gc-unknown-linux-gnu/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── thumbv6m-none-eabi/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── thumbv7em-none-eabi/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── thumbv7em-none-eabihf/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── thumbv7m-none-eabi/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── wasm32-unknown-unknown/ │ │ │ │ │ └── Dockerfile │ │ │ │ └── x86_64-unknown-linux-gnu/ │ │ │ │ └── Dockerfile │ │ │ ├── download-compiler-rt.sh │ │ │ ├── install-bench-deps.sh │ │ │ ├── miri.sh │ │ │ ├── run-docker.sh │ │ │ ├── run-extensive.sh │ │ │ ├── run.sh │ │ │ └── update-musl.sh │ │ ├── compiler-builtins/ │ │ │ ├── CHANGELOG.md │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ ├── build.rs │ │ │ ├── configure.rs │ │ │ └── src/ │ │ │ ├── aarch64.rs │ │ │ ├── aarch64_outline_atomics.rs │ │ │ ├── arm.rs │ │ │ ├── avr.rs │ │ │ ├── float/ │ │ │ │ ├── add.rs │ │ │ │ ├── cmp.rs │ │ │ │ ├── conv.rs │ │ │ │ ├── div.rs │ │ │ │ ├── extend.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── mul.rs │ │ │ │ ├── pow.rs │ │ │ │ ├── sub.rs │ │ │ │ ├── traits.rs │ │ │ │ └── trunc.rs │ │ │ ├── hexagon/ │ │ │ │ ├── dfaddsub.s │ │ │ │ ├── dfdiv.s │ │ │ │ ├── dffma.s │ │ │ │ ├── dfminmax.s │ │ │ │ ├── dfmul.s │ │ │ │ ├── dfsqrt.s │ │ │ │ ├── divdi3.s │ │ │ │ ├── divsi3.s │ │ │ │ ├── fastmath2_dlib_asm.s │ │ │ │ ├── fastmath2_ldlib_asm.s │ │ │ │ ├── func_macro.s │ │ │ │ ├── memcpy_forward_vp4cp4n2.s │ │ │ │ ├── memcpy_likely_aligned.s │ │ │ │ ├── moddi3.s │ │ │ │ ├── modsi3.s │ │ │ │ ├── sfdiv_opt.s │ │ │ │ ├── sfsqrt_opt.s │ │ │ │ ├── udivdi3.s │ │ │ │ ├── udivmoddi4.s │ │ │ │ ├── udivmodsi4.s │ │ │ │ ├── udivsi3.s │ │ │ │ ├── umoddi3.s │ │ │ │ └── umodsi3.s │ │ │ ├── hexagon.rs │ │ │ ├── int/ │ │ │ │ ├── addsub.rs │ │ │ │ ├── big.rs │ │ │ │ ├── bswap.rs │ │ │ │ ├── leading_zeros.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── mul.rs │ │ │ │ ├── sdiv.rs │ │ │ │ ├── shift.rs │ │ │ │ ├── specialized_div_rem/ │ │ │ │ │ ├── asymmetric.rs │ │ │ │ │ ├── binary_long.rs │ │ │ │ │ ├── delegate.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── norm_shift.rs │ │ │ │ │ └── trifecta.rs │ │ │ │ ├── trailing_zeros.rs │ │ │ │ ├── traits.rs │ │ │ │ └── udiv.rs │ │ │ ├── lib.miri.rs │ │ │ ├── lib.rs │ │ │ ├── macros.rs │ │ │ ├── math/ │ │ │ │ └── mod.rs │ │ │ ├── mem/ │ │ │ │ ├── impls.rs │ │ │ │ ├── mod.rs │ │ │ │ └── x86_64.rs │ │ │ ├── probestack.rs │ │ │ ├── riscv.rs │ │ │ ├── sync/ │ │ │ │ ├── arm_linux.rs │ │ │ │ ├── arm_thumb_shared.rs │ │ │ │ ├── mod.rs │ │ │ │ └── thumbv6k.rs │ │ │ ├── x86.rs │ │ │ └── x86_64.rs │ │ ├── crates/ │ │ │ ├── libm-macros/ │ │ │ │ ├── Cargo.toml │ │ │ │ ├── src/ │ │ │ │ │ ├── enums.rs │ │ │ │ │ ├── lib.rs │ │ │ │ │ ├── parse.rs │ │ │ │ │ └── shared.rs │ │ │ │ └── tests/ │ │ │ │ ├── basic.rs │ │ │ │ └── enum.rs │ │ │ ├── musl-math-sys/ │ │ │ │ ├── Cargo.toml │ │ │ │ ├── build.rs │ │ │ │ ├── c_patches/ │ │ │ │ │ ├── alias.c │ │ │ │ │ └── features.h │ │ │ │ └── src/ │ │ │ │ └── lib.rs │ │ │ ├── panic-handler/ │ │ │ │ ├── Cargo.toml │ │ │ │ └── src/ │ │ │ │ └── lib.rs │ │ │ ├── symbol-check/ │ │ │ │ ├── Cargo.toml │ │ │ │ ├── build.rs │ │ │ │ ├── src/ │ │ │ │ │ └── main.rs │ │ │ │ └── tests/ │ │ │ │ ├── all.rs │ │ │ │ └── input/ │ │ │ │ ├── core_symbols.rs │ │ │ │ ├── duplicates.rs │ │ │ │ ├── good_bin.c │ │ │ │ ├── good_lib.rs │ │ │ │ ├── has_exe_gnu_stack_section.c │ │ │ │ └── missing_gnu_stack_section.S │ │ │ └── util/ │ │ │ ├── Cargo.toml │ │ │ ├── build.rs │ │ │ └── src/ │ │ │ └── main.rs │ │ ├── etc/ │ │ │ ├── function-definitions.json │ │ │ ├── function-list.txt │ │ │ ├── thumbv6-none-eabi.json │ │ │ ├── thumbv7em-none-eabi-renamed.json │ │ │ └── update-api-list.py │ │ ├── josh-sync.toml │ │ ├── libm/ │ │ │ ├── CHANGELOG.md │ │ │ ├── Cargo.toml │ │ │ ├── LICENSE.txt │ │ │ ├── README.md │ │ │ ├── build.rs │ │ │ ├── configure.rs │ │ │ └── src/ │ │ │ ├── lib.rs │ │ │ ├── libm_helper.rs │ │ │ └── math/ │ │ │ ├── acos.rs │ │ │ ├── acosf.rs │ │ │ ├── acosh.rs │ │ │ ├── acoshf.rs │ │ │ ├── arch/ │ │ │ │ ├── aarch64.rs │ │ │ │ ├── i586.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── wasm32.rs │ │ │ │ ├── x86/ │ │ │ │ │ ├── detect.rs │ │ │ │ │ └── fma.rs │ │ │ │ └── x86.rs │ │ │ ├── asin.rs │ │ │ ├── asinf.rs │ │ │ ├── asinh.rs │ │ │ ├── asinhf.rs │ │ │ ├── atan.rs │ │ │ ├── atan2.rs │ │ │ ├── atan2f.rs │ │ │ ├── atanf.rs │ │ │ ├── atanh.rs │ │ │ ├── atanhf.rs │ │ │ ├── cbrt.rs │ │ │ ├── cbrtf.rs │ │ │ ├── ceil.rs │ │ │ ├── copysign.rs │ │ │ ├── cos.rs │ │ │ ├── cosf.rs │ │ │ ├── cosh.rs │ │ │ ├── coshf.rs │ │ │ ├── erf.rs │ │ │ ├── erff.rs │ │ │ ├── exp.rs │ │ │ ├── exp10.rs │ │ │ ├── exp10f.rs │ │ │ ├── exp2.rs │ │ │ ├── exp2f.rs │ │ │ ├── expf.rs │ │ │ ├── expm1.rs │ │ │ ├── expm1f.rs │ │ │ ├── expo2.rs │ │ │ ├── fabs.rs │ │ │ ├── fdim.rs │ │ │ ├── floor.rs │ │ │ ├── fma.rs │ │ │ ├── fmin_fmax.rs │ │ │ ├── fminimum_fmaximum.rs │ │ │ ├── fminimum_fmaximum_num.rs │ │ │ ├── fmod.rs │ │ │ ├── frexp.rs │ │ │ ├── generic/ │ │ │ │ ├── ceil.rs │ │ │ │ ├── copysign.rs │ │ │ │ ├── fabs.rs │ │ │ │ ├── fdim.rs │ │ │ │ ├── floor.rs │ │ │ │ ├── fma.rs │ │ │ │ ├── fma_wide.rs │ │ │ │ ├── fmax.rs │ │ │ │ ├── fmaximum.rs │ │ │ │ ├── fmaximum_num.rs │ │ │ │ ├── fmin.rs │ │ │ │ ├── fminimum.rs │ │ │ │ ├── fminimum_num.rs │ │ │ │ ├── fmod.rs │ │ │ │ ├── frexp.rs │ │ │ │ ├── ilogb.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── rint.rs │ │ │ │ ├── round.rs │ │ │ │ ├── scalbn.rs │ │ │ │ ├── sqrt.rs │ │ │ │ └── trunc.rs │ │ │ ├── hypot.rs │ │ │ ├── hypotf.rs │ │ │ ├── ilogb.rs │ │ │ ├── j0.rs │ │ │ ├── j0f.rs │ │ │ ├── j1.rs │ │ │ ├── j1f.rs │ │ │ ├── jn.rs │ │ │ ├── jnf.rs │ │ │ ├── k_cos.rs │ │ │ ├── k_cosf.rs │ │ │ ├── k_expo2.rs │ │ │ ├── k_expo2f.rs │ │ │ ├── k_sin.rs │ │ │ ├── k_sinf.rs │ │ │ ├── k_tan.rs │ │ │ ├── k_tanf.rs │ │ │ ├── ldexp.rs │ │ │ ├── lgamma.rs │ │ │ ├── lgamma_r.rs │ │ │ ├── lgammaf.rs │ │ │ ├── lgammaf_r.rs │ │ │ ├── log.rs │ │ │ ├── log10.rs │ │ │ ├── log10f.rs │ │ │ ├── log1p.rs │ │ │ ├── log1pf.rs │ │ │ ├── log2.rs │ │ │ ├── log2f.rs │ │ │ ├── logf.rs │ │ │ ├── mod.rs │ │ │ ├── modf.rs │ │ │ ├── modff.rs │ │ │ ├── nextafter.rs │ │ │ ├── nextafterf.rs │ │ │ ├── pow.rs │ │ │ ├── powf.rs │ │ │ ├── rem_pio2.rs │ │ │ ├── rem_pio2_large.rs │ │ │ ├── rem_pio2f.rs │ │ │ ├── remainder.rs │ │ │ ├── remainderf.rs │ │ │ ├── remquo.rs │ │ │ ├── remquof.rs │ │ │ ├── rint.rs │ │ │ ├── round.rs │ │ │ ├── roundeven.rs │ │ │ ├── scalbn.rs │ │ │ ├── sin.rs │ │ │ ├── sincos.rs │ │ │ ├── sincosf.rs │ │ │ ├── sinf.rs │ │ │ ├── sinh.rs │ │ │ ├── sinhf.rs │ │ │ ├── sqrt.rs │ │ │ ├── support/ │ │ │ │ ├── big/ │ │ │ │ │ └── tests.rs │ │ │ │ ├── big.rs │ │ │ │ ├── env.rs │ │ │ │ ├── feature_detect.rs │ │ │ │ ├── float_traits.rs │ │ │ │ ├── hex_float.rs │ │ │ │ ├── int_traits/ │ │ │ │ │ └── narrowing_div.rs │ │ │ │ ├── int_traits.rs │ │ │ │ ├── macros.rs │ │ │ │ ├── mod.rs │ │ │ │ └── modular.rs │ │ │ ├── tan.rs │ │ │ ├── tanf.rs │ │ │ ├── tanh.rs │ │ │ ├── tanhf.rs │ │ │ ├── tgamma.rs │ │ │ ├── tgammaf.rs │ │ │ └── trunc.rs │ │ ├── libm-test/ │ │ │ ├── Cargo.toml │ │ │ ├── benches/ │ │ │ │ ├── icount.rs │ │ │ │ └── random.rs │ │ │ ├── build.rs │ │ │ ├── examples/ │ │ │ │ ├── plot_domains.rs │ │ │ │ └── plot_file.jl │ │ │ ├── src/ │ │ │ │ ├── domain.rs │ │ │ │ ├── f8_impl.rs │ │ │ │ ├── generate/ │ │ │ │ │ ├── case_list.rs │ │ │ │ │ ├── edge_cases.rs │ │ │ │ │ ├── random.rs │ │ │ │ │ └── spaced.rs │ │ │ │ ├── generate.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── mpfloat.rs │ │ │ │ ├── num.rs │ │ │ │ ├── op.rs │ │ │ │ ├── precision.rs │ │ │ │ ├── run_cfg.rs │ │ │ │ └── test_traits.rs │ │ │ └── tests/ │ │ │ ├── check_coverage.rs │ │ │ ├── compare_built_musl.rs │ │ │ ├── multiprecision.rs │ │ │ ├── standalone.rs │ │ │ ├── u256.rs │ │ │ └── z_extensive/ │ │ │ ├── main.rs │ │ │ └── run.rs │ │ ├── rust-version │ │ └── triagebot.toml │ ├── core/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── alloc/ │ │ │ ├── global.rs │ │ │ ├── layout.rs │ │ │ └── mod.rs │ │ ├── any.rs │ │ ├── arch.rs │ │ ├── array/ │ │ │ ├── ascii.rs │ │ │ ├── drain.rs │ │ │ ├── equality.rs │ │ │ ├── iter/ │ │ │ │ └── iter_inner.rs │ │ │ ├── iter.rs │ │ │ └── mod.rs │ │ ├── ascii/ │ │ │ └── ascii_char.rs │ │ ├── ascii.rs │ │ ├── asserting.rs │ │ ├── async_iter/ │ │ │ ├── async_iter.rs │ │ │ ├── from_iter.rs │ │ │ └── mod.rs │ │ ├── bool.rs │ │ ├── borrow.rs │ │ ├── bstr/ │ │ │ ├── mod.rs │ │ │ └── traits.rs │ │ ├── cell/ │ │ │ ├── lazy.rs │ │ │ └── once.rs │ │ ├── cell.rs │ │ ├── char/ │ │ │ ├── convert.rs │ │ │ ├── decode.rs │ │ │ ├── methods.rs │ │ │ └── mod.rs │ │ ├── clone/ │ │ │ └── uninit.rs │ │ ├── clone.rs │ │ ├── cmp/ │ │ │ └── bytewise.rs │ │ ├── cmp.rs │ │ ├── contracts.rs │ │ ├── convert/ │ │ │ ├── mod.rs │ │ │ └── num.rs │ │ ├── default.rs │ │ ├── error.md │ │ ├── error.rs │ │ ├── escape.rs │ │ ├── ffi/ │ │ │ ├── c_char.md │ │ │ ├── c_double.md │ │ │ ├── c_float.md │ │ │ ├── c_int.md │ │ │ ├── c_long.md │ │ │ ├── c_longlong.md │ │ │ ├── c_schar.md │ │ │ ├── c_short.md │ │ │ ├── c_str.rs │ │ │ ├── c_uchar.md │ │ │ ├── c_uint.md │ │ │ ├── c_ulong.md │ │ │ ├── c_ulonglong.md │ │ │ ├── c_ushort.md │ │ │ ├── c_void.md │ │ │ ├── mod.rs │ │ │ ├── primitives.rs │ │ │ └── va_list.rs │ │ ├── field.rs │ │ ├── fmt/ │ │ │ ├── builders.rs │ │ │ ├── float.rs │ │ │ ├── fmt_trait_method_doc.md │ │ │ ├── mod.rs │ │ │ ├── nofloat.rs │ │ │ ├── num.rs │ │ │ ├── num_buffer.rs │ │ │ └── rt.rs │ │ ├── future/ │ │ │ ├── async_drop.rs │ │ │ ├── future.rs │ │ │ ├── into_future.rs │ │ │ ├── join.rs │ │ │ ├── mod.rs │ │ │ ├── pending.rs │ │ │ ├── poll_fn.rs │ │ │ └── ready.rs │ │ ├── hash/ │ │ │ ├── mod.rs │ │ │ └── sip.rs │ │ ├── hint.rs │ │ ├── index.rs │ │ ├── internal_macros.rs │ │ ├── intrinsics/ │ │ │ ├── bounds.rs │ │ │ ├── fallback.rs │ │ │ ├── gpu.rs │ │ │ ├── mir.rs │ │ │ ├── mod.rs │ │ │ └── simd.rs │ │ ├── io/ │ │ │ ├── borrowed_buf.rs │ │ │ └── mod.rs │ │ ├── iter/ │ │ │ ├── adapters/ │ │ │ │ ├── array_chunks.rs │ │ │ │ ├── by_ref_sized.rs │ │ │ │ ├── chain.rs │ │ │ │ ├── cloned.rs │ │ │ │ ├── copied.rs │ │ │ │ ├── cycle.rs │ │ │ │ ├── enumerate.rs │ │ │ │ ├── filter.rs │ │ │ │ ├── filter_map.rs │ │ │ │ ├── flatten.rs │ │ │ │ ├── fuse.rs │ │ │ │ ├── inspect.rs │ │ │ │ ├── intersperse.rs │ │ │ │ ├── map.rs │ │ │ │ ├── map_while.rs │ │ │ │ ├── map_windows.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── peekable.rs │ │ │ │ ├── rev.rs │ │ │ │ ├── scan.rs │ │ │ │ ├── skip.rs │ │ │ │ ├── skip_while.rs │ │ │ │ ├── step_by.rs │ │ │ │ ├── take.rs │ │ │ │ ├── take_while.rs │ │ │ │ └── zip.rs │ │ │ ├── mod.rs │ │ │ ├── range.rs │ │ │ ├── sources/ │ │ │ │ ├── empty.rs │ │ │ │ ├── from_coroutine.rs │ │ │ │ ├── from_fn.rs │ │ │ │ ├── generator.rs │ │ │ │ ├── once.rs │ │ │ │ ├── once_with.rs │ │ │ │ ├── repeat.rs │ │ │ │ ├── repeat_n.rs │ │ │ │ ├── repeat_with.rs │ │ │ │ └── successors.rs │ │ │ ├── sources.rs │ │ │ └── traits/ │ │ │ ├── accum.rs │ │ │ ├── collect.rs │ │ │ ├── double_ended.rs │ │ │ ├── exact_size.rs │ │ │ ├── iterator.rs │ │ │ ├── marker.rs │ │ │ ├── mod.rs │ │ │ └── unchecked_iterator.rs │ │ ├── lib.miri.rs │ │ ├── lib.rs │ │ ├── macros/ │ │ │ ├── mod.rs │ │ │ └── panic.md │ │ ├── marker/ │ │ │ └── variance.rs │ │ ├── marker.rs │ │ ├── mem/ │ │ │ ├── alignment.rs │ │ │ ├── drop_guard.rs │ │ │ ├── manually_drop.rs │ │ │ ├── maybe_dangling.rs │ │ │ ├── maybe_uninit.rs │ │ │ ├── mod.rs │ │ │ ├── transmutability.rs │ │ │ └── type_info.rs │ │ ├── net/ │ │ │ ├── display_buffer.rs │ │ │ ├── ip_addr.rs │ │ │ ├── mod.rs │ │ │ ├── parser.rs │ │ │ └── socket_addr.rs │ │ ├── num/ │ │ │ ├── error.rs │ │ │ ├── f128.rs │ │ │ ├── f16.rs │ │ │ ├── f32.rs │ │ │ ├── f64.rs │ │ │ ├── float_parse.rs │ │ │ ├── imp/ │ │ │ │ ├── bignum.rs │ │ │ │ ├── dec2flt/ │ │ │ │ │ ├── common.rs │ │ │ │ │ ├── decimal.rs │ │ │ │ │ ├── decimal_seq.rs │ │ │ │ │ ├── fpu.rs │ │ │ │ │ ├── lemire.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── parse.rs │ │ │ │ │ ├── slow.rs │ │ │ │ │ └── table.rs │ │ │ │ ├── diy_float.rs │ │ │ │ ├── flt2dec/ │ │ │ │ │ ├── decoder.rs │ │ │ │ │ ├── estimator.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── strategy/ │ │ │ │ │ ├── dragon.rs │ │ │ │ │ └── grisu.rs │ │ │ │ ├── fmt.rs │ │ │ │ ├── int_bits.rs │ │ │ │ ├── int_log10.rs │ │ │ │ ├── int_sqrt.rs │ │ │ │ ├── libm.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── overflow_panic.rs │ │ │ │ └── traits.rs │ │ │ ├── int_macros.rs │ │ │ ├── mod.rs │ │ │ ├── niche_types.rs │ │ │ ├── nonzero.rs │ │ │ ├── saturating.rs │ │ │ ├── shells/ │ │ │ │ └── legacy_int_modules.rs │ │ │ ├── traits.rs │ │ │ ├── uint_macros.rs │ │ │ └── wrapping.rs │ │ ├── ops/ │ │ │ ├── arith.rs │ │ │ ├── async_function.rs │ │ │ ├── bit.rs │ │ │ ├── control_flow.rs │ │ │ ├── coroutine.rs │ │ │ ├── deref.rs │ │ │ ├── drop.rs │ │ │ ├── function.rs │ │ │ ├── index.rs │ │ │ ├── index_range.rs │ │ │ ├── mod.rs │ │ │ ├── range.rs │ │ │ ├── reborrow.rs │ │ │ ├── try_trait.rs │ │ │ └── unsize.rs │ │ ├── option.rs │ │ ├── os/ │ │ │ ├── darwin/ │ │ │ │ ├── mod.rs │ │ │ │ └── objc.rs │ │ │ └── mod.rs │ │ ├── panic/ │ │ │ ├── location.rs │ │ │ ├── panic_info.rs │ │ │ └── unwind_safe.rs │ │ ├── panic.rs │ │ ├── panicking.rs │ │ ├── pat.rs │ │ ├── pin/ │ │ │ └── unsafe_pinned.rs │ │ ├── pin.rs │ │ ├── prelude/ │ │ │ ├── mod.rs │ │ │ └── v1.rs │ │ ├── primitive.rs │ │ ├── primitive_docs.rs │ │ ├── profiling.rs │ │ ├── ptr/ │ │ │ ├── const_ptr.rs │ │ │ ├── docs/ │ │ │ │ ├── INFO.md │ │ │ │ ├── add.md │ │ │ │ ├── addr.md │ │ │ │ ├── as_ref.md │ │ │ │ ├── as_uninit_ref.md │ │ │ │ ├── as_uninit_slice.md │ │ │ │ ├── is_null.md │ │ │ │ └── offset.md │ │ │ ├── metadata.rs │ │ │ ├── mod.rs │ │ │ ├── mut_ptr.rs │ │ │ ├── non_null.rs │ │ │ └── unique.rs │ │ ├── random.rs │ │ ├── range/ │ │ │ ├── iter.rs │ │ │ └── legacy.rs │ │ ├── range.rs │ │ ├── result.rs │ │ ├── slice/ │ │ │ ├── ascii.rs │ │ │ ├── cmp.rs │ │ │ ├── index.rs │ │ │ ├── iter/ │ │ │ │ └── macros.rs │ │ │ ├── iter.rs │ │ │ ├── memchr.rs │ │ │ ├── mod.rs │ │ │ ├── raw.rs │ │ │ ├── rotate.rs │ │ │ ├── sort/ │ │ │ │ ├── mod.rs │ │ │ │ ├── select.rs │ │ │ │ ├── shared/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── pivot.rs │ │ │ │ │ └── smallsort.rs │ │ │ │ ├── stable/ │ │ │ │ │ ├── drift.rs │ │ │ │ │ ├── merge.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── quicksort.rs │ │ │ │ │ └── tiny.rs │ │ │ │ └── unstable/ │ │ │ │ ├── heapsort.rs │ │ │ │ ├── mod.rs │ │ │ │ └── quicksort.rs │ │ │ └── specialize.rs │ │ ├── str/ │ │ │ ├── converts.rs │ │ │ ├── count.rs │ │ │ ├── error.rs │ │ │ ├── iter.rs │ │ │ ├── lossy.rs │ │ │ ├── mod.rs │ │ │ ├── pattern.rs │ │ │ ├── traits.rs │ │ │ └── validations.rs │ │ ├── sync/ │ │ │ ├── atomic.rs │ │ │ ├── exclusive.rs │ │ │ └── mod.rs │ │ ├── task/ │ │ │ ├── mod.rs │ │ │ ├── poll.rs │ │ │ ├── ready.rs │ │ │ └── wake.rs │ │ ├── time.rs │ │ ├── tuple.rs │ │ ├── ub_checks.rs │ │ ├── unicode/ │ │ │ ├── mod.rs │ │ │ ├── printable.py │ │ │ ├── printable.rs │ │ │ └── unicode_data.rs │ │ ├── unit.rs │ │ ├── unsafe_binder.rs │ │ └── wtf8.rs │ ├── coretests/ │ │ ├── Cargo.toml │ │ ├── benches/ │ │ │ ├── any.rs │ │ │ ├── array.rs │ │ │ ├── ascii/ │ │ │ │ └── is_ascii.rs │ │ │ ├── ascii.rs │ │ │ ├── char/ │ │ │ │ ├── methods.rs │ │ │ │ └── mod.rs │ │ │ ├── fmt.rs │ │ │ ├── hash/ │ │ │ │ ├── mod.rs │ │ │ │ └── sip.rs │ │ │ ├── iter.rs │ │ │ ├── lib.rs │ │ │ ├── net/ │ │ │ │ ├── addr_parser.rs │ │ │ │ └── mod.rs │ │ │ ├── num/ │ │ │ │ ├── dec2flt/ │ │ │ │ │ └── mod.rs │ │ │ │ ├── flt2dec/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── strategy/ │ │ │ │ │ ├── dragon.rs │ │ │ │ │ └── grisu.rs │ │ │ │ ├── int_bits/ │ │ │ │ │ └── mod.rs │ │ │ │ ├── int_log/ │ │ │ │ │ └── mod.rs │ │ │ │ ├── int_pow/ │ │ │ │ │ └── mod.rs │ │ │ │ ├── int_sqrt/ │ │ │ │ │ └── mod.rs │ │ │ │ └── mod.rs │ │ │ ├── ops.rs │ │ │ ├── pattern.rs │ │ │ ├── slice.rs │ │ │ ├── str/ │ │ │ │ ├── char_count.rs │ │ │ │ ├── corpora.rs │ │ │ │ ├── debug.rs │ │ │ │ ├── eq_ignore_ascii_case.rs │ │ │ │ └── iter.rs │ │ │ ├── str.rs │ │ │ └── tuple.rs │ │ ├── lib.rs │ │ └── tests/ │ │ ├── alloc.rs │ │ ├── any.rs │ │ ├── array.rs │ │ ├── ascii.rs │ │ ├── ascii_char.rs │ │ ├── asserting.rs │ │ ├── async_iter/ │ │ │ └── mod.rs │ │ ├── atomic.rs │ │ ├── bool.rs │ │ ├── bstr.rs │ │ ├── cell.rs │ │ ├── char.rs │ │ ├── clone.rs │ │ ├── cmp.rs │ │ ├── const_ptr.rs │ │ ├── convert.rs │ │ ├── error.rs │ │ ├── ffi/ │ │ │ └── cstr.rs │ │ ├── ffi.rs │ │ ├── fmt/ │ │ │ ├── builders.rs │ │ │ ├── float.rs │ │ │ ├── mod.rs │ │ │ └── num.rs │ │ ├── future.rs │ │ ├── hash/ │ │ │ ├── mod.rs │ │ │ └── sip.rs │ │ ├── hint.rs │ │ ├── index.rs │ │ ├── intrinsics.rs │ │ ├── io/ │ │ │ ├── borrowed_buf.rs │ │ │ └── mod.rs │ │ ├── iter/ │ │ │ ├── adapters/ │ │ │ │ ├── array_chunks.rs │ │ │ │ ├── by_ref_sized.rs │ │ │ │ ├── chain.rs │ │ │ │ ├── cloned.rs │ │ │ │ ├── copied.rs │ │ │ │ ├── cycle.rs │ │ │ │ ├── enumerate.rs │ │ │ │ ├── filter.rs │ │ │ │ ├── filter_map.rs │ │ │ │ ├── flat_map.rs │ │ │ │ ├── flatten.rs │ │ │ │ ├── fuse.rs │ │ │ │ ├── inspect.rs │ │ │ │ ├── intersperse.rs │ │ │ │ ├── map.rs │ │ │ │ ├── map_windows.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── peekable.rs │ │ │ │ ├── scan.rs │ │ │ │ ├── skip.rs │ │ │ │ ├── skip_while.rs │ │ │ │ ├── step_by.rs │ │ │ │ ├── take.rs │ │ │ │ ├── take_while.rs │ │ │ │ └── zip.rs │ │ │ ├── mod.rs │ │ │ ├── range.rs │ │ │ ├── sources.rs │ │ │ └── traits/ │ │ │ ├── accum.rs │ │ │ ├── double_ended.rs │ │ │ ├── iterator.rs │ │ │ ├── mod.rs │ │ │ └── step.rs │ │ ├── lazy.rs │ │ ├── lib.rs │ │ ├── macros.rs │ │ ├── manually_drop.rs │ │ ├── mem/ │ │ │ ├── fn_ptr.rs │ │ │ ├── trait_info_of.rs │ │ │ └── type_info.rs │ │ ├── mem.rs │ │ ├── net/ │ │ │ ├── ip_addr.rs │ │ │ ├── mod.rs │ │ │ ├── parser.rs │ │ │ └── socket_addr.rs │ │ ├── nonzero.rs │ │ ├── num/ │ │ │ ├── bignum.rs │ │ │ ├── carryless_mul.rs │ │ │ ├── clamp_magnitude.rs │ │ │ ├── const_from.rs │ │ │ ├── dec2flt/ │ │ │ │ ├── decimal.rs │ │ │ │ ├── decimal_seq.rs │ │ │ │ ├── float.rs │ │ │ │ ├── lemire.rs │ │ │ │ ├── mod.rs │ │ │ │ └── parse.rs │ │ │ ├── float_ieee754_flt2dec_dec2flt.rs │ │ │ ├── float_iter_sum_identity.rs │ │ │ ├── floats.rs │ │ │ ├── flt2dec/ │ │ │ │ ├── estimator.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── random.rs │ │ │ │ └── strategy/ │ │ │ │ ├── dragon.rs │ │ │ │ └── grisu.rs │ │ │ ├── i128.rs │ │ │ ├── i16.rs │ │ │ ├── i32.rs │ │ │ ├── i64.rs │ │ │ ├── i8.rs │ │ │ ├── int_log.rs │ │ │ ├── int_macros.rs │ │ │ ├── int_sqrt.rs │ │ │ ├── midpoint.rs │ │ │ ├── mod.rs │ │ │ ├── nan.rs │ │ │ ├── niche_types.rs │ │ │ ├── ops.rs │ │ │ ├── u128.rs │ │ │ ├── u16.rs │ │ │ ├── u32.rs │ │ │ ├── u64.rs │ │ │ ├── u8.rs │ │ │ ├── uint_macros.rs │ │ │ └── wrapping.rs │ │ ├── ops/ │ │ │ ├── control_flow.rs │ │ │ └── from_residual.rs │ │ ├── ops.rs │ │ ├── option.rs │ │ ├── panic/ │ │ │ ├── location/ │ │ │ │ ├── file_a.rs │ │ │ │ ├── file_b.rs │ │ │ │ └── file_c.rs │ │ │ └── location.rs │ │ ├── panic.rs │ │ ├── pattern.rs │ │ ├── pin.rs │ │ ├── pin_macro.rs │ │ ├── ptr.rs │ │ ├── result.rs │ │ ├── simd.rs │ │ ├── slice.rs │ │ ├── str.rs │ │ ├── str_lossy.rs │ │ ├── task.rs │ │ ├── time.rs │ │ ├── tuple.rs │ │ ├── unicode/ │ │ │ └── test_data.rs │ │ ├── unicode.rs │ │ ├── waker.rs │ │ └── wtf8.rs │ ├── panic_abort/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── android.rs │ │ ├── lib.rs │ │ └── zkvm.rs │ ├── panic_unwind/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── dummy.rs │ │ ├── emcc.rs │ │ ├── gcc.rs │ │ ├── hermit.rs │ │ ├── lib.rs │ │ ├── miri.rs │ │ └── seh.rs │ ├── portable-simd/ │ │ ├── .github/ │ │ │ ├── ISSUE_TEMPLATE/ │ │ │ │ ├── blank_issue.md │ │ │ │ ├── bug_report.md │ │ │ │ ├── config.yml │ │ │ │ └── feature_request.md │ │ │ ├── PULL_REQUEST_TEMPLATE.md │ │ │ └── workflows/ │ │ │ ├── ci.yml │ │ │ └── doc.yml │ │ ├── .gitignore │ │ ├── CONTRIBUTING.md │ │ ├── Cargo.toml │ │ ├── Cross.toml │ │ ├── LICENSE-APACHE │ │ ├── LICENSE-MIT │ │ ├── README.md │ │ ├── beginners-guide.md │ │ ├── crates/ │ │ │ ├── core_simd/ │ │ │ │ ├── Cargo.toml │ │ │ │ ├── LICENSE-APACHE │ │ │ │ ├── LICENSE-MIT │ │ │ │ ├── examples/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── dot_product.rs │ │ │ │ │ ├── matrix_inversion.rs │ │ │ │ │ ├── nbody.rs │ │ │ │ │ └── spectral_norm.rs │ │ │ │ ├── src/ │ │ │ │ │ ├── alias.rs │ │ │ │ │ ├── cast.rs │ │ │ │ │ ├── core_simd_docs.md │ │ │ │ │ ├── fmt.rs │ │ │ │ │ ├── iter.rs │ │ │ │ │ ├── lib.rs │ │ │ │ │ ├── masks.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── ops/ │ │ │ │ │ │ ├── assign.rs │ │ │ │ │ │ ├── deref.rs │ │ │ │ │ │ ├── shift_scalar.rs │ │ │ │ │ │ └── unary.rs │ │ │ │ │ ├── ops.rs │ │ │ │ │ ├── select.rs │ │ │ │ │ ├── simd/ │ │ │ │ │ │ ├── cmp/ │ │ │ │ │ │ │ ├── eq.rs │ │ │ │ │ │ │ └── ord.rs │ │ │ │ │ │ ├── cmp.rs │ │ │ │ │ │ ├── num/ │ │ │ │ │ │ │ ├── float.rs │ │ │ │ │ │ │ ├── int.rs │ │ │ │ │ │ │ └── uint.rs │ │ │ │ │ │ ├── num.rs │ │ │ │ │ │ ├── prelude.rs │ │ │ │ │ │ ├── ptr/ │ │ │ │ │ │ │ ├── const_ptr.rs │ │ │ │ │ │ │ └── mut_ptr.rs │ │ │ │ │ │ └── ptr.rs │ │ │ │ │ ├── swizzle.rs │ │ │ │ │ ├── swizzle_dyn.rs │ │ │ │ │ ├── to_bytes.rs │ │ │ │ │ ├── vector.rs │ │ │ │ │ ├── vendor/ │ │ │ │ │ │ ├── arm.rs │ │ │ │ │ │ ├── loongarch64.rs │ │ │ │ │ │ ├── powerpc.rs │ │ │ │ │ │ ├── wasm32.rs │ │ │ │ │ │ └── x86.rs │ │ │ │ │ └── vendor.rs │ │ │ │ ├── tests/ │ │ │ │ │ ├── autoderef.rs │ │ │ │ │ ├── cast.rs │ │ │ │ │ ├── f32_ops.rs │ │ │ │ │ ├── f64_ops.rs │ │ │ │ │ ├── i16_ops.rs │ │ │ │ │ ├── i32_ops.rs │ │ │ │ │ ├── i64_ops.rs │ │ │ │ │ ├── i8_ops.rs │ │ │ │ │ ├── isize_ops.rs │ │ │ │ │ ├── layout.rs │ │ │ │ │ ├── mask_ops.rs │ │ │ │ │ ├── mask_ops_impl/ │ │ │ │ │ │ ├── mask16.rs │ │ │ │ │ │ ├── mask32.rs │ │ │ │ │ │ ├── mask64.rs │ │ │ │ │ │ ├── mask8.rs │ │ │ │ │ │ ├── mask_macros.rs │ │ │ │ │ │ ├── masksize.rs │ │ │ │ │ │ └── mod.rs │ │ │ │ │ ├── masked_load_store.rs │ │ │ │ │ ├── masks.rs │ │ │ │ │ ├── ops_macros.rs │ │ │ │ │ ├── pointers.rs │ │ │ │ │ ├── round.rs │ │ │ │ │ ├── swizzle.rs │ │ │ │ │ ├── swizzle_dyn.rs │ │ │ │ │ ├── to_bytes.rs │ │ │ │ │ ├── try_from_slice.rs │ │ │ │ │ ├── u16_ops.rs │ │ │ │ │ ├── u32_ops.rs │ │ │ │ │ ├── u64_ops.rs │ │ │ │ │ ├── u8_ops.rs │ │ │ │ │ └── usize_ops.rs │ │ │ │ └── webdriver.json │ │ │ ├── std_float/ │ │ │ │ ├── Cargo.toml │ │ │ │ ├── src/ │ │ │ │ │ └── lib.rs │ │ │ │ └── tests/ │ │ │ │ └── float.rs │ │ │ └── test_helpers/ │ │ │ ├── Cargo.toml │ │ │ └── src/ │ │ │ ├── approxeq.rs │ │ │ ├── array.rs │ │ │ ├── biteq.rs │ │ │ ├── lib.rs │ │ │ ├── subnormals.rs │ │ │ └── wasm.rs │ │ ├── rust-toolchain.toml │ │ └── subtree-sync.sh │ ├── proc_macro/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── bridge/ │ │ │ ├── arena.rs │ │ │ ├── buffer.rs │ │ │ ├── client.rs │ │ │ ├── closure.rs │ │ │ ├── fxhash.rs │ │ │ ├── handle.rs │ │ │ ├── mod.rs │ │ │ ├── rpc.rs │ │ │ ├── selfless_reify.rs │ │ │ ├── server.rs │ │ │ └── symbol.rs │ │ ├── diagnostic.rs │ │ ├── escape.rs │ │ ├── lib.rs │ │ ├── quote.rs │ │ └── to_tokens.rs │ ├── profiler_builtins/ │ │ ├── Cargo.toml │ │ ├── build.rs │ │ └── src/ │ │ └── lib.rs │ ├── rtstartup/ │ │ ├── rsbegin.rs │ │ └── rsend.rs │ ├── rustc-std-workspace-alloc/ │ │ ├── Cargo.toml │ │ └── lib.rs │ ├── rustc-std-workspace-core/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ └── lib.rs │ ├── rustc-std-workspace-std/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ └── lib.rs │ ├── std/ │ │ ├── Cargo.toml │ │ ├── benches/ │ │ │ ├── hash/ │ │ │ │ ├── map.rs │ │ │ │ ├── mod.rs │ │ │ │ └── set_ops.rs │ │ │ ├── lib.rs │ │ │ ├── path.rs │ │ │ └── time.rs │ │ ├── build.rs │ │ ├── src/ │ │ │ ├── alloc.rs │ │ │ ├── ascii.rs │ │ │ ├── backtrace/ │ │ │ │ └── tests.rs │ │ │ ├── backtrace.rs │ │ │ ├── bstr.rs │ │ │ ├── collections/ │ │ │ │ ├── hash/ │ │ │ │ │ ├── map/ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ ├── map.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── set/ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ └── set.rs │ │ │ │ └── mod.rs │ │ │ ├── env.rs │ │ │ ├── error.rs │ │ │ ├── ffi/ │ │ │ │ ├── c_str.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── os_str/ │ │ │ │ │ └── tests.rs │ │ │ │ └── os_str.rs │ │ │ ├── fs/ │ │ │ │ └── tests.rs │ │ │ ├── fs.rs │ │ │ ├── hash/ │ │ │ │ ├── mod.rs │ │ │ │ └── random.rs │ │ │ ├── io/ │ │ │ │ ├── buffered/ │ │ │ │ │ ├── bufreader/ │ │ │ │ │ │ └── buffer.rs │ │ │ │ │ ├── bufreader.rs │ │ │ │ │ ├── bufwriter.rs │ │ │ │ │ ├── linewriter.rs │ │ │ │ │ ├── linewritershim.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── tests.rs │ │ │ │ ├── copy/ │ │ │ │ │ └── tests.rs │ │ │ │ ├── copy.rs │ │ │ │ ├── cursor/ │ │ │ │ │ └── tests.rs │ │ │ │ ├── cursor.rs │ │ │ │ ├── error/ │ │ │ │ │ ├── repr_bitpacked.rs │ │ │ │ │ ├── repr_unpacked.rs │ │ │ │ │ └── tests.rs │ │ │ │ ├── error.rs │ │ │ │ ├── impls/ │ │ │ │ │ └── tests.rs │ │ │ │ ├── impls.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── pipe/ │ │ │ │ │ └── tests.rs │ │ │ │ ├── pipe.rs │ │ │ │ ├── prelude.rs │ │ │ │ ├── stdio/ │ │ │ │ │ └── tests.rs │ │ │ │ ├── stdio.rs │ │ │ │ ├── tests.rs │ │ │ │ ├── util/ │ │ │ │ │ └── tests.rs │ │ │ │ └── util.rs │ │ │ ├── keyword_docs.rs │ │ │ ├── lib.miri.rs │ │ │ ├── lib.rs │ │ │ ├── macros/ │ │ │ │ └── tests.rs │ │ │ ├── macros.rs │ │ │ ├── net/ │ │ │ │ ├── hostname.rs │ │ │ │ ├── ip_addr/ │ │ │ │ │ └── tests.rs │ │ │ │ ├── ip_addr.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── socket_addr/ │ │ │ │ │ └── tests.rs │ │ │ │ ├── socket_addr.rs │ │ │ │ ├── tcp/ │ │ │ │ │ └── tests.rs │ │ │ │ ├── tcp.rs │ │ │ │ ├── test.rs │ │ │ │ ├── udp/ │ │ │ │ │ └── tests.rs │ │ │ │ └── udp.rs │ │ │ ├── num/ │ │ │ │ ├── f128.rs │ │ │ │ ├── f16.rs │ │ │ │ ├── f32.rs │ │ │ │ ├── f64.rs │ │ │ │ └── mod.rs │ │ │ ├── os/ │ │ │ │ ├── aix/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── android/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── net.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── cygwin/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── net.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── darwin/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── objc.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── dragonfly/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── emscripten/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── espidf/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── fd/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── net.rs │ │ │ │ │ ├── owned.rs │ │ │ │ │ ├── raw.rs │ │ │ │ │ ├── stdio.rs │ │ │ │ │ └── tests.rs │ │ │ │ ├── fortanix_sgx/ │ │ │ │ │ ├── arch.rs │ │ │ │ │ ├── ffi.rs │ │ │ │ │ ├── io.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── freebsd/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── net.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── fuchsia/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── haiku/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── hermit/ │ │ │ │ │ ├── ffi.rs │ │ │ │ │ ├── io/ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ └── net.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── horizon/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── hurd/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── illumos/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── net.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── ios/ │ │ │ │ │ └── mod.rs │ │ │ │ ├── l4re/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── linux/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── net.rs │ │ │ │ │ ├── process.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── macos/ │ │ │ │ │ └── mod.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── motor/ │ │ │ │ │ ├── ffi.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── process.rs │ │ │ │ ├── net/ │ │ │ │ │ ├── linux_ext/ │ │ │ │ │ │ ├── addr.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── socket.rs │ │ │ │ │ │ ├── tcp.rs │ │ │ │ │ │ └── tests.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── netbsd/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── net.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── nto/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── nuttx/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── openbsd/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── raw/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── tests.rs │ │ │ │ ├── redox/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── rtems/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── solaris/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── net.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── solid/ │ │ │ │ │ ├── ffi.rs │ │ │ │ │ ├── io.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── trusty/ │ │ │ │ │ ├── io/ │ │ │ │ │ │ └── mod.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── uefi/ │ │ │ │ │ ├── env.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── unix/ │ │ │ │ │ ├── ffi/ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ └── os_str.rs │ │ │ │ │ ├── fs/ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── io/ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ └── tests.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── net/ │ │ │ │ │ │ ├── addr.rs │ │ │ │ │ │ ├── ancillary.rs │ │ │ │ │ │ ├── datagram.rs │ │ │ │ │ │ ├── listener.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── stream.rs │ │ │ │ │ │ ├── tests.rs │ │ │ │ │ │ ├── ucred/ │ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ │ └── ucred.rs │ │ │ │ │ ├── process.rs │ │ │ │ │ ├── raw.rs │ │ │ │ │ └── thread.rs │ │ │ │ ├── vita/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── vxworks/ │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── raw.rs │ │ │ │ ├── wasi/ │ │ │ │ │ ├── ffi.rs │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── io/ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ └── tests.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── net/ │ │ │ │ │ └── mod.rs │ │ │ │ ├── wasip2/ │ │ │ │ │ └── mod.rs │ │ │ │ ├── windows/ │ │ │ │ │ ├── ffi.rs │ │ │ │ │ ├── fs.rs │ │ │ │ │ ├── io/ │ │ │ │ │ │ ├── handle.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── raw.rs │ │ │ │ │ │ ├── socket.rs │ │ │ │ │ │ └── tests.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── net/ │ │ │ │ │ │ ├── addr.rs │ │ │ │ │ │ ├── listener.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ └── stream.rs │ │ │ │ │ ├── process.rs │ │ │ │ │ ├── raw.rs │ │ │ │ │ └── thread.rs │ │ │ │ └── xous/ │ │ │ │ ├── ffi/ │ │ │ │ │ ├── definitions/ │ │ │ │ │ │ └── memoryflags.rs │ │ │ │ │ └── definitions.rs │ │ │ │ ├── ffi.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── services/ │ │ │ │ │ ├── dns.rs │ │ │ │ │ ├── log.rs │ │ │ │ │ ├── net.rs │ │ │ │ │ ├── systime.rs │ │ │ │ │ └── ticktimer.rs │ │ │ │ └── services.rs │ │ │ ├── panic.rs │ │ │ ├── panicking.rs │ │ │ ├── pat.rs │ │ │ ├── path.rs │ │ │ ├── prelude/ │ │ │ │ ├── mod.rs │ │ │ │ └── v1.rs │ │ │ ├── process/ │ │ │ │ └── tests.rs │ │ │ ├── process.rs │ │ │ ├── random.rs │ │ │ ├── rt.rs │ │ │ ├── sync/ │ │ │ │ ├── barrier.rs │ │ │ │ ├── lazy_lock.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── mpmc/ │ │ │ │ │ ├── array.rs │ │ │ │ │ ├── context.rs │ │ │ │ │ ├── counter.rs │ │ │ │ │ ├── error.rs │ │ │ │ │ ├── list.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── select.rs │ │ │ │ │ ├── tests.rs │ │ │ │ │ ├── utils.rs │ │ │ │ │ ├── waker.rs │ │ │ │ │ └── zero.rs │ │ │ │ ├── mpsc.rs │ │ │ │ ├── nonpoison/ │ │ │ │ │ ├── condvar.rs │ │ │ │ │ ├── mutex.rs │ │ │ │ │ └── rwlock.rs │ │ │ │ ├── nonpoison.rs │ │ │ │ ├── once.rs │ │ │ │ ├── once_lock.rs │ │ │ │ ├── oneshot.rs │ │ │ │ ├── poison/ │ │ │ │ │ ├── condvar.rs │ │ │ │ │ ├── mutex.rs │ │ │ │ │ └── rwlock.rs │ │ │ │ ├── poison.rs │ │ │ │ └── reentrant_lock.rs │ │ │ ├── sys/ │ │ │ │ ├── alloc/ │ │ │ │ │ ├── hermit.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── motor.rs │ │ │ │ │ ├── sgx.rs │ │ │ │ │ ├── solid.rs │ │ │ │ │ ├── uefi.rs │ │ │ │ │ ├── unix.rs │ │ │ │ │ ├── vexos.rs │ │ │ │ │ ├── wasm.rs │ │ │ │ │ ├── windows/ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ ├── windows.rs │ │ │ │ │ ├── xous.rs │ │ │ │ │ └── zkvm.rs │ │ │ │ ├── args/ │ │ │ │ │ ├── common.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── motor.rs │ │ │ │ │ ├── sgx.rs │ │ │ │ │ ├── uefi.rs │ │ │ │ │ ├── unix.rs │ │ │ │ │ ├── unsupported.rs │ │ │ │ │ ├── wasip1.rs │ │ │ │ │ ├── wasip2.rs │ │ │ │ │ ├── windows/ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ ├── windows.rs │ │ │ │ │ ├── xous.rs │ │ │ │ │ └── zkvm.rs │ │ │ │ ├── backtrace.rs │ │ │ │ ├── cmath.rs │ │ │ │ ├── configure_builtins.rs │ │ │ │ ├── env/ │ │ │ │ │ ├── common.rs │ │ │ │ │ ├── hermit.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── motor.rs │ │ │ │ │ ├── sgx.rs │ │ │ │ │ ├── solid.rs │ │ │ │ │ ├── uefi.rs │ │ │ │ │ ├── unix.rs │ │ │ │ │ ├── unsupported.rs │ │ │ │ │ ├── wasi.rs │ │ │ │ │ ├── windows.rs │ │ │ │ │ ├── xous.rs │ │ │ │ │ └── zkvm.rs │ │ │ │ ├── env_consts.rs │ │ │ │ ├── exit.rs │ │ │ │ ├── fd/ │ │ │ │ │ ├── hermit.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── motor.rs │ │ │ │ │ ├── sgx.rs │ │ │ │ │ ├── unix/ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ └── unix.rs │ │ │ │ ├── fs/ │ │ │ │ │ ├── common.rs │ │ │ │ │ ├── hermit.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── motor.rs │ │ │ │ │ ├── solid.rs │ │ │ │ │ ├── uefi.rs │ │ │ │ │ ├── unix/ │ │ │ │ │ │ ├── dir.rs │ │ │ │ │ │ └── tests.rs │ │ │ │ │ ├── unix.rs │ │ │ │ │ ├── unsupported.rs │ │ │ │ │ ├── vexos.rs │ │ │ │ │ ├── windows/ │ │ │ │ │ │ ├── dir.rs │ │ │ │ │ │ └── remove_dir_all.rs │ │ │ │ │ └── windows.rs │ │ │ │ ├── helpers/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── small_c_string.rs │ │ │ │ │ ├── tests.rs │ │ │ │ │ └── wstr.rs │ │ │ │ ├── io/ │ │ │ │ │ ├── error/ │ │ │ │ │ │ ├── generic.rs │ │ │ │ │ │ ├── hermit.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── motor.rs │ │ │ │ │ │ ├── sgx.rs │ │ │ │ │ │ ├── solid.rs │ │ │ │ │ │ ├── teeos.rs │ │ │ │ │ │ ├── uefi.rs │ │ │ │ │ │ ├── unix.rs │ │ │ │ │ │ ├── wasi.rs │ │ │ │ │ │ ├── windows/ │ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ │ ├── windows.rs │ │ │ │ │ │ └── xous.rs │ │ │ │ │ ├── io_slice/ │ │ │ │ │ │ ├── iovec.rs │ │ │ │ │ │ ├── uefi.rs │ │ │ │ │ │ ├── unsupported.rs │ │ │ │ │ │ └── windows.rs │ │ │ │ │ ├── is_terminal/ │ │ │ │ │ │ ├── hermit.rs │ │ │ │ │ │ ├── isatty.rs │ │ │ │ │ │ ├── motor.rs │ │ │ │ │ │ ├── unsupported.rs │ │ │ │ │ │ └── windows.rs │ │ │ │ │ ├── kernel_copy/ │ │ │ │ │ │ ├── linux/ │ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ │ ├── linux.rs │ │ │ │ │ │ └── mod.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── net/ │ │ │ │ │ ├── connection/ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── motor.rs │ │ │ │ │ │ ├── sgx.rs │ │ │ │ │ │ ├── socket/ │ │ │ │ │ │ │ ├── hermit.rs │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ ├── solid.rs │ │ │ │ │ │ │ ├── tests.rs │ │ │ │ │ │ │ ├── unix.rs │ │ │ │ │ │ │ └── windows.rs │ │ │ │ │ │ ├── uefi/ │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ ├── tcp.rs │ │ │ │ │ │ │ └── tcp4.rs │ │ │ │ │ │ ├── unsupported.rs │ │ │ │ │ │ ├── wasip1.rs │ │ │ │ │ │ └── xous/ │ │ │ │ │ │ ├── dns.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── tcplistener.rs │ │ │ │ │ │ ├── tcpstream.rs │ │ │ │ │ │ └── udp.rs │ │ │ │ │ ├── hostname/ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── unix.rs │ │ │ │ │ │ ├── unsupported.rs │ │ │ │ │ │ └── windows.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── os_str/ │ │ │ │ │ ├── bytes/ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ ├── bytes.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── utf8.rs │ │ │ │ │ └── wtf8.rs │ │ │ │ ├── pal/ │ │ │ │ │ ├── hermit/ │ │ │ │ │ │ ├── futex.rs │ │ │ │ │ │ └── mod.rs │ │ │ │ │ ├── itron/ │ │ │ │ │ │ ├── abi.rs │ │ │ │ │ │ ├── error.rs │ │ │ │ │ │ ├── spin.rs │ │ │ │ │ │ ├── task.rs │ │ │ │ │ │ ├── thread_parking.rs │ │ │ │ │ │ ├── time/ │ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ │ └── time.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── motor/ │ │ │ │ │ │ └── mod.rs │ │ │ │ │ ├── sgx/ │ │ │ │ │ │ ├── abi/ │ │ │ │ │ │ │ ├── entry.S │ │ │ │ │ │ │ ├── mem.rs │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ ├── panic.rs │ │ │ │ │ │ │ ├── reloc.rs │ │ │ │ │ │ │ ├── thread.rs │ │ │ │ │ │ │ ├── tls/ │ │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ │ ├── sync_bitset/ │ │ │ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ │ │ │ └── sync_bitset.rs │ │ │ │ │ │ │ └── usercalls/ │ │ │ │ │ │ │ ├── alloc.rs │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ ├── raw.rs │ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ │ ├── libunwind_integration.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── thread_parking.rs │ │ │ │ │ │ └── waitqueue/ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── spin_mutex/ │ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ │ ├── spin_mutex.rs │ │ │ │ │ │ ├── tests.rs │ │ │ │ │ │ ├── unsafe_list/ │ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ │ └── unsafe_list.rs │ │ │ │ │ ├── solid/ │ │ │ │ │ │ ├── abi/ │ │ │ │ │ │ │ ├── fs.rs │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ └── sockets.rs │ │ │ │ │ │ ├── error.rs │ │ │ │ │ │ └── mod.rs │ │ │ │ │ ├── teeos/ │ │ │ │ │ │ ├── conf.rs │ │ │ │ │ │ └── mod.rs │ │ │ │ │ ├── trusty/ │ │ │ │ │ │ └── mod.rs │ │ │ │ │ ├── uefi/ │ │ │ │ │ │ ├── helpers.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── system_time.rs │ │ │ │ │ │ └── tests.rs │ │ │ │ │ ├── unix/ │ │ │ │ │ │ ├── conf/ │ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ │ ├── conf.rs │ │ │ │ │ │ ├── fuchsia.rs │ │ │ │ │ │ ├── futex.rs │ │ │ │ │ │ ├── linux/ │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ ├── pidfd/ │ │ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ │ │ └── pidfd.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── stack_overflow/ │ │ │ │ │ │ │ └── thread_info.rs │ │ │ │ │ │ ├── stack_overflow.rs │ │ │ │ │ │ ├── sync/ │ │ │ │ │ │ │ ├── condvar.rs │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ └── mutex.rs │ │ │ │ │ │ ├── thread_parking.rs │ │ │ │ │ │ ├── time.rs │ │ │ │ │ │ └── weak/ │ │ │ │ │ │ ├── dlsym.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── syscall.rs │ │ │ │ │ │ ├── tests.rs │ │ │ │ │ │ └── weak_linkage.rs │ │ │ │ │ ├── unsupported/ │ │ │ │ │ │ ├── common.rs │ │ │ │ │ │ └── mod.rs │ │ │ │ │ ├── vexos/ │ │ │ │ │ │ └── mod.rs │ │ │ │ │ ├── wasi/ │ │ │ │ │ │ ├── cabi_realloc.rs │ │ │ │ │ │ ├── conf.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ └── stack_overflow.rs │ │ │ │ │ ├── wasm/ │ │ │ │ │ │ ├── atomics/ │ │ │ │ │ │ │ └── futex.rs │ │ │ │ │ │ └── mod.rs │ │ │ │ │ ├── windows/ │ │ │ │ │ │ ├── api/ │ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ │ ├── api.rs │ │ │ │ │ │ ├── c/ │ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ │ ├── bindings.txt │ │ │ │ │ │ │ └── windows_sys.rs │ │ │ │ │ │ ├── c.rs │ │ │ │ │ │ ├── compat.rs │ │ │ │ │ │ ├── futex.rs │ │ │ │ │ │ ├── handle.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── stack_overflow.rs │ │ │ │ │ │ ├── stack_overflow_uwp.rs │ │ │ │ │ │ ├── time.rs │ │ │ │ │ │ └── winsock.rs │ │ │ │ │ ├── xous/ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── params/ │ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ │ └── params.rs │ │ │ │ │ └── zkvm/ │ │ │ │ │ ├── abi.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── path/ │ │ │ │ │ ├── cygwin.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── sgx.rs │ │ │ │ │ ├── uefi.rs │ │ │ │ │ ├── unix.rs │ │ │ │ │ ├── unsupported_backslash.rs │ │ │ │ │ ├── windows/ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ ├── windows.rs │ │ │ │ │ └── windows_prefix.rs │ │ │ │ ├── paths/ │ │ │ │ │ ├── hermit.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── motor.rs │ │ │ │ │ ├── sgx.rs │ │ │ │ │ ├── uefi.rs │ │ │ │ │ ├── unix.rs │ │ │ │ │ ├── unsupported.rs │ │ │ │ │ ├── wasi.rs │ │ │ │ │ └── windows.rs │ │ │ │ ├── personality/ │ │ │ │ │ ├── dwarf/ │ │ │ │ │ │ ├── eh.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ └── tests.rs │ │ │ │ │ ├── emcc.rs │ │ │ │ │ ├── gcc.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── pipe/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── motor.rs │ │ │ │ │ ├── unix.rs │ │ │ │ │ ├── unsupported.rs │ │ │ │ │ └── windows.rs │ │ │ │ ├── platform_version/ │ │ │ │ │ ├── darwin/ │ │ │ │ │ │ ├── core_foundation.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── public_extern.rs │ │ │ │ │ │ └── tests.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── process/ │ │ │ │ │ ├── env.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── motor.rs │ │ │ │ │ ├── uefi.rs │ │ │ │ │ ├── unix/ │ │ │ │ │ │ ├── common/ │ │ │ │ │ │ │ ├── cstring_array.rs │ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ │ ├── common.rs │ │ │ │ │ │ ├── fuchsia.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── unix/ │ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ │ ├── unix.rs │ │ │ │ │ │ ├── unsupported/ │ │ │ │ │ │ │ ├── wait_status/ │ │ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ │ │ └── wait_status.rs │ │ │ │ │ │ ├── unsupported.rs │ │ │ │ │ │ └── vxworks.rs │ │ │ │ │ ├── unsupported.rs │ │ │ │ │ ├── windows/ │ │ │ │ │ │ ├── child_pipe.rs │ │ │ │ │ │ └── tests.rs │ │ │ │ │ └── windows.rs │ │ │ │ ├── random/ │ │ │ │ │ ├── apple.rs │ │ │ │ │ ├── arc4random.rs │ │ │ │ │ ├── espidf.rs │ │ │ │ │ ├── fuchsia.rs │ │ │ │ │ ├── getentropy.rs │ │ │ │ │ ├── getrandom.rs │ │ │ │ │ ├── hermit.rs │ │ │ │ │ ├── linux.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── motor.rs │ │ │ │ │ ├── redox.rs │ │ │ │ │ ├── sgx.rs │ │ │ │ │ ├── solid.rs │ │ │ │ │ ├── teeos.rs │ │ │ │ │ ├── trusty.rs │ │ │ │ │ ├── uefi.rs │ │ │ │ │ ├── unix_legacy.rs │ │ │ │ │ ├── unsupported.rs │ │ │ │ │ ├── vxworks.rs │ │ │ │ │ ├── wasip1.rs │ │ │ │ │ ├── wasip2.rs │ │ │ │ │ ├── windows.rs │ │ │ │ │ └── zkvm.rs │ │ │ │ ├── stdio/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── motor.rs │ │ │ │ │ ├── sgx.rs │ │ │ │ │ ├── solid.rs │ │ │ │ │ ├── teeos.rs │ │ │ │ │ ├── trusty.rs │ │ │ │ │ ├── uefi.rs │ │ │ │ │ ├── unix.rs │ │ │ │ │ ├── unsupported.rs │ │ │ │ │ ├── vexos.rs │ │ │ │ │ ├── windows/ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ ├── windows.rs │ │ │ │ │ ├── xous.rs │ │ │ │ │ └── zkvm.rs │ │ │ │ ├── sync/ │ │ │ │ │ ├── condvar/ │ │ │ │ │ │ ├── futex.rs │ │ │ │ │ │ ├── itron.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── no_threads.rs │ │ │ │ │ │ ├── pthread.rs │ │ │ │ │ │ ├── sgx.rs │ │ │ │ │ │ ├── windows7.rs │ │ │ │ │ │ └── xous.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── mutex/ │ │ │ │ │ │ ├── fuchsia.rs │ │ │ │ │ │ ├── futex.rs │ │ │ │ │ │ ├── itron.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── no_threads.rs │ │ │ │ │ │ ├── pthread.rs │ │ │ │ │ │ ├── sgx.rs │ │ │ │ │ │ ├── windows7.rs │ │ │ │ │ │ └── xous.rs │ │ │ │ │ ├── once/ │ │ │ │ │ │ ├── futex.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── no_threads.rs │ │ │ │ │ │ └── queue.rs │ │ │ │ │ ├── once_box.rs │ │ │ │ │ ├── rwlock/ │ │ │ │ │ │ ├── futex.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── no_threads.rs │ │ │ │ │ │ ├── queue.rs │ │ │ │ │ │ └── solid.rs │ │ │ │ │ └── thread_parking/ │ │ │ │ │ ├── darwin.rs │ │ │ │ │ ├── futex.rs │ │ │ │ │ ├── id.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── pthread.rs │ │ │ │ │ ├── unsupported.rs │ │ │ │ │ ├── windows7.rs │ │ │ │ │ └── xous.rs │ │ │ │ ├── thread/ │ │ │ │ │ ├── hermit.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── motor.rs │ │ │ │ │ ├── sgx.rs │ │ │ │ │ ├── solid.rs │ │ │ │ │ ├── teeos.rs │ │ │ │ │ ├── uefi.rs │ │ │ │ │ ├── unix.rs │ │ │ │ │ ├── unsupported.rs │ │ │ │ │ ├── vexos.rs │ │ │ │ │ ├── wasm.rs │ │ │ │ │ ├── windows.rs │ │ │ │ │ └── xous.rs │ │ │ │ ├── thread_local/ │ │ │ │ │ ├── destructors/ │ │ │ │ │ │ ├── linux_like.rs │ │ │ │ │ │ └── list.rs │ │ │ │ │ ├── guard/ │ │ │ │ │ │ ├── apple.rs │ │ │ │ │ │ ├── key.rs │ │ │ │ │ │ ├── solid.rs │ │ │ │ │ │ └── windows.rs │ │ │ │ │ ├── key/ │ │ │ │ │ │ ├── racy.rs │ │ │ │ │ │ ├── sgx.rs │ │ │ │ │ │ ├── tests.rs │ │ │ │ │ │ ├── unix.rs │ │ │ │ │ │ ├── windows.rs │ │ │ │ │ │ └── xous.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── native/ │ │ │ │ │ │ ├── eager.rs │ │ │ │ │ │ ├── lazy.rs │ │ │ │ │ │ └── mod.rs │ │ │ │ │ ├── no_threads.rs │ │ │ │ │ └── os.rs │ │ │ │ └── time/ │ │ │ │ ├── hermit.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── sgx.rs │ │ │ │ ├── solid.rs │ │ │ │ ├── uefi.rs │ │ │ │ ├── unix.rs │ │ │ │ ├── unsupported.rs │ │ │ │ ├── vexos.rs │ │ │ │ ├── windows.rs │ │ │ │ └── xous.rs │ │ │ ├── test_helpers.rs │ │ │ ├── thread/ │ │ │ │ ├── builder.rs │ │ │ │ ├── current.rs │ │ │ │ ├── functions.rs │ │ │ │ ├── id.rs │ │ │ │ ├── join_handle.rs │ │ │ │ ├── lifecycle.rs │ │ │ │ ├── local.rs │ │ │ │ ├── main_thread.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── scoped.rs │ │ │ │ ├── spawnhook.rs │ │ │ │ ├── tests.rs │ │ │ │ └── thread.rs │ │ │ └── time.rs │ │ └── tests/ │ │ ├── ambiguous-hash_map.rs │ │ ├── builtin-clone.rs │ │ ├── common/ │ │ │ └── mod.rs │ │ ├── create_dir_all_bare.rs │ │ ├── env.rs │ │ ├── env_modify.rs │ │ ├── eq-multidispatch.rs │ │ ├── error.rs │ │ ├── istr.rs │ │ ├── log-knows-the-names-of-variants-in-std.rs │ │ ├── minmax-stability-issue-23687.rs │ │ ├── num.rs │ │ ├── panic.rs │ │ ├── path.rs │ │ ├── pipe_subprocess.rs │ │ ├── process_spawning.rs │ │ ├── run-time-detect.rs │ │ ├── seq-compare.rs │ │ ├── slice-from-array-issue-113238.rs │ │ ├── switch-stdout.rs │ │ ├── sync/ │ │ │ ├── barrier.rs │ │ │ ├── condvar.rs │ │ │ ├── lazy_lock.rs │ │ │ ├── lib.rs │ │ │ ├── mpmc.rs │ │ │ ├── mpsc.rs │ │ │ ├── mpsc_sync.rs │ │ │ ├── mutex.rs │ │ │ ├── once.rs │ │ │ ├── once_lock.rs │ │ │ ├── oneshot.rs │ │ │ ├── reentrant_lock.rs │ │ │ └── rwlock.rs │ │ ├── thread.rs │ │ ├── thread_local/ │ │ │ ├── dynamic_tests.rs │ │ │ ├── lib.rs │ │ │ └── tests.rs │ │ ├── time.rs │ │ ├── type-name-unsized.rs │ │ ├── volatile-fat-ptr.rs │ │ ├── win_delete_self.rs │ │ ├── windows.rs │ │ └── windows_unix_socket.rs │ ├── std_detect/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── src/ │ │ │ ├── detect/ │ │ │ │ ├── arch/ │ │ │ │ │ ├── aarch64.rs │ │ │ │ │ ├── arm.rs │ │ │ │ │ ├── loongarch.rs │ │ │ │ │ ├── mips.rs │ │ │ │ │ ├── mips64.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── powerpc.rs │ │ │ │ │ ├── powerpc64.rs │ │ │ │ │ ├── riscv.rs │ │ │ │ │ ├── s390x.rs │ │ │ │ │ └── x86.rs │ │ │ │ ├── bit.rs │ │ │ │ ├── cache.rs │ │ │ │ ├── macros.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── os/ │ │ │ │ │ ├── aarch64.rs │ │ │ │ │ ├── darwin/ │ │ │ │ │ │ └── aarch64.rs │ │ │ │ │ ├── freebsd/ │ │ │ │ │ │ ├── aarch64.rs │ │ │ │ │ │ ├── arm.rs │ │ │ │ │ │ ├── auxvec.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ └── powerpc.rs │ │ │ │ │ ├── linux/ │ │ │ │ │ │ ├── aarch64/ │ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ │ ├── aarch64.rs │ │ │ │ │ │ ├── arm.rs │ │ │ │ │ │ ├── auxvec/ │ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ │ ├── auxvec.rs │ │ │ │ │ │ ├── loongarch.rs │ │ │ │ │ │ ├── mips.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── powerpc.rs │ │ │ │ │ │ ├── riscv.rs │ │ │ │ │ │ └── s390x.rs │ │ │ │ │ ├── openbsd/ │ │ │ │ │ │ ├── aarch64.rs │ │ │ │ │ │ ├── auxvec.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ └── powerpc.rs │ │ │ │ │ ├── other.rs │ │ │ │ │ ├── riscv/ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ ├── riscv.rs │ │ │ │ │ ├── windows/ │ │ │ │ │ │ └── aarch64.rs │ │ │ │ │ └── x86.rs │ │ │ │ └── test_data/ │ │ │ │ ├── linux-artificial-aarch64.auxv │ │ │ │ ├── linux-empty-hwcap2-aarch64.auxv │ │ │ │ ├── linux-hwcap2-aarch64.auxv │ │ │ │ ├── linux-no-hwcap2-aarch64.auxv │ │ │ │ ├── linux-rpi3.auxv │ │ │ │ └── macos-virtualbox-linux-x86-4850HQ.auxv │ │ │ └── lib.rs │ │ └── tests/ │ │ ├── cpu-detection.rs │ │ ├── macro_trailing_commas.rs │ │ └── x86-specific.rs │ ├── stdarch/ │ │ ├── .git-blame-ignore-revs │ │ ├── .github/ │ │ │ └── workflows/ │ │ │ ├── main.yml │ │ │ └── rustc-pull.yml │ │ ├── .gitignore │ │ ├── .gitmodules │ │ ├── CONTRIBUTING.md │ │ ├── Cargo.toml │ │ ├── LICENSE-APACHE │ │ ├── LICENSE-MIT │ │ ├── README.md │ │ ├── ci/ │ │ │ ├── docker/ │ │ │ │ ├── aarch64-unknown-linux-gnu/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── aarch64_be-unknown-linux-gnu/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── amdgcn-amd-amdhsa/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── arm-unknown-linux-gnueabihf/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── armv7-unknown-linux-gnueabihf/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── hexagon-unknown-linux-musl/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── i586-unknown-linux-gnu/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── i686-unknown-linux-gnu/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── loongarch64-unknown-linux-gnu/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── mips-unknown-linux-gnu/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── mips64-unknown-linux-gnuabi64/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── mips64el-unknown-linux-gnuabi64/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── mipsel-unknown-linux-musl/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── nvptx64-nvidia-cuda/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── powerpc-unknown-linux-gnu/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── powerpc64-unknown-linux-gnu/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── powerpc64le-unknown-linux-gnu/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── riscv32gc-unknown-linux-gnu/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── riscv64gc-unknown-linux-gnu/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── s390x-unknown-linux-gnu/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── wasm32-wasip1/ │ │ │ │ │ └── Dockerfile │ │ │ │ └── x86_64-unknown-linux-gnu/ │ │ │ │ ├── Dockerfile │ │ │ │ └── cpuid.def │ │ │ ├── dox.sh │ │ │ ├── intrinsic-test-docker.sh │ │ │ ├── intrinsic-test.sh │ │ │ ├── run-docker.sh │ │ │ ├── run.sh │ │ │ └── style.sh │ │ ├── crates/ │ │ │ ├── assert-instr-macro/ │ │ │ │ ├── Cargo.toml │ │ │ │ ├── build.rs │ │ │ │ └── src/ │ │ │ │ └── lib.rs │ │ │ ├── core_arch/ │ │ │ │ ├── Cargo.toml │ │ │ │ ├── LICENSE-APACHE │ │ │ │ ├── LICENSE-MIT │ │ │ │ ├── MISSING.md │ │ │ │ ├── README.md │ │ │ │ ├── missing-x86.md │ │ │ │ ├── rustfmt.toml │ │ │ │ └── src/ │ │ │ │ ├── aarch64/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── mte.rs │ │ │ │ │ ├── neon/ │ │ │ │ │ │ ├── generated.rs │ │ │ │ │ │ └── mod.rs │ │ │ │ │ ├── prefetch.rs │ │ │ │ │ ├── rand.rs │ │ │ │ │ └── test_support.rs │ │ │ │ ├── amdgpu/ │ │ │ │ │ └── mod.rs │ │ │ │ ├── arm/ │ │ │ │ │ ├── dsp.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── neon.rs │ │ │ │ │ ├── sat.rs │ │ │ │ │ └── simd32.rs │ │ │ │ ├── arm_shared/ │ │ │ │ │ ├── barrier/ │ │ │ │ │ │ ├── common.rs │ │ │ │ │ │ ├── cp15.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── not_mclass.rs │ │ │ │ │ │ └── v8.rs │ │ │ │ │ ├── hints.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── neon/ │ │ │ │ │ │ ├── generated.rs │ │ │ │ │ │ ├── load_tests.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── shift_and_insert_tests.rs │ │ │ │ │ │ ├── store_tests.rs │ │ │ │ │ │ └── table_lookup_tests.rs │ │ │ │ │ └── test_support.rs │ │ │ │ ├── core_arch_docs.md │ │ │ │ ├── hexagon/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── v128.rs │ │ │ │ │ └── v64.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── loongarch32/ │ │ │ │ │ └── mod.rs │ │ │ │ ├── loongarch64/ │ │ │ │ │ ├── lasx/ │ │ │ │ │ │ ├── generated.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── tests.rs │ │ │ │ │ │ └── types.rs │ │ │ │ │ ├── lsx/ │ │ │ │ │ │ ├── generated.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── tests.rs │ │ │ │ │ │ └── types.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── loongarch_shared/ │ │ │ │ │ └── mod.rs │ │ │ │ ├── macros.rs │ │ │ │ ├── mips/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── msa.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── nvptx/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── packed.rs │ │ │ │ ├── powerpc/ │ │ │ │ │ ├── altivec.rs │ │ │ │ │ ├── macros.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── vsx.rs │ │ │ │ ├── powerpc64/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── vsx.rs │ │ │ │ ├── riscv32/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── zk.rs │ │ │ │ ├── riscv64/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── zk.rs │ │ │ │ ├── riscv_shared/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── p.rs │ │ │ │ │ ├── zb.rs │ │ │ │ │ └── zk.rs │ │ │ │ ├── s390x/ │ │ │ │ │ ├── macros.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── vector.rs │ │ │ │ ├── simd.rs │ │ │ │ ├── test.rs │ │ │ │ ├── wasm32/ │ │ │ │ │ ├── atomic.rs │ │ │ │ │ ├── memory.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── relaxed_simd.rs │ │ │ │ │ └── simd128.rs │ │ │ │ ├── x86/ │ │ │ │ │ ├── abm.rs │ │ │ │ │ ├── adx.rs │ │ │ │ │ ├── aes.rs │ │ │ │ │ ├── avx.rs │ │ │ │ │ ├── avx2.rs │ │ │ │ │ ├── avx512bf16.rs │ │ │ │ │ ├── avx512bitalg.rs │ │ │ │ │ ├── avx512bw.rs │ │ │ │ │ ├── avx512cd.rs │ │ │ │ │ ├── avx512dq.rs │ │ │ │ │ ├── avx512f.rs │ │ │ │ │ ├── avx512fp16.rs │ │ │ │ │ ├── avx512ifma.rs │ │ │ │ │ ├── avx512vbmi.rs │ │ │ │ │ ├── avx512vbmi2.rs │ │ │ │ │ ├── avx512vnni.rs │ │ │ │ │ ├── avx512vpopcntdq.rs │ │ │ │ │ ├── avxneconvert.rs │ │ │ │ │ ├── bmi1.rs │ │ │ │ │ ├── bmi2.rs │ │ │ │ │ ├── bswap.rs │ │ │ │ │ ├── bt.rs │ │ │ │ │ ├── cpuid.rs │ │ │ │ │ ├── eflags.rs │ │ │ │ │ ├── f16c.rs │ │ │ │ │ ├── fma.rs │ │ │ │ │ ├── fxsr.rs │ │ │ │ │ ├── gfni.rs │ │ │ │ │ ├── kl.rs │ │ │ │ │ ├── macros.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── movrs.rs │ │ │ │ │ ├── pclmulqdq.rs │ │ │ │ │ ├── rdrand.rs │ │ │ │ │ ├── rdtsc.rs │ │ │ │ │ ├── rtm.rs │ │ │ │ │ ├── sha.rs │ │ │ │ │ ├── sse.rs │ │ │ │ │ ├── sse2.rs │ │ │ │ │ ├── sse3.rs │ │ │ │ │ ├── sse41.rs │ │ │ │ │ ├── sse42.rs │ │ │ │ │ ├── sse4a.rs │ │ │ │ │ ├── ssse3.rs │ │ │ │ │ ├── tbm.rs │ │ │ │ │ ├── test.rs │ │ │ │ │ ├── vaes.rs │ │ │ │ │ ├── vpclmulqdq.rs │ │ │ │ │ └── xsave.rs │ │ │ │ └── x86_64/ │ │ │ │ ├── abm.rs │ │ │ │ ├── adx.rs │ │ │ │ ├── amx.rs │ │ │ │ ├── avx.rs │ │ │ │ ├── avx512bw.rs │ │ │ │ ├── avx512f.rs │ │ │ │ ├── avx512fp16.rs │ │ │ │ ├── bmi.rs │ │ │ │ ├── bmi2.rs │ │ │ │ ├── bswap.rs │ │ │ │ ├── bt.rs │ │ │ │ ├── cmpxchg16b.rs │ │ │ │ ├── fxsr.rs │ │ │ │ ├── macros.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── movrs.rs │ │ │ │ ├── rdrand.rs │ │ │ │ ├── sse.rs │ │ │ │ ├── sse2.rs │ │ │ │ ├── sse41.rs │ │ │ │ ├── sse42.rs │ │ │ │ ├── tbm.rs │ │ │ │ └── xsave.rs │ │ │ ├── intrinsic-test/ │ │ │ │ ├── Cargo.toml │ │ │ │ ├── LICENSE-APACHE │ │ │ │ ├── LICENSE-MIT │ │ │ │ ├── README.md │ │ │ │ ├── missing_aarch64.txt │ │ │ │ ├── missing_aarch64_be.txt │ │ │ │ ├── missing_arm.txt │ │ │ │ ├── missing_x86.txt │ │ │ │ └── src/ │ │ │ │ ├── arm/ │ │ │ │ │ ├── argument.rs │ │ │ │ │ ├── compile.rs │ │ │ │ │ ├── config.rs │ │ │ │ │ ├── intrinsic.rs │ │ │ │ │ ├── json_parser.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── types.rs │ │ │ │ ├── common/ │ │ │ │ │ ├── argument.rs │ │ │ │ │ ├── cli.rs │ │ │ │ │ ├── compare.rs │ │ │ │ │ ├── compile_c.rs │ │ │ │ │ ├── constraint.rs │ │ │ │ │ ├── gen_c.rs │ │ │ │ │ ├── gen_rust.rs │ │ │ │ │ ├── indentation.rs │ │ │ │ │ ├── intrinsic.rs │ │ │ │ │ ├── intrinsic_helpers.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── values.rs │ │ │ │ ├── main.rs │ │ │ │ └── x86/ │ │ │ │ ├── compile.rs │ │ │ │ ├── config.rs │ │ │ │ ├── constraint.rs │ │ │ │ ├── intrinsic.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── types.rs │ │ │ │ └── xml_parser.rs │ │ │ ├── simd-test-macro/ │ │ │ │ ├── Cargo.toml │ │ │ │ └── src/ │ │ │ │ └── lib.rs │ │ │ ├── stdarch-gen-arm/ │ │ │ │ ├── Cargo.toml │ │ │ │ ├── README.md │ │ │ │ ├── spec/ │ │ │ │ │ └── neon/ │ │ │ │ │ ├── aarch64.spec.yml │ │ │ │ │ └── arm_shared.spec.yml │ │ │ │ └── src/ │ │ │ │ ├── assert_instr.rs │ │ │ │ ├── big_endian.rs │ │ │ │ ├── context.rs │ │ │ │ ├── expression.rs │ │ │ │ ├── fn_suffix.rs │ │ │ │ ├── input.rs │ │ │ │ ├── intrinsic.rs │ │ │ │ ├── load_store_tests.rs │ │ │ │ ├── main.rs │ │ │ │ ├── matching.rs │ │ │ │ ├── predicate_forms.rs │ │ │ │ ├── typekinds.rs │ │ │ │ ├── wildcards.rs │ │ │ │ └── wildstring.rs │ │ │ ├── stdarch-gen-hexagon/ │ │ │ │ ├── Cargo.toml │ │ │ │ ├── hvx_hexagon_protos.h │ │ │ │ └── src/ │ │ │ │ └── main.rs │ │ │ ├── stdarch-gen-loongarch/ │ │ │ │ ├── Cargo.toml │ │ │ │ ├── README.md │ │ │ │ ├── lasx.spec │ │ │ │ ├── lasxintrin.h │ │ │ │ ├── lsx.spec │ │ │ │ ├── lsxintrin.h │ │ │ │ └── src/ │ │ │ │ └── main.rs │ │ │ ├── stdarch-test/ │ │ │ │ ├── Cargo.toml │ │ │ │ └── src/ │ │ │ │ ├── disassembly.rs │ │ │ │ ├── lib.rs │ │ │ │ └── wasm.rs │ │ │ └── stdarch-verify/ │ │ │ ├── .gitattributes │ │ │ ├── Cargo.toml │ │ │ ├── build.rs │ │ │ ├── mips-msa.h │ │ │ ├── src/ │ │ │ │ └── lib.rs │ │ │ └── tests/ │ │ │ ├── arm.rs │ │ │ ├── mips.rs │ │ │ └── x86-intel.rs │ │ ├── examples/ │ │ │ ├── Cargo.toml │ │ │ ├── connect5.rs │ │ │ ├── gaussian.rs │ │ │ ├── hex.rs │ │ │ └── wasm.rs │ │ ├── intrinsics_data/ │ │ │ ├── arm_intrinsics.json │ │ │ └── x86-intel.xml │ │ ├── josh-sync.toml │ │ ├── rust-version │ │ ├── rustfmt.toml │ │ ├── triagebot.toml │ │ └── vendor.yml │ ├── sysroot/ │ │ ├── Cargo.toml │ │ └── src/ │ │ └── lib.rs │ ├── test/ │ │ ├── Cargo.toml │ │ ├── build.rs │ │ └── src/ │ │ ├── bench.rs │ │ ├── cli.rs │ │ ├── console.rs │ │ ├── event.rs │ │ ├── formatters/ │ │ │ ├── json.rs │ │ │ ├── junit.rs │ │ │ ├── mod.rs │ │ │ ├── pretty.rs │ │ │ └── terse.rs │ │ ├── helpers/ │ │ │ ├── concurrency.rs │ │ │ ├── metrics.rs │ │ │ ├── mod.rs │ │ │ └── shuffle.rs │ │ ├── lib.rs │ │ ├── options.rs │ │ ├── stats/ │ │ │ └── tests.rs │ │ ├── stats.rs │ │ ├── term/ │ │ │ ├── terminfo/ │ │ │ │ ├── mod.rs │ │ │ │ ├── parm/ │ │ │ │ │ └── tests.rs │ │ │ │ ├── parm.rs │ │ │ │ ├── parser/ │ │ │ │ │ ├── compiled/ │ │ │ │ │ │ └── tests.rs │ │ │ │ │ └── compiled.rs │ │ │ │ ├── searcher/ │ │ │ │ │ └── tests.rs │ │ │ │ └── searcher.rs │ │ │ └── win.rs │ │ ├── term.rs │ │ ├── test_result.rs │ │ ├── tests.rs │ │ ├── time.rs │ │ └── types.rs │ ├── unwind/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── lib.rs │ │ ├── libunwind.rs │ │ ├── unwinding.rs │ │ └── wasm.rs │ └── windows_link/ │ ├── Cargo.toml │ └── src/ │ └── lib.rs ├── license-metadata.json ├── package.json ├── rust-bors.toml ├── rustfmt.toml ├── src/ │ ├── README.md │ ├── bootstrap/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── bootstrap.py │ │ ├── bootstrap_test.py │ │ ├── build.rs │ │ ├── configure.py │ │ ├── defaults/ │ │ │ ├── README.md │ │ │ ├── bootstrap.compiler.toml │ │ │ ├── bootstrap.dist.toml │ │ │ ├── bootstrap.library.toml │ │ │ └── bootstrap.tools.toml │ │ ├── download-ci-gcc-stamp │ │ ├── download-ci-llvm-stamp │ │ ├── mk/ │ │ │ └── Makefile.in │ │ └── src/ │ │ ├── bin/ │ │ │ ├── main.rs │ │ │ ├── rustc.rs │ │ │ └── rustdoc.rs │ │ ├── core/ │ │ │ ├── android.rs │ │ │ ├── build_steps/ │ │ │ │ ├── check.rs │ │ │ │ ├── clean.rs │ │ │ │ ├── clippy.rs │ │ │ │ ├── compile.rs │ │ │ │ ├── dist.rs │ │ │ │ ├── doc.rs │ │ │ │ ├── format.rs │ │ │ │ ├── gcc.rs │ │ │ │ ├── install.rs │ │ │ │ ├── llvm.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── perf.rs │ │ │ │ ├── run.rs │ │ │ │ ├── setup/ │ │ │ │ │ ├── hashes.json │ │ │ │ │ └── tests.rs │ │ │ │ ├── setup.rs │ │ │ │ ├── synthetic_targets.rs │ │ │ │ ├── test/ │ │ │ │ │ └── compiletest.rs │ │ │ │ ├── test.rs │ │ │ │ ├── tool.rs │ │ │ │ ├── toolstate.rs │ │ │ │ └── vendor.rs │ │ │ ├── builder/ │ │ │ │ ├── cargo.rs │ │ │ │ ├── cli_paths/ │ │ │ │ │ ├── snapshots/ │ │ │ │ │ │ ├── x_bench.snap │ │ │ │ │ │ ├── x_build.snap │ │ │ │ │ │ ├── x_build_compiler.snap │ │ │ │ │ │ ├── x_build_compiletest.snap │ │ │ │ │ │ ├── x_build_library.snap │ │ │ │ │ │ ├── x_build_llvm.snap │ │ │ │ │ │ ├── x_build_rustc.snap │ │ │ │ │ │ ├── x_build_rustc_llvm.snap │ │ │ │ │ │ ├── x_build_rustdoc.snap │ │ │ │ │ │ ├── x_build_sysroot.snap │ │ │ │ │ │ ├── x_check.snap │ │ │ │ │ │ ├── x_check_bootstrap.snap │ │ │ │ │ │ ├── x_check_compiler.snap │ │ │ │ │ │ ├── x_check_compiletest.snap │ │ │ │ │ │ ├── x_check_compiletest_include_default_paths.snap │ │ │ │ │ │ ├── x_check_library.snap │ │ │ │ │ │ ├── x_check_rustc.snap │ │ │ │ │ │ ├── x_check_rustdoc.snap │ │ │ │ │ │ ├── x_clean.snap │ │ │ │ │ │ ├── x_clippy.snap │ │ │ │ │ │ ├── x_dist.snap │ │ │ │ │ │ ├── x_doc.snap │ │ │ │ │ │ ├── x_fix.snap │ │ │ │ │ │ ├── x_fmt.snap │ │ │ │ │ │ ├── x_install.snap │ │ │ │ │ │ ├── x_miri.snap │ │ │ │ │ │ ├── x_run.snap │ │ │ │ │ │ ├── x_setup.snap │ │ │ │ │ │ ├── x_test.snap │ │ │ │ │ │ ├── x_test_coverage.snap │ │ │ │ │ │ ├── x_test_coverage_map.snap │ │ │ │ │ │ ├── x_test_coverage_run.snap │ │ │ │ │ │ ├── x_test_coverage_skip_coverage_run.snap │ │ │ │ │ │ ├── x_test_debuginfo.snap │ │ │ │ │ │ ├── x_test_library.snap │ │ │ │ │ │ ├── x_test_librustdoc.snap │ │ │ │ │ │ ├── x_test_librustdoc_rustdoc.snap │ │ │ │ │ │ ├── x_test_librustdoc_rustdoc_html.snap │ │ │ │ │ │ ├── x_test_rustdoc.snap │ │ │ │ │ │ ├── x_test_rustdoc_html.snap │ │ │ │ │ │ ├── x_test_skip_coverage.snap │ │ │ │ │ │ ├── x_test_skip_tests.snap │ │ │ │ │ │ ├── x_test_skip_tests_etc.snap │ │ │ │ │ │ ├── x_test_tests.snap │ │ │ │ │ │ ├── x_test_tests_skip_coverage.snap │ │ │ │ │ │ ├── x_test_tests_ui.snap │ │ │ │ │ │ ├── x_test_tidy.snap │ │ │ │ │ │ ├── x_test_tidyselftest.snap │ │ │ │ │ │ ├── x_test_ui.snap │ │ │ │ │ │ └── x_vendor.snap │ │ │ │ │ └── tests.rs │ │ │ │ ├── cli_paths.rs │ │ │ │ ├── mod.rs │ │ │ │ └── tests.rs │ │ │ ├── config/ │ │ │ │ ├── config.rs │ │ │ │ ├── flags.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── target_selection.rs │ │ │ │ ├── tests.rs │ │ │ │ └── toml/ │ │ │ │ ├── build.rs │ │ │ │ ├── change_id.rs │ │ │ │ ├── dist.rs │ │ │ │ ├── gcc.rs │ │ │ │ ├── install.rs │ │ │ │ ├── llvm.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── rust.rs │ │ │ │ └── target.rs │ │ │ ├── debuggers/ │ │ │ │ ├── cdb.rs │ │ │ │ ├── gdb.rs │ │ │ │ ├── lldb.rs │ │ │ │ └── mod.rs │ │ │ ├── download.rs │ │ │ ├── metadata.rs │ │ │ ├── mod.rs │ │ │ └── sanity.rs │ │ ├── lib.rs │ │ └── utils/ │ │ ├── build_stamp/ │ │ │ └── tests.rs │ │ ├── build_stamp.rs │ │ ├── cache/ │ │ │ └── tests.rs │ │ ├── cache.rs │ │ ├── cc_detect/ │ │ │ └── tests.rs │ │ ├── cc_detect.rs │ │ ├── change_tracker/ │ │ │ └── tests.rs │ │ ├── change_tracker.rs │ │ ├── channel.rs │ │ ├── exec.rs │ │ ├── helpers/ │ │ │ └── tests.rs │ │ ├── helpers.rs │ │ ├── job.rs │ │ ├── metrics.rs │ │ ├── mod.rs │ │ ├── proc_macro_deps.rs │ │ ├── render_tests.rs │ │ ├── shared_helpers.rs │ │ ├── step_graph.rs │ │ ├── tarball.rs │ │ ├── tests/ │ │ │ ├── git.rs │ │ │ ├── mod.rs │ │ │ └── shared_helpers_tests.rs │ │ └── tracing.rs │ ├── build_helper/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ └── src/ │ │ ├── ci.rs │ │ ├── drop_bomb/ │ │ │ ├── mod.rs │ │ │ └── tests.rs │ │ ├── fs/ │ │ │ ├── mod.rs │ │ │ └── tests.rs │ │ ├── git.rs │ │ ├── lib.rs │ │ ├── metrics.rs │ │ ├── npm.rs │ │ ├── stage0_parser.rs │ │ ├── targets.rs │ │ └── util.rs │ ├── ci/ │ │ ├── channel │ │ ├── citool/ │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ ├── src/ │ │ │ │ ├── analysis.rs │ │ │ │ ├── cpu_usage.rs │ │ │ │
Showing preview only (9,736K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (109324 symbols across 4575 files)
FILE: compiler/rustc/build.rs
function main (line 5) | fn main() {
function set_windows_exe_options (line 17) | fn set_windows_exe_options() {
function set_windows_resource (line 22) | fn set_windows_resource() {
function set_windows_manifest (line 29) | fn set_windows_manifest() {
FILE: compiler/rustc/src/main.rs
function main (line 43) | fn main() -> ExitCode {
FILE: compiler/rustc_abi/src/callconv.rs
type HomogeneousAggregate (line 10) | pub enum HomogeneousAggregate {
method unit (line 28) | pub fn unit(self) -> Option<Reg> {
method merge (line 38) | fn merge(self, other: HomogeneousAggregate) -> Result<HomogeneousAggre...
type Heterogeneous (line 23) | pub struct Heterogeneous;
function homogeneous_aggregate (line 64) | pub fn homogeneous_aggregate<C>(&self, cx: &C) -> Result<HomogeneousAggr...
FILE: compiler/rustc_abi/src/callconv/reg.rs
type RegKind (line 8) | pub enum RegKind {
type Reg (line 16) | pub struct Reg {
method align (line 42) | pub fn align<C: HasDataLayout>(&self, cx: &C) -> Align {
FILE: compiler/rustc_abi/src/canon_abi.rs
type CanonAbi (line 22) | pub enum CanonAbi {
method is_rustic_abi (line 56) | pub fn is_rustic_abi(self) -> bool {
method fmt (line 70) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
type InterruptKind (line 115) | pub enum InterruptKind {
type X86Call (line 130) | pub enum X86Call {
type ArmCall (line 145) | pub enum ArmCall {
FILE: compiler/rustc_abi/src/extern_abi.rs
type ExternAbi (line 20) | pub enum ExternAbi {
method hash_stable (line 222) | fn hash_stable(&self, _: &mut C, hasher: &mut StableHasher) {
method is_rustic_abi (line 252) | pub fn is_rustic_abi(self) -> bool {
method supports_c_variadic (line 261) | pub fn supports_c_variadic(self) -> CVariadicStatus {
method supports_guaranteed_tail_call (line 287) | pub fn supports_guaranteed_tail_call(self) -> bool {
constant FALLBACK (line 338) | pub const FALLBACK: ExternAbi = ExternAbi::C { unwind: false };
method name (line 340) | pub fn name(self) -> &'static str {
method fmt (line 346) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
method cmp (line 192) | fn cmp(&self, rhs: &Self) -> Ordering {
method partial_cmp (line 198) | fn partial_cmp(&self, rhs: &Self) -> Option<Ordering> {
method eq (line 204) | fn eq(&self, rhs: &Self) -> bool {
method hash (line 212) | fn hash<H: Hasher>(&self, state: &mut H) {
constant CAN_USE_UNSTABLE_SORT (line 229) | const CAN_USE_UNSTABLE_SORT: bool = true;
constant THIS_IMPLEMENTATION_HAS_BEEN_TRIPLE_CHECKED (line 232) | const THIS_IMPLEMENTATION_HAS_BEEN_TRIPLE_CHECKED: () = ();
type CVariadicStatus (line 239) | pub enum CVariadicStatus {
function all_names (line 332) | pub fn all_names() -> Vec<&'static str> {
FILE: compiler/rustc_abi/src/extern_abi/tests.rs
function lookup_Rust (line 8) | fn lookup_Rust() {
function lookup_cdecl (line 14) | fn lookup_cdecl() {
function lookup_baz (line 20) | fn lookup_baz() {
function guarantee_lexicographic_ordering (line 26) | fn guarantee_lexicographic_ordering() {
FILE: compiler/rustc_abi/src/layout.rs
constant ONE (line 59) | pub const ONE: FieldIdx = FieldIdx::from_u32(1);
function absent (line 88) | fn absent<'a, FieldIdx, VariantIdx, F>(fields: &IndexSlice<FieldIdx, F>)...
type NicheBias (line 102) | enum NicheBias {
type LayoutCalculatorError (line 108) | pub enum LayoutCalculatorError<F> {
function without_payload (line 137) | pub fn without_payload(&self) -> LayoutCalculatorError<()> {
function fallback_fmt (line 153) | pub fn fallback_fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
type LayoutCalculatorResult (line 167) | type LayoutCalculatorResult<FieldIdx, VariantIdx, F> =
type LayoutCalculator (line 171) | pub struct LayoutCalculator<Cx> {
function new (line 176) | pub fn new(cx: Cx) -> Self {
function array_like (line 180) | pub fn array_like<FieldIdx: Idx, VariantIdx: Idx, F>(
function scalable_vector_type (line 203) | pub fn scalable_vector_type<FieldIdx, VariantIdx, F>(
function simd_type (line 216) | pub fn simd_type<FieldIdx, VariantIdx, F>(
function coroutine (line 235) | pub fn coroutine<
function univariant (line 259) | pub fn univariant<
function layout_of_struct_or_enum (line 334) | pub fn layout_of_struct_or_enum<
function layout_of_union (line 390) | pub fn layout_of_union<
function layout_of_struct (line 516) | fn layout_of_struct<
function layout_of_enum (line 616) | fn layout_of_enum<
function univariant_biased (line 1154) | fn univariant_biased<
function format_field_niches (line 1495) | fn format_field_niches<
type SimdVectorKind (line 1527) | enum SimdVectorKind {
function vector_type_layout (line 1536) | fn vector_type_layout<FieldIdx, VariantIdx, F>(
FILE: compiler/rustc_abi/src/layout/coroutine.rs
type SavedLocalEligibility (line 35) | enum SavedLocalEligibility<VariantIdx, FieldIdx> {
function coroutine_saved_local_eligibility (line 42) | fn coroutine_saved_local_eligibility<VariantIdx: Idx, FieldIdx: Idx, Loc...
function layout (line 139) | pub(super) fn layout<
FILE: compiler/rustc_abi/src/layout/simple.rs
function unit (line 13) | pub fn unit<C: HasDataLayout>(cx: &C, sized: bool) -> Self {
function never_type (line 32) | pub fn never_type<C: HasDataLayout>(cx: &C) -> Self {
function scalar (line 49) | pub fn scalar<C: HasDataLayout>(cx: &C, scalar: Scalar) -> Self {
function scalar_pair (line 91) | pub fn scalar_pair<C: HasDataLayout>(cx: &C, a: Scalar, b: Scalar) -> Se...
function uninhabited_variant (line 128) | pub fn uninhabited_variant<C: HasDataLayout>(cx: &C, index: VariantIdx, ...
FILE: compiler/rustc_abi/src/layout/ty.rs
type Layout (line 17) | pub struct Layout<'a>(pub Interned<'a, LayoutData<FieldIdx, VariantIdx>>);
function fmt (line 20) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
type Target (line 27) | type Target = &'a LayoutData<FieldIdx, VariantIdx>;
method deref (line 28) | fn deref(&self) -> &&'a LayoutData<FieldIdx, VariantIdx> {
function fields (line 34) | pub fn fields(self) -> &'a FieldsShape<FieldIdx> {
function variants (line 38) | pub fn variants(self) -> &'a Variants<FieldIdx, VariantIdx> {
function backend_repr (line 42) | pub fn backend_repr(self) -> BackendRepr {
function largest_niche (line 46) | pub fn largest_niche(self) -> Option<Niche> {
function align (line 50) | pub fn align(self) -> AbiAlign {
function size (line 54) | pub fn size(self) -> Size {
function max_repr_align (line 58) | pub fn max_repr_align(self) -> Option<Align> {
function unadjusted_abi_align (line 62) | pub fn unadjusted_abi_align(self) -> Align {
type TyAndLayout (line 75) | pub struct TyAndLayout<'a, Ty> {
function fmt (line 81) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
type Target (line 91) | type Target = &'a LayoutData<FieldIdx, VariantIdx>;
method deref (line 92) | fn deref(&self) -> &&'a LayoutData<FieldIdx, VariantIdx> {
function as_ref (line 98) | fn as_ref(&self) -> &LayoutData<FieldIdx, VariantIdx> {
type TyAbiInterface (line 105) | pub trait TyAbiInterface<'a, C>: Sized + std::fmt::Debug + std::fmt::Dis...
method ty_and_layout_for_variant (line 106) | fn ty_and_layout_for_variant(
method ty_and_layout_field (line 111) | fn ty_and_layout_field(this: TyAndLayout<'a, Self>, cx: &C, i: usize) ...
method ty_and_layout_pointee_info_at (line 112) | fn ty_and_layout_pointee_info_at(
method is_adt (line 117) | fn is_adt(this: TyAndLayout<'a, Self>) -> bool;
method is_never (line 118) | fn is_never(this: TyAndLayout<'a, Self>) -> bool;
method is_tuple (line 119) | fn is_tuple(this: TyAndLayout<'a, Self>) -> bool;
method is_unit (line 120) | fn is_unit(this: TyAndLayout<'a, Self>) -> bool;
method is_transparent (line 121) | fn is_transparent(this: TyAndLayout<'a, Self>) -> bool;
method is_scalable_vector (line 122) | fn is_scalable_vector(this: TyAndLayout<'a, Self>) -> bool;
method is_pass_indirectly_in_non_rustic_abis_flag_set (line 124) | fn is_pass_indirectly_in_non_rustic_abis_flag_set(this: TyAndLayout<'a...
function for_variant (line 128) | pub fn for_variant<C>(self, cx: &C, variant_index: VariantIdx) -> Self
function field (line 135) | pub fn field<C>(self, cx: &C, i: usize) -> Self
function pointee_info_at (line 142) | pub fn pointee_info_at<C>(self, cx: &C, offset: Size) -> Option<PointeeI...
function is_single_fp_element (line 149) | pub fn is_single_fp_element<C>(self, cx: &C) -> bool
function is_single_vector_element (line 169) | pub fn is_single_vector_element<C>(self, cx: &C, expected_size: Size) ->...
function is_adt (line 187) | pub fn is_adt<C>(self) -> bool
function is_never (line 194) | pub fn is_never<C>(self) -> bool
function is_tuple (line 201) | pub fn is_tuple<C>(self) -> bool
function is_unit (line 208) | pub fn is_unit<C>(self) -> bool
function is_transparent (line 215) | pub fn is_transparent<C>(self) -> bool
function is_scalable_vector (line 222) | pub fn is_scalable_vector<C>(self) -> bool
function pass_indirectly_in_non_rustic_abis (line 240) | pub fn pass_indirectly_in_non_rustic_abis<C>(self, cx: &C) -> bool
function peel_transparent_wrappers (line 252) | pub fn peel_transparent_wrappers<C>(mut self, cx: &C) -> Self
function non_1zst_field (line 267) | pub fn non_1zst_field<C>(&self, cx: &C) -> Option<(FieldIdx, Self)>
FILE: compiler/rustc_abi/src/lib.rs
type HashStableContext (line 74) | pub trait HashStableContext {}
type ReprFlags (line 81) | pub struct ReprFlags(u8);
method fmt (line 111) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
type IntegerType (line 121) | pub enum IntegerType {
method is_signed (line 131) | pub fn is_signed(&self) -> bool {
type ScalableElt (line 144) | pub enum ScalableElt {
type ReprOptions (line 158) | pub struct ReprOptions {
method simd (line 177) | pub fn simd(&self) -> bool {
method scalable (line 182) | pub fn scalable(&self) -> bool {
method c (line 187) | pub fn c(&self) -> bool {
method packed (line 192) | pub fn packed(&self) -> bool {
method transparent (line 197) | pub fn transparent(&self) -> bool {
method linear (line 202) | pub fn linear(&self) -> bool {
method discr_type (line 213) | pub fn discr_type(&self) -> IntegerType {
method inhibit_enum_layout_opt (line 220) | pub fn inhibit_enum_layout_opt(&self) -> bool {
method inhibit_newtype_abi_optimization (line 224) | pub fn inhibit_newtype_abi_optimization(&self) -> bool {
method inhibit_struct_field_reordering (line 230) | pub fn inhibit_struct_field_reordering(&self) -> bool {
method can_randomize_type_layout (line 236) | pub fn can_randomize_type_layout(&self) -> bool {
method inhibits_union_abi_opt (line 241) | pub fn inhibits_union_abi_opt(&self) -> bool {
constant MAX_SIMD_LANES (line 251) | pub const MAX_SIMD_LANES: u64 = 1 << 0xF;
type PointerSpec (line 255) | pub struct PointerSpec {
type TargetDataLayout (line 270) | pub struct TargetDataLayout {
method parse_from_llvm_datalayout_string (line 358) | pub fn parse_from_llvm_datalayout_string<'a>(
method obj_size_bound (line 574) | pub fn obj_size_bound(&self) -> u64 {
method obj_size_bound_in (line 593) | pub fn obj_size_bound_in(&self, address_space: AddressSpace) -> u64 {
method ptr_sized_integer (line 603) | pub fn ptr_sized_integer(&self) -> Integer {
method ptr_sized_integer_in (line 614) | pub fn ptr_sized_integer_in(&self, address_space: AddressSpace) -> Int...
method cabi_vector_align (line 626) | fn cabi_vector_align(&self, vec_size: Size) -> Option<Align> {
method llvmlike_vector_align (line 635) | pub fn llvmlike_vector_align(&self, vec_size: Size) -> Align {
method pointer_size (line 642) | pub fn pointer_size(&self) -> Size {
method pointer_size_in (line 648) | pub fn pointer_size_in(&self, c: AddressSpace) -> Size {
method pointer_offset (line 662) | pub fn pointer_offset(&self) -> Size {
method pointer_offset_in (line 668) | pub fn pointer_offset_in(&self, c: AddressSpace) -> Size {
method pointer_align (line 682) | pub fn pointer_align(&self) -> AbiAlign {
method pointer_align_in (line 688) | pub fn pointer_align_in(&self, c: AddressSpace) -> AbiAlign {
method default (line 308) | fn default() -> TargetDataLayout {
type TargetDataLayoutErrors (line 341) | pub enum TargetDataLayoutErrors<'a> {
type HasDataLayout (line 699) | pub trait HasDataLayout {
method data_layout (line 700) | fn data_layout(&self) -> &TargetDataLayout;
method data_layout (line 705) | fn data_layout(&self) -> &TargetDataLayout {
method data_layout (line 713) | fn data_layout(&self) -> &TargetDataLayout {
type Endian (line 720) | pub enum Endian {
method as_str (line 726) | pub fn as_str(&self) -> &'static str {
method fmt (line 735) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
type Err (line 741) | type Err = String;
method from_str (line 743) | fn from_str(s: &str) -> Result<Self, Self::Err> {
type Size (line 758) | pub struct Size {
method fmt (line 773) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
constant ZERO (line 779) | pub const ZERO: Size = Size { raw: 0 };
method from_bits (line 783) | pub fn from_bits(bits: impl TryInto<u64>) -> Size {
method from_bytes (line 789) | pub fn from_bytes(bytes: impl TryInto<u64>) -> Size {
method bytes (line 795) | pub fn bytes(self) -> u64 {
method bytes_usize (line 800) | pub fn bytes_usize(self) -> usize {
method bits (line 805) | pub fn bits(self) -> u64 {
method bits_usize (line 815) | pub fn bits_usize(self) -> usize {
method align_to (line 820) | pub fn align_to(self, align: Align) -> Size {
method is_aligned (line 826) | pub fn is_aligned(self, align: Align) -> bool {
method checked_add (line 832) | pub fn checked_add<C: HasDataLayout>(self, offset: Size, cx: &C) -> Op...
method checked_mul (line 841) | pub fn checked_mul<C: HasDataLayout>(self, count: u64, cx: &C) -> Opti...
method sign_extend (line 851) | pub fn sign_extend(self, value: u128) -> i128 {
method truncate (line 866) | pub fn truncate(self, value: u128) -> u128 {
method signed_int_min (line 878) | pub fn signed_int_min(&self) -> i128 {
method signed_int_max (line 883) | pub fn signed_int_max(&self) -> i128 {
method unsigned_int_max (line 888) | pub fn unsigned_int_max(&self) -> u128 {
type Output (line 925) | type Output = Size;
method mul (line 927) | fn mul(self, count: u64) -> Size {
constant CAN_USE_UNSTABLE_SORT (line 764) | const CAN_USE_UNSTABLE_SORT: bool = true;
constant THIS_IMPLEMENTATION_HAS_BEEN_TRIPLE_CHECKED (line 768) | const THIS_IMPLEMENTATION_HAS_BEEN_TRIPLE_CHECKED: () = ();
type Output (line 897) | type Output = Size;
method add (line 899) | fn add(self, other: Size) -> Size {
type Output (line 907) | type Output = Size;
method sub (line 909) | fn sub(self, other: Size) -> Size {
type Output (line 917) | type Output = Size;
function mul (line 919) | fn mul(self, size: Size) -> Size {
method add_assign (line 937) | fn add_assign(&mut self, other: Size) {
method steps_between (line 945) | fn steps_between(start: &Self, end: &Self) -> (usize, Option<usize>) {
method forward_checked (line 950) | fn forward_checked(start: Self, count: usize) -> Option<Self> {
method forward (line 955) | fn forward(start: Self, count: usize) -> Self {
method forward_unchecked (line 960) | unsafe fn forward_unchecked(start: Self, count: usize) -> Self {
method backward_checked (line 965) | fn backward_checked(start: Self, count: usize) -> Option<Self> {
method backward (line 970) | fn backward(start: Self, count: usize) -> Self {
method backward_unchecked (line 975) | unsafe fn backward_unchecked(start: Self, count: usize) -> Self {
type Align (line 986) | pub struct Align {
method fmt (line 992) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
constant ONE (line 1019) | pub const ONE: Align = Align { pow2: 0 };
constant EIGHT (line 1020) | pub const EIGHT: Align = Align { pow2: 3 };
constant MAX (line 1022) | pub const MAX: Align = Align { pow2: 29 };
method max_for_target (line 1026) | pub fn max_for_target(tdl: &TargetDataLayout) -> Align {
method from_bits (line 1038) | pub fn from_bits(bits: u64) -> Result<Align, AlignFromBytesError> {
method from_bytes (line 1043) | pub const fn from_bytes(align: u64) -> Result<Align, AlignFromBytesErr...
method bytes (line 1073) | pub const fn bytes(self) -> u64 {
method bytes_usize (line 1078) | pub fn bytes_usize(self) -> usize {
method bits (line 1083) | pub const fn bits(self) -> u64 {
method bits_usize (line 1088) | pub fn bits_usize(self) -> usize {
method max_aligned_factor (line 1097) | pub fn max_aligned_factor(size: Size) -> Align {
method restrict_for_offset (line 1103) | pub fn restrict_for_offset(self, size: Size) -> Align {
type AlignFromBytesError (line 998) | pub enum AlignFromBytesError {
method fmt (line 1004) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
method fmt (line 1010) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
type AbiAlign (line 1119) | pub struct AbiAlign {
method new (line 1125) | pub fn new(align: Align) -> AbiAlign {
method min (line 1130) | pub fn min(self, other: AbiAlign) -> AbiAlign {
method max (line 1135) | pub fn max(self, other: AbiAlign) -> AbiAlign {
type Target (line 1141) | type Target = Align;
method deref (line 1143) | fn deref(&self) -> &Self::Target {
type Integer (line 1154) | pub enum Integer {
method int_ty_str (line 1163) | pub fn int_ty_str(self) -> &'static str {
method uint_ty_str (line 1174) | pub fn uint_ty_str(self) -> &'static str {
method size (line 1186) | pub fn size(self) -> Size {
method from_attr (line 1198) | pub fn from_attr<C: HasDataLayout>(cx: &C, ity: IntegerType) -> Integer {
method align (line 1207) | pub fn align<C: HasDataLayout>(self, cx: &C) -> AbiAlign {
method signed_max (line 1222) | pub fn signed_max(self) -> i128 {
method signed_min (line 1235) | pub fn signed_min(self) -> i128 {
method fit_signed (line 1248) | pub fn fit_signed(x: i128) -> Integer {
method fit_unsigned (line 1261) | pub fn fit_unsigned(x: u128) -> Integer {
method for_align (line 1273) | pub fn for_align<C: HasDataLayout>(cx: &C, wanted: Align) -> Option<In...
method approximate_align (line 1283) | pub fn approximate_align<C: HasDataLayout>(cx: &C, wanted: Align) -> I...
method from_size (line 1299) | pub fn from_size(size: Size) -> Result<Self, String> {
type Float (line 1314) | pub enum Float {
method size (line 1322) | pub fn size(self) -> Size {
method align (line 1333) | pub fn align<C: HasDataLayout>(self, cx: &C) -> AbiAlign {
type Primitive (line 1349) | pub enum Primitive {
method size (line 1363) | pub fn size<C: HasDataLayout>(self, cx: &C) -> Size {
method align (line 1374) | pub fn align<C: HasDataLayout>(self, cx: &C) -> AbiAlign {
type WrappingRange (line 1397) | pub struct WrappingRange {
method full (line 1403) | pub fn full(size: Size) -> Self {
method contains (line 1409) | pub fn contains(&self, v: u128) -> bool {
method contains_range (line 1420) | pub fn contains_range(&self, other: Self, size: Size) -> bool {
method with_start (line 1441) | fn with_start(mut self, start: u128) -> Self {
method with_end (line 1448) | fn with_end(mut self, end: u128) -> Self {
method is_full_for (line 1459) | fn is_full_for(&self, size: Size) -> bool {
method no_unsigned_wraparound (line 1471) | pub fn no_unsigned_wraparound(&self, size: Size) -> Result<bool, Range...
method no_signed_wraparound (line 1484) | pub fn no_signed_wraparound(&self, size: Size) -> Result<bool, RangeFu...
method fmt (line 1496) | fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
type Scalar (line 1509) | pub enum Scalar {
method is_bool (line 1530) | pub fn is_bool(&self) -> bool {
method primitive (line 1543) | pub fn primitive(&self) -> Primitive {
method align (line 1549) | pub fn align(self, cx: &impl HasDataLayout) -> AbiAlign {
method size (line 1553) | pub fn size(self, cx: &impl HasDataLayout) -> Size {
method to_union (line 1558) | pub fn to_union(&self) -> Self {
method valid_range (line 1563) | pub fn valid_range(&self, cx: &impl HasDataLayout) -> WrappingRange {
method valid_range_mut (line 1573) | pub fn valid_range_mut(&mut self) -> &mut WrappingRange {
method is_always_valid (line 1583) | pub fn is_always_valid<C: HasDataLayout>(&self, cx: &C) -> bool {
method is_uninit_valid (line 1592) | pub fn is_uninit_valid(&self) -> bool {
method is_signed (line 1601) | pub fn is_signed(&self) -> bool {
type FieldsShape (line 1613) | pub enum FieldsShape<FieldIdx: Idx> {
function count (line 1650) | pub fn count(&self) -> usize {
function offset (line 1660) | pub fn offset(&self, i: usize) -> Size {
function index_by_increasing_offset (line 1680) | pub fn index_by_increasing_offset(&self) -> impl ExactSizeIterator<Item ...
type AddressSpace (line 1698) | pub struct AddressSpace(pub u32);
constant ZERO (line 1702) | pub const ZERO: Self = AddressSpace(0);
type BackendRepr (line 1717) | pub enum BackendRepr {
method is_unsized (line 1738) | pub fn is_unsized(&self) -> bool {
method is_sized (line 1754) | pub fn is_sized(&self) -> bool {
method is_signed (line 1761) | pub fn is_signed(&self) -> bool {
method is_scalar (line 1770) | pub fn is_scalar(&self) -> bool {
method is_bool (line 1776) | pub fn is_bool(&self) -> bool {
method scalar_align (line 1783) | pub fn scalar_align<C: HasDataLayout>(&self, cx: &C) -> Option<Align> {
method scalar_size (line 1797) | pub fn scalar_size<C: HasDataLayout>(&self, cx: &C) -> Option<Size> {
method to_union (line 1819) | pub fn to_union(&self) -> Self {
method eq_up_to_validity (line 1835) | pub fn eq_up_to_validity(&self, other: &Self) -> bool {
type Variants (line 1856) | pub enum Variants<FieldIdx: Idx, VariantIdx: Idx> {
type TagEncoding (line 1883) | pub enum TagEncoding<VariantIdx: Idx> {
type Niche (line 1924) | pub struct Niche {
method from_scalar (line 1931) | pub fn from_scalar<C: HasDataLayout>(cx: &C, offset: Size, scalar: Sca...
method available (line 1937) | pub fn available<C: HasDataLayout>(&self, cx: &C) -> u128 {
method reserve (line 1948) | pub fn reserve<C: HasDataLayout>(&self, cx: &C, count: u128) -> Option...
type LayoutData (line 2011) | pub struct LayoutData<FieldIdx: Idx, VariantIdx: Idx> {
function is_aggregate (line 2070) | pub fn is_aggregate(&self) -> bool {
function is_uninhabited (line 2080) | pub fn is_uninhabited(&self) -> bool {
function fmt (line 2090) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
type PointerKind (line 2122) | pub enum PointerKind {
type PointeeInfo (line 2138) | pub struct PointeeInfo {
function is_unsized (line 2155) | pub fn is_unsized(&self) -> bool {
function is_sized (line 2160) | pub fn is_sized(&self) -> bool {
function is_1zst (line 2165) | pub fn is_1zst(&self) -> bool {
function is_runtime_sized (line 2170) | pub fn is_runtime_sized(&self) -> bool {
function scalable_vector_element_count (line 2175) | pub fn scalable_vector_element_count(&self) -> Option<u64> {
function is_zst (line 2186) | pub fn is_zst(&self) -> bool {
function eq_abi (line 2201) | pub fn eq_abi(&self, other: &Self) -> bool {
type StructKind (line 2216) | pub enum StructKind {
type AbiFromStrErr (line 2226) | pub enum AbiFromStrErr {
FILE: compiler/rustc_abi/src/tests.rs
function align_constants (line 4) | fn align_constants() {
function wrapping_range_contains_range (line 10) | fn wrapping_range_contains_range() {
FILE: compiler/rustc_arena/src/lib.rs
function outline (line 35) | fn outline<F: FnOnce() -> R, R>(f: F) -> R {
type ArenaChunk (line 39) | struct ArenaChunk<T = u8> {
method drop (line 47) | fn drop(&mut self) {
function new (line 54) | unsafe fn new(capacity: usize) -> ArenaChunk<T> {
function destroy (line 67) | unsafe fn destroy(&mut self, len: usize) {
function start (line 82) | fn start(&mut self) -> *mut T {
function end (line 88) | fn end(&mut self) -> *mut T {
constant PAGE (line 105) | const PAGE: usize = 4096;
constant HUGE_PAGE (line 106) | const HUGE_PAGE: usize = 2 * 1024 * 1024;
type TypedArena (line 109) | pub struct TypedArena<T> {
method default (line 127) | fn default() -> TypedArena<T> {
function alloc (line 142) | pub fn alloc(&self, object: T) -> &mut T {
function can_allocate (line 166) | fn can_allocate(&self, additional: usize) -> bool {
function alloc_raw_slice (line 189) | unsafe fn alloc_raw_slice(&self, len: usize) -> *mut T {
function alloc_from_iter (line 211) | pub fn alloc_from_iter<I: IntoIterator<Item = T>>(&self, iter: I) -> &mu...
function try_alloc_from_iter (line 220) | pub fn try_alloc_from_iter<E>(
function grow (line 262) | fn grow(&self, additional: usize) {
function clear_last_chunk (line 299) | fn clear_last_chunk(&self, last_chunk: &mut ArenaChunk<T>) {
method drop (line 326) | fn drop(&mut self) {
function align_down (line 346) | fn align_down(val: usize, align: usize) -> usize {
function align_up (line 352) | fn align_up(val: usize, align: usize) -> usize {
constant DROPLESS_ALIGNMENT (line 359) | const DROPLESS_ALIGNMENT: usize = align_of::<usize>();
type DroplessArena (line 363) | pub struct DroplessArena {
method grow (line 399) | fn grow(&self, layout: Layout) {
method alloc_raw (line 439) | pub fn alloc_raw(&self, layout: Layout) -> *mut u8 {
method alloc (line 475) | pub fn alloc<T>(&self, object: T) -> &mut T {
method alloc_slice (line 496) | pub fn alloc_slice<T>(&self, slice: &[T]) -> &mut [T]
method alloc_str (line 519) | pub fn alloc_str(&self, string: &str) -> &str {
method write_from_iter (line 532) | unsafe fn write_from_iter<T, I: Iterator<Item = T>>(
method alloc_from_iter (line 559) | pub fn alloc_from_iter<T, I: IntoIterator<Item = T>>(&self, iter: I) -...
method try_alloc_from_iter (line 589) | pub fn try_alloc_from_iter<T, E>(
method default (line 385) | fn default() -> DroplessArena {
type Arena (line 630) | pub struct Arena<'tcx> {
type ArenaAllocatable (line 635) | pub trait ArenaAllocatable<'tcx, C = rustc_arena::IsNotCopy>: Sized {
method allocate_on (line 637) | fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self;
method allocate_from_iter (line 639) | fn allocate_from_iter(
method allocate_on (line 649) | fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self {
method allocate_from_iter (line 654) | fn allocate_from_iter(
function allocate_on (line 664) | fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self {
function allocate_from_iter (line 674) | fn allocate_from_iter(
function alloc (line 690) | pub fn alloc<T: ArenaAllocatable<'tcx, C>, C>(&'tcx self, value: T) -> &...
function alloc_slice (line 697) | pub fn alloc_slice<T: ::std::marker::Copy>(&self, value: &[T]) -> &mut [...
function alloc_str (line 705) | pub fn alloc_str(&self, string: &str) -> &str {
function alloc_from_iter (line 713) | pub fn alloc_from_iter<T: ArenaAllocatable<'tcx, C>, C>(
type IsNotCopy (line 725) | pub struct IsNotCopy;
FILE: compiler/rustc_arena/src/tests.rs
type Point (line 10) | struct Point {
function clear (line 18) | fn clear(&mut self) {
function test_unused (line 35) | fn test_unused() {
function test_arena_alloc_nested (line 41) | fn test_arena_alloc_nested() {
function test_copy (line 78) | fn test_copy() {
function bench_copy (line 90) | fn bench_copy(b: &mut Bencher) {
function bench_copy_nonarena (line 96) | fn bench_copy_nonarena(b: &mut Bencher) {
type Noncopy (line 103) | struct Noncopy {
function test_noncopy (line 109) | fn test_noncopy() {
function test_typed_arena_zero_sized (line 121) | fn test_typed_arena_zero_sized() {
function test_typed_arena_clear (line 133) | fn test_typed_arena_clear() {
function bench_typed_arena_clear (line 148) | fn bench_typed_arena_clear(b: &mut Bencher) {
function bench_typed_arena_clear_100 (line 157) | fn bench_typed_arena_clear_100(b: &mut Bencher) {
type DropCounter (line 169) | struct DropCounter<'a> {
method drop (line 174) | fn drop(&mut self) {
function test_typed_arena_drop_count (line 180) | fn test_typed_arena_drop_count() {
function test_typed_arena_drop_on_clear (line 193) | fn test_typed_arena_drop_on_clear() {
type SmallDroppable (line 210) | struct SmallDroppable;
method drop (line 213) | fn drop(&mut self) {
function test_typed_arena_drop_small_count (line 219) | fn test_typed_arena_drop_small_count() {
function bench_noncopy (line 233) | fn bench_noncopy(b: &mut Bencher) {
function bench_noncopy_nonarena (line 241) | fn bench_noncopy_nonarena(b: &mut Bencher) {
FILE: compiler/rustc_ast/src/ast.rs
type Label (line 56) | pub struct Label {
method fmt (line 61) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
type Lifetime (line 69) | pub struct Lifetime {
method fmt (line 75) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
method fmt (line 81) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
type Path (line 93) | pub struct Path {
method eq (line 104) | fn eq(&self, name: &Symbol) -> bool {
method eq (line 118) | fn eq(&self, names: &&[Symbol]) -> bool {
method hash_stable (line 124) | fn hash_stable(&self, hcx: &mut Hcx, hasher: &mut StableHasher) {
method from_ident (line 135) | pub fn from_ident(ident: Ident) -> Path {
method is_global (line 139) | pub fn is_global(&self) -> bool {
method is_potential_trivial_const_arg (line 149) | pub fn is_potential_trivial_const_arg(&self) -> bool {
function join_path_syms (line 165) | pub fn join_path_syms(path: impl IntoIterator<Item = impl Borrow<Symbol>...
function join_path_idents (line 189) | pub fn join_path_idents(path: impl IntoIterator<Item = impl Borrow<Ident...
type PathSegment (line 211) | pub struct PathSegment {
method eq (line 229) | fn eq(&self, name: &Symbol) -> bool {
method from_ident (line 235) | pub fn from_ident(ident: Ident) -> Self {
method path_root (line 239) | pub fn path_root(span: Span) -> Self {
method span (line 243) | pub fn span(&self) -> Span {
type GenericArgs (line 255) | pub enum GenericArgs {
method is_angle_bracketed (line 265) | pub fn is_angle_bracketed(&self) -> bool {
method span (line 269) | pub fn span(&self) -> Span {
type GenericArg (line 280) | pub enum GenericArg {
method span (line 290) | pub fn span(&self) -> Span {
type AngleBracketedArgs (line 301) | pub struct AngleBracketedArgs {
type AngleBracketedArg (line 310) | pub enum AngleBracketedArg {
method span (line 318) | pub fn span(&self) -> Span {
function from (line 327) | fn from(val: AngleBracketedArgs) -> Self {
function from (line 333) | fn from(val: ParenthesizedArgs) -> Self {
type ParenthesizedArgs (line 340) | pub struct ParenthesizedArgs {
method as_angle_bracketed_args (line 361) | pub fn as_angle_bracketed_args(&self) -> AngleBracketedArgs {
type TraitBoundModifiers (line 376) | pub struct TraitBoundModifiers {
constant NONE (line 383) | pub const NONE: Self = Self {
type GenericBound (line 391) | pub enum GenericBound {
method span (line 399) | pub fn span(&self) -> Span {
type GenericBounds (line 408) | pub type GenericBounds = Vec<GenericBound>;
type ParamKindOrd (line 414) | pub enum ParamKindOrd {
method fmt (line 420) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
type GenericParamKind (line 429) | pub enum GenericParamKind {
type GenericParam (line 445) | pub struct GenericParam {
method span (line 457) | pub fn span(&self) -> Span {
type Generics (line 471) | pub struct Generics {
type WhereClause (line 479) | pub struct WhereClause {
method is_empty (line 490) | pub fn is_empty(&self) -> bool {
type WherePredicate (line 497) | pub struct WherePredicate {
type WherePredicateKind (line 507) | pub enum WherePredicateKind {
type WhereBoundPredicate (line 520) | pub struct WhereBoundPredicate {
type WhereRegionPredicate (line 534) | pub struct WhereRegionPredicate {
type WhereEqPredicate (line 545) | pub struct WhereEqPredicate {
type Crate (line 551) | pub struct Crate {
type MetaItem (line 568) | pub struct MetaItem {
type MetaItemKind (line 577) | pub enum MetaItemKind {
type MetaItemInner (line 598) | pub enum MetaItemInner {
type Block (line 612) | pub struct Block {
type Pat (line 626) | pub struct Pat {
method to_ty (line 636) | pub fn to_ty(&self) -> Option<Box<Ty>> {
method walk (line 672) | pub fn walk<'ast>(&'ast self, it: &mut impl FnMut(&'ast Pat) -> bool) {
method peel_refs (line 712) | pub fn peel_refs(&self) -> &Pat {
method is_rest (line 721) | pub fn is_rest(&self) -> bool {
method could_be_never_pattern (line 727) | pub fn could_be_never_pattern(&self) -> bool {
method contains_never_pattern (line 745) | pub fn contains_never_pattern(&self) -> bool {
method descr (line 757) | pub fn descr(&self) -> Option<String> {
method from (line 771) | fn from(value: Box<Pat>) -> Self {
type PatField (line 782) | pub struct PatField {
type ByRef (line 796) | pub enum ByRef {
method cap_ref_mutability (line 803) | pub fn cap_ref_mutability(mut self, mutbl: Mutability) -> Self {
type BindingMode (line 818) | pub struct BindingMode(pub ByRef, pub Mutability);
constant NONE (line 821) | pub const NONE: Self = Self(ByRef::No, Mutability::Not);
constant REF (line 822) | pub const REF: Self = Self(ByRef::Yes(Pinnedness::Not, Mutability::Not...
constant REF_PIN (line 823) | pub const REF_PIN: Self =
constant MUT (line 825) | pub const MUT: Self = Self(ByRef::No, Mutability::Mut);
constant REF_MUT (line 826) | pub const REF_MUT: Self = Self(ByRef::Yes(Pinnedness::Not, Mutability:...
constant REF_PIN_MUT (line 827) | pub const REF_PIN_MUT: Self =
constant MUT_REF (line 829) | pub const MUT_REF: Self = Self(ByRef::Yes(Pinnedness::Not, Mutability:...
constant MUT_REF_PIN (line 830) | pub const MUT_REF_PIN: Self =
constant MUT_REF_MUT (line 832) | pub const MUT_REF_MUT: Self =
constant MUT_REF_PIN_MUT (line 834) | pub const MUT_REF_PIN_MUT: Self =
method prefix_str (line 837) | pub fn prefix_str(self) -> &'static str {
type RangeEnd (line 854) | pub enum RangeEnd {
type RangeSyntax (line 862) | pub enum RangeSyntax {
type PatKind (line 873) | pub enum PatKind {
type PatFieldsRest (line 955) | pub enum PatFieldsRest {
type BorrowKind (line 968) | pub enum BorrowKind {
type BinOpKind (line 984) | pub enum BinOpKind {
method as_str (line 1024) | pub fn as_str(&self) -> &'static str {
method is_lazy (line 1048) | pub fn is_lazy(&self) -> bool {
method precedence (line 1052) | pub fn precedence(&self) -> ExprPrecedence {
method fixity (line 1067) | pub fn fixity(&self) -> Fixity {
method is_comparison (line 1077) | pub fn is_comparison(self) -> bool {
method is_by_value (line 1086) | pub fn is_by_value(self) -> bool {
method from (line 1097) | fn from(op: AssignOpKind) -> BinOpKind {
type BinOp (line 1091) | pub type BinOp = Spanned<BinOpKind>;
type AssignOpKind (line 1114) | pub enum AssignOpKind {
method as_str (line 1138) | pub fn as_str(&self) -> &'static str {
method is_by_value (line 1155) | pub fn is_by_value(self) -> bool {
type AssignOp (line 1160) | pub type AssignOp = Spanned<AssignOpKind>;
type UnOp (line 1166) | pub enum UnOp {
method as_str (line 1176) | pub fn as_str(&self) -> &'static str {
method is_by_value (line 1185) | pub fn is_by_value(self) -> bool {
type Stmt (line 1194) | pub struct Stmt {
method has_trailing_semicolon (line 1201) | pub fn has_trailing_semicolon(&self) -> bool {
method add_trailing_semicolon (line 1216) | pub fn add_trailing_semicolon(mut self) -> Self {
method is_item (line 1229) | pub fn is_item(&self) -> bool {
method is_expr (line 1233) | pub fn is_expr(&self) -> bool {
type StmtKind (line 1240) | pub enum StmtKind {
method descr (line 1256) | pub fn descr(&self) -> &'static str {
type MacCallStmt (line 1269) | pub struct MacCallStmt {
type MacStmtStyle (line 1277) | pub enum MacStmtStyle {
type Local (line 1291) | pub struct Local {
type LocalKind (line 1304) | pub enum LocalKind {
method init (line 1317) | pub fn init(&self) -> Option<&Expr> {
method init_else_opt (line 1324) | pub fn init_else_opt(&self) -> Option<(&Expr, Option<&Block>)> {
type Arm (line 1344) | pub struct Arm {
type ExprField (line 1359) | pub struct ExprField {
type BlockCheckMode (line 1370) | pub enum BlockCheckMode {
type UnsafeSource (line 1376) | pub enum UnsafeSource {
type MgcaDisambiguation (line 1385) | pub enum MgcaDisambiguation {
type AnonConst (line 1396) | pub struct AnonConst {
type Expr (line 1404) | pub struct Expr {
method is_potential_trivial_const_arg (line 1424) | pub fn is_potential_trivial_const_arg(&self) -> bool {
method maybe_unwrap_block (line 1436) | pub fn maybe_unwrap_block(&self) -> &Expr {
method optionally_braced_mac_call (line 1452) | pub fn optionally_braced_mac_call(
method to_bound (line 1474) | pub fn to_bound(&self) -> Option<GenericBound> {
method peel_parens (line 1487) | pub fn peel_parens(&self) -> &Expr {
method peel_parens_and_refs (line 1495) | pub fn peel_parens_and_refs(&self) -> &Expr {
method to_ty (line 1505) | pub fn to_ty(&self) -> Option<Box<Ty>> {
method precedence (line 1549) | pub fn precedence(&self) -> ExprPrecedence {
method is_approximately_pattern (line 1639) | pub fn is_approximately_pattern(&self) -> bool {
method dummy (line 1656) | pub fn dummy() -> Expr {
method from (line 1668) | fn from(value: Box<Expr>) -> Self {
type Closure (line 1674) | pub struct Closure {
type RangeLimits (line 1690) | pub enum RangeLimits {
method as_str (line 1698) | pub fn as_str(&self) -> &'static str {
type MethodCall (line 1708) | pub struct MethodCall {
type StructRest (line 1721) | pub enum StructRest {
type StructExpr (line 1737) | pub struct StructExpr {
type ExprKind (line 1746) | pub enum ExprKind {
type ForLoopKind (line 1933) | pub enum ForLoopKind {
type GenBlockKind (line 1940) | pub enum GenBlockKind {
method fmt (line 1947) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
method modifier (line 1953) | pub fn modifier(&self) -> &'static str {
type UnsafeBinderCastKind (line 1965) | pub enum UnsafeBinderCastKind {
type QSelf (line 1987) | pub struct QSelf {
type CaptureBy (line 1999) | pub enum CaptureBy {
type ClosureBinder (line 2020) | pub enum ClosureBinder {
type MacCall (line 2046) | pub struct MacCall {
method span (line 2052) | pub fn span(&self) -> Span {
type AttrArgs (line 2059) | pub enum AttrArgs {
method span (line 2073) | pub fn span(&self) -> Option<Span> {
method inner_tokens (line 2083) | pub fn inner_tokens(&self) -> TokenStream {
type DelimArgs (line 2094) | pub struct DelimArgs {
method need_semicolon (line 2103) | pub fn need_semicolon(&self) -> bool {
type MacroDef (line 2110) | pub struct MacroDef {
type EiiDecl (line 2124) | pub struct EiiDecl {
type StrStyle (line 2132) | pub enum StrStyle {
type MatchKind (line 2143) | pub enum MatchKind {
type YieldKind (line 2152) | pub enum YieldKind {
method expr (line 2163) | pub const fn expr(&self) -> Option<&Box<Expr>> {
method expr_mut (line 2171) | pub const fn expr_mut(&mut self) -> Option<&mut Box<Expr>> {
method same_kind (line 2179) | pub const fn same_kind(&self, other: &Self) -> bool {
type MetaItemLit (line 2190) | pub struct MetaItemLit {
type StrLit (line 2203) | pub struct StrLit {
method as_token_lit (line 2215) | pub fn as_token_lit(&self) -> token::Lit {
type LitIntType (line 2227) | pub enum LitIntType {
type LitFloatType (line 2239) | pub enum LitFloatType {
type LitKind (line 2253) | pub enum LitKind {
method str (line 2281) | pub fn str(&self) -> Option<Symbol> {
method is_str (line 2289) | pub fn is_str(&self) -> bool {
method is_bytestr (line 2294) | pub fn is_bytestr(&self) -> bool {
method is_numeric (line 2299) | pub fn is_numeric(&self) -> bool {
method is_unsuffixed (line 2305) | pub fn is_unsuffixed(&self) -> bool {
method is_suffixed (line 2310) | pub fn is_suffixed(&self) -> bool {
type MutTy (line 2332) | pub struct MutTy {
type FnSig (line 2340) | pub struct FnSig {
method header_span (line 2348) | pub fn header_span(&self) -> Span {
method safety_span (line 2373) | pub fn safety_span(&self) -> Span {
method extern_span (line 2389) | pub fn extern_span(&self) -> Span {
type AssocItemConstraint (line 2405) | pub struct AssocItemConstraint {
type Term (line 2414) | pub enum Term {
method from (line 2420) | fn from(v: Box<Ty>) -> Self {
method from (line 2426) | fn from(v: AnonConst) -> Self {
type AssocItemConstraintKind (line 2433) | pub enum AssocItemConstraintKind {
type Ty (line 2449) | pub struct Ty {
method from (line 2468) | fn from(value: Box<Ty>) -> Self {
method peel_refs (line 2474) | pub fn peel_refs(&self) -> &Self {
method is_maybe_parenthesised_infer (line 2483) | pub fn is_maybe_parenthesised_infer(&self) -> bool {
method clone (line 2457) | fn clone(&self) -> Self {
type FnPtrTy (line 2493) | pub struct FnPtrTy {
type UnsafeBinderTy (line 2504) | pub struct UnsafeBinderTy {
type TyKind (line 2513) | pub enum TyKind {
method is_implicit_self (line 2575) | pub fn is_implicit_self(&self) -> bool {
method is_unit (line 2579) | pub fn is_unit(&self) -> bool {
method is_simple_path (line 2583) | pub fn is_simple_path(&self) -> Option<Symbol> {
method maybe_scalar (line 2601) | pub fn maybe_scalar(&self) -> bool {
type TyPat (line 2630) | pub struct TyPat {
type TyPatKind (line 2641) | pub enum TyPatKind {
type TraitObjectSyntax (line 2657) | pub enum TraitObjectSyntax {
constant BITS (line 2667) | const BITS: u32 = 2;
method into_usize (line 2669) | fn into_usize(self) -> usize {
method from_usize (line 2673) | unsafe fn from_usize(tag: usize) -> Self {
type PreciseCapturingArg (line 2683) | pub enum PreciseCapturingArg {
type InlineAsmRegOrRegClass (line 2694) | pub enum InlineAsmRegOrRegClass {
type InlineAsmOptions (line 2700) | pub struct InlineAsmOptions(u16);
constant COUNT (line 2716) | pub const COUNT: usize = Self::all().bits().count_ones() as usize;
constant GLOBAL_OPTIONS (line 2718) | pub const GLOBAL_OPTIONS: Self = Self::ATT_SYNTAX.union(Self::RAW);
constant NAKED_OPTIONS (line 2719) | pub const NAKED_OPTIONS: Self = Self::ATT_SYNTAX.union(Self::RAW);
method human_readable_names (line 2721) | pub fn human_readable_names(&self) -> Vec<&'static str> {
method fmt (line 2757) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
type InlineAsmTemplatePiece (line 2763) | pub enum InlineAsmTemplatePiece {
method fmt (line 2769) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
method to_string (line 2793) | pub fn to_string(s: &[Self]) -> String {
type InlineAsmSym (line 2811) | pub struct InlineAsmSym {
type InlineAsmOperand (line 2821) | pub enum InlineAsmOperand {
method reg (line 2854) | pub fn reg(&self) -> Option<&InlineAsmRegOrRegClass> {
type AsmMacro (line 2866) | pub enum AsmMacro {
method macro_name (line 2876) | pub const fn macro_name(self) -> &'static str {
method is_supported_option (line 2884) | pub const fn is_supported_option(self, option: InlineAsmOptions) -> bo...
method diverges (line 2892) | pub const fn diverges(self, options: InlineAsmOptions) -> bool {
type InlineAsm (line 2905) | pub struct InlineAsm {
type Param (line 2920) | pub struct Param {
method to_self (line 2962) | pub fn to_self(&self) -> Option<ExplicitSelf> {
method is_self (line 2986) | pub fn is_self(&self) -> bool {
method from_self (line 2995) | pub fn from_self(attrs: AttrVec, eself: ExplicitSelf, eself_ident: Ide...
type SelfKind (line 2933) | pub enum SelfKind {
method to_ref_suggestion (line 2945) | pub fn to_ref_suggestion(&self) -> String {
type ExplicitSelf (line 2958) | pub type ExplicitSelf = Spanned<SelfKind>;
type FnDecl (line 3048) | pub struct FnDecl {
method has_self (line 3054) | pub fn has_self(&self) -> bool {
method c_variadic (line 3057) | pub fn c_variadic(&self) -> bool {
type IsAuto (line 3064) | pub enum IsAuto {
type Safety (line 3072) | pub enum Safety {
type CoroutineKind (line 3088) | pub enum CoroutineKind {
method span (line 3098) | pub fn span(self) -> Span {
method as_str (line 3106) | pub fn as_str(self) -> &'static str {
method closure_id (line 3114) | pub fn closure_id(self) -> NodeId {
method return_id (line 3124) | pub fn return_id(self) -> (NodeId, Span) {
type Const (line 3137) | pub enum Const {
type Defaultness (line 3145) | pub enum Defaultness {
type ImplPolarity (line 3159) | pub enum ImplPolarity {
method fmt (line 3167) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
type BoundPolarity (line 3178) | pub enum BoundPolarity {
method as_str (line 3188) | pub fn as_str(self) -> &'static str {
type BoundConstness (line 3200) | pub enum BoundConstness {
method as_str (line 3210) | pub fn as_str(self) -> &'static str {
type BoundAsyncness (line 3222) | pub enum BoundAsyncness {
method as_str (line 3230) | pub fn as_str(self) -> &'static str {
type FnRetTy (line 3239) | pub enum FnRetTy {
method span (line 3250) | pub fn span(&self) -> Span {
type Inline (line 3259) | pub enum Inline {
type ModKind (line 3266) | pub enum ModKind {
type ModSpans (line 3277) | pub struct ModSpans {
type ForeignMod (line 3288) | pub struct ForeignMod {
type EnumDef (line 3299) | pub struct EnumDef {
type Variant (line 3305) | pub struct Variant {
type UseTreeKind (line 3327) | pub enum UseTreeKind {
type UseTree (line 3346) | pub struct UseTree {
method ident (line 3353) | pub fn ident(&self) -> Ident {
type AttrStyle (line 3369) | pub enum AttrStyle {
type AttrVec (line 3375) | pub type AttrVec = ThinVec<Attribute>;
type Attribute (line 3379) | pub struct Attribute {
type AttrKind (line 3389) | pub enum AttrKind {
type NormalAttr (line 3400) | pub struct NormalAttr {
method from_ident (line 3407) | pub fn from_ident(ident: Ident) -> Self {
type AttrItem (line 3421) | pub struct AttrItem {
method is_valid_for_outer_style (line 3472) | pub fn is_valid_for_outer_style(&self) -> bool {
type AttrItemKind (line 3432) | pub enum AttrItemKind {
method unparsed (line 3438) | pub fn unparsed(self) -> Option<AttrArgs> {
method unparsed_ref (line 3445) | pub fn unparsed_ref(&self) -> Option<&AttrArgs> {
method span (line 3452) | pub fn span(&self) -> Option<Span> {
type EarlyParsedAttribute (line 3466) | pub enum EarlyParsedAttribute {
type TraitRef (line 3489) | pub struct TraitRef {
type Parens (line 3496) | pub enum Parens {
type PolyTraitRef (line 3502) | pub struct PolyTraitRef {
method new (line 3520) | pub fn new(
type Visibility (line 3538) | pub struct Visibility {
type VisibilityKind (line 3545) | pub enum VisibilityKind {
method is_pub (line 3552) | pub fn is_pub(&self) -> bool {
type ImplRestriction (line 3558) | pub struct ImplRestriction {
type RestrictionKind (line 3565) | pub enum RestrictionKind {
type FieldDef (line 3574) | pub struct FieldDef {
type Recovered (line 3589) | pub enum Recovered {
type VariantData (line 3596) | pub enum VariantData {
method fields (line 3613) | pub fn fields(&self) -> &[FieldDef] {
method ctor_node_id (line 3621) | pub fn ctor_node_id(&self) -> Option<NodeId> {
type Item (line 3631) | pub struct Item<K = ItemKind> {
method span_with_attributes (line 3651) | pub fn span_with_attributes(&self) -> Span {
method opt_generics (line 3655) | pub fn opt_generics(&self) -> Option<&Generics> {
type Extern (line 3684) | pub enum Extern {
method from_abi (line 3702) | pub fn from_abi(abi: Option<StrLit>, span: Span) -> Extern {
method span (line 3709) | pub fn span(self) -> Option<Span> {
type FnHeader (line 3722) | pub struct FnHeader {
method has_qualifiers (line 3735) | pub fn has_qualifiers(&self) -> bool {
method default (line 3745) | fn default() -> FnHeader {
type TraitAlias (line 3756) | pub struct TraitAlias {
type Trait (line 3765) | pub struct Trait {
type TyAlias (line 3779) | pub struct TyAlias {
type Impl (line 3804) | pub struct Impl {
type TraitImplHeader (line 3813) | pub struct TraitImplHeader {
type FnContract (line 3821) | pub struct FnContract {
type Fn (line 3830) | pub struct Fn {
type EiiImpl (line 3846) | pub struct EiiImpl {
type Delegation (line 3869) | pub struct Delegation {
type DelegationMac (line 3882) | pub struct DelegationMac {
type StaticItem (line 3891) | pub struct StaticItem {
type ConstItem (line 3901) | pub struct ConstItem {
type ConstItemRhsKind (line 3911) | pub enum ConstItemRhsKind {
method new_body (line 3917) | pub fn new_body(rhs: Box<Expr>) -> Self {
method span (line 3921) | pub fn span(&self) -> Option<Span> {
method expr (line 3925) | pub fn expr(&self) -> Option<&Expr> {
method has_expr (line 3933) | pub fn has_expr(&self) -> bool {
method is_type_const (line 3941) | pub fn is_type_const(&self) -> bool {
type ConstBlockItem (line 3947) | pub struct ConstBlockItem {
constant IDENT (line 3954) | pub const IDENT: Ident = Ident { name: kw::Underscore, span: DUMMY_SP };
type Guard (line 3958) | pub struct Guard {
method span (line 3964) | pub fn span(&self) -> Span {
type ItemKind (line 3971) | pub enum ItemKind {
method ident (line 4053) | pub fn ident(&self) -> Option<Ident> {
method article (line 4081) | pub fn article(&self) -> &'static str {
method descr (line 4091) | pub fn descr(&self) -> &'static str {
method generics (line 4116) | pub fn generics(&self) -> Option<&Generics> {
method from (line 4196) | fn from(assoc_item_kind: AssocItemKind) -> ItemKind {
method from (line 4250) | fn from(foreign_item_kind: ForeignItemKind) -> ItemKind {
type AssocItem (line 4145) | pub type AssocItem = Item<AssocItemKind>;
type AssocItemKind (line 4155) | pub enum AssocItemKind {
method ident (line 4172) | pub fn ident(&self) -> Option<Ident> {
method defaultness (line 4183) | pub fn defaultness(&self) -> Defaultness {
type Error (line 4209) | type Error = ItemKind;
method try_from (line 4211) | fn try_from(item_kind: ItemKind) -> Result<AssocItemKind, ItemKind> {
type ForeignItemKind (line 4226) | pub enum ForeignItemKind {
method ident (line 4238) | pub fn ident(&self) -> Option<Ident> {
type Error (line 4261) | type Error = ItemKind;
method try_from (line 4263) | fn try_from(item_kind: ItemKind) -> Result<ForeignItemKind, ItemKind> {
type ForeignItem (line 4274) | pub type ForeignItem = Item<ForeignItemKind>;
FILE: compiler/rustc_ast/src/ast_traits.rs
type HasNodeId (line 16) | pub trait HasNodeId {
method node_id (line 17) | fn node_id(&self) -> NodeId;
method node_id_mut (line 18) | fn node_id_mut(&mut self) -> &mut NodeId;
method node_id (line 56) | fn node_id(&self) -> NodeId {
method node_id_mut (line 59) | fn node_id_mut(&mut self) -> &mut NodeId {
method node_id (line 343) | fn node_id(&self) -> NodeId {
method node_id_mut (line 346) | fn node_id_mut(&mut self) -> &mut NodeId {
type HasTokens (line 65) | pub trait HasTokens {
method tokens (line 66) | fn tokens(&self) -> Option<&LazyAttrTokenStream>;
method tokens_mut (line 67) | fn tokens_mut(&mut self) -> Option<&mut Option<LazyAttrTokenStream>>;
method tokens (line 125) | fn tokens(&self) -> Option<&LazyAttrTokenStream> {
method tokens_mut (line 128) | fn tokens_mut(&mut self) -> Option<&mut Option<LazyAttrTokenStream>> {
method tokens (line 134) | fn tokens(&self) -> Option<&LazyAttrTokenStream> {
method tokens_mut (line 137) | fn tokens_mut(&mut self) -> Option<&mut Option<LazyAttrTokenStream>> {
method tokens (line 143) | fn tokens(&self) -> Option<&LazyAttrTokenStream> {
method tokens_mut (line 152) | fn tokens_mut(&mut self) -> Option<&mut Option<LazyAttrTokenStream>> {
method tokens (line 164) | fn tokens(&self) -> Option<&LazyAttrTokenStream> {
method tokens_mut (line 167) | fn tokens_mut(&mut self) -> Option<&mut Option<LazyAttrTokenStream>> {
method tokens (line 173) | fn tokens(&self) -> Option<&LazyAttrTokenStream> {
method tokens_mut (line 181) | fn tokens_mut(&mut self) -> Option<&mut Option<LazyAttrTokenStream>> {
type HasAttrs (line 192) | pub trait HasAttrs {
constant SUPPORTS_CUSTOM_INNER_ATTRS (line 200) | const SUPPORTS_CUSTOM_INNER_ATTRS: bool;
method attrs (line 201) | fn attrs(&self) -> &[Attribute];
method visit_attrs (line 202) | fn visit_attrs(&mut self, f: impl FnOnce(&mut AttrVec));
constant SUPPORTS_CUSTOM_INNER_ATTRS (line 260) | const SUPPORTS_CUSTOM_INNER_ATTRS: bool = T::SUPPORTS_CUSTOM_INNER_ATTRS;
method attrs (line 261) | fn attrs(&self) -> &[Attribute] {
method visit_attrs (line 264) | fn visit_attrs(&mut self, f: impl FnOnce(&mut AttrVec)) {
constant SUPPORTS_CUSTOM_INNER_ATTRS (line 270) | const SUPPORTS_CUSTOM_INNER_ATTRS: bool = T::SUPPORTS_CUSTOM_INNER_ATTRS;
method attrs (line 271) | fn attrs(&self) -> &[Attribute] {
method visit_attrs (line 274) | fn visit_attrs(&mut self, f: impl FnOnce(&mut AttrVec)) {
constant SUPPORTS_CUSTOM_INNER_ATTRS (line 284) | const SUPPORTS_CUSTOM_INNER_ATTRS: bool = true;
method attrs (line 286) | fn attrs(&self) -> &[Attribute] {
method visit_attrs (line 296) | fn visit_attrs(&mut self, f: impl FnOnce(&mut AttrVec)) {
constant SUPPORTS_CUSTOM_INNER_ATTRS (line 308) | const SUPPORTS_CUSTOM_INNER_ATTRS: bool = StmtKind::SUPPORTS_CUSTOM_IN...
method attrs (line 309) | fn attrs(&self) -> &[Attribute] {
method visit_attrs (line 312) | fn visit_attrs(&mut self, f: impl FnOnce(&mut AttrVec)) {
constant SUPPORTS_CUSTOM_INNER_ATTRS (line 352) | const SUPPORTS_CUSTOM_INNER_ATTRS: bool = Wrapped::SUPPORTS_CUSTOM_INN...
method attrs (line 353) | fn attrs(&self) -> &[Attribute] {
method visit_attrs (line 356) | fn visit_attrs(&mut self, f: impl FnOnce(&mut AttrVec)) {
type AstNodeWrapper (line 319) | pub struct AstNodeWrapper<Wrapped, Tag> {
function new (line 325) | pub fn new(wrapped: Wrapped, _tag: Tag) -> AstNodeWrapper<Wrapped, Tag> {
function from_mut (line 329) | pub fn from_mut(wrapped: &mut Wrapped, _tag: Tag) -> &mut AstNodeWrapper...
function from (line 337) | fn from(value: AstNodeWrapper<Box<T>, Tag>) -> Self {
function fmt (line 362) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
FILE: compiler/rustc_ast/src/attr/data_structures.rs
type CfgEntry (line 10) | pub enum CfgEntry {
method lower_spans (line 20) | pub fn lower_spans(&mut self, lower_span: impl Copy + Fn(Span) -> Span) {
method span (line 38) | pub fn span(&self) -> Span {
method is_equivalent_to (line 49) | pub fn is_equivalent_to(&self, other: &Self) -> bool {
method fmt (line 67) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
FILE: compiler/rustc_ast/src/attr/mod.rs
type MarkedAttrs (line 29) | pub struct MarkedAttrs(GrowableBitSet<AttrId>);
method new (line 32) | pub fn new() -> Self {
method mark (line 38) | pub fn mark(&mut self, attr: &Attribute) {
method is_marked (line 42) | pub fn is_marked(&self, attr: &Attribute) -> bool {
type AttrIdGenerator (line 47) | pub struct AttrIdGenerator(AtomicU32);
method new (line 50) | pub fn new() -> Self {
method mk_attr_id (line 54) | pub fn mk_attr_id(&self) -> AttrId {
method get_normal_item (line 62) | pub fn get_normal_item(&self) -> &AttrItem {
method replace_args (line 71) | pub fn replace_args(&mut self, new_args: AttrItemKind) {
method unwrap_normal_item (line 78) | pub fn unwrap_normal_item(self) -> AttrItem {
method style (line 306) | pub fn style(&self) -> AttrStyle {
method may_have_doc_links (line 310) | pub fn may_have_doc_links(&self) -> bool {
method meta (line 316) | pub fn meta(&self) -> Option<MetaItem> {
method meta_kind (line 323) | pub fn meta_kind(&self) -> Option<MetaItemKind> {
method token_trees (line 330) | pub fn token_trees(&self) -> Vec<TokenTree> {
method span (line 347) | pub fn span(&self) -> Span {
method meta_item_list (line 351) | pub fn meta_item_list(&self) -> Option<ThinVec<MetaItemInner>> {
method value_str (line 372) | fn value_str(&self) -> Option<Symbol> {
method value_span (line 396) | fn value_span(&self) -> Option<Span> {
method meta (line 403) | pub fn meta(&self, span: Span) -> Option<MetaItem> {
method meta_kind (line 412) | pub fn meta_kind(&self) -> Option<MetaItemKind> {
method ident (line 419) | pub fn ident(&self) -> Option<Ident> {
method name (line 423) | pub fn name(&self) -> Option<Symbol> {
method has_name (line 427) | pub fn has_name(&self, name: Symbol) -> bool {
method is_word (line 431) | pub fn is_word(&self) -> bool {
method meta_item_list (line 435) | pub fn meta_item_list(&self) -> Option<&[MetaItemInner]> {
method name_value_literal (line 447) | pub fn name_value_literal(&self) -> Option<&MetaItemLit> {
method name_value_literal_span (line 461) | pub fn name_value_literal_span(&self) -> Option<Span> {
method value_str (line 477) | pub fn value_str(&self) -> Option<Symbol> {
method from_tokens (line 484) | fn from_tokens(iter: &mut TokenStreamIter<'_>) -> Option<MetaItem> {
method list_from_tokens (line 553) | pub fn list_from_tokens(tokens: TokenStream) -> Option<ThinVec<MetaItemI...
method name_value_from_tokens (line 567) | fn name_value_from_tokens(iter: &mut TokenStreamIter<'_>) -> Option<Meta...
method from_tokens (line 579) | fn from_tokens(iter: &mut TokenStreamIter<'_>) -> Option<MetaItemKind> {
method from_attr_args (line 595) | fn from_attr_args(args: &AttrArgs) -> Option<MetaItemKind> {
method span (line 616) | pub fn span(&self) -> Span {
method ident (line 624) | pub fn ident(&self) -> Option<Ident> {
method name (line 629) | pub fn name(&self) -> Option<Symbol> {
method has_name (line 634) | pub fn has_name(&self, name: Symbol) -> bool {
method is_word (line 639) | pub fn is_word(&self) -> bool {
method meta_item_list (line 644) | pub fn meta_item_list(&self) -> Option<&[MetaItemInner]> {
method singleton_lit_list (line 650) | pub fn singleton_lit_list(&self) -> Option<(Symbol, &MetaItemLit)> {
method name_value_literal_span (line 665) | pub fn name_value_literal_span(&self) -> Option<Span> {
method value_str (line 671) | pub fn value_str(&self) -> Option<Symbol> {
method lit (line 676) | pub fn lit(&self) -> Option<&MetaItemLit> {
method boolean_literal (line 684) | pub fn boolean_literal(&self) -> Option<bool> {
method meta_item_or_bool (line 693) | pub fn meta_item_or_bool(&self) -> Option<&MetaItemInner> {
method meta_item (line 702) | pub fn meta_item(&self) -> Option<&MetaItem> {
method is_meta_item (line 710) | pub fn is_meta_item(&self) -> bool {
method from_tokens (line 714) | fn from_tokens(iter: &mut TokenStreamIter<'_>) -> Option<MetaItemInner> {
function mk_doc_comment (line 730) | pub fn mk_doc_comment(
function mk_attr (line 740) | fn mk_attr(
function mk_attr_from_item (line 757) | pub fn mk_attr_from_item(
function mk_attr_word (line 772) | pub fn mk_attr_word(
function mk_attr_nested_word (line 784) | pub fn mk_attr_nested_word(
function mk_attr_name_value_str (line 806) | pub fn mk_attr_name_value_str(
function filter_by_name (line 827) | pub fn filter_by_name<A: AttributeExt>(attrs: &[A], name: Symbol) -> imp...
function find_by_name (line 831) | pub fn find_by_name<A: AttributeExt>(attrs: &[A], name: Symbol) -> Optio...
function first_attr_value_str_by_name (line 835) | pub fn first_attr_value_str_by_name(attrs: &[impl AttributeExt], name: S...
function contains_name (line 839) | pub fn contains_name(attrs: &[impl AttributeExt], name: Symbol) -> bool {
function list_contains_name (line 843) | pub fn list_contains_name(items: &[MetaItemInner], name: Symbol) -> bool {
method value_str (line 848) | pub fn value_str(&self) -> Option<Symbol> {
type AttributeExt (line 853) | pub trait AttributeExt: Debug {
method id (line 87) | fn id(&self) -> AttrId {
method value_span (line 91) | fn value_span(&self) -> Option<Span> {
method is_doc_comment (line 104) | fn is_doc_comment(&self) -> Option<Span> {
method name (line 112) | fn name(&self) -> Option<Symbol> {
method symbol_path (line 125) | fn symbol_path(&self) -> Option<SmallVec<[Symbol; 1]>> {
method path_span (line 134) | fn path_span(&self) -> Option<Span> {
method path_matches (line 141) | fn path_matches(&self, name: &[Symbol]) -> bool {
method span (line 157) | fn span(&self) -> Span {
method is_word (line 161) | fn is_word(&self) -> bool {
method meta_item_list (line 176) | fn meta_item_list(&self) -> Option<ThinVec<MetaItemInner>> {
method value_str (line 198) | fn value_str(&self) -> Option<Symbol> {
method doc_str_and_fragment_kind (line 210) | fn doc_str_and_fragment_kind(&self) -> Option<(Symbol, DocFragmentKind...
method doc_str (line 230) | fn doc_str(&self) -> Option<Symbol> {
method deprecation_note (line 238) | fn deprecation_note(&self) -> Option<Ident> {
method doc_resolution_scope (line 266) | fn doc_resolution_scope(&self) -> Option<AttrStyle> {
method is_automatically_derived_attr (line 278) | fn is_automatically_derived_attr(&self) -> bool {
method is_doc_hidden (line 282) | fn is_doc_hidden(&self) -> bool {
method is_doc_keyword_or_attribute (line 287) | fn is_doc_keyword_or_attribute(&self) -> bool {
method is_rustc_doc_primitive (line 300) | fn is_rustc_doc_primitive(&self) -> bool {
method id (line 854) | fn id(&self) -> AttrId;
method name (line 858) | fn name(&self) -> Option<Symbol>;
method meta_item_list (line 861) | fn meta_item_list(&self) -> Option<ThinVec<MetaItemInner>>;
method value_str (line 864) | fn value_str(&self) -> Option<Symbol>;
method value_span (line 867) | fn value_span(&self) -> Option<Span>;
method path_matches (line 872) | fn path_matches(&self, name: &[Symbol]) -> bool;
method is_doc_comment (line 877) | fn is_doc_comment(&self) -> Option<Span>;
method has_name (line 882) | fn has_name(&self, name: Symbol) -> bool {
method has_any_name (line 889) | fn has_any_name(&self, names: &[Symbol]) -> bool {
method span (line 894) | fn span(&self) -> Span;
method is_word (line 897) | fn is_word(&self) -> bool;
method path (line 899) | fn path(&self) -> SmallVec<[Symbol; 1]> {
method path_span (line 903) | fn path_span(&self) -> Option<Span>;
method symbol_path (line 906) | fn symbol_path(&self) -> Option<SmallVec<[Symbol; 1]>>;
method doc_str (line 912) | fn doc_str(&self) -> Option<Symbol>;
method deprecation_note (line 917) | fn deprecation_note(&self) -> Option<Ident>;
method is_proc_macro_attr (line 921) | fn is_proc_macro_attr(&self) -> bool {
method is_automatically_derived_attr (line 927) | fn is_automatically_derived_attr(&self) -> bool;
method doc_str_and_fragment_kind (line 934) | fn doc_str_and_fragment_kind(&self) -> Option<(Symbol, DocFragmentKind)>;
method doc_resolution_scope (line 943) | fn doc_resolution_scope(&self) -> Option<AttrStyle>;
method is_doc_hidden (line 946) | fn is_doc_hidden(&self) -> bool;
method is_doc_keyword_or_attribute (line 949) | fn is_doc_keyword_or_attribute(&self) -> bool;
method is_rustc_doc_primitive (line 952) | fn is_rustc_doc_primitive(&self) -> bool;
method id (line 958) | pub fn id(&self) -> AttrId {
method name (line 962) | pub fn name(&self) -> Option<Symbol> {
method meta_item_list (line 966) | pub fn meta_item_list(&self) -> Option<ThinVec<MetaItemInner>> {
method value_str (line 970) | pub fn value_str(&self) -> Option<Symbol> {
method value_span (line 974) | pub fn value_span(&self) -> Option<Span> {
method path_matches (line 978) | pub fn path_matches(&self, name: &[Symbol]) -> bool {
method is_doc_comment (line 983) | pub fn is_doc_comment(&self) -> bool {
method has_name (line 988) | pub fn has_name(&self, name: Symbol) -> bool {
method has_any_name (line 993) | pub fn has_any_name(&self, names: &[Symbol]) -> bool {
method span (line 997) | pub fn span(&self) -> Span {
method is_word (line 1001) | pub fn is_word(&self) -> bool {
method path (line 1005) | pub fn path(&self) -> SmallVec<[Symbol; 1]> {
method doc_str (line 1009) | pub fn doc_str(&self) -> Option<Symbol> {
method is_proc_macro_attr (line 1013) | pub fn is_proc_macro_attr(&self) -> bool {
method doc_str_and_fragment_kind (line 1017) | pub fn doc_str_and_fragment_kind(&self) -> Option<(Symbol, DocFragmentKi...
FILE: compiler/rustc_ast/src/attr/version.rs
type RustcVersion (line 8) | pub struct RustcVersion {
constant CURRENT (line 15) | pub const CURRENT: Self = current_rustc_version!();
method current_overridable (line 16) | pub fn current_overridable() -> Self {
method parse_str (line 27) | fn parse_str(value: &str) -> Option<Self> {
method fmt (line 40) | fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
FILE: compiler/rustc_ast/src/entry.rs
type EntryPointType (line 4) | pub enum EntryPointType {
function entry_point_type (line 30) | pub fn entry_point_type(
FILE: compiler/rustc_ast/src/expand/allocator.rs
type AllocatorKind (line 5) | pub enum AllocatorKind {
function global_fn_name (line 12) | pub fn global_fn_name(base: Symbol) -> String {
function default_fn_name (line 16) | pub fn default_fn_name(base: Symbol) -> String {
constant ALLOC_ERROR_HANDLER (line 20) | pub const ALLOC_ERROR_HANDLER: Symbol = sym::alloc_error_handler;
constant NO_ALLOC_SHIM_IS_UNSTABLE (line 21) | pub const NO_ALLOC_SHIM_IS_UNSTABLE: &str = "__rust_no_alloc_shim_is_uns...
type AllocatorTy (line 25) | pub enum AllocatorTy {
type SpecialAllocatorMethod (line 39) | pub enum SpecialAllocatorMethod {
type AllocatorMethod (line 48) | pub struct AllocatorMethod {
type AllocatorMethodInput (line 55) | pub struct AllocatorMethodInput {
FILE: compiler/rustc_ast/src/expand/autodiff_attrs.rs
type DiffMode (line 24) | pub enum DiffMode {
method all_modes (line 36) | pub fn all_modes() -> &'static [Symbol] {
method is_rev (line 104) | pub fn is_rev(&self) -> bool {
method is_fwd (line 107) | pub fn is_fwd(&self) -> bool {
type DiffActivity (line 46) | pub enum DiffActivity {
method is_dual_or_const (line 82) | pub fn is_dual_or_const(&self) -> bool {
method all_activities (line 87) | pub fn all_activities() -> &'static [Symbol] {
method fmt (line 113) | fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
function valid_ret_activity (line 128) | pub fn valid_ret_activity(mode: DiffMode, activity: DiffActivity) -> bool {
function valid_ty_for_activity (line 151) | pub fn valid_ty_for_activity(ty: &Box<Ty>, activity: DiffActivity) -> bo...
function valid_input_activity (line 166) | pub fn valid_input_activity(mode: DiffMode, activity: DiffActivity) -> b...
method fmt (line 179) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
type Err (line 197) | type Err = ();
method from_str (line 199) | fn from_str(s: &str) -> Result<DiffMode, ()> {
type Err (line 210) | type Err = ();
method from_str (line 212) | fn from_str(s: &str) -> Result<DiffActivity, ()> {
FILE: compiler/rustc_ast/src/expand/typetree.rs
type Kind (line 27) | pub enum Kind {
type TypeTree (line 39) | pub struct TypeTree(pub Vec<Type>);
method new (line 42) | pub fn new() -> Self {
method all_ints (line 45) | pub fn all_ints() -> Self {
method int (line 48) | pub fn int(size: usize) -> Self {
type FncTree (line 63) | pub struct FncTree {
type Type (line 69) | pub struct Type {
method add_offset (line 77) | pub fn add_offset(self, add: isize) -> Self {
method fmt (line 88) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
FILE: compiler/rustc_ast/src/format.rs
type FormatArgs (line 44) | pub struct FormatArgs {
type FormatArgsPiece (line 66) | pub enum FormatArgsPiece {
type FormatArguments (line 76) | pub struct FormatArguments {
method new (line 84) | pub fn new() -> Self {
method add (line 93) | pub fn add(&mut self, arg: FormatArgument) -> usize {
method by_name (line 116) | pub fn by_name(&self, name: Symbol) -> Option<(usize, &FormatArgument)> {
method by_index (line 121) | pub fn by_index(&self, i: usize) -> Option<&FormatArgument> {
method unnamed_args (line 125) | pub fn unnamed_args(&self) -> &[FormatArgument] {
method named_args (line 129) | pub fn named_args(&self) -> &[FormatArgument] {
method explicit_args (line 133) | pub fn explicit_args(&self) -> &[FormatArgument] {
method all_args (line 137) | pub fn all_args(&self) -> &[FormatArgument] {
method all_args_mut (line 141) | pub fn all_args_mut(&mut self) -> &mut Vec<FormatArgument> {
type FormatArgument (line 147) | pub struct FormatArgument {
type FormatArgumentKind (line 153) | pub enum FormatArgumentKind {
method ident (line 163) | pub fn ident(&self) -> Option<Ident> {
type FormatPlaceholder (line 173) | pub struct FormatPlaceholder {
type FormatArgPosition (line 187) | pub struct FormatArgPosition {
type FormatArgPositionKind (line 200) | pub enum FormatArgPositionKind {
type FormatTrait (line 210) | pub enum FormatTrait {
type FormatOptions (line 232) | pub struct FormatOptions {
type FormatSign (line 252) | pub enum FormatSign {
type FormatDebugHex (line 260) | pub enum FormatDebugHex {
type FormatAlignment (line 268) | pub enum FormatAlignment {
type FormatCount (line 278) | pub enum FormatCount {
FILE: compiler/rustc_ast/src/lib.rs
type HashStableContext (line 43) | pub trait HashStableContext: rustc_span::HashStableContext {}
FILE: compiler/rustc_ast/src/mut_visit.rs
type MutVisitorResult (line 26) | pub trait MutVisitorResult {
type Result (line 31) | type Result = ();
type MutVisitable (line 37) | pub(crate) trait MutVisitable<V: MutVisitor> {
method visit_mut (line 39) | fn visit_mut(&mut self, visitor: &mut V, extra: Self::Extra);
type Extra (line 46) | type Extra = T::Extra;
function visit_mut (line 47) | fn visit_mut(&mut self, visitor: &mut V, extra: Self::Extra) {
type Extra (line 56) | type Extra = T::Extra;
function visit_mut (line 57) | fn visit_mut(&mut self, visitor: &mut V, extra: Self::Extra) {
type Extra (line 68) | type Extra = T::Extra;
function visit_mut (line 69) | fn visit_mut(&mut self, visitor: &mut V, extra: Self::Extra) {
type Extra (line 80) | type Extra = T::Extra;
function visit_mut (line 81) | fn visit_mut(&mut self, visitor: &mut V, extra: Self::Extra) {
type Extra (line 92) | type Extra = T::Extra;
function visit_mut (line 93) | fn visit_mut(&mut self, visitor: &mut V, extra: Self::Extra) {
type Extra (line 104) | type Extra = T::Extra;
function visit_mut (line 105) | fn visit_mut(&mut self, visitor: &mut V, extra: Self::Extra) {
type Extra (line 115) | type Extra = ();
function visit_mut (line 116) | fn visit_mut(&mut self, visitor: &mut V, extra: Self::Extra) {
type Extra (line 128) | type Extra = ();
function visit_mut (line 129) | fn visit_mut(&mut self, visitor: &mut V, extra: Self::Extra) {
type Extra (line 143) | type Extra = ();
function visit_mut (line 144) | fn visit_mut(&mut self, visitor: &mut V, extra: Self::Extra) {
type MutWalkable (line 152) | pub trait MutWalkable<V: MutVisitor> {
method walk_mut (line 153) | fn walk_mut(&mut self, visitor: &mut V);
function walk_flat_map_pat_field (line 309) | pub fn walk_flat_map_pat_field<T: MutVisitor>(
function walk_filter_map_expr (line 339) | pub fn walk_filter_map_expr<T: MutVisitor>(vis: &mut T, mut e: Box<Expr>...
function walk_flat_map_stmt (line 344) | pub fn walk_flat_map_stmt<T: MutVisitor>(
function walk_flat_map_stmt_kind (line 364) | fn walk_flat_map_stmt_kind<T: MutVisitor>(vis: &mut T, kind: StmtKind) -...
FILE: compiler/rustc_ast/src/node_id.rs
constant DUMMY_NODE_ID (line 26) | pub const DUMMY_NODE_ID: NodeId = NodeId::MAX;
method placeholder_from_expn_id (line 29) | pub fn placeholder_from_expn_id(expn_id: LocalExpnId) -> Self {
method placeholder_to_expn_id (line 33) | pub fn placeholder_to_expn_id(self) -> LocalExpnId {
method fmt (line 39) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
FILE: compiler/rustc_ast/src/token.rs
type DocFragmentKind (line 21) | pub enum DocFragmentKind {
method is_sugared (line 29) | pub fn is_sugared(self) -> bool {
method comment_kind (line 35) | pub fn comment_kind(self) -> CommentKind {
type CommentKind (line 44) | pub enum CommentKind {
type InvisibleOrigin (line 50) | pub enum InvisibleOrigin {
method skip (line 63) | pub fn skip(&self) -> bool {
type MetaVarKind (line 73) | pub enum MetaVarKind {
method fmt (line 102) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
type Delimiter (line 129) | pub enum Delimiter {
method skip (line 149) | pub fn skip(&self) -> bool {
method eq_ignoring_invisible_origin (line 158) | pub fn eq_ignoring_invisible_origin(&self, other: &Delimiter) -> bool {
method as_open_token_kind (line 168) | pub fn as_open_token_kind(&self) -> TokenKind {
method as_close_token_kind (line 177) | pub fn as_close_token_kind(&self) -> TokenKind {
type LitKind (line 192) | pub enum LitKind {
method article (line 287) | pub fn article(self) -> &'static str {
method descr (line 294) | pub fn descr(self) -> &'static str {
method may_have_suffix (line 308) | pub(crate) fn may_have_suffix(self) -> bool {
type Lit (line 209) | pub struct Lit {
method new (line 216) | pub fn new(kind: LitKind, symbol: Symbol, suffix: Option<Symbol>) -> L...
method is_semantic_float (line 222) | pub fn is_semantic_float(&self) -> bool {
method from_token (line 235) | pub fn from_token(token: &Token) -> Option<Lit> {
method fmt (line 251) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
function ident_can_begin_expr (line 313) | pub fn ident_can_begin_expr(name: Symbol, span: Span, is_raw: IdentIsRaw...
function ident_can_begin_type (line 345) | fn ident_can_begin_type(name: Symbol, span: Span, is_raw: IdentIsRaw) ->...
type IdentIsRaw (line 355) | pub enum IdentIsRaw {
method to_print_mode_ident (line 361) | pub fn to_print_mode_ident(self) -> IdentPrintMode {
method to_print_mode_lifetime (line 367) | pub fn to_print_mode_lifetime(self) -> IdentPrintMode {
method from (line 376) | fn from(b: bool) -> Self {
type TokenKind (line 382) | pub enum TokenKind {
method lit (line 538) | pub fn lit(kind: LitKind, symbol: Symbol, suffix: Option<Symbol>) -> T...
method break_two_token_op (line 546) | pub fn break_two_token_op(&self, n: u32) -> Option<(TokenKind, TokenKi...
method similar_tokens (line 583) | pub fn similar_tokens(&self) -> &[TokenKind] {
method should_end_const_arg (line 593) | pub fn should_end_const_arg(&self) -> bool {
method is_delim (line 597) | pub fn is_delim(&self) -> bool {
method open_delim (line 601) | pub fn open_delim(&self) -> Option<Delimiter> {
method close_delim (line 611) | pub fn close_delim(&self) -> Option<Delimiter> {
method is_close_delim_or_eof (line 621) | pub fn is_close_delim_or_eof(&self) -> bool {
type Token (line 532) | pub struct Token {
method new (line 630) | pub const fn new(kind: TokenKind, span: Span) -> Self {
method dummy (line 635) | pub const fn dummy() -> Self {
method from_ast_ident (line 640) | pub fn from_ast_ident(ident: Ident) -> Self {
method is_range_separator (line 644) | pub fn is_range_separator(&self) -> bool {
method is_punct (line 648) | pub fn is_punct(&self) -> bool {
method is_like_plus (line 662) | pub fn is_like_plus(&self) -> bool {
method can_begin_expr (line 670) | pub fn can_begin_expr(&self) -> bool {
method can_begin_pattern (line 703) | pub fn can_begin_pattern(&self, pat_kind: NtPatKind) -> bool {
method can_begin_type (line 732) | pub fn can_begin_type(&self) -> bool {
method can_begin_const_arg (line 757) | pub fn can_begin_const_arg(&self) -> bool {
method can_begin_item (line 769) | pub fn can_begin_item(&self) -> bool {
method is_lit (line 795) | pub fn is_lit(&self) -> bool {
method can_begin_literal_maybe_minus (line 806) | pub fn can_begin_literal_maybe_minus(&self) -> bool {
method can_begin_string_literal (line 821) | pub fn can_begin_string_literal(&self) -> bool {
method uninterpolate (line 837) | pub fn uninterpolate(&self) -> Cow<'_, Token> {
method ident (line 849) | pub fn ident(&self) -> Option<(Ident, IdentIsRaw)> {
method lifetime (line 860) | pub fn lifetime(&self) -> Option<(Ident, IdentIsRaw)> {
method is_ident (line 870) | pub fn is_ident(&self) -> bool {
method is_lifetime (line 875) | pub fn is_lifetime(&self) -> bool {
method is_ident_named (line 881) | pub fn is_ident_named(&self, name: Symbol) -> bool {
method is_metavar_expr (line 887) | pub fn is_metavar_expr(&self) -> bool {
method is_metavar_block (line 900) | pub fn is_metavar_block(&self) -> bool {
method is_mutability (line 905) | pub fn is_mutability(&self) -> bool {
method is_qpath_start (line 909) | pub fn is_qpath_start(&self) -> bool {
method is_path_start (line 913) | pub fn is_path_start(&self) -> bool {
method is_keyword (line 922) | pub fn is_keyword(&self, kw: Symbol) -> bool {
method is_keyword_case (line 928) | pub fn is_keyword_case(&self, kw: Symbol, case: Case) -> bool {
method is_path_segment_keyword (line 937) | pub fn is_path_segment_keyword(&self) -> bool {
method is_special_ident (line 943) | pub fn is_special_ident(&self) -> bool {
method is_used_keyword (line 948) | pub fn is_used_keyword(&self) -> bool {
method is_unused_keyword (line 953) | pub fn is_unused_keyword(&self) -> bool {
method is_reserved_ident (line 958) | pub fn is_reserved_ident(&self) -> bool {
method is_non_reserved_ident (line 962) | pub fn is_non_reserved_ident(&self) -> bool {
method is_bool_lit (line 967) | pub fn is_bool_lit(&self) -> bool {
method is_numeric_lit (line 971) | pub fn is_numeric_lit(&self) -> bool {
method is_integer_lit (line 979) | pub fn is_integer_lit(&self) -> bool {
method is_non_raw_ident_where (line 984) | pub fn is_non_raw_ident_where(&self, pred: impl FnOnce(Ident) -> bool)...
method is_metavar_seq (line 993) | pub fn is_metavar_seq(&self) -> Option<MetaVarKind> {
method glue (line 1000) | pub fn glue(&self, joint: &Token) -> Option<Token> {
method eq (line 1088) | fn eq(&self, rhs: &TokenKind) -> bool {
type NtPatKind (line 1094) | pub enum NtPatKind {
type NtExprKind (line 1104) | pub enum NtExprKind {
type NonterminalKind (line 1116) | pub enum NonterminalKind {
method from_symbol (line 1136) | pub fn from_symbol(
method symbol (line 1173) | fn symbol(self) -> Symbol {
method fmt (line 1196) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
FILE: compiler/rustc_ast/src/tokenstream.rs
type TokenTree (line 27) | pub enum TokenTree {
method eq_unspanned (line 48) | pub fn eq_unspanned(&self, other: &TokenTree) -> bool {
method span (line 59) | pub fn span(&self) -> Span {
method token_alone (line 67) | pub fn token_alone(kind: TokenKind, span: Span) -> TokenTree {
method token_joint (line 72) | pub fn token_joint(kind: TokenKind, span: Span) -> TokenTree {
method token_joint_hidden (line 77) | pub fn token_joint_hidden(kind: TokenKind, span: Span) -> TokenTree {
method uninterpolate (line 81) | pub fn uninterpolate(&self) -> Cow<'_, TokenTree> {
function _dummy (line 36) | fn _dummy()
type LazyAttrTokenStream (line 95) | pub struct LazyAttrTokenStream(Arc<LazyAttrTokenStreamInner>);
method new_direct (line 98) | pub fn new_direct(stream: AttrTokenStream) -> LazyAttrTokenStream {
method new_pending (line 102) | pub fn new_pending(
method to_attr_token_stream (line 118) | pub fn to_attr_token_stream(&self) -> AttrTokenStream {
method fmt (line 124) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
method encode (line 130) | fn encode(&self, _s: &mut S) {
method decode (line 136) | fn decode(_d: &mut D) -> Self {
method hash_stable (line 142) | fn hash_stable(&self, _hcx: &mut Hcx, _hasher: &mut StableHasher) {
type ParserRange (line 149) | pub struct ParserRange(pub Range<u32>);
type NodeRange (line 155) | pub struct NodeRange(pub Range<u32>);
method new (line 191) | pub fn new(ParserRange(parser_range): ParserRange, start_pos: u32) -> ...
type ParserReplacement (line 176) | pub type ParserReplacement = (ParserRange, Option<AttrsTarget>);
type NodeReplacement (line 179) | pub type NodeReplacement = (NodeRange, Option<AttrsTarget>);
type LazyAttrTokenStreamInner (line 198) | enum LazyAttrTokenStreamInner {
method to_attr_token_stream (line 223) | fn to_attr_token_stream(&self) -> AttrTokenStream {
type FlatToken (line 311) | enum FlatToken {
type AttrTokenStream (line 330) | pub struct AttrTokenStream(pub Arc<Vec<AttrTokenTree>>);
method new (line 415) | pub fn new(tokens: Vec<AttrTokenTree>) -> AttrTokenStream {
method to_token_trees (line 423) | pub fn to_token_trees(&self) -> Vec<TokenTree> {
function make_attr_token_stream (line 335) | fn make_attr_token_stream(
type AttrTokenTree (line 405) | pub enum AttrTokenTree {
function attrs_and_tokens_to_token_trees (line 455) | fn attrs_and_tokens_to_token_trees(
type AttrsTarget (line 535) | pub struct AttrsTarget {
type Spacing (line 549) | pub enum Spacing {
type TokenStream (line 606) | pub struct TokenStream(pub(crate) Arc<Vec<TokenTree>>);
method new (line 609) | pub fn new(tts: Vec<TokenTree>) -> TokenStream {
method is_empty (line 613) | pub fn is_empty(&self) -> bool {
method len (line 617) | pub fn len(&self) -> usize {
method get (line 621) | pub fn get(&self, index: usize) -> Option<&TokenTree> {
method iter (line 625) | pub fn iter(&self) -> TokenStreamIter<'_> {
method token_alone (line 633) | pub fn token_alone(kind: TokenKind, span: Span) -> TokenStream {
method from_ast (line 637) | pub fn from_ast(node: &(impl HasAttrs + HasTokens + fmt::Debug)) -> To...
method try_glue_to_last (line 646) | fn try_glue_to_last(vec: &mut Vec<TokenTree>, tt: &TokenTree) -> bool {
method push_tree (line 662) | pub fn push_tree(&mut self, tt: TokenTree) {
method push_stream (line 675) | pub fn push_stream(&mut self, stream: TokenStream) {
method chunks (line 691) | pub fn chunks(&self, chunk_size: usize) -> core::slice::Chunks<'_, Tok...
method desugar_doc_comments (line 698) | pub fn desugar_doc_comments(&mut self) {
method add_comma (line 785) | pub fn add_comma(&self) -> Option<(TokenStream, Span)> {
method from_iter (line 822) | fn from_iter<I: IntoIterator<Item = TokenTree>>(iter: I) -> Self {
method hash_stable (line 831) | fn hash_stable(&self, hcx: &mut Hcx, hasher: &mut StableHasher) {
type TokenStreamIter (line 839) | pub struct TokenStreamIter<'t> {
function new (line 845) | fn new(stream: &'t TokenStream) -> Self {
function peek (line 852) | pub fn peek(&self) -> Option<&'t TokenTree> {
type Item (line 858) | type Item = &'t TokenTree;
method next (line 860) | fn next(&mut self) -> Option<&'t TokenTree> {
type TokenTreeCursor (line 869) | pub struct TokenTreeCursor {
method new (line 879) | pub fn new(stream: TokenStream) -> Self {
method curr (line 884) | pub fn curr(&self) -> Option<&TokenTree> {
method look_ahead (line 888) | pub fn look_ahead(&self, n: usize) -> Option<&TokenTree> {
method bump (line 893) | pub fn bump(&mut self) {
method bump_to_end (line 899) | pub fn bump_to_end(&mut self) {
type TokenCursor (line 909) | pub struct TokenCursor {
method next (line 923) | pub fn next(&mut self) -> (Token, Spacing) {
method inlined_next (line 929) | pub fn inlined_next(&mut self) -> (Token, Spacing) {
type DelimSpan (line 974) | pub struct DelimSpan {
method from_single (line 980) | pub fn from_single(sp: Span) -> Self {
method from_pair (line 984) | pub fn from_pair(open: Span, close: Span) -> Self {
method dummy (line 988) | pub fn dummy() -> Self {
method entire (line 992) | pub fn entire(self) -> Span {
type DelimSpacing (line 998) | pub struct DelimSpacing {
method new (line 1004) | pub fn new(open: Spacing, close: Spacing) -> DelimSpacing {
FILE: compiler/rustc_ast/src/util/case.rs
type Case (line 3) | pub enum Case {
FILE: compiler/rustc_ast/src/util/classify.rs
function expr_is_complete (line 40) | pub fn expr_is_complete(e: &ast::Expr) -> bool {
function expr_requires_semi_to_be_stmt (line 78) | pub fn expr_requires_semi_to_be_stmt(e: &ast::Expr) -> bool {
function leading_labeled_expr (line 101) | pub fn leading_labeled_expr(mut expr: &ast::Expr) -> bool {
type TrailingBrace (line 163) | pub enum TrailingBrace<'a> {
function expr_trailing_brace (line 173) | pub fn expr_trailing_brace(mut expr: &ast::Expr) -> Option<TrailingBrace...
function type_trailing_braced_mac_call (line 251) | fn type_trailing_braced_mac_call(mut ty: &ast::Ty) -> Option<&ast::MacCa...
function path_return_type (line 314) | fn path_return_type(path: &ast::Path) -> Option<&ast::Ty> {
FILE: compiler/rustc_ast/src/util/comments.rs
type CommentStyle (line 9) | pub enum CommentStyle {
type Comment (line 21) | pub struct Comment {
function may_have_doc_links (line 31) | pub fn may_have_doc_links(s: &str) -> bool {
function beautify_doc_string (line 37) | pub fn beautify_doc_string(data: Symbol, kind: CommentKind) -> Symbol {
FILE: compiler/rustc_ast/src/util/comments/tests.rs
function test_block_doc_comment_1 (line 8) | fn test_block_doc_comment_1() {
function test_block_doc_comment_2 (line 17) | fn test_block_doc_comment_2() {
function test_block_doc_comment_3 (line 26) | fn test_block_doc_comment_3() {
function test_line_doc_comment (line 35) | fn test_line_doc_comment() {
function test_doc_blocks (line 49) | fn test_doc_blocks() {
FILE: compiler/rustc_ast/src/util/literal.rs
function escape_string_symbol (line 16) | pub fn escape_string_symbol(symbol: Symbol) -> Symbol {
function escape_char_symbol (line 23) | pub fn escape_char_symbol(ch: char) -> Symbol {
function escape_byte_str_symbol (line 29) | pub fn escape_byte_str_symbol(bytes: &[u8]) -> Symbol {
type LitError (line 35) | pub enum LitError {
method from_token_lit (line 45) | pub fn from_token_lit(lit: token::Lit) -> Result<LitKind, LitError> {
method fmt (line 155) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
method from_token_lit (line 219) | pub fn from_token_lit(token_lit: token::Lit, span: Span) -> Result<MetaI...
method as_token_lit (line 229) | pub fn as_token_lit(&self) -> token::Lit {
method from_token (line 249) | pub fn from_token(token: &Token) -> Option<MetaItemLit> {
function strip_underscores (line 255) | fn strip_underscores(symbol: Symbol) -> Symbol {
function filtered_float_lit (line 266) | fn filtered_float_lit(
function float_lit (line 290) | fn float_lit(symbol: Symbol, suffix: Option<Symbol>) -> Result<LitKind, ...
function integer_lit (line 295) | fn integer_lit(symbol: Symbol, suffix: Option<Symbol>) -> Result<LitKind...
FILE: compiler/rustc_ast/src/util/parser.rs
type AssocOp (line 8) | pub enum AssocOp {
method from_token (line 33) | pub fn from_token(t: &Token) -> Option<AssocOp> {
method precedence (line 76) | pub fn precedence(&self) -> ExprPrecedence {
method fixity (line 87) | pub fn fixity(&self) -> Fixity {
method is_comparison (line 98) | pub fn is_comparison(&self) -> bool {
method is_assign_like (line 106) | pub fn is_assign_like(&self) -> bool {
method can_continue_expr_unambiguously (line 118) | pub fn can_continue_expr_unambiguously(&self) -> bool {
type Fixity (line 22) | pub enum Fixity {
type ExprPrecedence (line 142) | pub enum ExprPrecedence {
function prec_let_scrutinee_needs_par (line 176) | pub fn prec_let_scrutinee_needs_par() -> ExprPrecedence {
function needs_par_as_let_scrutinee (line 185) | pub fn needs_par_as_let_scrutinee(order: ExprPrecedence) -> bool {
function contains_exterior_struct_lit (line 192) | pub fn contains_exterior_struct_lit(value: &ast::Expr) -> bool {
FILE: compiler/rustc_ast/src/util/unicode.rs
constant TEXT_FLOW_CONTROL_CHARS (line 1) | pub const TEXT_FLOW_CONTROL_CHARS: &[char] = &[
function contains_text_flow_control_chars (line 7) | pub fn contains_text_flow_control_chars(s: &str) -> bool {
FILE: compiler/rustc_ast/src/visit.rs
type AssocCtxt (line 25) | pub enum AssocCtxt {
type FnCtxt (line 31) | pub enum FnCtxt {
type BoundKind (line 38) | pub enum BoundKind {
method descr (line 56) | pub fn descr(self) -> &'static str {
type LifetimeCtxt (line 67) | pub enum LifetimeCtxt {
type Visitable (line 76) | pub(crate) trait Visitable<'a, V: Visitor<'a>> {
method visit (line 80) | fn visit(&'a self, visitor: &mut V, extra: Self::Extra) -> V::Result;
type Extra (line 87) | type Extra = T::Extra;
function visit (line 88) | fn visit(&'a self, visitor: &mut V, extra: Self::Extra) -> V::Result {
type Extra (line 97) | type Extra = T::Extra;
function visit (line 98) | fn visit(&'a self, visitor: &mut V, extra: Self::Extra) -> V::Result {
type Extra (line 110) | type Extra = T::Extra;
function visit (line 111) | fn visit(&'a self, visitor: &mut V, extra: Self::Extra) -> V::Result {
type Extra (line 121) | type Extra = T::Extra;
function visit (line 122) | fn visit(&'a self, visitor: &mut V, extra: Self::Extra) -> V::Result {
type Extra (line 134) | type Extra = T::Extra;
function visit (line 135) | fn visit(&'a self, visitor: &mut V, extra: Self::Extra) -> V::Result {
type Extra (line 147) | type Extra = T::Extra;
function visit (line 148) | fn visit(&'a self, visitor: &mut V, extra: Self::Extra) -> V::Result {
type Extra (line 158) | type Extra = ();
function visit (line 159) | fn visit(&'a self, visitor: &mut V, extra: Self::Extra) -> V::Result {
type Extra (line 172) | type Extra = ();
function visit (line 173) | fn visit(&'a self, visitor: &mut V, extra: Self::Extra) -> V::Result {
type Extra (line 188) | type Extra = ();
function visit (line 189) | fn visit(&'a self, visitor: &mut V, extra: Self::Extra) -> V::Result {
type Walkable (line 198) | pub(crate) trait Walkable<'a, V: Visitor<'a>> {
method walk_ref (line 200) | fn walk_ref(&'a self, visitor: &mut V) -> V::Result;
function walk_stmt (line 1184) | pub fn walk_stmt<'a, V: Visitor<'a>>(visitor: &mut V, statement: &'a Stm...
FILE: compiler/rustc_ast_ir/src/lib.rs
type IntTy (line 28) | pub enum IntTy {
method name_str (line 38) | pub fn name_str(&self) -> &'static str {
method name (line 50) | pub fn name(self) -> Symbol {
method bit_width (line 61) | pub fn bit_width(&self) -> Option<u64> {
method normalize (line 72) | pub fn normalize(&self, target_width: u16) -> Self {
method to_unsigned (line 84) | pub fn to_unsigned(self) -> UintTy {
method fmt (line 97) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
type UintTy (line 107) | pub enum UintTy {
method name_str (line 117) | pub fn name_str(&self) -> &'static str {
method name (line 129) | pub fn name(self) -> Symbol {
method bit_width (line 140) | pub fn bit_width(&self) -> Option<u64> {
method normalize (line 151) | pub fn normalize(&self, target_width: u16) -> Self {
method to_signed (line 163) | pub fn to_signed(self) -> IntTy {
method fmt (line 176) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
type FloatTy (line 186) | pub enum FloatTy {
method name_str (line 194) | pub fn name_str(self) -> &'static str {
method name (line 204) | pub fn name(self) -> Symbol {
method bit_width (line 213) | pub fn bit_width(self) -> u64 {
method fmt (line 224) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
type Movability (line 236) | pub enum Movability {
type Mutability (line 248) | pub enum Mutability {
method invert (line 255) | pub fn invert(self) -> Self {
method prefix_str (line 263) | pub fn prefix_str(self) -> &'static str {
method ref_prefix_str (line 271) | pub fn ref_prefix_str(self) -> &'static str {
method ptr_str (line 279) | pub fn ptr_str(self) -> &'static str {
method mutably_str (line 287) | pub fn mutably_str(self) -> &'static str {
method is_mut (line 295) | pub fn is_mut(self) -> bool {
method is_not (line 300) | pub fn is_not(self) -> bool {
type Pinnedness (line 310) | pub enum Pinnedness {
method is_pinned (line 317) | pub fn is_pinned(self) -> bool {
method prefix_str (line 323) | pub fn prefix_str(self, mutbl: Mutability) -> &'static str {
FILE: compiler/rustc_ast_ir/src/visit.rs
type VisitorResult (line 4) | pub trait VisitorResult {
method output (line 6) | fn output() -> Self;
method from_residual (line 7) | fn from_residual(residual: Self::Residual) -> Self;
method from_branch (line 8) | fn from_branch(b: ControlFlow<Self::Residual>) -> Self;
method branch (line 9) | fn branch(self) -> ControlFlow<Self::Residual>;
type Residual (line 14) | type Residual = !;
type Residual (line 17) | type Residual = core::convert::Infallible;
method output (line 19) | fn output() -> Self {}
method from_residual (line 20) | fn from_residual(_: Self::Residual) -> Self {}
method from_branch (line 21) | fn from_branch(_: ControlFlow<Self::Residual>) -> Self {}
method branch (line 22) | fn branch(self) -> ControlFlow<Self::Residual> {
type Residual (line 28) | type Residual = T;
method output (line 30) | fn output() -> Self {
method from_residual (line 33) | fn from_residual(residual: Self::Residual) -> Self {
method from_branch (line 36) | fn from_branch(b: Self) -> Self {
method branch (line 39) | fn branch(self) -> Self {
FILE: compiler/rustc_ast_lowering/src/asm.rs
function lower_inline_asm (line 26) | pub(crate) fn lower_inline_asm(
FILE: compiler/rustc_ast_lowering/src/block.rs
function lower_block (line 10) | pub(super) fn lower_block(
function lower_block_noalloc (line 19) | pub(super) fn lower_block_noalloc(
function lower_stmts (line 30) | pub(super) fn lower_stmts(
function impl_trait_in_bindings_ctxt (line 89) | fn impl_trait_in_bindings_ctxt(&self, position: ImplTraitPosition) -> Im...
function lower_local (line 97) | fn lower_local(&mut self, l: &Local) -> &'hir hir::LetStmt<'hir> {
function lower_block_check_mode (line 117) | fn lower_block_check_mode(&mut self, b: &BlockCheckMode) -> hir::BlockCh...
FILE: compiler/rustc_ast_lowering/src/contract.rs
function lower_contract (line 18) | pub(super) fn lower_contract(
function lower_decls (line 127) | fn lower_decls(&mut self, contract: &rustc_ast::FnContract) -> &'hir [ru...
function lower_precond (line 140) | fn lower_precond(&mut self, req: &Box<rustc_ast::Expr>) -> rustc_hir::St...
function lower_postcond_checker (line 155) | fn lower_postcond_checker(
function lower_contract_check_just_precond (line 173) | fn lower_contract_check_just_precond(
function lower_contract_check_with_postcond (line 195) | fn lower_contract_check_with_postcond(
function wrap_body_with_contract_check (line 233) | fn wrap_body_with_contract_check(
function checked_return (line 279) | pub(super) fn checked_return(
function inject_ensures_check (line 294) | pub(super) fn inject_ensures_check(
FILE: compiler/rustc_ast_lowering/src/delegation.rs
type DelegationResults (line 68) | pub(crate) struct DelegationResults<'hir> {
type AttrAdditionInfo (line 75) | struct AttrAdditionInfo {
type AttrAdditionKind (line 80) | enum AttrAdditionKind {
constant PARENT_ID (line 85) | const PARENT_ID: hir::ItemLocalId = hir::ItemLocalId::ZERO;
function is_method (line 110) | fn is_method(&self, def_id: DefId, span: Span) -> bool {
function lower_delegation (line 118) | pub(crate) fn lower_delegation(
function add_attrs_if_needed (line 179) | fn add_attrs_if_needed(&mut self, span: Span, sig_id: DefId) {
function create_new_attrs (line 197) | fn create_new_attrs(
function get_sig_id (line 230) | fn get_sig_id(&self, mut node_id: NodeId, span: Span) -> Result<DefId, E...
function get_resolution_id (line 270) | fn get_resolution_id(&self, node_id: NodeId) -> Option<DefId> {
function param_count (line 275) | fn param_count(&self, def_id: DefId) -> (usize, bool /*c_variadic*/) {
function lower_delegation_decl (line 280) | fn lower_delegation_decl(
function lower_delegation_sig (line 321) | fn lower_delegation_sig(
function generate_param (line 347) | fn generate_param(
function generate_arg (line 372) | fn generate_arg(
function lower_delegation_body (line 398) | fn lower_delegation_body(
function lower_target_expr (line 454) | fn lower_target_expr(&mut self, block: &Block) -> hir::Expr<'hir> {
function finalize_body_lowering (line 480) | fn finalize_body_lowering(
function process_segment (line 577) | fn process_segment(
function generate_delegation_error (line 605) | fn generate_delegation_error(
function generate_header_error (line 661) | fn generate_header_error(&self) -> hir::FnHeader {
function mk_expr (line 671) | fn mk_expr(&mut self, kind: hir::ExprKind<'hir>, span: Span) -> hir::Exp...
type SelfResolver (line 676) | struct SelfResolver<'a, 'tcx, R> {
function try_replace_id (line 684) | fn try_replace_id(&mut self, id: NodeId) {
function visit_id (line 696) | fn visit_id(&mut self, id: NodeId) {
FILE: compiler/rustc_ast_lowering/src/delegation/generics.rs
type DelegationGenerics (line 13) | pub(super) enum DelegationGenerics<T> {
type HirOrTyGenerics (line 37) | pub(super) enum HirOrTyGenerics<'hir> {
type GenericsGenerationResult (line 42) | pub(super) struct GenericsGenerationResult<'hir> {
type GenericsGenerationResults (line 47) | pub(super) struct GenericsGenerationResults<'hir> {
type GenericArgsPropagationDetails (line 52) | pub(super) struct GenericArgsPropagationDetails {
function args_propagation_details (line 58) | fn args_propagation_details(&self) -> GenericArgsPropagationDetails {
function into_hir_generics (line 79) | pub(super) fn into_hir_generics(
function hir_generics_or_empty (line 108) | fn hir_generics_or_empty(&self) -> &'hir hir::Generics<'hir> {
function into_generic_args (line 120) | pub(super) fn into_generic_args(
function args_propagation_details (line 141) | pub(super) fn args_propagation_details(&self) -> GenericArgsPropagationD...
function new (line 150) | fn new(
function all_params (line 158) | pub(super) fn all_params(
function all_predicates (line 192) | pub(super) fn all_predicates(
function uplift_delegation_generics (line 214) | pub(super) fn uplift_delegation_generics(
function uplift_delegation_generic_params (line 284) | fn uplift_delegation_generic_params(
function generate_lifetime_predicate (line 354) | fn generate_lifetime_predicate(
function create_generics_args_from_params (line 384) | fn create_generics_args_from_params(
FILE: compiler/rustc_ast_lowering/src/errors.rs
type GenericTypeWithParentheses (line 8) | pub(crate) struct GenericTypeWithParentheses {
type UseAngleBrackets (line 18) | pub(crate) struct UseAngleBrackets {
type InvalidAbi (line 28) | pub(crate) struct InvalidAbi {
type TupleStructWithDefault (line 40) | pub(crate) struct TupleStructWithDefault {
type InvalidAbiSuggestion (line 53) | pub(crate) struct InvalidAbiSuggestion {
type AssocTyParentheses (line 61) | pub(crate) struct AssocTyParentheses {
type AssocTyParenthesesSub (line 69) | pub(crate) enum AssocTyParenthesesSub {
type MisplacedImplTrait (line 87) | pub(crate) struct MisplacedImplTrait<'a> {
type MisplacedAssocTyBinding (line 95) | pub(crate) struct MisplacedAssocTyBinding {
type UnderscoreExprLhsAssign (line 109) | pub(crate) struct UnderscoreExprLhsAssign {
type AwaitOnlyInAsyncFnAndBlocks (line 117) | pub(crate) struct AwaitOnlyInAsyncFnAndBlocks {
type CoroutineTooManyParameters (line 127) | pub(crate) struct CoroutineTooManyParameters {
type ClosureCannotBeStatic (line 134) | pub(crate) struct ClosureCannotBeStatic {
type FunctionalRecordUpdateDestructuringAssignment (line 141) | pub(crate) struct FunctionalRecordUpdateDestructuringAssignment {
type AsyncCoroutinesNotSupported (line 153) | pub(crate) struct AsyncCoroutinesNotSupported {
type InlineAsmUnsupportedTarget (line 160) | pub(crate) struct InlineAsmUnsupportedTarget {
type AttSyntaxOnlyX86 (line 167) | pub(crate) struct AttSyntaxOnlyX86 {
type AbiSpecifiedMultipleTimes (line 174) | pub(crate) struct AbiSpecifiedMultipleTimes {
type ClobberAbiNotSupported (line 186) | pub(crate) struct ClobberAbiNotSupported {
type InvalidAbiClobberAbi (line 194) | pub(crate) struct InvalidAbiClobberAbi<'a> {
type InvalidRegister (line 202) | pub(crate) struct InvalidRegister<'a> {
type InvalidRegisterClass (line 214) | pub(crate) struct InvalidRegisterClass {
type InvalidAsmTemplateModifierRegClass (line 223) | pub(crate) struct InvalidAsmTemplateModifierRegClass {
type InvalidAsmTemplateModifierRegClassSub (line 235) | pub(crate) enum InvalidAsmTemplateModifierRegClassSub {
type InvalidAsmTemplateModifierConst (line 246) | pub(crate) struct InvalidAsmTemplateModifierConst {
type InvalidAsmTemplateModifierSym (line 256) | pub(crate) struct InvalidAsmTemplateModifierSym {
type InvalidAsmTemplateModifierLabel (line 266) | pub(crate) struct InvalidAsmTemplateModifierLabel {
type RegisterClassOnlyClobber (line 278) | pub(crate) struct RegisterClassOnlyClobber {
type RegisterClassOnlyClobberStable (line 286) | pub(crate) struct RegisterClassOnlyClobberStable {
type RegisterConflict (line 294) | pub(crate) struct RegisterConflict<'a> {
type SubTupleBinding (line 309) | pub(crate) struct SubTupleBinding<'a> {
type ExtraDoubleDot (line 326) | pub(crate) struct ExtraDoubleDot<'a> {
type MisplacedDoubleDot (line 338) | pub(crate) struct MisplacedDoubleDot {
type MatchArmWithNoBody (line 345) | pub(crate) struct MatchArmWithNoBody {
type NeverPatternWithBody (line 358) | pub(crate) struct NeverPatternWithBody {
type NeverPatternWithGuard (line 367) | pub(crate) struct NeverPatternWithGuard {
type ArbitraryExpressionInPattern (line 375) | pub(crate) struct ArbitraryExpressionInPattern {
type InclusiveRangeWithNoEnd (line 386) | pub(crate) struct InclusiveRangeWithNoEnd {
type RTNSuggestion (line 398) | pub(crate) struct RTNSuggestion {
type BadReturnTypeNotation (line 406) | pub(crate) enum BadReturnTypeNotation {
type GenericParamDefaultInBinder (line 445) | pub(crate) struct GenericParamDefaultInBinder {
type AsyncBoundNotOnTrait (line 452) | pub(crate) struct AsyncBoundNotOnTrait {
type AsyncBoundOnlyForFnTraits (line 460) | pub(crate) struct AsyncBoundOnlyForFnTraits {
type NoPreciseCapturesOnApit (line 467) | pub(crate) struct NoPreciseCapturesOnApit {
type YieldInClosure (line 474) | pub(crate) struct YieldInClosure {
type InvalidLegacyConstGenericArg (line 490) | pub(crate) struct InvalidLegacyConstGenericArg {
type UseConstGenericArg (line 502) | pub(crate) struct UseConstGenericArg {
type UnionWithDefault (line 513) | pub(crate) struct UnionWithDefault {
type UnresolvedDelegationCallee (line 520) | pub(crate) struct UnresolvedDelegationCallee {
type CycleInDelegationSignatureResolution (line 527) | pub(crate) struct CycleInDelegationSignatureResolution {
FILE: compiler/rustc_ast_lowering/src/expr.rs
type WillCreateDefIdsVisitor (line 32) | struct WillCreateDefIdsVisitor {}
type Result (line 35) | type Result = ControlFlow<Span>;
method visit_anon_const (line 37) | fn visit_anon_const(&mut self, c: &'v AnonConst) -> Self::Result {
method visit_item (line 41) | fn visit_item(&mut self, item: &'v Item) -> Self::Result {
method visit_expr (line 45) | fn visit_expr(&mut self, ex: &'v Expr) -> Self::Result {
function lower_exprs (line 56) | fn lower_exprs(&mut self, exprs: &[Box<Expr>]) -> &'hir [hir::Expr<'hir>] {
function lower_expr (line 60) | pub(super) fn lower_expr(&mut self, e: &Expr) -> &'hir hir::Expr<'hir> {
function lower_expr_mut (line 64) | pub(super) fn lower_expr_mut(&mut self, e: &Expr) -> hir::Expr<'hir> {
function lower_const_block (line 397) | pub(crate) fn lower_const_block(&mut self, c: &AnonConst) -> hir::ConstB...
function lower_lit (line 408) | pub(crate) fn lower_lit(&mut self, token_lit: &token::Lit, span: Span) -...
function lower_unop (line 419) | fn lower_unop(&mut self, u: UnOp) -> hir::UnOp {
function lower_binop (line 427) | fn lower_binop(&mut self, b: BinOp) -> BinOp {
function lower_assign_op (line 431) | fn lower_assign_op(&mut self, a: AssignOp) -> AssignOp {
function lower_legacy_const_generics (line 435) | fn lower_legacy_const_generics(
function lower_expr_if (line 519) | fn lower_expr_if(
function lower_expr_while_in_loop_scope (line 554) | fn lower_expr_while_in_loop_scope(
function lower_expr_try_block (line 577) | fn lower_expr_try_block(&mut self, body: &Block, opt_ty: Option<&Ty>) ->...
function wrap_in_try_constructor (line 630) | fn wrap_in_try_constructor(
function lower_arm (line 641) | fn lower_arm(&mut self, arm: &Arm) -> hir::Arm<'hir> {
function lower_capture_clause (line 688) | fn lower_capture_clause(&mut self, capture_clause: CaptureBy) -> Capture...
function make_desugared_coroutine_expr (line 707) | pub(super) fn make_desugared_coroutine_expr(
function maybe_forward_track_caller (line 800) | pub(super) fn maybe_forward_track_caller(
function lower_expr_await (line 847) | fn lower_expr_await(&mut self, await_kw_span: Span, expr: &Expr) -> hir:...
function make_lowered_await (line 853) | fn make_lowered_await(
function lower_expr_use (line 1054) | fn lower_expr_use(&mut self, use_kw_span: Span, expr: &Expr) -> hir::Exp...
function lower_expr_closure (line 1058) | fn lower_expr_closure(
function closure_movability_for_fn (line 1116) | fn closure_movability_for_fn(
function lower_closure_binder (line 1146) | fn lower_closure_binder<'c>(
function lower_expr_coroutine_closure (line 1161) | fn lower_expr_coroutine_closure(
function lower_expr_assign (line 1239) | fn lower_expr_assign(
function extract_tuple_struct_path (line 1299) | fn extract_tuple_struct_path<'a>(
function extract_unit_struct_path (line 1321) | fn extract_unit_struct_path<'a>(
function destructure_assign (line 1341) | fn destructure_assign(
function destructure_assign_mut (line 1350) | fn destructure_assign_mut(
function destructure_sequence (line 1493) | fn destructure_sequence(
function lower_expr_range_closed (line 1519) | fn lower_expr_range_closed(&mut self, span: Span, e1: &Expr, e2: &Expr) ...
function lower_expr_range (line 1527) | fn lower_expr_range(
function lower_label (line 1616) | fn lower_label(
function lower_loop_destination (line 1627) | fn lower_loop_destination(&mut self, destination: Option<(NodeId, Label)...
function lower_jump_destination (line 1648) | fn lower_jump_destination(&mut self, id: NodeId, opt_label: Option<Label...
function with_try_block_scope (line 1659) | fn with_try_block_scope<T>(
function with_loop_scope (line 1670) | fn with_loop_scope<T>(&mut self, loop_id: hir::HirId, f: impl FnOnce(&mu...
function with_loop_condition_scope (line 1684) | fn with_loop_condition_scope<T>(&mut self, f: impl FnOnce(&mut Self) -> ...
function lower_expr_field (line 1695) | fn lower_expr_field(&mut self, f: &ExprField) -> hir::ExprField<'hir> {
function lower_expr_yield (line 1707) | fn lower_expr_yield(&mut self, span: Span, opt_expr: Option<&Expr>) -> h...
function lower_expr_for (line 1804) | fn lower_expr_for(
function lower_expr_try (line 1980) | fn lower_expr_try(&mut self, span: Span, sub_expr: &Expr) -> hir::ExprKi...
function lower_expr_yeet (line 2076) | fn lower_expr_yeet(&mut self, span: Span, sub_expr: Option<&Expr>) -> hi...
function expr_drop_temps (line 2119) | pub(super) fn expr_drop_temps(
function expr_drop_temps_mut (line 2127) | pub(super) fn expr_drop_temps_mut(
function expr_match (line 2135) | pub(super) fn expr_match(
function expr_break (line 2145) | fn expr_break(&mut self, span: Span) -> hir::Expr<'hir> {
function expr_break_alloc (line 2150) | fn expr_break_alloc(&mut self, span: Span) -> &'hir hir::Expr<'hir> {
function expr_mut_addr_of (line 2155) | fn expr_mut_addr_of(&mut self, span: Span, e: &'hir hir::Expr<'hir>) -> ...
function expr_unit (line 2159) | pub(super) fn expr_unit(&mut self, sp: Span) -> &'hir hir::Expr<'hir> {
function expr_str (line 2163) | pub(super) fn expr_str(&mut self, sp: Span, value: Symbol) -> hir::Expr<...
function expr_byte_str (line 2171) | pub(super) fn expr_byte_str(&mut self, sp: Span, value: ByteSymbol) -> h...
function expr_call_mut (line 2179) | pub(super) fn expr_call_mut(
function expr_struct (line 2188) | pub(super) fn expr_struct(
function expr_enum_variant (line 2197) | pub(super) fn expr_enum_variant(
function expr_enum_variant_lang_item (line 2215) | pub(super) fn expr_enum_variant_lang_item(
function expr_call (line 2225) | pub(super) fn expr_call(
function expr_call_lang_item_fn_mut (line 2234) | pub(super) fn expr_call_lang_item_fn_mut(
function expr_call_lang_item_fn (line 2244) | pub(super) fn expr_call_lang_item_fn(
function expr_lang_item_path (line 2253) | pub(super) fn expr_lang_item_path(
function expr_lang_item_type_relative (line 2263) | pub(super) fn expr_lang_item_type_relative(
function expr_ident (line 2281) | pub(super) fn expr_ident(
function expr_ident_mut (line 2290) | pub(super) fn expr_ident_mut(
function expr_unsafe (line 2310) | pub(super) fn expr_unsafe(
function expr_block_empty (line 2332) | fn expr_block_empty(&mut self, span: Span) -> &'hir hir::Expr<'hir> {
function expr_block (line 2338) | pub(super) fn expr_block(&mut self, b: &'hir hir::Block<'hir>) -> hir::E...
function block_expr_block (line 2345) | pub(super) fn block_expr_block(
function expr_ref (line 2353) | pub(super) fn expr_ref(&mut self, span: Span, expr: &'hir hir::Expr<'hir...
function expr_bool_literal (line 2357) | pub(super) fn expr_bool_literal(&mut self, span: Span, val: bool) -> hir...
function expr (line 2361) | pub(super) fn expr(&mut self, span: Span, kind: hir::ExprKind<'hir>) -> ...
function expr_field (line 2366) | pub(super) fn expr_field(
function arm (line 2381) | pub(super) fn arm(
function unreachable_code_attr (line 2397) | pub(super) fn unreachable_code_attr(&mut self, span: Span) -> Attribute {
type FutureKind (line 2413) | enum FutureKind {
FILE: compiler/rustc_ast_lowering/src/format.rs
function lower_format_args (line 13) | pub(crate) fn lower_format_args(&mut self, sp: Span, fmt: &FormatArgs) -...
function try_inline_lit (line 33) | fn try_inline_lit(&self, lit: token::Lit) -> Option<Symbol> {
function int_ty_max (line 57) | fn int_ty_max(&self, int_ty: IntTy) -> u128 {
function uint_ty_max (line 69) | fn uint_ty_max(&self, uint_ty: UintTy) -> u128 {
function inline_literals (line 89) | fn inline_literals<'fmt>(&self, mut fmt: Cow<'fmt, FormatArgs>) -> Cow<'...
function flatten_format_args (line 152) | fn flatten_format_args(mut fmt: Cow<'_, FormatArgs>) -> Cow<'_, FormatAr...
type ArgumentType (line 221) | enum ArgumentType {
function make_argument (line 233) | fn make_argument<'hir>(
function make_count (line 266) | fn make_count(
function expand_format_args (line 280) | fn expand_format_args<'hir>(
function for_all_argument_indexes (line 539) | fn for_all_argument_indexes(template: &mut [FormatArgsPiece], mut f: imp...
FILE: compiler/rustc_ast_lowering/src/index.rs
type NodeCollector (line 14) | struct NodeCollector<'a, 'hir> {
function index_hir (line 30) | pub(super) fn index_hir<'hir>(
function insert (line 75) | fn insert(&mut self, span: Span, hir_id: HirId, node: Node<'hir>) {
function with_parent (line 112) | fn with_parent<F: FnOnce(&mut Self)>(&mut self, parent_node_id: HirId, f...
function insert_nested (line 120) | fn insert_nested(&mut self, item: LocalDefId) {
function visit_nested_item (line 132) | fn visit_nested_item(&mut self, item: ItemId) {
function visit_nested_trait_item (line 137) | fn visit_nested_trait_item(&mut self, item_id: TraitItemId) {
function visit_nested_impl_item (line 141) | fn visit_nested_impl_item(&mut self, item_id: ImplItemId) {
function visit_nested_foreign_item (line 145) | fn visit_nested_foreign_item(&mut self, foreign_id: ForeignItemId) {
function visit_nested_body (line 149) | fn visit_nested_body(&mut self, id: BodyId) {
function visit_param (line 155) | fn visit_param(&mut self, param: &'hir Param<'hir>) {
function visit_item (line 164) | fn visit_item(&mut self, i: &'hir Item<'hir>) {
function visit_foreign_item (line 178) | fn visit_foreign_item(&mut self, fi: &'hir ForeignItem<'hir>) {
function visit_generic_param (line 185) | fn visit_generic_param(&mut self, param: &'hir GenericParam<'hir>) {
function visit_const_param_default (line 190) | fn visit_const_param_default(&mut self, param: HirId, ct: &'hir ConstArg...
function visit_trait_item (line 197) | fn visit_trait_item(&mut self, ti: &'hir TraitItem<'hir>) {
function visit_impl_item (line 205) | fn visit_impl_item(&mut self, ii: &'hir ImplItem<'hir>) {
function visit_pat (line 212) | fn visit_pat(&mut self, pat: &'hir Pat<'hir>) {
function visit_pat_expr (line 220) | fn visit_pat_expr(&mut self, expr: &'hir PatExpr<'hir>) {
function visit_pat_field (line 228) | fn visit_pat_field(&mut self, field: &'hir PatField<'hir>) {
function visit_arm (line 235) | fn visit_arm(&mut self, arm: &'hir Arm<'hir>) {
function visit_opaque_ty (line 245) | fn visit_opaque_ty(&mut self, opaq: &'hir OpaqueTy<'hir>) {
function visit_anon_const (line 253) | fn visit_anon_const(&mut self, constant: &'hir AnonConst) {
function visit_inline_const (line 261) | fn visit_inline_const(&mut self, constant: &'hir ConstBlock) {
function visit_expr (line 269) | fn visit_expr(&mut self, expr: &'hir Expr<'hir>) {
function visit_expr_field (line 277) | fn visit_expr_field(&mut self, field: &'hir ExprField<'hir>) {
function visit_const_arg_expr_field (line 284) | fn visit_const_arg_expr_field(&mut self, field: &'hir ConstArgExprField<...
function visit_stmt (line 291) | fn visit_stmt(&mut self, stmt: &'hir Stmt<'hir>) {
function visit_path_segment (line 299) | fn visit_path_segment(&mut self, path_segment: &'hir PathSegment<'hir>) {
function visit_ty (line 305) | fn visit_ty(&mut self, ty: &'hir Ty<'hir, AmbigArg>) {
function visit_const_arg (line 313) | fn visit_const_arg(&mut self, const_arg: &'hir ConstArg<'hir, AmbigArg>) {
function visit_infer (line 325) | fn visit_infer(
function visit_trait_ref (line 340) | fn visit_trait_ref(&mut self, tr: &'hir TraitRef<'hir>) {
function visit_block (line 348) | fn visit_block(&mut self, block: &'hir Block<'hir>) {
function visit_local (line 355) | fn visit_local(&mut self, l: &'hir LetStmt<'hir>) {
function visit_lifetime (line 362) | fn visit_lifetime(&mut self, lifetime: &'hir Lifetime) {
function visit_variant (line 366) | fn visit_variant(&mut self, v: &'hir Variant<'hir>) {
function visit_field_def (line 377) | fn visit_field_def(&mut self, field: &'hir FieldDef<'hir>) {
function visit_assoc_item_constraint (line 384) | fn visit_assoc_item_constraint(&mut self, constraint: &'hir AssocItemCon...
function visit_trait_item_ref (line 391) | fn visit_trait_item_ref(&mut self, id: &'hir TraitItemId) {
function visit_impl_item_ref (line 395) | fn visit_impl_item_ref(&mut self, id: &'hir ImplItemId) {
function visit_foreign_item_ref (line 399) | fn visit_foreign_item_ref(&mut self, id: &'hir ForeignItemId) {
function visit_where_predicate (line 403) | fn visit_where_predicate(&mut self, predicate: &'hir WherePredicate<'hir...
function visit_pattern_type_pattern (line 410) | fn visit_pattern_type_pattern(&mut self, pat: &'hir hir::TyPat<'hir>) {
function visit_precise_capturing_arg (line 418) | fn visit_precise_capturing_arg(
FILE: compiler/rustc_ast_lowering/src/item.rs
type Owners (line 35) | pub(super) enum Owners<'a, 'hir> {
function get_or_insert_mut (line 41) | fn get_or_insert_mut(&mut self, def_id: LocalDefId) -> &mut hir::MaybeOw...
type ItemLowerer (line 51) | pub(super) struct ItemLowerer<'a, 'hir, R> {
function add_ty_alias_where_clause (line 61) | fn add_ty_alias_where_clause(
function with_lctx (line 78) | fn with_lctx(
function lower_node (line 96) | pub(super) fn lower_node(&mut self, def_id: LocalDefId) {
function lower_mod (line 126) | pub(super) fn lower_mod(
function lower_item_ref (line 140) | pub(super) fn lower_item_ref(&mut self, i: &Item) -> SmallVec<[hir::Item...
function lower_item_id_use_tree (line 148) | fn lower_item_id_use_tree(&mut self, tree: &UseTree, vec: &mut SmallVec<...
function lower_eii_decl (line 160) | fn lower_eii_decl(
function lower_eii_impl (line 173) | fn lower_eii_impl(
function generate_extra_attrs_for_item_kind (line 210) | fn generate_extra_attrs_for_item_kind(
function lower_item (line 249) | fn lower_item(&mut self, i: &Item) -> &'hir hir::Item<'hir> {
function lower_item_kind (line 274) | fn lower_item_kind(
function lower_path_simple_eii (line 618) | fn lower_path_simple_eii(&mut self, id: NodeId, path: &Path) -> Option<D...
function lower_use_tree (line 629) | fn lower_use_tree(
function lower_assoc_item (line 763) | fn lower_assoc_item(&mut self, item: &AssocItem, ctxt: AssocCtxt) -> hir...
function lower_foreign_item (line 775) | fn lower_foreign_item(&mut self, i: &ForeignItem) -> &'hir hir::ForeignI...
function lower_foreign_item_ref (line 842) | fn lower_foreign_item_ref(&mut self, i: &ForeignItem) -> hir::ForeignIte...
function lower_variant (line 846) | fn lower_variant(&mut self, item_kind: &ItemKind, v: &Variant) -> hir::V...
function lower_variant_data (line 862) | fn lower_variant_data(
function lower_field_def (line 928) | pub(super) fn lower_field_def(
function lower_trait_item (line 955) | fn lower_trait_item(&mut self, i: &AssocItem) -> &'hir hir::TraitItem<'h...
function lower_trait_item_ref (line 1140) | fn lower_trait_item_ref(&mut self, i: &AssocItem) -> hir::TraitItemId {
function expr_err (line 1145) | pub(crate) fn expr_err(&mut self, span: Span, guar: ErrorGuaranteed) -> ...
function lower_trait_impl_header (line 1149) | fn lower_trait_impl_header(
function lower_impl_item (line 1185) | fn lower_impl_item(
function lower_impl_item_ref (line 1339) | fn lower_impl_item_ref(&mut self, i: &AssocItem) -> hir::ImplItemId {
function lower_defaultness (line 1343) | fn lower_defaultness(
function record_body (line 1358) | fn record_body(
function lower_body (line 1370) | pub(super) fn lower_body(
function lower_param (line 1385) | fn lower_param(&mut self, param: &Param) -> hir::Param<'hir> {
function lower_fn_body (line 1396) | pub(super) fn lower_fn_body(
function lower_fn_body_block (line 1419) | fn lower_fn_body_block(
function lower_const_body (line 1429) | pub(super) fn lower_const_body(&mut self, span: Span, expr: Option<&Expr...
function lower_maybe_coroutine_body (line 1446) | fn lower_maybe_coroutine_body(
function lower_coroutine_body_with_moved_arguments (line 1512) | pub(crate) fn lower_coroutine_body_with_moved_arguments(
function lower_method_sig (line 1709) | fn lower_method_sig(
function lower_fn_header (line 1726) | pub(super) fn lower_fn_header(
function lower_abi (line 1758) | pub(super) fn lower_abi(&mut self, abi_str: StrLit) -> ExternAbi {
function lower_extern (line 1790) | pub(super) fn lower_extern(&mut self, ext: Extern) -> ExternAbi {
function error_on_invalid_abi (line 1798) | fn error_on_invalid_abi(&self, abi: StrLit) {
function lower_constness (line 1815) | pub(super) fn lower_constness(&mut self, c: Const) -> hir::Constness {
function lower_safety (line 1822) | pub(super) fn lower_safety(&self, s: Safety, default: hir::Safety) -> hi...
function lower_generics (line 1833) | fn lower_generics<T>(
function lower_define_opaque (line 1902) | pub(super) fn lower_define_opaque(
function lower_generic_bound_predicate (line 1931) | pub(super) fn lower_generic_bound_predicate(
function lower_where_predicate (line 2000) | fn lower_where_predicate(
FILE: compiler/rustc_ast_lowering/src/lib.rs
type LoweringContext (line 93) | struct LoweringContext<'a, 'hir, R> {
function new (line 156) | fn new(tcx: TyCtxt<'hir>, resolver: &'a mut R) -> Self {
function dcx (line 218) | pub(crate) fn dcx(&self) -> DiagCtxtHandle<'hir> {
type SpanLowerer (line 223) | struct SpanLowerer {
method lower (line 229) | fn lower(&self, span: Span) -> Span {
type ResolverDelayedAstLowering (line 239) | struct ResolverDelayedAstLowering<'a, 'tcx> {
function legacy_const_generic_args (line 248) | fn legacy_const_generic_args(&self, expr: &Expr, tcx: TyCtxt<'tcx>) -> O...
function get_partial_res (line 252) | fn get_partial_res(&self, id: NodeId) -> Option<PartialRes> {
function get_import_res (line 256) | fn get_import_res(&self, id: NodeId) -> PerNS<Option<Res<NodeId>>> {
function get_label_res (line 260) | fn get_label_res(&self, id: NodeId) -> Option<NodeId> {
function get_lifetime_res (line 264) | fn get_lifetime_res(&self, id: NodeId) -> Option<LifetimeRes> {
function extra_lifetime_params (line 268) | fn extra_lifetime_params(&self, id: NodeId) -> Vec<(Ident, NodeId, Lifet...
function delegation_info (line 272) | fn delegation_info(&self, id: LocalDefId) -> Option<&DelegationInfo> {
function opt_local_def_id (line 276) | fn opt_local_def_id(&self, id: NodeId) -> Option<LocalDefId> {
function local_def_id (line 280) | fn local_def_id(&self, id: NodeId) -> LocalDefId {
function lifetime_elision_allowed (line 284) | fn lifetime_elision_allowed(&self, id: NodeId) -> bool {
function insert_new_def_id (line 288) | fn insert_new_def_id(&mut self, node_id: NodeId, def_id: LocalDefId) {
function insert_partial_res (line 292) | fn insert_partial_res(&mut self, node_id: NodeId, res: PartialRes) {
function trait_candidates (line 296) | fn trait_candidates(&self, node_id: NodeId) -> Option<&'tcx [hir::TraitC...
function next_node_id (line 301) | fn next_node_id(&mut self) -> NodeId {
function next_node_id (line 306) | fn next_node_id(current_id: &mut NodeId) -> NodeId {
function legacy_const_generic_args (line 316) | fn legacy_const_generic_args(&self, expr: &Expr, tcx: TyCtxt<'tcx>) -> O...
function get_partial_res (line 344) | fn get_partial_res(&self, id: NodeId) -> Option<PartialRes> {
function get_import_res (line 349) | fn get_import_res(&self, id: NodeId) -> PerNS<Option<Res<NodeId>>> {
function get_label_res (line 354) | fn get_label_res(&self, id: NodeId) -> Option<NodeId> {
function get_lifetime_res (line 359) | fn get_lifetime_res(&self, id: NodeId) -> Option<LifetimeRes> {
function extra_lifetime_params (line 370) | fn extra_lifetime_params(&self, id: NodeId) -> Vec<(Ident, NodeId, Lifet...
function delegation_info (line 374) | fn delegation_info(&self, id: LocalDefId) -> Option<&DelegationInfo> {
function opt_local_def_id (line 378) | fn opt_local_def_id(&self, id: NodeId) -> Option<LocalDefId> {
function local_def_id (line 382) | fn local_def_id(&self, id: NodeId) -> LocalDefId {
function lifetime_elision_allowed (line 386) | fn lifetime_elision_allowed(&self, id: NodeId) -> bool {
function insert_new_def_id (line 390) | fn insert_new_def_id(&mut self, node_id: NodeId, def_id: LocalDefId) {
function insert_partial_res (line 394) | fn insert_partial_res(&mut self, node_id: NodeId, res: PartialRes) {
function trait_candidates (line 398) | fn trait_candidates(&self, node_id: NodeId) -> Option<&'tcx [hir::TraitC...
function next_node_id (line 403) | fn next_node_id(&mut self) -> NodeId {
type RelaxedBoundPolicy (line 413) | enum RelaxedBoundPolicy<'a> {
type RelaxedBoundForbiddenReason (line 420) | enum RelaxedBoundForbiddenReason {
type ImplTraitContext (line 431) | enum ImplTraitContext {
type ImplTraitPosition (line 459) | enum ImplTraitPosition {
method fmt (line 484) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
type FnDeclKind (line 514) | enum FnDeclKind {
type AstOwner (line 525) | enum AstOwner<'a> {
type TryBlockScope (line 534) | enum TryBlockScope {
function index_crate (line 545) | fn index_crate<'a, 'b>(
function compute_hir_hash (line 591) | fn compute_hir_hash(
function lower_to_hir (line 612) | pub fn lower_to_hir(tcx: TyCtxt<'_>, (): ()) -> mid_hir::Crate<'_> {
function lower_delayed_owner (line 654) | pub fn lower_delayed_owner(tcx: TyCtxt<'_>, def_id: LocalDefId) {
type ParamMode (line 687) | enum ParamMode {
type AllowReturnTypeNotation (line 695) | enum AllowReturnTypeNotation {
type GenericArgsMode (line 702) | enum GenericArgsMode {
function create_def (line 714) | fn create_def(
function next_node_id (line 744) | fn next_node_id(&mut self) -> NodeId {
function opt_local_def_id (line 750) | fn opt_local_def_id(&self, node: NodeId) -> Option<LocalDefId> {
function local_def_id (line 754) | fn local_def_id(&self, node: NodeId) -> LocalDefId {
function owner_id (line 759) | fn owner_id(&self, node: NodeId) -> hir::OwnerId {
function with_hir_id_owner (line 769) | fn with_hir_id_owner(
function make_owner_info (line 830) | fn make_owner_info(&mut self, node: hir::OwnerNode<'hir>) -> &'hir hir::...
function lower_node_id (line 867) | fn lower_node_id(&mut self, ast_node_id: NodeId) -> HirId {
function next_id (line 896) | fn next_id(&mut self) -> HirId {
function lower_res (line 905) | fn lower_res(&mut self, res: Res<NodeId>) -> Res {
function expect_full_res (line 921) | fn expect_full_res(&mut self, id: NodeId) -> Res<NodeId> {
function lower_import_res (line 925) | fn lower_import_res(&mut self, id: NodeId, span: Span) -> PerNS<Option<R...
function make_lang_item_qpath (line 937) | fn make_lang_item_qpath(
function make_lang_item_path (line 946) | fn make_lang_item_path(
function mark_span_with_reason (line 970) | fn mark_span_with_reason(
function span_lowerer (line 981) | fn span_lowerer(&self) -> SpanLowerer {
function lower_span (line 990) | fn lower_span(&self, span: Span) -> Span {
function lower_ident (line 994) | fn lower_ident(&self, ident: Ident) -> Ident {
function lifetime_res_to_generic_param (line 1000) | fn lifetime_res_to_generic_param(
function lower_lifetime_binder (line 1051) | fn lower_lifetime_binder(
function with_dyn_type_scope (line 1077) | fn with_dyn_type_scope<T>(&mut self, in_scope: bool, f: impl FnOnce(&mut...
function with_new_scopes (line 1088) | fn with_new_scopes<T>(&mut self, scope_span: Span, f: impl FnOnce(&mut S...
function lower_attrs (line 1112) | fn lower_attrs(
function lower_attrs_with_extra (line 1122) | fn lower_attrs_with_extra(
function lower_attrs_vec (line 1155) | fn lower_attrs_vec(
function alias_attrs (line 1180) | fn alias_attrs(&mut self, id: HirId, target_id: HirId) {
function lower_delim_args (line 1189) | fn lower_delim_args(&self, args: &DelimArgs) -> DelimArgs {
function lower_assoc_item_constraint (line 1195) | fn lower_assoc_item_constraint(
function emit_bad_parenthesized_trait_in_assoc_ty (line 1323) | fn emit_bad_parenthesized_trait_in_assoc_ty(&self, data: &ParenthesizedA...
function lower_generic_arg (line 1348) | fn lower_generic_arg(
function lower_ty_alloc (line 1411) | fn lower_ty_alloc(&mut self, t: &Ty, itctx: ImplTraitContext) -> &'hir h...
function lower_path_ty (line 1415) | fn lower_path_ty(
function ty (line 1468) | fn ty(&mut self, span: Span, kind: hir::TyKind<'hir>) -> hir::Ty<'hir> {
function ty_tup (line 1472) | fn ty_tup(&mut self, span: Span, tys: &'hir [hir::Ty<'hir>]) -> hir::Ty<...
function lower_ty (line 1476) | fn lower_ty(&mut self, t: &Ty, itctx: ImplTraitContext) -> hir::Ty<'hir> {
function lower_ty_direct_lifetime (line 1670) | fn lower_ty_direct_lifetime(
function lower_opaque_impl_trait (line 1727) | fn lower_opaque_impl_trait(
function lower_opaque_inner (line 1747) | fn lower_opaque_inner(
function lower_precise_capturing_args (line 1771) | fn lower_precise_capturing_args(
function lower_fn_params_to_idents (line 1795) | fn lower_fn_params_to_idents(&mut self, decl: &FnDecl) -> &'hir [Option<...
function lower_fn_decl (line 1820) | fn lower_fn_decl(
function lower_coroutine_fn_ret_ty (line 1937) | fn lower_coroutine_fn_ret_ty(
function lower_coroutine_fn_output_type_to_bound (line 1989) | fn lower_coroutine_fn_output_type_to_bound(
function lower_param_bound (line 2033) | fn lower_param_bound(
function lower_lifetime (line 2055) | fn lower_lifetime(
function lower_lifetime_hidden_in_path (line 2064) | fn lower_lifetime_hidden_in_path(
function new_named_lifetime (line 2080) | fn new_named_lifetime(
function lower_generic_params_mut (line 2123) | fn lower_generic_params_mut(
function lower_generic_params (line 2131) | fn lower_generic_params(
function lower_generic_param (line 2140) | fn lower_generic_param(
function lower_generic_param_kind (line 2164) | fn lower_generic_param_kind(
function lower_trait_ref (line 2242) | fn lower_trait_ref(
function lower_poly_trait_ref (line 2264) | fn lower_poly_trait_ref(
function validate_relaxed_bound (line 2287) | fn validate_relaxed_bound(
function lower_mt (line 2365) | fn lower_mt(&mut self, mt: &MutTy, itctx: ImplTraitContext) -> hir::MutT...
function lower_param_bounds (line 2370) | fn lower_param_bounds(
function lower_param_bounds_mut (line 2379) | fn lower_param_bounds_mut(
function lower_universal_param_and_bounds (line 2389) | fn lower_universal_param_and_bounds(
function lower_block_expr (line 2441) | fn lower_block_expr(&mut self, b: &Block) -> hir::Expr<'hir> {
function lower_array_length_to_const_arg (line 2446) | fn lower_array_length_to_const_arg(&mut self, c: &AnonConst) -> &'hir hi...
function lower_const_path_to_const_arg (line 2466) | fn lower_const_path_to_const_arg(
function lower_const_item_rhs (line 2533) | fn lower_const_item_rhs(
function lower_expr_to_const_arg_direct (line 2562) | fn lower_expr_to_const_arg_direct(&mut self, expr: &Expr) -> hir::ConstA...
function lower_anon_const_to_const_arg_and_alloc (line 2729) | fn lower_anon_const_to_const_arg_and_alloc(
function lower_anon_const_to_const_arg (line 2737) | fn lower_anon_const_to_const_arg(
function lower_anon_const_to_anon_const (line 2808) | fn lower_anon_const_to_anon_const(
function lower_unsafe_source (line 2825) | fn lower_unsafe_source(&mut self, u: UnsafeSource) -> hir::UnsafeSource {
function lower_trait_bound_modifiers (line 2832) | fn lower_trait_bound_modifiers(
function stmt (line 2851) | fn stmt(&mut self, span: Span, kind: hir::StmtKind<'hir>) -> hir::Stmt<'...
function stmt_expr (line 2855) | fn stmt_expr(&mut self, span: Span, expr: hir::Expr<'hir>) -> hir::Stmt<...
function stmt_let_pat (line 2859) | fn stmt_let_pat(
function stmt_super_let_pat (line 2885) | fn stmt_super_let_pat(
function block_expr (line 2906) | fn block_expr(&mut self, expr: &'hir hir::Expr<'hir>) -> &'hir hir::Bloc...
function block_all (line 2910) | fn block_all(
function pat_cf_continue (line 2927) | fn pat_cf_continue(&mut self, span: Span, pat: &'hir hir::Pat<'hir>) -> ...
function pat_cf_break (line 2932) | fn pat_cf_break(&mut self, span: Span, pat: &'hir hir::Pat<'hir>) -> &'h...
function pat_some (line 2937) | fn pat_some(&mut self, span: Span, pat: &'hir hir::Pat<'hir>) -> &'hir h...
function pat_none (line 2942) | fn pat_none(&mut self, span: Span) -> &'hir hir::Pat<'hir> {
function single_pat_field (line 2946) | fn single_pat_field(
function pat_lang_item_variant (line 2961) | fn pat_lang_item_variant(
function pat_ident (line 2971) | fn pat_ident(&mut self, span: Span, ident: Ident) -> (&'hir hir::Pat<'hi...
function pat_ident_mut (line 2975) | fn pat_ident_mut(&mut self, span: Span, ident: Ident) -> (hir::Pat<'hir>...
function pat_ident_binding_mode (line 2979) | fn pat_ident_binding_mode(
function pat_ident_binding_mode_mut (line 2989) | fn pat_ident_binding_mode_mut(
function pat (line 3008) | fn pat(&mut self, span: Span, kind: hir::PatKind<'hir>) -> &'hir hir::Pa...
function pat_without_dbm (line 3017) | fn pat_without_dbm(&mut self, span: Span, kind: hir::PatKind<'hir>) -> h...
function ty_path (line 3026) | fn ty_path(&mut self, mut hir_id: HirId, span: Span, qpath: hir::QPath<'...
function elided_dyn_bound (line 3060) | fn elided_dyn_bound(&mut self, span: Span) -> &'hir hir::Lifetime {
type GenericArgsCtor (line 3074) | struct GenericArgsCtor<'hir> {
function is_empty (line 3082) | fn is_empty(&self) -> bool {
function into_generic_args (line 3088) | fn into_generic_args(
FILE: compiler/rustc_ast_lowering/src/pat.rs
function lower_pat (line 18) | pub(crate) fn lower_pat(&mut self, pattern: &Pat) -> &'hir hir::Pat<'hir> {
function lower_pat_mut (line 22) | fn lower_pat_mut(&mut self, mut pattern: &Pat) -> hir::Pat<'hir> {
function lower_pat_tuple (line 160) | fn lower_pat_tuple(
function lower_pat_slice (line 217) | fn lower_pat_slice(&mut self, pats: &[Pat]) -> hir::PatKind<'hir> {
function lower_pat_ident (line 283) | fn lower_pat_ident(
function pat_wild_with_node_id_of (line 340) | fn pat_wild_with_node_id_of(&mut self, p: &Pat, hir_id: hir::HirId) -> &...
function pat_with_node_id_of (line 345) | fn pat_with_node_id_of(
function ban_extra_rest_pat (line 355) | pub(crate) fn ban_extra_rest_pat(&self, sp: Span, prev_sp: Span, ctx: &s...
function ban_illegal_rest_pat (line 360) | fn ban_illegal_rest_pat(&self, sp: Span) -> hir::PatKind<'hir> {
function lower_range_end (line 369) | fn lower_range_end(&mut self, e: &RangeEnd, has_end: bool) -> hir::Range...
function lower_expr_within_pat (line 392) | fn lower_expr_within_pat(
function lower_ty_pat (line 436) | pub(crate) fn lower_ty_pat(
function lower_ty_pat_mut (line 444) | fn lower_ty_pat_mut(&mut self, pattern: &TyPat, base_type: Span) -> hir:...
function lower_excluded_range_end (line 485) | fn lower_excluded_range_end(&mut self, e: &AnonConst) -> &'hir hir::Cons...
function lower_ty_pat_range_end (line 525) | fn lower_ty_pat_range_end(
FILE: compiler/rustc_ast_lowering/src/path.rs
function lower_qpath (line 25) | pub(crate) fn lower_qpath(
function lower_use_path (line 230) | pub(crate) fn lower_use_path(
function lower_path_segment (line 253) | pub(crate) fn lower_path_segment(
function maybe_insert_elided_lifetimes_in_path (line 419) | fn maybe_insert_elided_lifetimes_in_path(
function lower_angle_bracketed_parameter_data (line 468) | pub(crate) fn lower_angle_bracketed_parameter_data(
function lower_parenthesized_parameter_data (line 503) | fn lower_parenthesized_parameter_data(
function assoc_ty_binding (line 569) | pub(crate) fn assoc_ty_binding(
function map_trait_to_async_trait (line 600) | fn map_trait_to_async_trait(&self, def_id: DefId) -> Option<DefId> {
FILE: compiler/rustc_ast_lowering/src/stability.rs
function enabled_names (line 10) | pub(crate) fn enabled_names(features: &rustc_feature::Features, span: Sp...
function extern_abi_enabled (line 18) | pub(crate) fn extern_abi_enabled(
function gate_unstable_abi (line 32) | pub(crate) fn gate_unstable_abi(sess: &Session, features: &Features, spa...
type UnstableAbi (line 42) | pub struct UnstableAbi {
method fmt (line 54) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
type GateReason (line 48) | enum GateReason {
function extern_abi_stability (line 67) | pub fn extern_abi_stability(abi: ExternAbi) -> Result<(), UnstableAbi> {
FILE: compiler/rustc_ast_passes/src/ast_validation.rs
type SelfSemantic (line 45) | enum SelfSemantic {
type TraitOrImpl (line 50) | enum TraitOrImpl {
method constness (line 57) | fn constness(&self) -> Option<Span> {
type AllowDefault (line 67) | enum AllowDefault {
method when (line 73) | fn when(b: bool) -> Self {
type AllowFinal (line 78) | enum AllowFinal {
method when (line 84) | fn when(b: bool) -> Self {
type AstValidator (line 89) | struct AstValidator<'a> {
function with_in_trait_or_impl (line 119) | fn with_in_trait_or_impl(
function with_in_trait (line 129) | fn with_in_trait(&mut self, vis: Span, constness: Const, f: impl FnOnce(...
function with_in_extern_mod (line 138) | fn with_in_extern_mod(
function with_tilde_const (line 151) | fn with_tilde_const(
function check_type_alias_where_clause_location (line 161) | fn check_type_alias_where_clause_location(
function with_impl_trait (line 204) | fn with_impl_trait(&mut self, outer_span: Option<Span>, f: impl FnOnce(&...
function walk_ty (line 211) | fn walk_ty(&mut self, t: &'a Ty) {
function dcx (line 240) | fn dcx(&self) -> DiagCtxtHandle<'a> {
function visibility_not_permitted (line 244) | fn visibility_not_permitted(&self, vis: &Visibility, note: errors::Visib...
function check_decl_no_pat (line 256) | fn check_decl_no_pat(decl: &FnDecl, mut report_err: impl FnMut(Span, Opt...
function check_impl_fn_not_const (line 268) | fn check_impl_fn_not_const(&self, constness: Const, parent_constness: Co...
function check_trait_fn_not_const (line 282) | fn check_trait_fn_not_const(&self, constness: Const, parent: &TraitOrImp...
function check_async_fn_in_const_trait_or_impl (line 330) | fn check_async_fn_in_const_trait_or_impl(&self, sig: &FnSig, parent: &Tr...
function check_fn_decl (line 351) | fn check_fn_decl(&self, fn_decl: &FnDecl, self_semantic: SelfSemantic) {
function check_decl_num_args (line 360) | fn check_decl_num_args(&self, fn_decl: &FnDecl) {
function check_decl_cvariadic_pos (line 371) | fn check_decl_cvariadic_pos(&self, fn_decl: &FnDecl) {
function check_decl_attrs (line 384) | fn check_decl_attrs(&self, fn_decl: &FnDecl) {
function check_decl_self_param (line 410) | fn check_decl_self_param(&self, fn_decl: &FnDecl, self_semantic: SelfSem...
function check_extern_fn_signature (line 419) | fn check_extern_fn_signature(&self, abi: ExternAbi, ctxt: FnCtxt, ident:...
function reject_safe_fn (line 479) | fn reject_safe_fn(&self, abi: ExternAbi, ctxt: FnCtxt, sig: &FnSig) {
function reject_coroutine (line 502) | fn reject_coroutine(&self, abi: ExternAbi, sig: &FnSig) {
function reject_return (line 519) | fn reject_return(&self, abi: ExternAbi, sig: &FnSig) {
function reject_params_or_return (line 531) | fn reject_params_or_return(&self, abi: ExternAbi, ident: &Ident, sig: &F...
function check_item_safety (line 563) | fn check_item_safety(&self, span: Span, safety: Safety) {
function check_fn_ptr_safety (line 583) | fn check_fn_ptr_safety(&self, span: Span, safety: Safety) {
function check_defaultness (line 589) | fn check_defaultness(
function check_final_has_body (line 609) | fn check_final_has_body(&self, item: &Item<AssocItemKind>, defaultness: ...
function ending_semi_or_hi (line 620) | fn ending_semi_or_hi(&self, sp: Span) -> Span {
function check_type_no_bounds (line 631) | fn check_type_no_bounds(&self, bounds: &[GenericBound], ctx: &str) {
function check_foreign_ty_genericless (line 640) | fn check_foreign_ty_genericless(&self, generics: &Generics, after_where_...
function check_foreign_kind_bodyless (line 664) | fn check_foreign_kind_bodyless(&self, ident: Ident, kind: &str, body_spa...
function check_foreign_fn_bodyless (line 677) | fn check_foreign_fn_bodyless(&self, ident: Ident, body: Option<&Block>) {
function current_extern_span (line 688) | fn current_extern_span(&self) -> Span {
function check_foreign_fn_headerless (line 693) | fn check_foreign_fn_headerless(
function check_foreign_item_ascii_only (line 720) | fn check_foreign_item_ascii_only(&self, ident: Ident) {
function check_c_variadic_type (line 734) | fn check_c_variadic_type(&self, fk: FnKind<'a>, attrs: &'a AttrVec) {
function check_c_variadic_abi (line 806) | fn check_c_variadic_abi(
function check_item_named (line 861) | fn check_item_named(&self, ident: Ident, kind: &str) {
function check_nomangle_item_asciionly (line 868) | fn check_nomangle_item_asciionly(&self, ident: Ident, item_span: Span) {
function check_mod_file_item_asciionly (line 876) | fn check_mod_file_item_asciionly(&self, ident: Ident) {
function deny_const_auto_traits (line 883) | fn deny_const_auto_traits(&self, constness: Const) {
function deny_generic_params (line 889) | fn deny_generic_params(&self, generics: &Generics, ident_span: Span) {
function deny_super_traits (line 896) | fn deny_super_traits(&self, bounds: &GenericBounds, ident: Span) {
function deny_where_clause (line 904) | fn deny_where_clause(&self, where_clause: &WhereClause, ident: Span) {
function deny_items (line 916) | fn deny_items(&self, trait_items: &[Box<AssocItem>], ident_span: Span) {
function correct_generic_order_suggestion (line 924) | fn correct_generic_order_suggestion(&self, data: &AngleBracketedArgs) ->...
function check_generic_args_before_constraints (line 952) | fn check_generic_args_before_constraints(&self, data: &AngleBracketedArg...
function visit_ty_common (line 979) | fn visit_ty_common(&mut self, ty: &'a Ty) {
function handle_missing_abi (line 1021) | fn handle_missing_abi(&mut self, span: Span, id: NodeId) {
function visit_attrs_vis (line 1042) | fn visit_attrs_vis(&mut self, attrs: &'a AttrVec, vis: &'a Visibility) {
function visit_attrs_vis_ident (line 1048) | fn visit_attrs_vis_ident(&mut self, attrs: &'a AttrVec, vis: &'a Visibil...
function validate_generic_param_order (line 1057) | fn validate_generic_param_order(dcx: DiagCtxtHandle<'_>, generics: &[Gen...
function visit_attribute (line 1129) | fn visit_attribute(&mut self, attr: &Attribute) {
function visit_ty (line 1133) | fn visit_ty(&mut self, ty: &'a Ty) {
function visit_item (line 1138) | fn visit_item(&mut self, item: &'a Item) {
function visit_foreign_item (line 1478) | fn visit_foreign_item(&mut self, fi: &'a ForeignItem) {
function visit_generic_args (line 1528) | fn visit_generic_args(&mut self, generic_args: &'a GenericArgs) {
function visit_generics (line 1558) | fn visit_generics(&mut self, generics: &'a Generics) {
function visit_param_bound (line 1614) | fn visit_param_bound(&mut self, bound: &'a GenericBound, ctxt: BoundKind) {
function visit_fn (line 1672) | fn visit_fn(&mut self, fk: FnKind<'a>, attrs: &AttrVec, span: Span, id: ...
function visit_assoc_item (line 1776) | fn visit_assoc_item(&mut self, item: &'a AssocItem, ctxt: AssocCtxt) {
function visit_anon_const (line 1923) | fn visit_anon_const(&mut self, anon_const: &'a AnonConst) {
function deny_equality_constraints (line 1933) | fn deny_equality_constraints(
function check_crate (line 2095) | pub fn check_crate(
FILE: compiler/rustc_ast_passes/src/errors.rs
type VisibilityNotPermitted (line 12) | pub(crate) struct VisibilityNotPermitted {
type VisibilityNotPermittedNote (line 22) | pub(crate) enum VisibilityNotPermittedNote {
type ImplFnConst (line 34) | pub(crate) struct ImplFnConst {
type TraitFnConst (line 47) | pub(crate) struct TraitFnConst {
type AsyncFnInConstTraitOrTraitImpl (line 90) | pub(crate) struct AsyncFnInConstTraitOrTraitImpl {
type ForbiddenBound (line 100) | pub(crate) struct ForbiddenBound {
type ForbiddenConstParam (line 107) | pub(crate) struct ForbiddenConstParam {
type FnParamTooMany (line 114) | pub(crate) struct FnParamTooMany {
type FnParamCVarArgsNotLast (line 122) | pub(crate) struct FnParamCVarArgsNotLast {
type FnParamDocComment (line 129) | pub(crate) struct FnParamDocComment {
type FnParamForbiddenAttr (line 139) | pub(crate) struct FnParamForbiddenAttr {
type FnParamForbiddenSelf (line 147) | pub(crate) struct FnParamForbiddenSelf {
type ForbiddenDefault (line 155) | pub(crate) struct ForbiddenDefault {
type ForbiddenFinal (line 164) | pub(crate) struct ForbiddenFinal {
type ForbiddenFinalWithoutBody (line 173) | pub(crate) struct ForbiddenFinalWithoutBody {
type AssocConstWithoutBody (line 182) | pub(crate) struct AssocConstWithoutBody {
type AssocFnWithoutBody (line 195) | pub(crate) struct AssocFnWithoutBody {
type AssocTypeWithoutBody (line 208) | pub(crate) struct AssocTypeWithoutBody {
type ConstWithoutBody (line 221) | pub(crate) struct ConstWithoutBody {
type StaticWithoutBody (line 234) | pub(crate) struct StaticWithoutBody {
type TyAliasWithoutBody (line 247) | pub(crate) struct TyAliasWithoutBody {
type FnWithoutBody (line 260) | pub(crate) struct FnWithoutBody {
type ExternBlockSuggestion (line 274) | pub(crate) enum ExternBlockSuggestion {
type InvalidSafetyOnExtern (line 300) | pub(crate) struct InvalidSafetyOnExtern {
type InvalidSafetyOnItem (line 316) | pub(crate) struct InvalidSafetyOnItem {
type InvalidSafetyOnFnPtr (line 323) | pub(crate) struct InvalidSafetyOnFnPtr {
type UnsafeStatic (line 330) | pub(crate) struct UnsafeStatic {
type BoundInContext (line 337) | pub(crate) struct BoundInContext<'a> {
type ExternTypesCannotHave (line 346) | pub(crate) struct ExternTypesCannotHave<'a> {
type BodyInExtern (line 359) | pub(crate) struct BodyInExtern<'a> {
type FnBodyInExtern (line 378) | pub(crate) struct FnBodyInExtern {
type FnQualifierInExtern (line 392) | pub(crate) struct FnQualifierInExtern {
type ExternItemAscii (line 406) | pub(crate) struct ExternItemAscii {
type CVariadicNoExtern (line 418) | pub(crate) struct CVariadicNoExtern {
type CVariadicMustBeUnsafe (line 425) | pub(crate) struct CVariadicMustBeUnsafe {
type CVariadicBadExtern (line 443) | pub(crate) struct CVariadicBadExtern {
type CVariadicBadNakedExtern (line 454) | pub(crate) struct CVariadicBadNakedExtern {
type ItemUnderscore (line 464) | pub(crate) struct ItemUnderscore<'a> {
type NoMangleAscii (line 473) | pub(crate) struct NoMangleAscii {
type ModuleNonAscii (line 481) | pub(crate) struct ModuleNonAscii {
type AutoTraitGeneric (line 489) | pub(crate) struct AutoTraitGeneric {
type AutoTraitBounds (line 504) | pub(crate) struct AutoTraitBounds {
type AutoTraitItems (line 520) | pub(crate) struct AutoTraitItems {
type ConstAutoTrait (line 537) | pub(crate) struct ConstAutoTrait {
type ArgsBeforeConstraint (line 544) | pub(crate) struct ArgsBeforeConstraint {
type EmptyLabelManySpans (line 583) | pub(crate) struct EmptyLabelManySpans(pub Vec<Span>);
method add_to_diag (line 587) | fn add_to_diag<G: EmissionGuarantee>(self, diag: &mut Diag<'_, G>) {
type PatternFnPointer (line 594) | pub(crate) struct PatternFnPointer {
type TraitObjectBound (line 601) | pub(crate) struct TraitObjectBound {
type NestedImplTrait (line 608) | pub(crate) struct NestedImplTrait {
type AtLeastOneTrait (line 619) | pub(crate) struct AtLeastOneTrait {
type OutOfOrderParams (line 626) | pub(crate) struct OutOfOrderParams<'a> {
type ObsoleteAuto (line 643) | pub(crate) struct ObsoleteAuto {
type UnsafeNegativeImpl (line 650) | pub(crate) struct UnsafeNegativeImpl {
type UnsafeItem (line 661) | pub(crate) struct UnsafeItem {
type MissingUnsafeOnExtern (line 669) | pub(crate) struct MissingUnsafeOnExtern {
type MissingUnsafeOnExternLint (line 676) | pub(crate) struct MissingUnsafeOnExternLint {
type FieldlessUnion (line 687) | pub(crate) struct FieldlessUnion {
type WhereClauseAfterTypeAlias (line 695) | pub(crate) struct WhereClauseAfterTypeAlias {
type WhereClauseBeforeTypeAlias (line 705) | pub(crate) struct WhereClauseBeforeTypeAlias {
type WhereClauseBeforeTypeAliasSugg (line 713) | pub(crate) enum WhereClauseBeforeTypeAliasSugg {
type GenericDefaultTrailing (line 735) | pub(crate) struct GenericDefaultTrailing {
type NestedLifetimes (line 742) | pub(crate) struct NestedLifetimes {
type ConstBoundTraitObject (line 749) | pub(crate) struct ConstBoundTraitObject {
type TildeConstDisallowed (line 758) | pub(crate) struct TildeConstDisallowed {
type TildeConstReason (line 766) | pub(crate) enum TildeConstReason {
type ConstAndCoroutine (line 832) | pub(crate) struct ConstAndCoroutine {
type CoroutineAndCVariadic (line 846) | pub(crate) struct CoroutineAndCVariadic {
type CVariadicNotSupported (line 858) | pub(crate) struct CVariadicNotSupported<'a> {
type PatternInForeign (line 867) | pub(crate) struct PatternInForeign {
type PatternInBodiless (line 876) | pub(crate) struct PatternInBodiless {
type EqualityInWhere (line 885) | pub(crate) struct EqualityInWhere {
type AssociatedSuggestion (line 902) | pub(crate) struct AssociatedSuggestion {
type AssociatedSuggestion2 (line 915) | pub(crate) struct AssociatedSuggestion2 {
type FeatureOnNonNightly (line 927) | pub(crate) struct FeatureOnNonNightly {
type StableFeature (line 941) | pub(crate) struct StableFeature {
type IncompatibleFeatures (line 949) | pub(crate) struct IncompatibleFeatures {
type MissingDependentFeatures (line 959) | pub(crate) struct MissingDependentFeatures {
type NegativeBoundUnsupported (line 968) | pub(crate) struct NegativeBoundUnsupported {
type ConstraintOnNegativeBound (line 975) | pub(crate) struct ConstraintOnNegativeBound {
type NegativeBoundWithParentheticalNotation (line 982) | pub(crate) struct NegativeBoundWithParentheticalNotation {
type MatchArmWithNoBody (line 989) | pub(crate) struct MatchArmWithNoBody {
type PreciseCapturingNotAllowedHere (line 1006) | pub(crate) struct PreciseCapturingNotAllowedHere {
type DuplicatePreciseCapturing (line 1014) | pub(crate) struct DuplicatePreciseCapturing {
type MissingAbi (line 1024) | pub(crate) struct MissingAbi {
type MissingAbiSugg (line 1032) | pub(crate) struct MissingAbiSugg {
type AbiCustomSafeForeignFunction (line 1044) | pub(crate) struct AbiCustomSafeForeignFunction {
type AbiCustomSafeFunction (line 1059) | pub(crate) struct AbiCustomSafeFunction {
type AbiCannotBeCoroutine (line 1075) | pub(crate) struct AbiCannotBeCoroutine {
type AbiMustNotHaveParametersOrReturnType (line 1093) | pub(crate) struct AbiMustNotHaveParametersOrReturnType {
type AbiMustNotHaveReturnType (line 1112) | pub(crate) struct AbiMustNotHaveReturnType {
type AbiX86Interrupt (line 1124) | pub(crate) struct AbiX86Interrupt {
type ScalableVectorNotTupleStruct (line 1132) | pub(crate) struct ScalableVectorNotTupleStruct {
type ScalableVectorBadArch (line 1139) | pub(crate) struct ScalableVectorBadArch {
type RequiresRustAbi (line 1146) | pub(crate) struct RequiresRustAbi {
type UnusedVisibility (line 1157) | pub(crate) struct UnusedVisibility {
type PatternsInFnsWithoutBodySub (line 1173) | pub(crate) struct PatternsInFnsWithoutBodySub {
type PatternsInFnsWithoutBody (line 1181) | pub(crate) enum PatternsInFnsWithoutBody {
type DeprecatedWhereClauseLocation (line 1197) | pub(crate) struct DeprecatedWhereClauseLocation {
type DeprecatedWhereClauseLocationSugg (line 1203) | pub(crate) enum DeprecatedWhereClauseLocationSugg {
FILE: compiler/rustc_ast_passes/src/feature_gate.rs
function check_attribute (line 69) | pub fn check_attribute(attr: &ast::Attribute, sess: &Session, features: ...
type PostExpansionVisitor (line 73) | struct PostExpansionVisitor<'a> {
function check_impl_trait (line 82) | fn check_impl_trait(&self, ty: &ast::Ty, in_associated_ty: bool) {
function check_late_bound_lifetime_defs (line 119) | fn check_late_bound_lifetime_defs(&self, params: &[ast::GenericParam]) {
function visit_attribute (line 166) | fn visit_attribute(&mut self, attr: &ast::Attribute) {
function visit_item (line 204) | fn visit_item(&mut self, i: &'a ast::Item) {
function visit_foreign_item (line 276) | fn visit_foreign_item(&mut self, i: &'a ast::ForeignItem) {
function visit_ty (line 299) | fn visit_ty(&mut self, ty: &'a ast::Ty) {
function visit_where_predicate_kind (line 316) | fn visit_where_predicate_kind(&mut self, kind: &'a ast::WherePredicateKi...
function visit_fn_ret_ty (line 324) | fn visit_fn_ret_ty(&mut self, ret_ty: &'a ast::FnRetTy) {
function visit_generic_args (line 334) | fn visit_generic_args(&mut self, args: &'a ast::GenericArgs) {
function visit_expr (line 347) | fn visit_expr(&mut self, e: &'a ast::Expr) {
function visit_pat (line 374) | fn visit_pat(&mut self, pattern: &'a ast::Pat) {
function visit_poly_trait_ref (line 400) | fn visit_poly_trait_ref(&mut self, t: &'a ast::PolyTraitRef) {
function visit_fn (line 405) | fn visit_fn(&mut self, fn_kind: FnKind<'a>, _: &AttrVec, span: Span, _: ...
function visit_assoc_item (line 421) | fn visit_assoc_item(&mut self, i: &'a ast::AssocItem, ctxt: AssocCtxt) {
function check_crate (line 479) | pub fn check_crate(krate: &ast::Crate, sess: &Session, features: &Featur...
function maybe_stage_features (line 651) | fn maybe_stage_features(sess: &Session, features: &Features, krate: &ast...
function check_incompatible_features (line 704) | fn check_incompatible_features(sess: &Session, features: &Features) {
function check_dependent_features (line 720) | fn check_dependent_features(sess: &Session, features: &Features) {
function check_new_solver_banned_features (line 741) | fn check_new_solver_banned_features(sess: &Session, features: &Features) {
FILE: compiler/rustc_ast_pretty/src/helpers.rs
method word_space (line 6) | pub fn word_space<W: Into<Cow<'static, str>>>(&mut self, w: W) {
method popen (line 11) | pub fn popen(&mut self) {
method pclose (line 15) | pub fn pclose(&mut self) {
method hardbreak_if_not_bol (line 19) | pub fn hardbreak_if_not_bol(&mut self) {
method space_if_not_bol (line 25) | pub fn space_if_not_bol(&mut self) {
method nbsp (line 31) | pub fn nbsp(&mut self) {
method word_nbsp (line 35) | pub fn word_nbsp<S: Into<Cow<'static, str>>>(&mut self, w: S) {
method synth_comment (line 42) | pub fn synth_comment(&mut self, text: impl Into<Cow<'static, str>>) {
FILE: compiler/rustc_ast_pretty/src/pp.rs
type Breaks (line 146) | pub enum Breaks {
type IndentStyle (line 152) | enum IndentStyle {
type BreakToken (line 168) | pub(crate) struct BreakToken {
type BeginToken (line 175) | pub(crate) struct BeginToken {
type Token (line 181) | pub(crate) enum Token {
type PrintFrame (line 192) | enum PrintFrame {
constant SIZE_INFINITY (line 197) | const SIZE_INFINITY: isize = 0xffff;
constant MARGIN (line 200) | const MARGIN: isize = 78;
constant MIN_SPACE (line 202) | const MIN_SPACE: isize = 60;
type Printer (line 204) | pub struct Printer {
method new (line 266) | pub fn new() -> Self {
method last_token (line 281) | pub(crate) fn last_token(&self) -> Option<&Token> {
method last_token_still_buffered (line 285) | pub(crate) fn last_token_still_buffered(&self) -> Option<&Token> {
method replace_last_token_still_buffered (line 290) | pub(crate) fn replace_last_token_still_buffered(&mut self, token: Toke...
method scan_eof (line 294) | fn scan_eof(&mut self) {
method scan_begin (line 302) | fn scan_begin(&mut self, token: BeginToken) -> BoxMarker {
method scan_end (line 314) | fn scan_end(&mut self, b: BoxMarker) {
method scan_break (line 324) | fn scan_break(&mut self, token: BreakToken) {
method scan_string (line 337) | fn scan_string(&mut self, string: Cow<'static, str>) {
method offset (line 348) | pub(crate) fn offset(&mut self, offset: isize) {
method check_stream (line 354) | fn check_stream(&mut self) {
method advance_left (line 367) | fn advance_left(&mut self) {
method check_stack (line 392) | fn check_stack(&mut self, mut depth: usize) {
method get_top (line 421) | fn get_top(&self) -> PrintFrame {
method print_begin (line 428) | fn print_begin(&mut self, token: BeginToken, size: isize) {
method print_end (line 442) | fn print_end(&mut self) {
method print_break (line 448) | fn print_break(&mut self, token: BreakToken, size: isize) {
method print_string (line 468) | fn print_string(&mut self, string: &str) {
type BufEntry (line 232) | struct BufEntry {
type BoxMarker (line 254) | pub struct BoxMarker;
method drop (line 260) | fn drop(&mut self) {
FILE: compiler/rustc_ast_pretty/src/pp/convenience.rs
method rbox (line 9) | pub fn rbox(&mut self, indent: isize, breaks: Breaks) -> BoxMarker {
method ibox (line 14) | pub fn ibox(&mut self, indent: isize) -> BoxMarker {
method cbox (line 19) | pub fn cbox(&mut self, indent: isize) -> BoxMarker {
method visual_align (line 23) | pub fn visual_align(&mut self) -> BoxMarker {
method break_offset (line 27) | pub fn break_offset(&mut self, n: usize, off: isize) {
method end (line 35) | pub fn end(&mut self, b: BoxMarker) {
method eof (line 39) | pub fn eof(mut self) -> String {
method word (line 44) | pub fn word<S: Into<Cow<'static, str>>>(&mut self, wrd: S) {
method spaces (line 49) | fn spaces(&mut self, n: usize) {
method zerobreak (line 53) | pub fn zerobreak(&mut self) {
method space (line 57) | pub fn space(&mut self) {
method hardbreak (line 61) | pub fn hardbreak(&mut self) {
method is_beginning_of_line (line 65) | pub fn is_beginning_of_line(&self) -> bool {
method hardbreak_tok_offset (line 72) | pub(crate) fn hardbreak_tok_offset(off: isize) -> Token {
method trailing_comma (line 80) | pub fn trailing_comma(&mut self) {
method trailing_comma_or_space (line 84) | pub fn trailing_comma_or_space(&mut self) {
method is_hardbreak_tok (line 94) | pub(crate) fn is_hardbreak_tok(&self) -> bool {
FILE: compiler/rustc_ast_pretty/src/pp/ring.rs
type RingBuffer (line 14) | pub(super) struct RingBuffer<T> {
function new (line 21) | pub(super) fn new() -> Self {
function is_empty (line 25) | pub(super) fn is_empty(&self) -> bool {
function push (line 29) | pub(super) fn push(&mut self, value: T) -> usize {
function clear (line 35) | pub(super) fn clear(&mut self) {
function index_of_first (line 39) | pub(super) fn index_of_first(&self) -> usize {
function first (line 43) | pub(super) fn first(&self) -> Option<&T> {
function first_mut (line 47) | pub(super) fn first_mut(&mut self) -> Option<&mut T> {
function pop_first (line 51) | pub(super) fn pop_first(&mut self) -> Option<T> {
function last (line 57) | pub(super) fn last(&self) -> Option<&T> {
function last_mut (line 61) | pub(super) fn last_mut(&mut self) -> Option<&mut T> {
type Output (line 67) | type Output = T;
function index (line 68) | fn index(&self, index: usize) -> &Self::Output {
function index_mut (line 74) | fn index_mut(&mut self, index: usize) -> &mut Self::Output {
FILE: compiler/rustc_ast_pretty/src/pprust/mod.rs
function token_kind_to_string (line 15) | pub fn token_kind_to_string(tok: &TokenKind) -> Cow<'static, str> {
function token_to_string (line 20) | pub fn token_to_string(token: &Token) -> Cow<'static, str> {
function ty_to_string (line 24) | pub fn ty_to_string(ty: &ast::Ty) -> String {
function bounds_to_string (line 28) | pub fn bounds_to_string(bounds: &[ast::GenericBound]) -> String {
function where_bound_predicate_to_string (line 32) | pub fn where_bound_predicate_to_string(where_bound_predicate: &ast::Wher...
function pat_to_string (line 39) | pub fn pat_to_string(pat: &ast::Pat) -> String {
function expr_to_string (line 43) | pub fn expr_to_string(e: &ast::Expr) -> String {
function tt_to_string (line 47) | pub fn tt_to_string(tt: &TokenTree) -> String {
function tts_to_string (line 51) | pub fn tts_to_string(tokens: &TokenStream) -> String {
function item_to_string (line 55) | pub fn item_to_string(i: &ast::Item) -> String {
function assoc_item_to_string (line 59) | pub fn assoc_item_to_string(i: &ast::AssocItem) -> String {
function foreign_item_to_string (line 63) | pub fn foreign_item_to_string(i: &ast::ForeignItem) -> String {
function stmt_to_string (line 67) | pub fn stmt_to_string(s: &ast::Stmt) -> String {
function path_to_string (line 71) | pub fn path_to_string(p: &ast::Path) -> String {
function path_segment_to_string (line 75) | pub fn path_segment_to_string(p: &ast::PathSegment) -> String {
function vis_to_string (line 79) | pub fn vis_to_string(v: &ast::Visibility) -> String {
function impl_restriction_to_string (line 83) | pub fn impl_restriction_to_string(r: &ast::ImplRestriction) -> String {
function meta_list_item_to_string (line 87) | pub fn meta_list_item_to_string(li: &ast::MetaItemInner) -> String {
function attribute_to_string (line 91) | pub fn attribute_to_string(attr: &ast::Attribute) -> String {
function to_string (line 95) | pub fn to_string(f: impl FnOnce(&mut State<'_>)) -> String {
function crate_to_string_for_macros (line 99) | pub fn crate_to_string_for_macros(krate: &ast::Crate) -> String {
FILE: compiler/rustc_ast_pretty/src/pprust/state.rs
type MacHeader (line 33) | pub enum MacHeader<'a> {
type AnnNode (line 38) | pub enum AnnNode<'a> {
type PpAnn (line 49) | pub trait PpAnn {
method pre (line 50) | fn pre(&self, _state: &mut State<'_>, _node: AnnNode<'_>) {}
method post (line 51) | fn post(&self, _state: &mut State<'_>, _node: AnnNode<'_>) {}
type NoAnn (line 54) | struct NoAnn;
type Comments (line 58) | pub struct Comments<'a> {
function all_whitespace (line 67) | fn all_whitespace(s: &str, col: CharPos) -> Option<usize> {
function trim_whitespace_prefix (line 78) | fn trim_whitespace_prefix(s: &str, col: CharPos) -> &str {
function split_block_comment_into_lines (line 92) | fn split_block_comment_into_lines(text: &str, col: CharPos) -> Vec<Strin...
function gather_comments (line 104) | fn gather_comments(sm: &SourceMap, path: FileName, src: String) -> Vec<C...
function new (line 194) | pub fn new(sm: &'a SourceMap, filename: FileName, input: String) -> Comm...
function peek (line 200) | fn peek(&self) -> Option<&Comment> {
function next (line 204) | fn next(&mut self) -> Option<Comment> {
function trailing_comment (line 208) | fn trailing_comment(
type State (line 229) | pub struct State<'a> {
constant INDENT_UNIT (line 236) | const INDENT_UNIT: isize = 4;
function print_crate (line 240) | pub fn print_crate<'a>(
function print_crate_as_interface (line 261) | pub fn print_crate_as_interface(
function print_crate_inner (line 273) | fn print_crate_inner<'a>(
function idents_would_merge (line 335) | fn idents_would_merge(tt1: &TokenTree, tt2: &TokenTree) -> bool {
function space_between (line 345) | fn space_between(tt1: &TokenTree, tt2: &TokenTree) -> bool {
function doc_comment_to_string (line 398) | pub fn doc_comment_to_string(
function literal_to_string (line 420) | fn literal_to_string(lit: token::Lit) -> String {
type Target (line 448) | type Target = pp::Printer;
function deref (line 449) | fn deref(&self) -> &Self::Target {
function deref_mut (line 455) | fn deref_mut(&mut self) -> &mut Self::Target {
type PrintState (line 461) | pub trait PrintState<'a>: std::ops::Deref<Target = pp::Printer> + std::o...
method comments (line 462) | fn comments(&self) -> Option<&Comments<'a>>;
method comments_mut (line 463) | fn comments_mut(&mut self) -> Option<&mut Comments<'a>>;
method ann_post (line 464) | fn ann_post(&mut self, ident: Ident);
method print_generic_args (line 465) | fn print_generic_args(&mut self, args: &ast::GenericArgs, colons_befor...
method print_ident (line 467) | fn print_ident(&mut self, ident: Ident) {
method strsep (line 472) | fn strsep<'x, T: 'x, F, I>(
method commasep (line 499) | fn commasep<'x, T: 'x, F, I>(&mut self, b: Breaks, elts: I, op: F)
method maybe_print_comment (line 507) | fn maybe_print_comment(&mut self, pos: BytePos) -> bool {
method print_comment (line 520) | fn print_comment(&mut self, cmnt: Comment) {
method peek_comment (line 586) | fn peek_comment<'b>(&'b self) -> Option<&'b Comment>
method next_comment (line 593) | fn next_comment(&mut self) -> Option<Comment> {
method maybe_print_trailing_comment (line 597) | fn maybe_print_trailing_comment(&mut self, span: rustc_span::Span, nex...
method print_remaining_comments (line 605) | fn print_remaining_comments(&mut self) {
method print_string (line 616) | fn print_string(&mut self, st: &str, style: ast::StrStyle) {
method maybe_print_shebang (line 626) | fn maybe_print_shebang(&mut self) {
method print_inner_attributes (line 640) | fn print_inner_attributes(&mut self, attrs: &[ast::Attribute]) -> bool {
method print_outer_attributes (line 644) | fn print_outer_attributes(&mut self, attrs: &[ast::Attribute]) -> bool {
method print_either_attributes (line 648) | fn print_either_attributes(
method print_attribute_inline (line 672) | fn print_attribute_inline(&mut self, attr: &ast::Attribute, is_inline:...
method print_attr_item (line 703) | fn print_attr_item(&mut self, item: &ast::AttrItem, span: Span) {
method print_tt (line 748) | fn print_tt(&mut self, tt: &TokenTree, convert_dollar_crate: bool) -> ...
method print_tts (line 820) | fn print_tts(&mut self, tts: &TokenStream, convert_dollar_crate: bool) {
method print_mac_common (line 839) | fn print_mac_common(
method print_mac_def (line 900) | fn print_mac_def(
method print_path (line 939) | fn print_path(&mut self, path: &ast::Path, colons_before_params: bool,...
method print_path_segment (line 950) | fn print_path_segment(&mut self, segment: &ast::PathSegment, colons_be...
method head (line 959) | fn head<S: Into<Cow<'static, str>>>(&mut self, w: S) -> (BoxMarker, Bo...
method bopen (line 972) | fn bopen(&mut self, ib: BoxMarker) {
method bclose_maybe_open (line 977) | fn bclose_maybe_open(&mut self, span: rustc_span::Span, no_space: bool...
method bclose (line 988) | fn bclose(&mut self, span: rustc_span::Span, no_space: bool, cb: BoxMa...
method break_offset_if_not_bol (line 993) | fn break_offset_if_not_bol(&mut self, n: usize, off: isize) {
method token_kind_to_string (line 1009) | fn token_kind_to_string(&self, tok: &TokenKind) -> Cow<'static, str> {
method token_kind_to_string_ext (line 1013) | fn token_kind_to_string_ext(
method token_to_string (line 1103) | fn token_to_string(&self, token: &Token) -> Cow<'static, str> {
method token_to_string_ext (line 1107) | fn token_to_string_ext(&self, token: &Token, convert_dollar_crate: boo...
method ty_to_string (line 1112) | fn ty_to_string(&self, ty: &ast::Ty) -> String {
method pat_to_string (line 1116) | fn pat_to_string(&self, pat: &ast::Pat) -> String {
method expr_to_string (line 1120) | fn expr_to_string(&self, e: &ast::Expr) -> String {
method meta_item_lit_to_string (line 1124) | fn meta_item_lit_to_string(&self, lit: &ast::MetaItemLit) -> String {
method stmt_to_string (line 1128) | fn stmt_to_string(&self, stmt: &ast::Stmt) -> String {
method item_to_string (line 1132) | fn item_to_string(&self, i: &ast::Item) -> String {
method assoc_item_to_string (line 1136) | fn assoc_item_to_string(&self, i: &ast::AssocItem) -> String {
method foreign_item_to_string (line 1140) | fn foreign_item_to_string(&self, i: &ast::ForeignItem) -> String {
method path_to_string (line 1144) | fn path_to_string(&self, p: &ast::Path) -> String {
method vis_to_string (line 1148) | fn vis_to_string(&self, v: &ast::Visibility) -> String {
method impl_restriction_to_string (line 1152) | fn impl_restriction_to_string(&self, r: &ast::ImplRestriction) -> Stri...
method block_to_string (line 1156) | fn block_to_string(&self, blk: &ast::Block) -> String {
method attr_item_to_string (line 1163) | fn attr_item_to_string(&self, ai: &ast::AttrItem) -> String {
method tts_to_string (line 1167) | fn tts_to_string(&self, tokens: &TokenStream) -> String {
method to_string (line 1171) | fn to_string(f: impl FnOnce(&mut State<'_>)) -> String {
function comments (line 1179) | fn comments(&self) -> Option<&Comments<'a>> {
function comments_mut (line 1183) | fn comments_mut(&mut self) -> Option<&mut Comments<'a>> {
function ann_post (line 1187) | fn ann_post(&mut self, ident: Ident) {
function print_generic_args (line 1191) | fn print_generic_args(&mut self, args: &ast::GenericArgs, colons_before_...
function new (line 1222) | pub fn new() -> State<'a> {
function commasep_cmnt (line 1226) | fn commasep_cmnt<T, F, G>(&mut self, b: Breaks, elts: &[T], mut op: F, m...
function commasep_exprs (line 1247) | fn commasep_exprs(&mut self, b: Breaks, exprs: &[Box<ast::Expr>]) {
function print_opt_lifetime (line 1251) | pub fn print_opt_lifetime(&mut self, lifetime: &Option<ast::Lifetime>) {
function print_assoc_item_constraint (line 1258) | pub fn print_assoc_item_constraint(&mut self, constraint: &ast::AssocIte...
function print_generic_arg (line 1281) | pub fn print_generic_arg(&mut self, generic_arg: &GenericArg) {
function print_ty_pat (line 1289) | pub fn print_ty_pat(&mut self, pat: &ast::TyPat) {
function print_type (line 1323) | pub fn print_type(&mut self, ty: &ast::Ty) {
function print_trait_ref (line 1444) | fn print_trait_ref(&mut self, t: &ast::TraitRef) {
function print_formal_generic_params (line 1448) | fn print_formal_generic_params(&mut self, generic_params: &[ast::Generic...
function print_poly_trait_ref (line 1456) | fn print_poly_trait_ref(&mut self, t: &ast::PolyTraitRef) {
function print_stmt (line 1488) | fn print_stmt(&mut self, st: &ast::Stmt) {
function print_block (line 1550) | fn print_block(&mut self, blk: &ast::Block, cb: BoxMarker, ib: BoxMarker) {
function print_block_unclosed_indent (line 1554) | fn print_block_unclosed_indent(&mut self, blk: &ast::Block, ib: BoxMarke...
function print_block_with_attrs (line 1558) | fn print_block_with_attrs(
function print_block_maybe_unclosed (line 1568) | fn print_block_maybe_unclosed(
function print_let (line 1627) | fn print_let(&mut self, pat: &ast::Pat, expr: &ast::Expr, fixup: FixupCo...
function print_mac (line 1639) | fn print_mac(&mut self, m: &ast::MacCall) {
function inline_asm_template_and_operands (line 1652) | fn inline_asm_template_and_operands<'asm>(
function print_inline_asm (line 1731) | fn print_inline_asm(&mut self, asm: &ast::InlineAsm) {
function print_local_decl (line 1837) | fn print_local_decl(&mut self, loc: &ast::Local) {
function print_name (line 1845) | fn print_name(&mut self, name: Symbol) {
function print_qpath (line 1850) | fn print_qpath(&mut self, path: &ast::Path, qself: &ast::QSelf, colons_b...
function print_pat_paren_if_or (line 1875) | fn print_pat_paren_if_or(&mut self, pat: &ast::Pat) {
function print_pat (line 1886) | fn print_pat(&mut self, pat: &ast::Pat) {
function print_explicit_self (line 2055) | fn print_explicit_self(&mut self, explicit_self: &ast::ExplicitSelf) {
function print_coroutine_kind (line 2083) | fn print_coroutine_kind(&mut self, coroutine_kind: ast::CoroutineKind) {
function print_type_bounds (line 2098) | pub fn print_type_bounds(&mut self, bounds: &[ast::GenericBound]) {
function print_lifetime (line 2126) | fn print_lifetime(&mut self, lifetime: ast::Lifetime) {
function print_lifetime_bounds (line 2131) | fn print_lifetime_bounds(&mut self, bounds: &ast::GenericBounds) {
function print_generic_params (line 2145) | fn print_generic_params(&mut self, generic_params: &[ast::GenericParam]) {
function print_mutability (line 2198) | pub fn print_mutability(&mut self, mutbl: ast::Mutability, print_const: ...
function print_mt (line 2209) | fn print_mt(&mut self, mt: &ast::MutTy, print_const: bool) {
function print_param (line 2214) | fn print_param(&mut self, input: &ast::Param, is_closure: bool) {
function print_fn_ret_ty (line 2237) | fn print_fn_ret_ty(&mut self, fn_ret_ty: &ast::FnRetTy) {
function print_ty_fn (line 2248) | fn print_ty_fn(
function print_fn_header_info (line 2264) | fn print_fn_header_info(&mut self, header: ast::FnHeader) {
function print_safety (line 2284) | fn print_safety(&mut self, s: ast::Safety) {
function print_constness (line 2292) | fn print_constness(&mut self, s: ast::Const) {
function print_is_auto (line 2299) | fn print_is_auto(&mut self, s: ast::IsAuto) {
function print_meta_item_lit (line 2306) | fn print_meta_item_lit(&mut self, lit: &ast::MetaItemLit) {
function print_token_literal (line 2310) | fn print_token_literal(&mut self, token_lit: token::Lit, span: Span) {
function print_symbol (line 2315) | fn print_symbol(&mut self, sym: Symbol, style: ast::StrStyle) {
function print_inner_attributes_no_trailing_hardbreak (line 2319) | fn print_inner_attributes_no_trailing_hardbreak(&mut self, attrs: &[ast:...
function print_outer_attributes_inline (line 2323) | fn print_outer_attributes_inline(&mut self, attrs: &[ast::Attribute]) ->...
function print_attribute (line 2327) | fn print_attribute(&mut self, attr: &ast::Attribute) {
function print_meta_list_item (line 2331) | fn print_meta_list_item(&mut self, item: &ast::MetaItemInner) {
function print_meta_item (line 2338) | fn print_meta_item(&mut self, item: &ast::MetaItem) {
function bounds_to_string (line 2373) | pub(crate) fn bounds_to_string(&self, bounds: &[ast::GenericBound]) -> S...
function where_bound_predicate_to_string (line 2377) | pub(crate) fn where_bound_predicate_to_string(
function tt_to_string (line 2384) | pub(crate) fn tt_to_string(&self, tt: &TokenTree) -> String {
function path_segment_to_string (line 2390) | pub(crate) fn path_segment_to_string(&self, p: &ast::PathSegment) -> Str...
function meta_list_item_to_string (line 2394) | pub(crate) fn meta_list_item_to_string(&self, li: &ast::MetaItemInner) -...
function attribute_to_string (line 2398) | pub(crate) fn attribute_to_string(&self, attr: &ast::Attribute) -> String {
FILE: compiler/rustc_ast_pretty/src/pprust/state/expr.rs
function print_else (line 18) | fn print_else(&mut self, els: Option<&ast::Expr>) {
function print_if (line 46) | fn print_if(&mut self, test: &ast::Expr, blk: &ast::Block, elseopt: Opti...
function print_call_post (line 56) | fn print_call_post(&mut self, args: &[Box<ast::Expr>]) {
function print_expr_as_cond (line 64) | fn print_expr_as_cond(&mut self, expr: &ast::Expr) {
function cond_needs_par (line 72) | fn cond_needs_par(expr: &ast::Expr) -> bool {
function print_expr_cond_paren (line 83) | pub(super) fn print_expr_cond_paren(
function print_expr_vec (line 113) | fn print_expr_vec(&mut self, exprs: &[Box<ast::Expr>]) {
function print_expr_anon_const (line 121) | pub(super) fn print_expr_anon_const(
function print_expr_repeat (line 139) | fn print_expr_repeat(&mut self, element: &ast::Expr, count: &ast::AnonCo...
function print_expr_struct (line 149) | fn print_expr_struct(
function print_expr_tup (line 206) | fn print_expr_tup(&mut self, exprs: &[Box<ast::Expr>]) {
function print_expr_call (line 215) | fn print_expr_call(&mut self, func: &ast::Expr, args: &[Box<ast::Expr>],...
function print_expr_method_call (line 245) | fn print_expr_method_call(
function print_expr_binary (line 280) | fn print_expr_binary(
function print_expr_unary (line 339) | fn print_expr_unary(&mut self, op: ast::UnOp, expr: &ast::Expr, fixup: F...
function print_expr_addr_of (line 348) | fn print_expr_addr_of(
function print_expr (line 374) | pub(super) fn print_expr(&mut self, expr: &ast::Expr, fixup: FixupContex...
function print_expr_outer_attr_style (line 378) | pub(super) fn print_expr_outer_attr_style(
function print_arm (line 883) | fn print_arm(&mut self, arm: &ast::Arm) {
function print_closure_binder (line 930) | fn print_closure_binder(&mut self, binder: &ast::ClosureBinder) {
function print_movability (line 939) | fn print_movability(&mut self, movability: ast::Movability) {
function print_capture_clause (line 946) | fn print_capture_clause(&mut self, capture_clause: ast::CaptureBy) {
function reconstruct_format_args_template_string (line 955) | fn reconstruct_format_args_template_string(pieces: &[FormatArgsPiece]) -...
function expr_ends_with_dot (line 1044) | fn expr_ends_with_dot(expr: &ast::Expr) -> bool {
FILE: compiler/rustc_ast_pretty/src/pprust/state/fixup.rs
type FixupContext (line 8) | pub(crate) struct FixupContext {
method new_stmt (line 120) | pub(crate) fn new_stmt() -> Self {
method new_match_arm (line 126) | pub(crate) fn new_match_arm() -> Self {
method new_cond (line 134) | pub(crate) fn new_cond() -> Self {
method leftmost_subexpression (line 149) | pub(crate) fn leftmost_subexpression(self) -> Self {
method leftmost_subexpression_with_dot (line 166) | pub(crate) fn leftmost_subexpression_with_dot(self) -> Self {
method leftmost_subexpression_with_operator (line 181) | pub(crate) fn leftmost_subexpression_with_operator(
method rightmost_subexpression (line 199) | pub(crate) fn rightmost_subexpression(self) -> Self {
method would_cause_statement_boundary (line 214) | pub(crate) fn would_cause_statement_boundary(self, expr: &Expr) -> bool {
method needs_par_as_let_scrutinee (line 230) | pub(crate) fn needs_par_as_let_scrutinee(self, expr: &Expr) -> bool {
method precedence (line 237) | pub(crate) fn precedence(self, expr: &Expr) -> ExprPrecedence {
FILE: compiler/rustc_ast_pretty/src/pprust/state/item.rs
type DelegationKind (line 11) | enum DelegationKind<'a> {
function visibility_qualified (line 17) | fn visibility_qualified(vis: &ast::Visibility, s: &str) -> String {
function print_foreign_mod (line 22) | fn print_foreign_mod(&mut self, nmod: &ast::ForeignMod, attrs: &[ast::At...
function print_foreign_item (line 29) | pub(crate) fn print_foreign_item(&mut self, item: &ast::ForeignItem) {
function print_item_const (line 85) | fn print_item_const(
function print_associated_type (line 125) | fn print_associated_type(
function print_item (line 158) | pub(crate) fn print_item(&mut self, item: &ast::Item) {
function print_enum_def (line 445) | fn print_enum_def(
function print_visibility (line 473) | pub(crate) fn print_visibility(&mut self, vis: &ast::Visibility) {
function print_impl_restriction (line 488) | pub(crate) fn print_impl_restriction(&mut self, impl_restriction: &ast::...
function print_defaultness (line 502) | fn print_defaultness(&mut self, defaultness: ast::Defaultness) {
function print_struct (line 508) | fn print_struct(
function print_variant (line 565) | pub(crate) fn print_variant(&mut self, v: &ast::Variant) {
function print_assoc_item (line 577) | pub(crate) fn print_assoc_item(&mut self, item: &ast::AssocItem) {
function print_delegation (line 651) | fn print_delegation(
function print_fn_full (line 700) | fn print_fn_full(&mut self, vis: &ast::Visibility, attrs: &[ast::Attribu...
function print_define_opaques (line 744) | fn print_define_opaques(&mut self, define_opaque: Option<&[(ast::NodeId,...
function print_contract (line 759) | fn print_contract(&mut self, contract: &ast::FnContract) {
function print_fn (line 774) | pub(crate) fn print_fn(
function print_fn_params_and_ret (line 791) | pub(crate) fn print_fn_params_and_ret(&mut self, decl: &ast::FnDecl, is_...
function print_where_clause (line 799) | fn print_where_clause(&mut self, where_clause: &ast::WhereClause) {
function print_where_predicate (line 817) | pub fn print_where_predicate(&mut self, predicate: &ast::WherePredicate) {
function print_where_bound_predicate (line 847) | pub(crate) fn print_where_bound_predicate(
function print_use_tree (line 860) | fn print_use_tree(&mut self, tree: &ast::UseTree) {
FILE: compiler/rustc_ast_pretty/src/pprust/tests.rs
function fun_to_string (line 7) | fn fun_to_string(
function variant_to_string (line 21) | fn variant_to_string(var: &ast::Variant) -> String {
function test_fun_to_string (line 26) | fn test_fun_to_string() {
function test_variant_to_string (line 40) | fn test_variant_to_string() {
FILE: compiler/rustc_attr_parsing/src/attributes/allow_unstable.rs
type AllowInternalUnstableParser (line 6) | pub(crate) struct AllowInternalUnstableParser;
constant PATH (line 8) | const PATH: &[Symbol] = &[sym::allow_internal_unstable];
type Item (line 9) | type Item = (Symbol, Span);
constant CONVERT (line 10) | const CONVERT: ConvertFn<Self::Item> =
constant ALLOWED_TARGETS (line 12) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(&[
constant TEMPLATE (line 18) | const TEMPLATE: AttributeTemplate = template!(Word, List: &["feat1, fe...
method extend (line 20) | fn extend(
type UnstableFeatureBoundParser (line 30) | pub(crate) struct UnstableFeatureBoundParser;
constant PATH (line 32) | const PATH: &[rustc_span::Symbol] = &[sym::unstable_feature_bound];
type Item (line 33) | type Item = (Symbol, Span);
constant CONVERT (line 34) | const CONVERT: ConvertFn<Self::Item> = |items, _| AttributeKind::Unsta...
constant ALLOWED_TARGETS (line 35) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(&[
constant TEMPLATE (line 40) | const TEMPLATE: AttributeTemplate = template!(Word, List: &["feat1, fe...
method extend (line 42) | fn extend(
type RustcAllowConstFnUnstableParser (line 55) | pub(crate) struct RustcAllowConstFnUnstableParser;
constant PATH (line 57) | const PATH: &[Symbol] = &[sym::rustc_allow_const_fn_unstable];
type Item (line 58) | type Item = Symbol;
constant CONVERT (line 59) | const CONVERT: ConvertFn<Self::Item> =
constant ALLOWED_TARGETS (line 61) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(&[
constant TEMPLATE (line 67) | const TEMPLATE: AttributeTemplate = template!(Word, List: &["feat1, fe...
method extend (line 69) | fn extend(
function parse_unstable (line 77) | fn parse_unstable<S: Stage>(
FILE: compiler/rustc_attr_parsing/src/attributes/autodiff.rs
type RustcAutodiffParser (line 17) | pub(crate) struct RustcAutodiffParser;
constant PATH (line 20) | const PATH: &[Symbol] = &[sym::rustc_autodiff];
constant ON_DUPLICATE (line 21) | const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Error;
constant ALLOWED_TARGETS (line 22) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(&[
constant TEMPLATE (line 29) | const TEMPLATE: AttributeTemplate = template!(
method convert (line 34) | fn convert(cx: &mut AcceptContext<'_, '_, S>, args: &ArgParser) -> Opt...
FILE: compiler/rustc_attr_parsing/src/attributes/body.rs
type CoroutineParser (line 5) | pub(crate) struct CoroutineParser;
constant PATH (line 8) | const PATH: &[Symbol] = &[sym::coroutine];
constant ON_DUPLICATE (line 9) | const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Error;
constant ALLOWED_TARGETS (line 10) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(&[Al...
constant CREATE (line 11) | const CREATE: fn(rustc_span::Span) -> AttributeKind = |span| Attribute...
FILE: compiler/rustc_attr_parsing/src/attributes/cfg.rs
constant CFG_TEMPLATE (line 32) | pub const CFG_TEMPLATE: AttributeTemplate = template!(
constant CFG_ATTR_TEMPLATE (line 37) | const CFG_ATTR_TEMPLATE: AttributeTemplate = template!(
function parse_cfg (line 42) | pub fn parse_cfg<S: Stage>(
function parse_cfg_entry (line 57) | pub fn parse_cfg_entry<S: Stage>(
function parse_cfg_entry_version (line 102) | fn parse_cfg_entry_version<S: Stage>(
function parse_cfg_entry_target (line 134) | fn parse_cfg_entry_target<S: Stage>(
function parse_name_value (line 177) | pub(crate) fn parse_name_value<S: Stage>(
function eval_config_entry (line 216) | pub fn eval_config_entry(sess: &Session, cfg_entry: &CfgEntry) -> EvalCo...
type EvalConfigResult (line 279) | pub enum EvalConfigResult {
method as_bool (line 285) | pub fn as_bool(&self) -> bool {
function parse_cfg_attr (line 293) | pub fn parse_cfg_attr(
function check_cfg_attr_bad_delim (line 346) | fn check_cfg_attr_bad_delim(psess: &ParseSess, span: DelimSpan, delim: D...
function parse_cfg_attr_internal (line 357) | fn parse_cfg_attr_internal<'a>(
function try_gate_cfg (line 414) | fn try_gate_cfg(name: Symbol, span: Span, sess: &Session, features: Opti...
function gate_cfg (line 421) | fn gate_cfg(gated_cfg: &GatedCfg, cfg_span: Span, sess: &Session, featur...
FILE: compiler/rustc_attr_parsing/src/attributes/cfg_select.rs
type CfgSelectPredicate (line 19) | pub enum CfgSelectPredicate {
method span (line 25) | fn span(&self) -> Span {
type CfgSelectBranches (line 34) | pub struct CfgSelectBranches {
method pop_first_match (line 47) | pub fn pop_first_match<F>(&mut self, predicate: F) -> Option<(TokenStr...
method into_iter_tts (line 62) | pub fn into_iter_tts(self) -> impl Iterator<Item = (TokenStream, Span)> {
function parse_cfg_select (line 71) | pub fn parse_cfg_select(
function lint_unreachable (line 144) | fn lint_unreachable(
FILE: compiler/rustc_attr_parsing/src/attributes/cfi_encoding.rs
type CfiEncodingParser (line 2) | pub(crate) struct CfiEncodingParser;
constant PATH (line 4) | const PATH: &[Symbol] = &[sym::cfi_encoding];
constant ALLOWED_TARGETS (line 5) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowListWarnR...
constant ON_DUPLICATE (line 11) | const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Error;
constant TEMPLATE (line 12) | const TEMPLATE: AttributeTemplate = template!(NameValueStr: "encoding");
method convert (line 14) | fn convert(cx: &mut AcceptContext<'_, '_, S>, args: &ArgParser) -> Opt...
FILE: compiler/rustc_attr_parsing/src/attributes/codegen_attrs.rs
type OptimizeParser (line 11) | pub(crate) struct OptimizeParser;
constant PATH (line 14) | const PATH: &[Symbol] = &[sym::optimize];
constant ON_DUPLICATE (line 15) | const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::WarnButFutureError;
constant ALLOWED_TARGETS (line 16) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(&[
constant TEMPLATE (line 23) | const TEMPLATE: AttributeTemplate = template!(List: &["size", "speed",...
method convert (line 25) | fn convert(cx: &mut AcceptContext<'_, '_, S>, args: &ArgParser) -> Opt...
type ColdParser (line 50) | pub(crate) struct ColdParser;
constant PATH (line 53) | const PATH: &[Symbol] = &[sym::cold];
constant ON_DUPLICATE (line 54) | const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Warn;
constant ALLOWED_TARGETS (line 55) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowListWarnR...
constant CREATE (line 63) | const CREATE: fn(Span) -> AttributeKind = AttributeKind::Cold;
type CoverageParser (line 66) | pub(crate) struct CoverageParser;
constant PATH (line 69) | const PATH: &[Symbol] = &[sym::coverage];
constant ON_DUPLICATE (line 70) | const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Error;
constant ALLOWED_TARGETS (line 71) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(&[
constant TEMPLATE (line 82) | const TEMPLATE: AttributeTemplate = template!(OneOf: &[sym::off, sym::...
method convert (line 84) | fn convert(cx: &mut AcceptContext<'_, '_, S>, args: &ArgParser) -> Opt...
type ExportNameParser (line 116) | pub(crate) struct ExportNameParser;
constant PATH (line 119) | const PATH: &[rustc_span::Symbol] = &[sym::export_name];
constant ON_DUPLICATE (line 120) | const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::WarnButFutureError;
constant ALLOWED_TARGETS (line 121) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(&[
constant TEMPLATE (line 132) | const TEMPLATE: AttributeTemplate = template!(NameValueStr: "name");
method convert (line 134) | fn convert(cx: &mut AcceptContext<'_, '_, S>, args: &ArgParser) -> Opt...
type RustcObjcClassParser (line 153) | pub(crate) struct RustcObjcClassParser;
constant PATH (line 156) | const PATH: &[rustc_span::Symbol] = &[sym::rustc_objc_class];
constant ON_DUPLICATE (line 157) | const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Error;
constant ALLOWED_TARGETS (line 158) | const ALLOWED_TARGETS: AllowedTargets =
constant TEMPLATE (line 160) | const TEMPLATE: AttributeTemplate = template!(NameValueStr: "ClassName");
method convert (line 162) | fn convert(cx: &mut AcceptContext<'_, '_, S>, args: &ArgParser) -> Opt...
type RustcObjcSelectorParser (line 184) | pub(crate) struct RustcObjcSelectorParser;
constant PATH (line 187) | const PATH: &[rustc_span::Symbol] = &[sym::rustc_objc_selector];
constant ON_DUPLICATE (line 188) | const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Error;
constant ALLOWED_TARGETS (line 189) | const ALLOWED_TARGETS: AllowedTargets =
constant TEMPLATE (line 191) | const TEMPLATE: AttributeTemplate = template!(NameValueStr: "methodNam...
method convert (line 193) | fn convert(cx: &mut AcceptContext<'_, '_, S>, args: &ArgParser) -> Opt...
type NakedParser (line 216) | pub(crate) struct NakedParser {
constant ATTRIBUTES (line 221) | const ATTRIBUTES: AcceptMapping<Self, S> =
constant ALLOWED_TARGETS (line 235) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(&[
method finalize (line 243) | fn finalize(self, cx: &FinalizeContext<'_, '_, S>) -> Option<Attribute...
type TrackCallerParser (line 331) | pub(crate) struct TrackCallerParser;
constant PATH (line 333) | const PATH: &[Symbol] = &[sym::track_caller];
constant ON_DUPLICATE (line 334) | const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Warn;
constant ALLOWED_TARGETS (line 335) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(&[
constant CREATE (line 348) | const CREATE: fn(Span) -> AttributeKind = AttributeKind::TrackCaller;
type NoMangleParser (line 351) | pub(crate) struct NoMangleParser;
constant PATH (line 353) | const PATH: &[Symbol] = &[sym::no_mangle];
constant ON_DUPLICATE (line 354) | const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Warn;
constant ALLOWED_TARGETS (line 355) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowListWarnR...
constant CREATE (line 363) | const CREATE: fn(Span) -> AttributeKind = AttributeKind::NoMangle;
type UsedParser (line 367) | pub(crate) struct UsedParser {
constant ATTRIBUTES (line 378) | const ATTRIBUTES: AcceptMapping<Self, S> = &[(
constant ALLOWED_TARGETS (line 454) | const ALLOWED_TARGETS: AllowedTargets =
method finalize (line 457) | fn finalize(self, _cx: &FinalizeContext<'_, '_, S>) -> Option<Attribut...
function parse_tf_attribute (line 469) | fn parse_tf_attribute<S: Stage>(
type TargetFeatureParser (line 514) | pub(crate) struct TargetFeatureParser;
type Item (line 517) | type Item = (Symbol, Span);
constant PATH (line 518) | const PATH: &[Symbol] = &[sym::target_feature];
constant CONVERT (line 519) | const CONVERT: ConvertFn<Self::Item> = |items, span| AttributeKind::Ta...
constant TEMPLATE (line 524) | const TEMPLATE: AttributeTemplate = template!(List: &["enable = \"feat...
method extend (line 526) | fn extend(
constant ALLOWED_TARGETS (line 533) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(&[
type ForceTargetFeatureParser (line 546) | pub(crate) struct ForceTargetFeatureParser;
type Item (line 549) | type Item = (Symbol, Span);
constant PATH (line 550) | const PATH: &[Symbol] = &[sym::force_target_feature];
constant CONVERT (line 551) | const CONVERT: ConvertFn<Self::Item> = |items, span| AttributeKind::Ta...
constant TEMPLATE (line 556) | const TEMPLATE: AttributeTemplate = template!(List: &["enable = \"feat...
constant ALLOWED_TARGETS (line 557) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(&[
method extend (line 564) | fn extend(
type SanitizeParser (line 572) | pub(crate) struct SanitizeParser;
constant PATH (line 575) | const PATH: &[Symbol] = &[sym::sanitize];
constant ALLOWED_TARGETS (line 578) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(ALL_...
constant TEMPLATE (line 580) | const TEMPLATE: AttributeTemplate = template!(List: &[
constant ON_DUPLICATE (line 594) | const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Error;
method convert (line 596) | fn convert(cx: &mut AcceptContext<'_, '_, S>, args: &ArgParser) -> Opt...
type ThreadLocalParser (line 692) | pub(crate) struct ThreadLocalParser;
constant PATH (line 695) | const PATH: &[Symbol] = &[sym::thread_local];
constant ON_DUPLICATE (line 696) | const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::WarnButFutureError;
constant ALLOWED_TARGETS (line 697) | const ALLOWED_TARGETS: AllowedTargets =
constant CREATE (line 699) | const CREATE: fn(Span) -> AttributeKind = |_| AttributeKind::ThreadLocal;
type RustcPassIndirectlyInNonRusticAbisParser (line 702) | pub(crate) struct RustcPassIndirectlyInNonRusticAbisParser;
constant PATH (line 705) | const PATH: &[Symbol] = &[sym::rustc_pass_indirectly_in_non_rustic_abis];
constant ON_DUPLICATE (line 706) | const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Error;
constant ALLOWED_TARGETS (line 707) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(&[Al...
constant CREATE (line 708) | const CREATE: fn(Span) -> AttributeKind = AttributeKind::RustcPassIndi...
type RustcEiiForeignItemParser (line 711) | pub(crate) struct RustcEiiForeignItemParser;
constant PATH (line 714) | const PATH: &[Symbol] = &[sym::rustc_eii_foreign_item];
constant ON_DUPLICATE (line 715) | const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Error;
constant ALLOWED_TARGETS (line 716) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(&[Al...
constant CREATE (line 717) | const CREATE: fn(Span) -> AttributeKind = |_| AttributeKind::RustcEiiF...
type PatchableFunctionEntryParser (line 720) | pub(crate) struct PatchableFunctionEntryParser;
constant PATH (line 723) | const PATH: &[Symbol] = &[sym::patchable_function_entry];
constant ON_DUPLICATE (line 724) | const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Error;
constant ALLOWED_TARGETS (line 725) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(&[Al...
constant TEMPLATE (line 726) | const TEMPLATE: AttributeTemplate = template!(List: &["prefix_nops = m...
method convert (line 728) | fn convert(cx: &mut AcceptContext<'_, '_, S>, args: &ArgParser) -> Opt...
FILE: compiler/rustc_attr_parsing/src/attributes/confusables.rs
type ConfusablesParser (line 5) | pub(crate) struct ConfusablesParser {
constant ATTRIBUTES (line 11) | const ATTRIBUTES: AcceptMapping<Self, S> = &[(
constant ALLOWED_TARGETS (line 38) | const ALLOWED_TARGETS: AllowedTargets =
method finalize (line 41) | fn finalize(self, _cx: &FinalizeContext<'_, '_, S>) -> Option<Attribut...
FILE: compiler/rustc_attr_parsing/src/attributes/crate_level.rs
type CrateNameParser (line 9) | pub(crate) struct CrateNameParser;
constant PATH (line 12) | const PATH: &[Symbol] = &[sym::crate_name];
constant ON_DUPLICATE (line 13) | const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::WarnButFutureError;
constant TEMPLATE (line 14) | const TEMPLATE: AttributeTemplate = template!(NameValueStr: "name");
constant ALLOWED_TARGETS (line 15) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(&[Al...
method convert (line 17) | fn convert(cx: &mut AcceptContext<'_, '_, S>, args: &ArgParser) -> Opt...
type CrateTypeParser (line 32) | pub(crate) struct CrateTypeParser;
constant PATH (line 35) | const PATH: &[Symbol] = &[sym::crate_type];
type Item (line 36) | type Item = CrateType;
constant CONVERT (line 37) | const CONVERT: ConvertFn<Self::Item> = |items, _| AttributeKind::Crate...
constant ALLOWED_TARGETS (line 39) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(&[Al...
constant TEMPLATE (line 41) | const TEMPLATE: AttributeTemplate =
method extend (line 44) | fn extend(
type RecursionLimitParser (line 82) | pub(crate) struct RecursionLimitParser;
constant PATH (line 85) | const PATH: &[Symbol] = &[sym::recursion_limit];
constant ON_DUPLICATE (line 86) | const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::WarnButFutureError;
constant TEMPLATE (line 87) | const TEMPLATE: AttributeTemplate = template!(NameValueStr: "N", "http...
constant ALLOWED_TARGETS (line 88) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(&[Al...
method convert (line 90) | fn convert(cx: &mut AcceptContext<'_, '_, S>, args: &ArgParser) -> Opt...
type MoveSizeLimitParser (line 104) | pub(crate) struct MoveSizeLimitParser;
constant PATH (line 107) | const PATH: &[Symbol] = &[sym::move_size_limit];
constant ON_DUPLICATE (line 108) | const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Error;
constant TEMPLATE (line 109) | const TEMPLATE: AttributeTemplate = template!(NameValueStr: "N");
constant ALLOWED_TARGETS (line 110) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(&[Al...
method convert (line 112) | fn convert(cx: &mut AcceptContext<'_, '_, S>, args: &ArgParser) -> Opt...
type TypeLengthLimitParser (line 126) | pub(crate) struct TypeLengthLimitParser;
constant PATH (line 129) | const PATH: &[Symbol] = &[sym::type_length_limit];
constant ON_DUPLICATE (line 130) | const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::WarnButFutureError;
constant TEMPLATE (line 131) | const TEMPLATE: AttributeTemplate = template!(NameValueStr: "N");
constant ALLOWED_TARGETS (line 132) | const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(&[Al...
method convert (line 134) | fn convert(cx: &mut AcceptContext<'_, '_, S>, args: &ArgParser) -> Opt...
type PatternComplexityLimitParser (line 148) | pub(crate) struct PatternComplexityLimitParser;
constant PATH (line 151) | const PATH: &[Symbol] = &[sym::pattern_complexity_limit];
constant ON_DUPLICATE (line 152) | const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Error;
constant TEMPLATE (line 153) | const TEMPLATE: AttributeTemplate = template!(NameValueStr: "N");
constant ALLOWED_TARGETS (line 154) | const A
Copy disabled (too large)
Download .json
Condensed preview — 58605 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (110,104K chars).
[
{
"path": ".clang-format",
"chars": 20,
"preview": "BasedOnStyle: LLVM\n"
},
{
"path": ".editorconfig",
"chars": 983,
"preview": "# EditorConfig helps developers define and maintain consistent\n# coding styles between different editors and IDEs\n# edit"
},
{
"path": ".git-blame-ignore-revs",
"chars": 1234,
"preview": "# Use `git config blame.ignorerevsfile .git-blame-ignore-revs` to make `git blame` ignore the following commits.\n\n# form"
},
{
"path": ".gitattributes",
"chars": 449,
"preview": "[attr]rust text eol=lf whitespace=tab-in-indent,trailing-space,tabwidth=4\n\n* text=auto eol=lf\n*.cpp rust\n*.h rust\n*.rs r"
},
{
"path": ".github/FUNDING.yml",
"chars": 34,
"preview": "custom: [\"rust-lang.org/funding\"]\n"
},
{
"path": ".github/ISSUE_TEMPLATE/bootstrap.md",
"chars": 1199,
"preview": "---\nname: Bootstrap (Rust Build System) Report\nabout: Issues encountered on bootstrap build system\nlabels: C-bug, T-boot"
},
{
"path": ".github/ISSUE_TEMPLATE/bug_report.md",
"chars": 772,
"preview": "---\nname: Bug Report\nabout: Create a bug report for Rust.\nlabels: C-bug\n---\n<!--\nThank you for filing a bug report! 🐛 Pl"
},
{
"path": ".github/ISSUE_TEMPLATE/config.yml",
"chars": 485,
"preview": "blank_issues_enabled: true\ncontact_links:\n - name: Question\n url: https://users.rust-lang.org\n about: Please ask "
},
{
"path": ".github/ISSUE_TEMPLATE/diagnostics.yaml",
"chars": 2577,
"preview": "name: Diagnostic issue\ndescription: Create a bug report or feature request for a change to `rustc`'s error output\nlabels"
},
{
"path": ".github/ISSUE_TEMPLATE/documentation.yaml",
"chars": 1507,
"preview": "name: Documentation problem\ndescription: Report an issue with documentation content.\nlabels: [\"A-docs\"]\nbody:\n - type: "
},
{
"path": ".github/ISSUE_TEMPLATE/ice.md",
"chars": 921,
"preview": "---\nname: Internal Compiler Error\nabout: Create a report for an internal compiler error in rustc.\nlabels: C-bug, I-ICE, "
},
{
"path": ".github/ISSUE_TEMPLATE/ice.yaml",
"chars": 2680,
"preview": "name: Internal Compiler Error (for use by automated tooling)\ndescription: For now, you'll want to use the other ICE temp"
},
{
"path": ".github/ISSUE_TEMPLATE/library_tracking_issue.md",
"chars": 2645,
"preview": "---\nname: Library Tracking Issue\nabout: A tracking issue for an unstable library feature.\ntitle: Tracking Issue for XXX\n"
},
{
"path": ".github/ISSUE_TEMPLATE/regression.md",
"chars": 1381,
"preview": "---\nname: Regression\nabout: Report something that unexpectedly changed between Rust versions.\nlabels: C-bug, regression-"
},
{
"path": ".github/ISSUE_TEMPLATE/rustdoc.md",
"chars": 1345,
"preview": "---\nname: Problem with rustdoc\nabout: Report an issue with how docs get generated.\nlabels: C-bug, T-rustdoc\n---\n<!--\nTha"
},
{
"path": ".github/ISSUE_TEMPLATE/tracking_issue.md",
"chars": 3011,
"preview": "---\nname: Tracking Issue\nabout: A tracking issue for an accepted feature or RFC in Rust.\ntitle: Tracking Issue for XXX\nl"
},
{
"path": ".github/ISSUE_TEMPLATE/tracking_issue_future.md",
"chars": 1946,
"preview": "---\nname: Future Incompatibility Tracking Issue\nabout: A tracking issue for a future-incompatible lint\ntitle: Tracking I"
},
{
"path": ".github/pull_request_template.md",
"chars": 453,
"preview": "<!-- homu-ignore:start -->\n<!--\nIf this PR is related to an unstable feature or an otherwise tracked effort,\nplease link"
},
{
"path": ".github/renovate.json5",
"chars": 377,
"preview": "{\n \"$schema\": \"https://docs.renovatebot.com/renovate-schema.json\",\n // Let Renovatebot keep an opened issue that track"
},
{
"path": ".github/workflows/ci.yml",
"chars": 13377,
"preview": "# This file defines our primary CI workflow that runs on pull requests\n# and also on pushes to special branches (auto, t"
},
{
"path": ".github/workflows/dependencies.yml",
"chars": 4623,
"preview": "# Automatically run `cargo update` periodically\n\n---\nname: Bump dependencies in Cargo.lock\non:\n schedule:\n # Run wee"
},
{
"path": ".github/workflows/ghcr.yml",
"chars": 2912,
"preview": "# Mirror DockerHub images used by the Rust project to ghcr.io.\n# Images are available at https://github.com/orgs/rust-la"
},
{
"path": ".github/workflows/post-merge.yml",
"chars": 1961,
"preview": "# Workflow that runs after a merge to the default branch, analyses changes in test executions\n# and posts the result to "
},
{
"path": ".gitignore",
"chars": 1650,
"preview": "# This file should only ignore things that are generated during a `x.py` build,\n# generated by common IDEs, and optional"
},
{
"path": ".gitmodules",
"chars": 1508,
"preview": "[submodule \"src/doc/nomicon\"]\n\tpath = src/doc/nomicon\n\turl = https://github.com/rust-lang/nomicon.git\n\tshallow = true\n[s"
},
{
"path": ".ignore",
"chars": 132,
"preview": "# Make vscode *not* count `bootstrap.toml` and `config.toml` as ignored, so it is included in search\n!/bootstrap.toml\n!/"
},
{
"path": ".mailmap",
"chars": 39834,
"preview": "#\n# This list is used by git-shortlog to aggregate contributions. It is\n# necessary when either the author's full name "
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 131,
"preview": "# The Rust Code of Conduct\n\nThe Code of Conduct for this repository [can be found online](https://www.rust-lang.org/cond"
},
{
"path": "CONTRIBUTING.md",
"chars": 2708,
"preview": "# Contributing to Rust\n\nThank you for your interest in contributing to Rust! There are many ways to contribute\nand we ap"
},
{
"path": "COPYRIGHT",
"chars": 1571,
"preview": "Short version for non-lawyers:\n\nThe Rust Project is dual-licensed under Apache 2.0 and MIT\nterms.\n\nIt is Copyright (c) T"
},
{
"path": "Cargo.toml",
"chars": 3039,
"preview": "[workspace]\nresolver = \"2\"\nmembers = [\n# tidy-alphabetical-start\n \"compiler/rustc\",\n \"src/build_helper\",\n \"src/rustc-"
},
{
"path": "INSTALL.md",
"chars": 11321,
"preview": "# Installing from Source\n\n**Note: This document describes _building_ Rust _from source_.\nThis is _not recommended_ if yo"
},
{
"path": "LICENSE-APACHE",
"chars": 9723,
"preview": " Apache License\n Version 2.0, January 2004\n http"
},
{
"path": "LICENSE-MIT",
"chars": 1068,
"preview": "Copyright (c) The Rust Project Contributors\n\nPermission is hereby granted, free of charge, to any\nperson obtaining a cop"
},
{
"path": "LICENSES/Apache-2.0.txt",
"chars": 10280,
"preview": "Apache License\nVersion 2.0, January 2004\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AN"
},
{
"path": "LICENSES/BSD-2-Clause.txt",
"chars": 1267,
"preview": "Copyright (c) <year> <owner> \n\nRedistribution and use in source and binary forms, with or without modification, are perm"
},
{
"path": "LICENSES/CC-BY-SA-4.0.txt",
"chars": 20133,
"preview": "Attribution-ShareAlike 4.0 International\n\n=======================================================================\n\nCreat"
},
{
"path": "LICENSES/GCC-exception-3.1.txt",
"chars": 3319,
"preview": "GCC RUNTIME LIBRARY EXCEPTION\n\nVersion 3.1, 31 March 2009\n\nCopyright © 2009 Free Software Foundation, Inc. <https://fsf."
},
{
"path": "LICENSES/GPL-2.0-only.txt",
"chars": 17642,
"preview": "GNU GENERAL PUBLIC LICENSE\n\nVersion 2, June 1991\n\nCopyright (C) 1989, 1991 Free Software Foundation, Inc. \n51 Franklin "
},
{
"path": "LICENSES/GPL-3.0-or-later.txt",
"chars": 34794,
"preview": "GNU GENERAL PUBLIC LICENSE\n\nVersion 3, 29 June 2007\n\nCopyright © 2007 Free Software Foundation, Inc. <https://fsf.org/>\n"
},
{
"path": "LICENSES/ISC.txt",
"chars": 730,
"preview": "ISC License\n\n<copyright notice>\n\nPermission to use, copy, modify, and/or distribute this software for any purpose with o"
},
{
"path": "LICENSES/LLVM-exception.txt",
"chars": 919,
"preview": "---- LLVM Exceptions to the Apache 2.0 License ----\n\n As an exception, if, as a result of your compiling your source c"
},
{
"path": "LICENSES/MIT.txt",
"chars": 1078,
"preview": "MIT License\n\nCopyright (c) <year> <copyright holders>\n\nPermission is hereby granted, free of charge, to any person obtai"
},
{
"path": "LICENSES/NCSA.txt",
"chars": 1676,
"preview": "Copyright (c) <YEAR> <OWNER ORGANIZATION NAME>. All rights reserved.\n\nDeveloped by: <NAME OF DEVELOPMENT GROUP>\n "
},
{
"path": "LICENSES/OFL-1.1.txt",
"chars": 4012,
"preview": "SIL OPEN FONT LICENSE\n\nVersion 1.1 - 26 February 2007\n\nPREAMBLE\n\nThe goals of the Open Font License (OFL) are to stimula"
},
{
"path": "LICENSES/Unicode-3.0.txt",
"chars": 1994,
"preview": "UNICODE LICENSE V3\n\nCOPYRIGHT AND PERMISSION NOTICE\n\nCopyright © 1991-2024 Unicode, Inc.\n\nNOTICE TO USER: Carefully read"
},
{
"path": "README.md",
"chars": 3304,
"preview": "<div align=\"center\">\n <picture>\n <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent."
},
{
"path": "RELEASES.md",
"chars": 884256,
"preview": "Version 1.94.1 (2026-03-26)\n===========================\n\n<a id=\"1.94.1\"></a>\n\n* [Fix `std::thread::spawn` on wasm32-wasi"
},
{
"path": "REUSE.toml",
"chars": 6219,
"preview": "version = 1\n\n# Reuse annotations file.\n#\n# This file controls how reuse-tool finds copyright and license notices within\n"
},
{
"path": "bootstrap.example.toml",
"chars": 51007,
"preview": "# Sample TOML configuration file for building Rust.\n#\n# To configure bootstrap, run `./configure` or `./x.py setup`.\n# S"
},
{
"path": "compiler/rustc/Cargo.toml",
"chars": 1559,
"preview": "[package]\nname = \"rustc-main\"\nversion = \"0.0.0\"\nedition = \"2024\"\n\n[dependencies]\n# tidy-alphabetical-start\n\n# Make sure "
},
{
"path": "compiler/rustc/Windows Manifest.xml",
"chars": 1426,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<!--\nThis is a Windows application manifest file.\nSee: https://d"
},
{
"path": "compiler/rustc/build.rs",
"chars": 1460,
"preview": "use std::{env, path};\n\nuse rustc_windows_rc::{VersionInfoFileType, compile_windows_resource_file};\n\nfn main() {\n let "
},
{
"path": "compiler/rustc/src/main.rs",
"chars": 2407,
"preview": "// We need this feature as it changes `dylib` linking behavior and allows us to link to `rustc_driver`.\n#![feature(rustc"
},
{
"path": "compiler/rustc_abi/Cargo.toml",
"chars": 1252,
"preview": "[package]\nname = \"rustc_abi\"\nversion = \"0.0.0\"\nedition = \"2024\"\n\n[dependencies]\n# tidy-alphabetical-start\nbitflags = \"2."
},
{
"path": "compiler/rustc_abi/src/callconv/reg.rs",
"chars": 1790,
"preview": "#[cfg(feature = \"nightly\")]\nuse rustc_macros::HashStable_Generic;\n\nuse crate::{Align, HasDataLayout, Size};\n\n#[cfg_attr("
},
{
"path": "compiler/rustc_abi/src/callconv.rs",
"chars": 8213,
"preview": "#[cfg(feature = \"nightly\")]\nuse crate::{BackendRepr, FieldsShape, Primitive, Size, TyAbiInterface, TyAndLayout, Variants"
},
{
"path": "compiler/rustc_abi/src/canon_abi.rs",
"chars": 5990,
"preview": "use std::fmt;\n\n#[cfg(feature = \"nightly\")]\nuse rustc_macros::HashStable_Generic;\n\nuse crate::ExternAbi;\n\n/// Calling con"
},
{
"path": "compiler/rustc_abi/src/extern_abi/tests.rs",
"chars": 685,
"preview": "use std::assert_matches;\nuse std::str::FromStr;\n\nuse super::*;\n\n#[allow(non_snake_case)]\n#[test]\nfn lookup_Rust() {\n "
},
{
"path": "compiler/rustc_abi/src/extern_abi.rs",
"chars": 11593,
"preview": "use std::cmp::Ordering;\nuse std::fmt;\nuse std::hash::{Hash, Hasher};\n\n#[cfg(feature = \"nightly\")]\nuse rustc_data_structu"
},
{
"path": "compiler/rustc_abi/src/layout/coroutine.rs",
"chars": 13883,
"preview": "//! Coroutine layout logic.\n//!\n//! When laying out coroutines, we divide our saved local fields into two\n//! categories"
},
{
"path": "compiler/rustc_abi/src/layout/simple.rs",
"chars": 5801,
"preview": "use std::num::NonZero;\n\nuse rustc_hashes::Hash64;\nuse rustc_index::{Idx, IndexVec};\n\nuse crate::{\n AbiAlign, BackendR"
},
{
"path": "compiler/rustc_abi/src/layout/ty.rs",
"chars": 8803,
"preview": "use std::fmt;\nuse std::ops::Deref;\n\nuse rustc_data_structures::intern::Interned;\nuse rustc_macros::HashStable_Generic;\n\n"
},
{
"path": "compiler/rustc_abi/src/layout.rs",
"chars": 70091,
"preview": "use std::collections::BTreeSet;\nuse std::fmt::{self, Write};\nuse std::ops::{Bound, Deref};\nuse std::{cmp, iter};\n\nuse ru"
},
{
"path": "compiler/rustc_abi/src/lib.rs",
"chars": 81260,
"preview": "// tidy-alphabetical-start\n#![cfg_attr(feature = \"nightly\", allow(internal_features))]\n#![cfg_attr(feature = \"nightly\", "
},
{
"path": "compiler/rustc_abi/src/tests.rs",
"chars": 3311,
"preview": "use super::*;\n\n#[test]\nfn align_constants() {\n assert_eq!(Align::ONE, Align::from_bytes(1).unwrap());\n assert_eq!("
},
{
"path": "compiler/rustc_arena/Cargo.toml",
"chars": 201,
"preview": "[package]\nname = \"rustc_arena\"\nversion = \"0.0.0\"\nedition = \"2024\"\n\n[dependencies]\n# tidy-alphabetical-start\nsmallvec = {"
},
{
"path": "compiler/rustc_arena/src/lib.rs",
"chars": 27021,
"preview": "//! The arena, a fast but limited type of allocator.\n//!\n//! Arenas are a type of allocator that destroy the objects wit"
},
{
"path": "compiler/rustc_arena/src/tests.rs",
"chars": 5756,
"preview": "extern crate test;\nuse std::cell::Cell;\n\nuse test::Bencher;\n\nuse super::TypedArena;\n\n#[allow(dead_code)]\n#[derive(Debug,"
},
{
"path": "compiler/rustc_ast/Cargo.toml",
"chars": 585,
"preview": "[package]\nname = \"rustc_ast\"\nversion = \"0.0.0\"\nedition = \"2024\"\n\n[dependencies]\n# tidy-alphabetical-start\nbitflags = \"2."
},
{
"path": "compiler/rustc_ast/README.md",
"chars": 556,
"preview": "The `rustc_ast` crate contains those things concerned purely with syntax\n– that is, the AST (\"abstract syntax tree\"), al"
},
{
"path": "compiler/rustc_ast/src/ast.rs",
"chars": 141091,
"preview": "//! The Rust abstract syntax tree module.\n//!\n//! This module contains common structures forming the language AST.\n//! T"
},
{
"path": "compiler/rustc_ast/src/ast_traits.rs",
"chars": 10608,
"preview": "//! A set of traits implemented for various AST nodes,\n//! typically those used in AST fragments during macro expansion."
},
{
"path": "compiler/rustc_ast/src/attr/data_structures.rs",
"chars": 3613,
"preview": "use std::fmt;\n\nuse rustc_macros::{Decodable, Encodable, HashStable_Generic};\nuse rustc_span::{Span, Symbol};\nuse thin_ve"
},
{
"path": "compiler/rustc_ast/src/attr/mod.rs",
"chars": 33722,
"preview": "//! Functions dealing with attributes and meta items.\n\npub mod data_structures;\npub mod version;\n\nuse std::fmt::Debug;\nu"
},
{
"path": "compiler/rustc_ast/src/attr/version.rs",
"chars": 1483,
"preview": "use std::fmt::{self, Display};\nuse std::sync::OnceLock;\n\nuse rustc_macros::{BlobDecodable, Encodable, HashStable_Generic"
},
{
"path": "compiler/rustc_ast/src/entry.rs",
"chars": 1249,
"preview": "use rustc_span::{Symbol, sym};\n\n#[derive(Debug)]\npub enum EntryPointType {\n /// This function is not an entrypoint.\n "
},
{
"path": "compiler/rustc_ast/src/expand/allocator.rs",
"chars": 2821,
"preview": "use rustc_macros::HashStable_Generic;\nuse rustc_span::{Symbol, sym};\n\n#[derive(Clone, Debug, Copy, Eq, PartialEq, HashSt"
},
{
"path": "compiler/rustc_ast/src/expand/autodiff_attrs.rs",
"chars": 9618,
"preview": "//! This crate handles the user facing autodiff macro. For each `#[autodiff(...)]` attribute,\n//! we create an `RustcAut"
},
{
"path": "compiler/rustc_ast/src/expand/mod.rs",
"chars": 203,
"preview": "//! Definitions shared by macros / syntax extensions and e.g. `rustc_middle`.\n\nuse rustc_macros::{Decodable, Encodable, "
},
{
"path": "compiler/rustc_ast/src/expand/typetree.rs",
"chars": 3430,
"preview": "//! This module contains the definition of the `TypeTree` and `Type` structs.\n//! They are thin Rust wrappers around the"
},
{
"path": "compiler/rustc_ast/src/format.rs",
"chars": 8249,
"preview": "use rustc_data_structures::fx::FxHashMap;\nuse rustc_macros::{Decodable, Encodable, Walkable};\nuse rustc_span::{Ident, Sp"
},
{
"path": "compiler/rustc_ast/src/lib.rs",
"chars": 1073,
"preview": "//! The Rust Abstract Syntax Tree (AST).\n//!\n//! # Note\n//!\n//! This API is completely unstable and subject to change.\n\n"
},
{
"path": "compiler/rustc_ast/src/mut_visit.rs",
"chars": 11708,
"preview": "//! A `MutVisitor` represents an AST modification; it accepts an AST piece and\n//! mutates it in place. So, for instance"
},
{
"path": "compiler/rustc_ast/src/node_id.rs",
"chars": 1266,
"preview": "use std::fmt;\n\nuse rustc_span::LocalExpnId;\n\nrustc_index::newtype_index! {\n /// Identifies an AST node.\n ///\n /"
},
{
"path": "compiler/rustc_ast/src/token.rs",
"chars": 41028,
"preview": "use std::borrow::Cow;\nuse std::fmt;\n\npub use LitKind::*;\npub use NtExprKind::*;\npub use NtPatKind::*;\npub use TokenKind:"
},
{
"path": "compiler/rustc_ast/src/tokenstream.rs",
"chars": 41762,
"preview": "//! # Token Streams\n//!\n//! `TokenStream`s represent syntactic objects before they are converted into ASTs.\n//! A `Token"
},
{
"path": "compiler/rustc_ast/src/util/case.rs",
"chars": 175,
"preview": "/// Whatever to ignore case (`fn` vs `Fn` vs `FN`) or not. Used for recovering.\n#[derive(Copy, Clone, Debug, Eq, Partial"
},
{
"path": "compiler/rustc_ast/src/util/classify.rs",
"chars": 10321,
"preview": "//! Routines the parser and pretty-printer use to classify AST nodes.\n\nuse crate::ast::ExprKind::*;\nuse crate::ast::{sel"
},
{
"path": "compiler/rustc_ast/src/util/comments/tests.rs",
"chars": 2274,
"preview": "#![allow(rustc::symbol_intern_string_literal)]\n\nuse rustc_span::create_default_session_globals_then;\n\nuse super::*;\n\n#[t"
},
{
"path": "compiler/rustc_ast/src/util/comments.rs",
"chars": 4372,
"preview": "use rustc_span::{BytePos, Symbol};\n\nuse crate::token::CommentKind;\n\n#[cfg(test)]\nmod tests;\n\n#[derive(Clone, Copy, Parti"
},
{
"path": "compiler/rustc_ast/src/util/literal.rs",
"chars": 13604,
"preview": "//! Code related to parsing literals.\n\nuse std::{ascii, fmt, str};\n\nuse rustc_literal_escaper::{\n MixedUnit, unescape"
},
{
"path": "compiler/rustc_ast/src/util/parser.rs",
"chars": 7610,
"preview": "use rustc_span::kw;\n\nuse crate::ast::{self, AssignOpKind, BinOpKind, RangeLimits};\nuse crate::token::{self, Token};\n\n///"
},
{
"path": "compiler/rustc_ast/src/util/unicode.rs",
"chars": 1020,
"preview": "pub const TEXT_FLOW_CONTROL_CHARS: &[char] = &[\n '\\u{202A}', '\\u{202B}', '\\u{202D}', '\\u{202E}', '\\u{2066}', '\\u{2067"
},
{
"path": "compiler/rustc_ast/src/visit.rs",
"chars": 47168,
"preview": "//! AST walker. Each overridden visit method has full control over what\n//! happens with its node, it can do its own tra"
},
{
"path": "compiler/rustc_ast_ir/Cargo.toml",
"chars": 601,
"preview": "[package]\nname = \"rustc_ast_ir\"\nversion = \"0.0.0\"\nedition = \"2024\"\n\n[dependencies]\n# tidy-alphabetical-start\nrustc_data_"
},
{
"path": "compiler/rustc_ast_ir/src/lib.rs",
"chars": 8709,
"preview": "//! Common utilities shared by both `rustc_ast` and `rustc_type_ir`.\n//!\n//! Don't depend on this crate directly; both o"
},
{
"path": "compiler/rustc_ast_ir/src/visit.rs",
"chars": 2199,
"preview": "use core::ops::ControlFlow;\n\n/// Similar to the `Try` trait, but also implemented for `()`.\npub trait VisitorResult {\n "
},
{
"path": "compiler/rustc_ast_lowering/Cargo.toml",
"chars": 901,
"preview": "[package]\nname = \"rustc_ast_lowering\"\nversion = \"0.0.0\"\nedition = \"2024\"\n\n[lib]\ndoctest = false\n\n[dependencies]\n# tidy-a"
},
{
"path": "compiler/rustc_ast_lowering/src/asm.rs",
"chars": 23563,
"preview": "use std::collections::hash_map::Entry;\n\nuse rustc_ast::*;\nuse rustc_data_structures::fx::{FxHashMap, FxHashSet, FxIndexM"
},
{
"path": "compiler/rustc_ast_lowering/src/block.rs",
"chars": 5245,
"preview": "use rustc_ast::{Block, BlockCheckMode, Local, LocalKind, Stmt, StmtKind};\nuse rustc_hir as hir;\nuse rustc_hir::Target;\nu"
},
{
"path": "compiler/rustc_ast_lowering/src/contract.rs",
"chars": 13727,
"preview": "use std::sync::Arc;\n\nuse thin_vec::thin_vec;\n\nuse crate::{LoweringContext, ResolverAstLoweringExt};\n\nimpl<'hir, R: Resol"
},
{
"path": "compiler/rustc_ast_lowering/src/delegation/generics.rs",
"chars": 19342,
"preview": "use hir::HirId;\nuse hir::def::{DefKind, Res};\nuse rustc_ast::*;\nuse rustc_hir as hir;\nuse rustc_hir::def_id::DefId;\nuse "
},
{
"path": "compiler/rustc_ast_lowering/src/delegation.rs",
"chars": 25701,
"preview": "//! This module implements expansion of delegation items with early resolved paths.\n//! It includes a delegation to a fr"
},
{
"path": "compiler/rustc_ast_lowering/src/errors.rs",
"chars": 15200,
"preview": "use rustc_errors::codes::*;\nuse rustc_errors::{DiagArgFromDisplay, DiagSymbolList};\nuse rustc_macros::{Diagnostic, Subdi"
},
{
"path": "compiler/rustc_ast_lowering/src/expr.rs",
"chars": 97933,
"preview": "use std::mem;\nuse std::ops::ControlFlow;\nuse std::sync::Arc;\n\nuse rustc_ast::*;\nuse rustc_ast_pretty::pprust::expr_to_st"
},
{
"path": "compiler/rustc_ast_lowering/src/format.rs",
"chars": 22327,
"preview": "use std::borrow::Cow;\n\nuse rustc_ast::*;\nuse rustc_data_structures::fx::FxIndexMap;\nuse rustc_hir as hir;\nuse rustc_sess"
},
{
"path": "compiler/rustc_ast_lowering/src/index.rs",
"chars": 15244,
"preview": "use intravisit::InferKind;\nuse rustc_data_structures::sorted_map::SortedMap;\nuse rustc_hir as hir;\nuse rustc_hir::def_id"
},
{
"path": "compiler/rustc_ast_lowering/src/item.rs",
"chars": 85364,
"preview": "use std::mem;\n\nuse rustc_abi::ExternAbi;\nuse rustc_ast::visit::AssocCtxt;\nuse rustc_ast::*;\nuse rustc_data_structures::f"
},
{
"path": "compiler/rustc_ast_lowering/src/lib.rs",
"chars": 122006,
"preview": "//! Lowers the AST to the HIR.\n//!\n//! Since the AST and HIR are fairly similar, this is mostly a simple procedure,\n//! "
},
{
"path": "compiler/rustc_ast_lowering/src/pat.rs",
"chars": 24419,
"preview": "use std::sync::Arc;\n\nuse rustc_ast::*;\nuse rustc_data_structures::stack::ensure_sufficient_stack;\nuse rustc_hir::def::{D"
},
{
"path": "compiler/rustc_ast_lowering/src/path.rs",
"chars": 25982,
"preview": "use std::sync::Arc;\n\nuse rustc_ast::{self as ast, *};\nuse rustc_errors::StashKey;\nuse rustc_hir::def::{DefKind, PartialR"
},
{
"path": "compiler/rustc_ast_lowering/src/stability.rs",
"chars": 4892,
"preview": "use std::fmt;\n\nuse rustc_abi::ExternAbi;\nuse rustc_feature::Features;\nuse rustc_session::Session;\nuse rustc_session::par"
},
{
"path": "compiler/rustc_ast_passes/Cargo.toml",
"chars": 724,
"preview": "[package]\nname = \"rustc_ast_passes\"\nversion = \"0.0.0\"\nedition = \"2024\"\n\n[dependencies]\n# tidy-alphabetical-start\nitertoo"
},
{
"path": "compiler/rustc_ast_passes/src/ast_validation.rs",
"chars": 86693,
"preview": "//! Validate AST before lowering it to HIR.\n//!\n//! This pass intends to check that the constructed AST is *syntacticall"
},
{
"path": "compiler/rustc_ast_passes/src/errors.rs",
"chars": 34721,
"preview": "//! Errors emitted by ast_passes.\n\nuse rustc_abi::ExternAbi;\nuse rustc_ast::ParamKindOrd;\nuse rustc_errors::codes::*;\nus"
},
{
"path": "compiler/rustc_ast_passes/src/feature_gate.rs",
"chars": 30883,
"preview": "use rustc_ast::visit::{self, AssocCtxt, FnCtxt, FnKind, Visitor};\nuse rustc_ast::{self as ast, AttrVec, GenericBound, No"
},
{
"path": "compiler/rustc_ast_passes/src/lib.rs",
"chars": 392,
"preview": "//! The `rustc_ast_passes` crate contains passes which validate the AST in `syntax`\n//! parsed by `rustc_parse` and then"
},
{
"path": "compiler/rustc_ast_pretty/Cargo.toml",
"chars": 366,
"preview": "[package]\nname = \"rustc_ast_pretty\"\nversion = \"0.0.0\"\nedition = \"2024\"\n\n[dependencies]\n# tidy-alphabetical-start\nitertoo"
},
{
"path": "compiler/rustc_ast_pretty/src/helpers.rs",
"chars": 1039,
"preview": "use std::borrow::Cow;\n\nuse crate::pp::Printer;\n\nimpl Printer {\n pub fn word_space<W: Into<Cow<'static, str>>>(&mut se"
},
{
"path": "compiler/rustc_ast_pretty/src/lib.rs",
"chars": 148,
"preview": "// tidy-alphabetical-start\n#![feature(box_patterns)]\n#![feature(negative_impls)]\n// tidy-alphabetical-end\n\nmod helpers;\n"
},
{
"path": "compiler/rustc_ast_pretty/src/pp/convenience.rs",
"chars": 2443,
"preview": "use std::borrow::Cow;\n\nuse crate::pp::{\n BeginToken, BoxMarker, BreakToken, Breaks, IndentStyle, Printer, SIZE_INFINI"
},
{
"path": "compiler/rustc_ast_pretty/src/pp/ring.rs",
"chars": 2128,
"preview": "use std::collections::VecDeque;\nuse std::ops::{Index, IndexMut};\n\n/// A view onto a finite range of an infinitely long s"
},
{
"path": "compiler/rustc_ast_pretty/src/pp.rs",
"chars": 18337,
"preview": "//! This pretty-printer is a direct reimplementation of Philip Karlton's\n//! Mesa pretty-printer, as described in the ap"
},
{
"path": "compiler/rustc_ast_pretty/src/pprust/mod.rs",
"chars": 2826,
"preview": "#[cfg(test)]\nmod tests;\n\npub mod state;\nuse std::borrow::Cow;\n\nuse rustc_ast as ast;\nuse rustc_ast::token::{Token, Token"
},
{
"path": "compiler/rustc_ast_pretty/src/pprust/state/expr.rs",
"chars": 40153,
"preview": "use std::fmt::Write;\n\nuse ast::{ForLoopKind, MatchKind};\nuse itertools::{Itertools, Position};\nuse rustc_ast::util::clas"
},
{
"path": "compiler/rustc_ast_pretty/src/pprust/state/fixup.rs",
"chars": 10284,
"preview": "use rustc_ast::util::classify;\nuse rustc_ast::util::parser::{self, ExprPrecedence};\nuse rustc_ast::{Expr, ExprKind, Yiel"
},
{
"path": "compiler/rustc_ast_pretty/src/pprust/state/item.rs",
"chars": 32899,
"preview": "use ast::StaticItem;\nuse itertools::{Itertools, Position};\nuse rustc_ast::{self as ast, EiiImpl, ModKind, Safety, TraitA"
},
{
"path": "compiler/rustc_ast_pretty/src/pprust/state.rs",
"chars": 85250,
"preview": "//! AST pretty printing.\n//!\n//! Note that HIR pretty printing is layered on top of this crate.\n\nmod expr;\nmod fixup;\nmo"
},
{
"path": "compiler/rustc_ast_pretty/src/pprust/tests.rs",
"chars": 1653,
"preview": "use rustc_ast as ast;\nuse rustc_span::{DUMMY_SP, Ident, create_default_session_globals_then};\nuse thin_vec::ThinVec;\n\nus"
},
{
"path": "compiler/rustc_attr_parsing/Cargo.toml",
"chars": 791,
"preview": "[package]\nname = \"rustc_attr_parsing\"\nversion = \"0.0.0\"\nedition = \"2024\"\n\n[dependencies]\n# tidy-alphabetical-start\nrustc"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/allow_unstable.rs",
"chars": 3730,
"preview": "use std::iter;\n\nuse super::prelude::*;\nuse crate::session_diagnostics;\n\npub(crate) struct AllowInternalUnstableParser;\ni"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/autodiff.rs",
"chars": 4293,
"preview": "use std::str::FromStr;\n\nuse rustc_ast::LitKind;\nuse rustc_ast::expand::autodiff_attrs::{DiffActivity, DiffMode};\nuse rus"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/body.rs",
"chars": 479,
"preview": "//! Attributes that can be found in function body.\n\nuse super::prelude::*;\n\npub(crate) struct CoroutineParser;\n\nimpl<S: "
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/cfg.rs",
"chars": 15588,
"preview": "use std::convert::identity;\n\nuse rustc_ast::token::Delimiter;\nuse rustc_ast::tokenstream::DelimSpan;\nuse rustc_ast::{Att"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/cfg_select.rs",
"chars": 8406,
"preview": "use rustc_ast::token::Token;\nuse rustc_ast::tokenstream::TokenStream;\nuse rustc_ast::{AttrStyle, NodeId, token};\nuse rus"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/cfi_encoding.rs",
"chars": 1190,
"preview": "use super::prelude::*;\npub(crate) struct CfiEncodingParser;\nimpl<S: Stage> SingleAttributeParser<S> for CfiEncodingParse"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/codegen_attrs.rs",
"chars": 31777,
"preview": "use rustc_hir::attrs::{CoverageAttrKind, OptimizeAttr, RtsanSetting, SanitizerSet, UsedBy};\nuse rustc_session::parse::fe"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/confusables.rs",
"chars": 1541,
"preview": "use super::prelude::*;\nuse crate::session_diagnostics::EmptyConfusables;\n\n#[derive(Default)]\npub(crate) struct Confusabl"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/crate_level.rs",
"chars": 14761,
"preview": "use rustc_hir::attrs::{CrateType, WindowsSubsystemKind};\nuse rustc_hir::lints::AttributeLintKind;\nuse rustc_session::lin"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/debugger.rs",
"chars": 2153,
"preview": "use rustc_hir::attrs::{DebugVisualizer, DebuggerVisualizerType};\n\nuse super::prelude::*;\n\npub(crate) struct DebuggerViua"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/deprecation.rs",
"chars": 6127,
"preview": "use rustc_hir::attrs::{DeprecatedSince, Deprecation};\nuse rustc_hir::{RustcVersion, VERSION_PLACEHOLDER};\n\nuse super::pr"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/diagnostic/do_not_recommend.rs",
"chars": 1290,
"preview": "use rustc_feature::{AttributeTemplate, template};\nuse rustc_hir::attrs::AttributeKind;\nuse rustc_hir::lints::AttributeLi"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/diagnostic/mod.rs",
"chars": 19486,
"preview": "use std::ops::Range;\n\nuse rustc_errors::E0232;\nuse rustc_hir::AttrPath;\nuse rustc_hir::attrs::diagnostic::{\n AppendCo"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/diagnostic/on_const.rs",
"chars": 2224,
"preview": "use rustc_hir::attrs::diagnostic::Directive;\nuse rustc_hir::lints::AttributeLintKind;\nuse rustc_session::lint::builtin::"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/diagnostic/on_move.rs",
"chars": 2237,
"preview": "use rustc_feature::template;\nuse rustc_hir::attrs::AttributeKind;\nuse rustc_hir::lints::AttributeLintKind;\nuse rustc_ses"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/diagnostic/on_unimplemented.rs",
"chars": 3055,
"preview": "use rustc_hir::attrs::diagnostic::Directive;\nuse rustc_hir::lints::AttributeLintKind;\nuse rustc_session::lint::builtin::"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/doc.rs",
"chars": 29431,
"preview": "use rustc_ast::ast::{AttrStyle, LitKind, MetaItemLit};\nuse rustc_errors::msg;\nuse rustc_feature::template;\nuse rustc_hir"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/dummy.rs",
"chars": 825,
"preview": "use rustc_feature::{AttributeTemplate, template};\nuse rustc_hir::attrs::AttributeKind;\nuse rustc_span::{Symbol, sym};\n\nu"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/inline.rs",
"chars": 4176,
"preview": "// FIXME(jdonszelmann): merge these two parsers and error when both attributes are present here.\n// "
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/instruction_set.rs",
"chars": 2916,
"preview": "use rustc_hir::attrs::InstructionSetAttr;\n\nuse super::prelude::*;\nuse crate::session_diagnostics;\n\npub(crate) struct Ins"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/link_attrs.rs",
"chars": 26763,
"preview": "use rustc_errors::msg;\nuse rustc_feature::Features;\nuse rustc_hir::attrs::AttributeKind::{LinkName, LinkOrdinal, LinkSec"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/lint_helpers.rs",
"chars": 2737,
"preview": "use super::prelude::*;\n\npub(crate) struct RustcAsPtrParser;\nimpl<S: Stage> NoArgsAttributeParser<S> for RustcAsPtrParser"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/loop_match.rs",
"chars": 801,
"preview": "use super::prelude::*;\n\npub(crate) struct LoopMatchParser;\nimpl<S: Stage> NoArgsAttributeParser<S> for LoopMatchParser {"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/macro_attrs.rs",
"chars": 9337,
"preview": "use rustc_hir::attrs::{CollapseMacroDebuginfo, MacroUseArgs};\nuse rustc_session::lint::builtin::INVALID_MACRO_EXPORT_ARG"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/mod.rs",
"chars": 12945,
"preview": "//! This module defines traits for attribute parsers, little state machines that recognize and parse\n//! attributes out "
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/must_not_suspend.rs",
"chars": 1186,
"preview": "use super::prelude::*;\n\npub(crate) struct MustNotSuspendParser;\n\nimpl<S: Stage> SingleAttributeParser<S> for MustNotSusp"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/must_use.rs",
"chars": 1917,
"preview": "use super::prelude::*;\n\npub(crate) struct MustUseParser;\n\nimpl<S: Stage> SingleAttributeParser<S> for MustUseParser {\n "
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/no_implicit_prelude.rs",
"chars": 481,
"preview": "use super::prelude::*;\n\npub(crate) struct NoImplicitPreludeParser;\n\nimpl<S: Stage> NoArgsAttributeParser<S> for NoImplic"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/no_link.rs",
"chars": 500,
"preview": "use super::prelude::*;\n\npub(crate) struct NoLinkParser;\nimpl<S: Stage> NoArgsAttributeParser<S> for NoLinkParser {\n c"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/non_exhaustive.rs",
"chars": 872,
"preview": "use rustc_hir::Target;\nuse rustc_hir::attrs::AttributeKind;\nuse rustc_span::{Span, Symbol, sym};\n\nuse crate::attributes:"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/path.rs",
"chars": 997,
"preview": "use super::prelude::*;\n\npub(crate) struct PathParser;\n\nimpl<S: Stage> SingleAttributeParser<S> for PathParser {\n cons"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/pin_v2.rs",
"chars": 709,
"preview": "use rustc_hir::Target;\nuse rustc_hir::attrs::AttributeKind;\nuse rustc_span::{Span, Symbol, sym};\n\nuse crate::attributes:"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/prelude.rs",
"chars": 874,
"preview": "// data structures\n#[doc(hidden)]\npub(super) use rustc_feature::{AttributeTemplate, template};\n#[doc(hidden)]\npub(super)"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/proc_macro_attrs.rs",
"chars": 5650,
"preview": "use rustc_hir::lints::AttributeLintKind;\nuse rustc_session::lint::builtin::AMBIGUOUS_DERIVE_HELPERS;\n\nuse super::prelude"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/prototype.rs",
"chars": 5690,
"preview": "//! Attributes that are only used on function prototypes.\n\nuse rustc_feature::{AttributeTemplate, template};\nuse rustc_h"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/repr.rs",
"chars": 12029,
"preview": "use rustc_abi::{Align, Size};\nuse rustc_ast::{IntTy, LitIntType, LitKind, UintTy};\nuse rustc_hir::attrs::{IntType, ReprA"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/rustc_allocator.rs",
"chars": 2616,
"preview": "use super::prelude::*;\n\npub(crate) struct RustcAllocatorParser;\n\nimpl<S: Stage> NoArgsAttributeParser<S> for RustcAlloca"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/rustc_dump.rs",
"chars": 6070,
"preview": "use rustc_hir::attrs::AttributeKind;\nuse rustc_hir::{MethodKind, Target};\nuse rustc_span::{Span, Symbol, sym};\n\nuse crat"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/rustc_internal.rs",
"chars": 52885,
"preview": "use std::path::PathBuf;\n\nuse rustc_ast::{LitIntType, LitKind, MetaItemLit};\nuse rustc_hir::LangItem;\nuse rustc_hir::attr"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/semantics.rs",
"chars": 440,
"preview": "use super::prelude::*;\n\npub(crate) struct MayDangleParser;\nimpl<S: Stage> NoArgsAttributeParser<S> for MayDangleParser {"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/stability.rs",
"chars": 17246,
"preview": "use std::num::NonZero;\n\nuse rustc_errors::ErrorGuaranteed;\nuse rustc_feature::ACCEPTED_LANG_FEATURES;\nuse rustc_hir::tar"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/test_attrs.rs",
"chars": 9897,
"preview": "use rustc_hir::attrs::RustcAbiAttrKind;\nuse rustc_session::lint::builtin::ILL_FORMED_ATTRIBUTE_INPUT;\n\nuse super::prelud"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/traits.rs",
"chars": 6543,
"preview": "use std::mem;\n\nuse super::prelude::*;\nuse crate::attributes::{NoArgsAttributeParser, OnDuplicate, SingleAttributeParser}"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/transparency.rs",
"chars": 1449,
"preview": "use rustc_span::hygiene::Transparency;\n\nuse super::prelude::*;\n\npub(crate) struct RustcMacroTransparencyParser;\n\nimpl<S:"
},
{
"path": "compiler/rustc_attr_parsing/src/attributes/util.rs",
"chars": 3369,
"preview": "use std::num::IntErrorKind;\n\nuse rustc_ast::LitKind;\nuse rustc_ast::attr::AttributeExt;\nuse rustc_feature::is_builtin_at"
},
{
"path": "compiler/rustc_attr_parsing/src/context.rs",
"chars": 30879,
"preview": "use std::cell::RefCell;\nuse std::collections::BTreeMap;\nuse std::collections::btree_map::Entry;\nuse std::ops::{Deref, De"
},
{
"path": "compiler/rustc_attr_parsing/src/early_parsed.rs",
"chars": 2006,
"preview": "use rustc_ast::EarlyParsedAttribute;\nuse rustc_ast::attr::data_structures::CfgEntry;\nuse rustc_hir::Attribute;\nuse rustc"
},
{
"path": "compiler/rustc_attr_parsing/src/errors.rs",
"chars": 1480,
"preview": "use rustc_errors::MultiSpan;\nuse rustc_macros::{Diagnostic, Subdiagnostic};\nuse rustc_span::{Span, Symbol};\n\n#[derive(Di"
},
{
"path": "compiler/rustc_attr_parsing/src/interface.rs",
"chars": 20361,
"preview": "use std::convert::identity;\n\nuse rustc_ast as ast;\nuse rustc_ast::token::DocFragmentKind;\nuse rustc_ast::{AttrItemKind, "
},
{
"path": "compiler/rustc_attr_parsing/src/lib.rs",
"chars": 5629,
"preview": "//! Centralized logic for parsing and attributes.\n//!\n//! ## Architecture\n//! This crate is part of a series of crates a"
},
{
"path": "compiler/rustc_attr_parsing/src/parser.rs",
"chars": 25601,
"preview": "//! This is in essence an (improved) duplicate of `rustc_ast/attr/mod.rs`.\n//! That module is intended to be deleted in "
},
{
"path": "compiler/rustc_attr_parsing/src/safety.rs",
"chars": 5250,
"preview": "use rustc_ast::Safety;\nuse rustc_feature::{AttributeSafety, BUILTIN_ATTRIBUTE_MAP};\nuse rustc_hir::AttrPath;\nuse rustc_h"
},
{
"path": "compiler/rustc_attr_parsing/src/session_diagnostics.rs",
"chars": 32230,
"preview": "use std::num::IntErrorKind;\n\nuse rustc_ast as ast;\nuse rustc_errors::codes::*;\nuse rustc_errors::{\n Applicability, Di"
},
{
"path": "compiler/rustc_attr_parsing/src/target_checking.rs",
"chars": 17591,
"preview": "use std::borrow::Cow;\n\nuse rustc_ast::AttrStyle;\nuse rustc_errors::{DiagArgValue, MultiSpan, StashKey};\nuse rustc_featur"
},
{
"path": "compiler/rustc_attr_parsing/src/validate_attr.rs",
"chars": 9518,
"preview": "//! Meta-syntax validation logic of attributes for post-expansion.\n\nuse std::convert::identity;\nuse std::slice;\n\nuse rus"
},
{
"path": "compiler/rustc_baked_icu_data/Cargo.toml",
"chars": 371,
"preview": "[package]\nname = \"rustc_baked_icu_data\"\nversion = \"0.0.0\"\nedition = \"2024\"\n\n[dependencies]\n# tidy-alphabetical-start\nicu"
},
{
"path": "compiler/rustc_baked_icu_data/src/data/list_and_v1.rs.data",
"chars": 15635,
"preview": "// @generated\n/// Implement `DataProvider<ListAndV1>` on the given struct using the data\n/// hardcoded in this file. Thi"
},
{
"path": "compiler/rustc_baked_icu_data/src/data/mod.rs",
"chars": 1086,
"preview": "// @generated\ninclude!(\"list_and_v1.rs.data\");\n/// Marks a type as a data provider. You can then use macros like\n/// `im"
},
{
"path": "compiler/rustc_baked_icu_data/src/lib.rs",
"chars": 2178,
"preview": "//! This crate contains pre-baked ICU4X data, generated by `icu4x-datagen`. The tool\n//! fetches locale data from CLDR a"
},
{
"path": "compiler/rustc_borrowck/Cargo.toml",
"chars": 975,
"preview": "[package]\nname = \"rustc_borrowck\"\nversion = \"0.0.0\"\nedition = \"2024\"\n\n[dependencies]\n# tidy-alphabetical-start\neither = "
},
{
"path": "compiler/rustc_borrowck/src/borrow_set.rs",
"chars": 13311,
"preview": "use std::fmt;\nuse std::ops::Index;\n\nuse rustc_data_structures::fx::{FxIndexMap, FxIndexSet};\nuse rustc_index::bit_set::D"
},
{
"path": "compiler/rustc_borrowck/src/borrowck_errors.rs",
"chars": 16162,
"preview": "use rustc_errors::codes::*;\nuse rustc_errors::{Applicability, Diag, DiagCtxtHandle, struct_span_code_err};\nuse rustc_hir"
},
{
"path": "compiler/rustc_borrowck/src/constraints/graph.rs",
"chars": 8158,
"preview": "use rustc_data_structures::graph;\nuse rustc_index::IndexVec;\nuse rustc_middle::ty::RegionVid;\n\nuse crate::constraints::{"
},
{
"path": "compiler/rustc_borrowck/src/constraints/mod.rs",
"chars": 3955,
"preview": "use std::fmt;\nuse std::ops::Index;\n\nuse rustc_index::{IndexSlice, IndexVec};\nuse rustc_middle::mir::ConstraintCategory;\n"
},
{
"path": "compiler/rustc_borrowck/src/consumers.rs",
"chars": 5917,
"preview": "//! This file provides API for compiler consumers.\n\nuse rustc_data_structures::fx::FxHashMap;\nuse rustc_hir::def_id::Loc"
},
{
"path": "compiler/rustc_borrowck/src/dataflow.rs",
"chars": 23938,
"preview": "use std::fmt;\n\nuse rustc_data_structures::fx::FxIndexMap;\nuse rustc_index::bit_set::{DenseBitSet, MixedBitSet};\nuse rust"
},
{
"path": "compiler/rustc_borrowck/src/def_use.rs",
"chars": 3936,
"preview": "use rustc_middle::bug;\nuse rustc_middle::mir::visit::{\n MutatingUseContext, NonMutatingUseContext, NonUseContext, Pla"
},
{
"path": "compiler/rustc_borrowck/src/diagnostics/bound_region_errors.rs",
"chars": 19334,
"preview": "use std::fmt;\nuse std::rc::Rc;\n\nuse rustc_errors::Diag;\nuse rustc_hir::def_id::LocalDefId;\nuse rustc_infer::infer::regio"
},
{
"path": "compiler/rustc_borrowck/src/diagnostics/conflict_errors.rs",
"chars": 202417,
"preview": "// ignore-tidy-filelength\n\nuse std::iter;\nuse std::ops::ControlFlow;\n\nuse either::Either;\nuse hir::{ClosureKind, Path};\n"
}
]
// ... and 58405 more files (download for full content)
About this extraction
This page contains the full source code of the rust-lang/rust GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 58605 files (187.7 MB), approximately 29.7M tokens, and a symbol index with 109324 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.