Use tidy to sort crate attributes for all compiler crates.

We already do this for a number of crates, e.g. `rustc_middle`,
`rustc_span`, `rustc_metadata`, `rustc_span`, `rustc_errors`.

For the ones we don't, in many cases the attributes are a mess.
- There is no consistency about order of attribute kinds (e.g.
  `allow`/`deny`/`feature`).
- Within attribute kind groups (e.g. the `feature` attributes),
  sometimes the order is alphabetical, and sometimes there is no
  particular order.
- Sometimes the attributes of a particular kind aren't even grouped
  all together, e.g. there might be a `feature`, then an `allow`, then
  another `feature`.

This commit extends the existing sorting to all compiler crates,
increasing consistency. If any new attribute line is added there is now
only one place it can go -- no need for arbitrary decisions.

Exceptions:
- `rustc_log`, `rustc_next_trait_solver` and `rustc_type_ir_macros`,
  because they have no crate attributes.
- `rustc_codegen_gcc`, because it's quasi-external to rustc (e.g. it's
  ignored in `rustfmt.toml`).
This commit is contained in:
Nicholas Nethercote 2024-06-12 13:49:36 +10:00
parent ebcb862bbb
commit 75b164d836
58 changed files with 226 additions and 107 deletions

View File

@ -1,7 +1,9 @@
#![cfg_attr(feature = "nightly", feature(step_trait))] // tidy-alphabetical-start
#![cfg_attr(feature = "nightly", allow(internal_features))] #![cfg_attr(feature = "nightly", allow(internal_features))]
#![cfg_attr(feature = "nightly", doc(rust_logo))] #![cfg_attr(feature = "nightly", doc(rust_logo))]
#![cfg_attr(feature = "nightly", feature(rustdoc_internals))] #![cfg_attr(feature = "nightly", feature(rustdoc_internals))]
#![cfg_attr(feature = "nightly", feature(step_trait))]
// tidy-alphabetical-end
use std::fmt; use std::fmt;
use std::num::{NonZeroUsize, ParseIntError}; use std::num::{NonZeroUsize, ParseIntError};

View File

@ -7,23 +7,25 @@
//! //!
//! This crate implements several kinds of arena. //! This crate implements several kinds of arena.
// tidy-alphabetical-start
#![allow(clippy::mut_from_ref)] // Arena allocators are one place where this pattern is fine.
#![allow(internal_features)]
#![cfg_attr(test, feature(test))]
#![deny(unsafe_op_in_unsafe_fn)]
#![doc( #![doc(
html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/", html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/",
test(no_crate_inject, attr(deny(warnings))) test(no_crate_inject, attr(deny(warnings)))
)] )]
#![doc(rust_logo)] #![doc(rust_logo)]
#![feature(rustdoc_internals)]
#![feature(core_intrinsics)] #![feature(core_intrinsics)]
#![feature(dropck_eyepatch)]
#![feature(new_uninit)]
#![feature(maybe_uninit_slice)]
#![feature(decl_macro)] #![feature(decl_macro)]
#![feature(dropck_eyepatch)]
#![feature(maybe_uninit_slice)]
#![feature(new_uninit)]
#![feature(rustc_attrs)] #![feature(rustc_attrs)]
#![cfg_attr(test, feature(test))] #![feature(rustdoc_internals)]
#![feature(strict_provenance)] #![feature(strict_provenance)]
#![deny(unsafe_op_in_unsafe_fn)] // tidy-alphabetical-end
#![allow(internal_features)]
#![allow(clippy::mut_from_ref)] // Arena allocators are one of the places where this pattern is fine.
use smallvec::SmallVec; use smallvec::SmallVec;

View File

@ -4,20 +4,22 @@
//! //!
//! This API is completely unstable and subject to change. //! This API is completely unstable and subject to change.
// tidy-alphabetical-start
#![allow(internal_features)]
#![doc( #![doc(
html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/", html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/",
test(attr(deny(warnings))) test(attr(deny(warnings)))
)] )]
#![doc(rust_logo)] #![doc(rust_logo)]
#![allow(internal_features)]
#![feature(rustdoc_internals)]
#![feature(associated_type_defaults)] #![feature(associated_type_defaults)]
#![feature(box_patterns)] #![feature(box_patterns)]
#![feature(if_let_guard)] #![feature(if_let_guard)]
#![feature(let_chains)] #![feature(let_chains)]
#![feature(never_type)]
#![feature(negative_impls)] #![feature(negative_impls)]
#![feature(never_type)]
#![feature(rustdoc_internals)]
#![feature(stmt_expr_attributes)] #![feature(stmt_expr_attributes)]
// tidy-alphabetical-end
pub mod util { pub mod util {
pub mod case; pub mod case;

View File

@ -1,6 +1,8 @@
// tidy-alphabetical-start
#![cfg_attr(feature = "nightly", allow(internal_features))]
#![cfg_attr(feature = "nightly", feature(never_type))] #![cfg_attr(feature = "nightly", feature(never_type))]
#![cfg_attr(feature = "nightly", feature(rustc_attrs))] #![cfg_attr(feature = "nightly", feature(rustc_attrs))]
#![cfg_attr(feature = "nightly", allow(internal_features))] // tidy-alphabetical-end
#[cfg(feature = "nightly")] #[cfg(feature = "nightly")]
use rustc_macros::{Decodable, Encodable, HashStable_NoContext}; use rustc_macros::{Decodable, Encodable, HashStable_NoContext};

View File

@ -30,12 +30,14 @@
//! get confused if the spans from leaf AST nodes occur in multiple places //! get confused if the spans from leaf AST nodes occur in multiple places
//! in the HIR, especially for multiple identifiers. //! in the HIR, especially for multiple identifiers.
// tidy-alphabetical-start
#![allow(internal_features)] #![allow(internal_features)]
#![feature(rustdoc_internals)]
#![doc(rust_logo)] #![doc(rust_logo)]
#![feature(assert_matches)] #![feature(assert_matches)]
#![feature(box_patterns)] #![feature(box_patterns)]
#![feature(let_chains)] #![feature(let_chains)]
#![feature(rustdoc_internals)]
// tidy-alphabetical-end
use crate::errors::{AssocTyParentheses, AssocTyParenthesesSub, MisplacedImplTrait}; use crate::errors::{AssocTyParentheses, AssocTyParenthesesSub, MisplacedImplTrait};
use rustc_ast::node_id::NodeMap; use rustc_ast::node_id::NodeMap;

View File

@ -4,13 +4,15 @@
//! //!
//! The crate also contains other misc AST visitors, e.g. `node_count` and `show_span`. //! The crate also contains other misc AST visitors, e.g. `node_count` and `show_span`.
// tidy-alphabetical-start
#![allow(internal_features)] #![allow(internal_features)]
#![doc(rust_logo)] #![doc(rust_logo)]
#![feature(rustdoc_internals)]
#![feature(box_patterns)] #![feature(box_patterns)]
#![feature(if_let_guard)] #![feature(if_let_guard)]
#![feature(iter_is_partitioned)] #![feature(iter_is_partitioned)]
#![feature(let_chains)] #![feature(let_chains)]
#![feature(rustdoc_internals)]
// tidy-alphabetical-end
pub mod ast_validation; pub mod ast_validation;
mod errors; mod errors;

View File

@ -1,7 +1,9 @@
// tidy-alphabetical-start
#![allow(internal_features)] #![allow(internal_features)]
#![feature(rustdoc_internals)]
#![doc(rust_logo)] #![doc(rust_logo)]
#![feature(box_patterns)] #![feature(box_patterns)]
#![feature(rustdoc_internals)]
// tidy-alphabetical-end
mod helpers; mod helpers;
pub mod pp; pub mod pp;

View File

@ -4,10 +4,12 @@
//! The goal is to move the definition of `MetaItem` and things that don't need to be in `syntax` //! The goal is to move the definition of `MetaItem` and things that don't need to be in `syntax`
//! to this crate. //! to this crate.
// tidy-alphabetical-start
#![allow(internal_features)] #![allow(internal_features)]
#![feature(rustdoc_internals)]
#![doc(rust_logo)] #![doc(rust_logo)]
#![feature(let_chains)] #![feature(let_chains)]
#![feature(rustdoc_internals)]
// tidy-alphabetical-end
mod builtin; mod builtin;
mod session_diagnostics; mod session_diagnostics;

View File

@ -20,10 +20,12 @@
//! --cldr-tag latest --icuexport-tag latest -o src/data //! --cldr-tag latest --icuexport-tag latest -o src/data
//! ``` //! ```
#![allow(internal_features)] // tidy-alphabetical-start
#![feature(rustdoc_internals)]
#![doc(rust_logo)]
#![allow(elided_lifetimes_in_paths)] #![allow(elided_lifetimes_in_paths)]
#![allow(internal_features)]
#![doc(rust_logo)]
#![feature(rustdoc_internals)]
// tidy-alphabetical-end
mod data { mod data {
include!("data/mod.rs"); include!("data/mod.rs");

View File

@ -1,7 +1,7 @@
//! This query borrow-checks the MIR to (further) ensure it is not broken. //! This query borrow-checks the MIR to (further) ensure it is not broken.
// tidy-alphabetical-start
#![allow(internal_features)] #![allow(internal_features)]
#![feature(rustdoc_internals)]
#![doc(rust_logo)] #![doc(rust_logo)]
#![feature(assert_matches)] #![feature(assert_matches)]
#![feature(box_patterns)] #![feature(box_patterns)]
@ -10,8 +10,10 @@
#![feature(min_specialization)] #![feature(min_specialization)]
#![feature(never_type)] #![feature(never_type)]
#![feature(rustc_attrs)] #![feature(rustc_attrs)]
#![feature(rustdoc_internals)]
#![feature(stmt_expr_attributes)] #![feature(stmt_expr_attributes)]
#![feature(try_blocks)] #![feature(try_blocks)]
// tidy-alphabetical-end
#[macro_use] #[macro_use]
extern crate tracing; extern crate tracing;

View File

@ -1,12 +1,12 @@
//! This crate contains implementations of built-in macros and other code generating facilities //! This crate contains implementations of built-in macros and other code generating facilities
//! injecting code into the crate before it is lowered to HIR. //! injecting code into the crate before it is lowered to HIR.
// tidy-alphabetical-start
#![allow(internal_features)] #![allow(internal_features)]
#![allow(rustc::diagnostic_outside_of_impl)] #![allow(rustc::diagnostic_outside_of_impl)]
#![allow(rustc::untranslatable_diagnostic)] #![allow(rustc::untranslatable_diagnostic)]
#![feature(rustdoc_internals)]
#![doc(rust_logo)]
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")] #![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
#![doc(rust_logo)]
#![feature(assert_matches)] #![feature(assert_matches)]
#![feature(box_patterns)] #![feature(box_patterns)]
#![feature(decl_macro)] #![feature(decl_macro)]
@ -15,7 +15,9 @@
#![feature(lint_reasons)] #![feature(lint_reasons)]
#![feature(proc_macro_internals)] #![feature(proc_macro_internals)]
#![feature(proc_macro_quote)] #![feature(proc_macro_quote)]
#![feature(rustdoc_internals)]
#![feature(try_blocks)] #![feature(try_blocks)]
// tidy-alphabetical-end
extern crate proc_macro; extern crate proc_macro;

View File

@ -1,13 +1,16 @@
#![cfg_attr(doc, allow(internal_features))] // tidy-alphabetical-start
#![cfg_attr(doc, feature(rustdoc_internals))]
#![cfg_attr(doc, doc(rust_logo))]
#![feature(rustc_private)]
// Note: please avoid adding other feature gates where possible
#![allow(rustc::diagnostic_outside_of_impl)] #![allow(rustc::diagnostic_outside_of_impl)]
#![allow(rustc::untranslatable_diagnostic)] #![allow(rustc::untranslatable_diagnostic)]
#![cfg_attr(doc, allow(internal_features))]
#![cfg_attr(doc, doc(rust_logo))]
#![cfg_attr(doc, feature(rustdoc_internals))]
// Note: please avoid adding other feature gates where possible
#![feature(rustc_private)]
// Note: please avoid adding other feature gates where possible
#![warn(rust_2018_idioms)] #![warn(rust_2018_idioms)]
#![warn(unused_lifetimes)]
#![warn(unreachable_pub)] #![warn(unreachable_pub)]
#![warn(unused_lifetimes)]
// tidy-alphabetical-end
extern crate jobserver; extern crate jobserver;
#[macro_use] #[macro_use]

View File

@ -4,16 +4,18 @@
//! //!
//! This API is completely unstable and subject to change. //! This API is completely unstable and subject to change.
// tidy-alphabetical-start
#![allow(internal_features)] #![allow(internal_features)]
#![feature(rustdoc_internals)]
#![doc(rust_logo)]
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")] #![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
#![doc(rust_logo)]
#![feature(exact_size_is_empty)] #![feature(exact_size_is_empty)]
#![feature(extern_types)] #![feature(extern_types)]
#![feature(hash_raw_entry)] #![feature(hash_raw_entry)]
#![feature(impl_trait_in_assoc_type)]
#![feature(iter_intersperse)] #![feature(iter_intersperse)]
#![feature(let_chains)] #![feature(let_chains)]
#![feature(impl_trait_in_assoc_type)] #![feature(rustdoc_internals)]
// tidy-alphabetical-end
use back::owned_target_machine::OwnedTargetMachine; use back::owned_target_machine::OwnedTargetMachine;
use back::write::{create_informational_target_machine, create_target_machine}; use back::write::{create_informational_target_machine, create_target_machine};

View File

@ -1,15 +1,17 @@
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")] // tidy-alphabetical-start
#![doc(rust_logo)]
#![feature(rustdoc_internals)]
#![allow(internal_features)] #![allow(internal_features)]
#![allow(rustc::diagnostic_outside_of_impl)] #![allow(rustc::diagnostic_outside_of_impl)]
#![allow(rustc::untranslatable_diagnostic)] #![allow(rustc::untranslatable_diagnostic)]
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
#![doc(rust_logo)]
#![feature(box_patterns)] #![feature(box_patterns)]
#![feature(if_let_guard)] #![feature(if_let_guard)]
#![feature(let_chains)] #![feature(let_chains)]
#![feature(negative_impls)] #![feature(negative_impls)]
#![feature(rustdoc_internals)]
#![feature(strict_provenance)] #![feature(strict_provenance)]
#![feature(try_blocks)] #![feature(try_blocks)]
// tidy-alphabetical-end
//! This crate contains codegen code that is used by all codegen backends (LLVM and others). //! This crate contains codegen code that is used by all codegen backends (LLVM and others).
//! The backend-agnostic functions of this crate use functions defined in various traits that //! The backend-agnostic functions of this crate use functions defined in various traits that

View File

@ -1,18 +1,20 @@
// tidy-alphabetical-start
#![allow(internal_features)] #![allow(internal_features)]
#![allow(rustc::diagnostic_outside_of_impl)] #![allow(rustc::diagnostic_outside_of_impl)]
#![feature(rustdoc_internals)]
#![doc(rust_logo)] #![doc(rust_logo)]
#![feature(assert_matches)] #![feature(assert_matches)]
#![feature(box_patterns)] #![feature(box_patterns)]
#![feature(decl_macro)] #![feature(decl_macro)]
#![feature(if_let_guard)]
#![feature(let_chains)] #![feature(let_chains)]
#![feature(never_type)]
#![feature(rustdoc_internals)]
#![feature(slice_ptr_get)] #![feature(slice_ptr_get)]
#![feature(strict_provenance)] #![feature(strict_provenance)]
#![feature(never_type)]
#![feature(trait_alias)] #![feature(trait_alias)]
#![feature(try_blocks)] #![feature(try_blocks)]
#![feature(yeet_expr)] #![feature(yeet_expr)]
#![feature(if_let_guard)] // tidy-alphabetical-end
pub mod check_consts; pub mod check_consts;
pub mod const_eval; pub mod const_eval;

View File

@ -1,8 +1,10 @@
// This crate is intentionally empty and a re-export of `rustc_driver_impl` to allow the code in // This crate is intentionally empty and a re-export of `rustc_driver_impl` to allow the code in
// `rustc_driver_impl` to be compiled in parallel with other crates. // `rustc_driver_impl` to be compiled in parallel with other crates.
// tidy-alphabetical-start
#![allow(internal_features)] #![allow(internal_features)]
#![feature(rustdoc_internals)]
#![doc(rust_logo)] #![doc(rust_logo)]
#![feature(rustdoc_internals)]
// tidy-alphabetical-end
pub use rustc_driver_impl::*; pub use rustc_driver_impl::*;

View File

@ -4,16 +4,18 @@
//! //!
//! This API is completely unstable and subject to change. //! This API is completely unstable and subject to change.
// tidy-alphabetical-start
#![allow(internal_features)]
#![allow(rustc::untranslatable_diagnostic)] // FIXME: make this translatable #![allow(rustc::untranslatable_diagnostic)] // FIXME: make this translatable
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")] #![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
#![doc(rust_logo)] #![doc(rust_logo)]
#![feature(rustdoc_internals)]
#![allow(internal_features)]
#![feature(decl_macro)] #![feature(decl_macro)]
#![feature(let_chains)] #![feature(let_chains)]
#![feature(panic_backtrace_config)] #![feature(panic_backtrace_config)]
#![feature(panic_update_hook)] #![feature(panic_update_hook)]
#![feature(result_flattening)] #![feature(result_flattening)]
#![feature(rustdoc_internals)]
// tidy-alphabetical-end
use rustc_ast as ast; use rustc_ast as ast;
use rustc_codegen_ssa::{traits::CodegenBackend, CodegenErrors, CodegenResults}; use rustc_codegen_ssa::{traits::CodegenBackend, CodegenErrors, CodegenResults};

View File

@ -1,10 +1,12 @@
//! This library is used to gather all error codes into one place, to make //! This library is used to gather all error codes into one place, to make
//! their maintenance easier. //! their maintenance easier.
// tidy-alphabetical-start
#![allow(internal_features)] #![allow(internal_features)]
#![feature(rustdoc_internals)]
#![doc(rust_logo)]
#![deny(rustdoc::invalid_codeblock_attributes)] #![deny(rustdoc::invalid_codeblock_attributes)]
#![doc(rust_logo)]
#![feature(rustdoc_internals)]
// tidy-alphabetical-end
// This higher-order macro defines the error codes that are in use. It is used // This higher-order macro defines the error codes that are in use. It is used
// in the `rustc_errors` crate. Removed error codes are listed in the comment // in the `rustc_errors` crate. Removed error codes are listed in the comment

View File

@ -1,8 +1,10 @@
#![doc(rust_logo)] // tidy-alphabetical-start
#![feature(rustdoc_internals)]
#![feature(rustc_attrs)]
#![feature(type_alias_impl_trait)]
#![allow(internal_features)] #![allow(internal_features)]
#![doc(rust_logo)]
#![feature(rustc_attrs)]
#![feature(rustdoc_internals)]
#![feature(type_alias_impl_trait)]
// tidy-alphabetical-end
use fluent_bundle::FluentResource; use fluent_bundle::FluentResource;
use fluent_syntax::parser::ParserError; use fluent_syntax::parser::ParserError;

View File

@ -11,9 +11,11 @@
//! even if it is stabilized or removed, *do not remove it*. Instead, move the //! even if it is stabilized or removed, *do not remove it*. Instead, move the
//! symbol to the `accepted` or `removed` modules respectively. //! symbol to the `accepted` or `removed` modules respectively.
// tidy-alphabetical-start
#![allow(internal_features)] #![allow(internal_features)]
#![feature(rustdoc_internals)]
#![doc(rust_logo)] #![doc(rust_logo)]
#![feature(rustdoc_internals)]
// tidy-alphabetical-end
mod accepted; mod accepted;
mod builtin_attrs; mod builtin_attrs;

View File

@ -1,10 +1,12 @@
// tidy-alphabetical-start
#![allow(internal_features)]
#![allow(rustc::default_hash_types)]
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")] #![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
#![doc(rust_logo)] #![doc(rust_logo)]
#![allow(internal_features)]
#![feature(rustdoc_internals)]
#![feature(proc_macro_diagnostic)] #![feature(proc_macro_diagnostic)]
#![feature(proc_macro_span)] #![feature(proc_macro_span)]
#![allow(rustc::default_hash_types)] #![feature(rustdoc_internals)]
// tidy-alphabetical-end
use proc_macro::TokenStream; use proc_macro::TokenStream;

View File

@ -1,7 +1,9 @@
// tidy-alphabetical-start
use std::ffi::CString; use std::ffi::CString;
use std::fs; use std::fs;
use std::io; use std::io;
use std::path::{absolute, Path, PathBuf}; use std::path::{absolute, Path, PathBuf};
// tidy-alphabetical-end
// Unfortunately, on windows, it looks like msvcrt.dll is silently translating // Unfortunately, on windows, it looks like msvcrt.dll is silently translating
// verbatim paths under the hood to non-verbatim paths! This manifests itself as // verbatim paths under the hood to non-verbatim paths! This manifests itself as

View File

@ -269,13 +269,15 @@
//! //!
//! * [DOT language](https://www.graphviz.org/doc/info/lang.html) //! * [DOT language](https://www.graphviz.org/doc/info/lang.html)
// tidy-alphabetical-start
#![allow(internal_features)]
#![doc( #![doc(
html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/", html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/",
test(attr(allow(unused_variables), deny(warnings))) test(attr(allow(unused_variables), deny(warnings)))
)] )]
#![feature(rustdoc_internals)]
#![doc(rust_logo)] #![doc(rust_logo)]
#![allow(internal_features)] #![feature(rustdoc_internals)]
// tidy-alphabetical-end
use LabelText::*; use LabelText::*;

View File

@ -2,13 +2,15 @@
//! //!
//! [rustc dev guide]: https://rustc-dev-guide.rust-lang.org/hir.html //! [rustc dev guide]: https://rustc-dev-guide.rust-lang.org/hir.html
// tidy-alphabetical-start
#![allow(internal_features)]
#![feature(associated_type_defaults)] #![feature(associated_type_defaults)]
#![feature(closure_track_caller)] #![feature(closure_track_caller)]
#![feature(let_chains)] #![feature(let_chains)]
#![feature(never_type)] #![feature(never_type)]
#![feature(rustc_attrs)] #![feature(rustc_attrs)]
#![feature(variant_count)] #![feature(variant_count)]
#![allow(internal_features)] // tidy-alphabetical-end
extern crate self as rustc_hir; extern crate self as rustc_hir;

View File

@ -55,21 +55,23 @@ This API is completely unstable and subject to change.
*/ */
// tidy-alphabetical-start
#![allow(internal_features)]
#![allow(rustc::diagnostic_outside_of_impl)] #![allow(rustc::diagnostic_outside_of_impl)]
#![allow(rustc::potential_query_instability)] #![allow(rustc::potential_query_instability)]
#![allow(rustc::untranslatable_diagnostic)] #![allow(rustc::untranslatable_diagnostic)]
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")] #![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
#![doc(rust_logo)] #![doc(rust_logo)]
#![feature(rustdoc_internals)]
#![allow(internal_features)]
#![feature(control_flow_enum)] #![feature(control_flow_enum)]
#![feature(if_let_guard)] #![feature(if_let_guard)]
#![feature(is_sorted)] #![feature(is_sorted)]
#![feature(iter_intersperse)] #![feature(iter_intersperse)]
#![feature(let_chains)] #![feature(let_chains)]
#![feature(never_type)] #![feature(never_type)]
#![feature(rustdoc_internals)]
#![feature(slice_partition_dedup)] #![feature(slice_partition_dedup)]
#![feature(try_blocks)] #![feature(try_blocks)]
// tidy-alphabetical-end
#[macro_use] #[macro_use]
extern crate tracing; extern crate tracing;

View File

@ -1,7 +1,9 @@
//! HIR pretty-printing is layered on top of AST pretty-printing. A number of //! HIR pretty-printing is layered on top of AST pretty-printing. A number of
//! the definitions in this file have equivalents in `rustc_ast_pretty`. //! the definitions in this file have equivalents in `rustc_ast_pretty`.
// tidy-alphabetical-start
#![recursion_limit = "256"] #![recursion_limit = "256"]
// tidy-alphabetical-end
use rustc_ast as ast; use rustc_ast as ast;
use rustc_ast::util::parser::{self, AssocOp, Fixity}; use rustc_ast::util::parser::{self, AssocOp, Fixity};

View File

@ -1,11 +1,13 @@
// tidy-alphabetical-start
#![allow(rustc::diagnostic_outside_of_impl)] #![allow(rustc::diagnostic_outside_of_impl)]
#![allow(rustc::untranslatable_diagnostic)] #![allow(rustc::untranslatable_diagnostic)]
#![feature(if_let_guard)]
#![feature(let_chains)]
#![feature(try_blocks)]
#![feature(never_type)]
#![feature(box_patterns)] #![feature(box_patterns)]
#![feature(control_flow_enum)] #![feature(control_flow_enum)]
#![feature(if_let_guard)]
#![feature(let_chains)]
#![feature(never_type)]
#![feature(try_blocks)]
// tidy-alphabetical-end
#[macro_use] #[macro_use]
extern crate tracing; extern crate tracing;

View File

@ -1,10 +1,12 @@
//! Support for serializing the dep-graph and reloading it. //! Support for serializing the dep-graph and reloading it.
// tidy-alphabetical-start
#![allow(internal_features)]
#![deny(missing_docs)] #![deny(missing_docs)]
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")] #![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
#![doc(rust_logo)] #![doc(rust_logo)]
#![feature(rustdoc_internals)] #![feature(rustdoc_internals)]
#![allow(internal_features)] // tidy-alphabetical-end
mod assert_dep_graph; mod assert_dep_graph;
mod errors; mod errors;

View File

@ -1,9 +1,11 @@
// tidy-alphabetical-start
#![cfg_attr(all(feature = "nightly", test), feature(stmt_expr_attributes))]
#![cfg_attr( #![cfg_attr(
feature = "nightly", feature = "nightly",
feature(extend_one, min_specialization, new_uninit, step_trait, test) feature(extend_one, min_specialization, new_uninit, step_trait, test)
)] )]
#![cfg_attr(all(feature = "nightly", test), feature(stmt_expr_attributes))]
#![cfg_attr(feature = "nightly", allow(internal_features))] #![cfg_attr(feature = "nightly", allow(internal_features))]
// tidy-alphabetical-end
pub mod bit_set; pub mod bit_set;
#[cfg(feature = "nightly")] #[cfg(feature = "nightly")]

View File

@ -1,5 +1,7 @@
#![cfg_attr(feature = "nightly", feature(allow_internal_unstable))] // tidy-alphabetical-start
#![cfg_attr(feature = "nightly", allow(internal_features))] #![cfg_attr(feature = "nightly", allow(internal_features))]
#![cfg_attr(feature = "nightly", feature(allow_internal_unstable))]
// tidy-alphabetical-end
use proc_macro::TokenStream; use proc_macro::TokenStream;

View File

@ -12,22 +12,24 @@
//! //!
//! This API is completely unstable and subject to change. //! This API is completely unstable and subject to change.
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")] // tidy-alphabetical-start
#![doc(rust_logo)]
#![feature(rustdoc_internals)]
#![allow(internal_features)] #![allow(internal_features)]
#![allow(rustc::diagnostic_outside_of_impl)] #![allow(rustc::diagnostic_outside_of_impl)]
#![allow(rustc::untranslatable_diagnostic)] #![allow(rustc::untranslatable_diagnostic)]
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
#![doc(rust_logo)]
#![feature(box_patterns)] #![feature(box_patterns)]
#![feature(control_flow_enum)] #![feature(control_flow_enum)]
#![feature(extend_one)] #![feature(extend_one)]
#![feature(let_chains)]
#![feature(if_let_guard)] #![feature(if_let_guard)]
#![feature(iter_intersperse)] #![feature(iter_intersperse)]
#![feature(iterator_try_collect)] #![feature(iterator_try_collect)]
#![feature(let_chains)]
#![feature(rustdoc_internals)]
#![feature(try_blocks)] #![feature(try_blocks)]
#![feature(yeet_expr)] #![feature(yeet_expr)]
#![recursion_limit = "512"] // For rustdoc #![recursion_limit = "512"] // For rustdoc
// tidy-alphabetical-end
#[macro_use] #[macro_use]
extern crate tracing; extern crate tracing;

View File

@ -1,7 +1,9 @@
// tidy-alphabetical-start
#![feature(decl_macro)] #![feature(decl_macro)]
#![feature(let_chains)] #![feature(let_chains)]
#![feature(thread_spawn_unchecked)] #![feature(thread_spawn_unchecked)]
#![feature(try_blocks)] #![feature(try_blocks)]
// tidy-alphabetical-end
mod callbacks; mod callbacks;
mod errors; mod errors;

View File

@ -19,9 +19,11 @@
//! //!
//! [`rustc_parse::lexer`]: ../rustc_parse/lexer/index.html //! [`rustc_parse::lexer`]: ../rustc_parse/lexer/index.html
// tidy-alphabetical-start
// We want to be able to build this crate with a stable compiler, // We want to be able to build this crate with a stable compiler,
// so no `#![feature]` attributes should be added. // so no `#![feature]` attributes should be added.
#![deny(unstable_features)] #![deny(unstable_features)]
// tidy-alphabetical-end
mod cursor; mod cursor;
pub mod unescape; pub mod unescape;

View File

@ -25,9 +25,10 @@
//! //!
//! This API is completely unstable and subject to change. //! This API is completely unstable and subject to change.
// tidy-alphabetical-start
#![allow(internal_features)]
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")] #![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
#![doc(rust_logo)] #![doc(rust_logo)]
#![feature(rustdoc_internals)]
#![feature(array_windows)] #![feature(array_windows)]
#![feature(box_patterns)] #![feature(box_patterns)]
#![feature(control_flow_enum)] #![feature(control_flow_enum)]
@ -35,9 +36,10 @@
#![feature(if_let_guard)] #![feature(if_let_guard)]
#![feature(iter_order_by)] #![feature(iter_order_by)]
#![feature(let_chains)] #![feature(let_chains)]
#![feature(trait_upcasting)]
#![feature(rustc_attrs)] #![feature(rustc_attrs)]
#![allow(internal_features)] #![feature(rustdoc_internals)]
#![feature(trait_upcasting)]
// tidy-alphabetical-end
mod async_fn_in_trait; mod async_fn_in_trait;
pub mod builtin; pub mod builtin;

View File

@ -1,3 +1,4 @@
// tidy-alphabetical-start
pub use self::Level::*; pub use self::Level::*;
use rustc_ast::node_id::NodeId; use rustc_ast::node_id::NodeId;
use rustc_ast::{AttrId, Attribute}; use rustc_ast::{AttrId, Attribute};
@ -14,6 +15,7 @@ use rustc_span::edition::Edition;
use rustc_span::symbol::MacroRulesNormalizedIdent; use rustc_span::symbol::MacroRulesNormalizedIdent;
use rustc_span::{sym, symbol::Ident, Span, Symbol}; use rustc_span::{sym, symbol::Ident, Span, Symbol};
use rustc_target::spec::abi::Abi; use rustc_target::spec::abi::Abi;
// tidy-alphabetical-end
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};

View File

@ -1,7 +1,9 @@
// tidy-alphabetical-start
#![allow(internal_features)]
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")] #![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
#![doc(rust_logo)] #![doc(rust_logo)]
#![feature(rustdoc_internals)] #![feature(rustdoc_internals)]
#![allow(internal_features)] // tidy-alphabetical-end
// NOTE: This crate only exists to allow linking on mingw targets. // NOTE: This crate only exists to allow linking on mingw targets.

View File

@ -1,3 +1,6 @@
// tidy-alphabetical-start
#![allow(internal_features)]
#![allow(rustc::default_hash_types)]
#![feature(allow_internal_unstable)] #![feature(allow_internal_unstable)]
#![feature(if_let_guard)] #![feature(if_let_guard)]
#![feature(let_chains)] #![feature(let_chains)]
@ -5,8 +8,7 @@
#![feature(proc_macro_diagnostic)] #![feature(proc_macro_diagnostic)]
#![feature(proc_macro_span)] #![feature(proc_macro_span)]
#![feature(proc_macro_tracked_env)] #![feature(proc_macro_tracked_env)]
#![allow(rustc::default_hash_types)] // tidy-alphabetical-end
#![allow(internal_features)]
use synstructure::decl_derive; use synstructure::decl_derive;

View File

@ -1,5 +1,6 @@
//! Construction of MIR from HIR. //! Construction of MIR from HIR.
// tidy-alphabetical-start
#![allow(rustc::diagnostic_outside_of_impl)] #![allow(rustc::diagnostic_outside_of_impl)]
#![allow(rustc::untranslatable_diagnostic)] #![allow(rustc::untranslatable_diagnostic)]
#![feature(assert_matches)] #![feature(assert_matches)]
@ -7,6 +8,7 @@
#![feature(if_let_guard)] #![feature(if_let_guard)]
#![feature(let_chains)] #![feature(let_chains)]
#![feature(try_blocks)] #![feature(try_blocks)]
// tidy-alphabetical-end
mod build; mod build;
mod check_unsafety; mod check_unsafety;

View File

@ -1,8 +1,10 @@
// tidy-alphabetical-start
#![feature(associated_type_defaults)] #![feature(associated_type_defaults)]
#![feature(box_patterns)] #![feature(box_patterns)]
#![feature(exact_size_is_empty)] #![feature(exact_size_is_empty)]
#![feature(let_chains)] #![feature(let_chains)]
#![feature(try_blocks)] #![feature(try_blocks)]
// tidy-alphabetical-end
use rustc_middle::ty; use rustc_middle::ty;

View File

@ -1,8 +1,10 @@
// tidy-alphabetical-start
#![feature(assert_matches)] #![feature(assert_matches)]
#![feature(box_patterns)] #![feature(box_patterns)]
#![feature(const_type_name)] #![feature(const_type_name)]
#![feature(cow_is_borrowed)] #![feature(cow_is_borrowed)]
#![feature(decl_macro)] #![feature(decl_macro)]
#![feature(if_let_guard)]
#![feature(impl_trait_in_assoc_type)] #![feature(impl_trait_in_assoc_type)]
#![feature(is_sorted)] #![feature(is_sorted)]
#![feature(let_chains)] #![feature(let_chains)]
@ -12,7 +14,7 @@
#![feature(round_char_boundary)] #![feature(round_char_boundary)]
#![feature(try_blocks)] #![feature(try_blocks)]
#![feature(yeet_expr)] #![feature(yeet_expr)]
#![feature(if_let_guard)] // tidy-alphabetical-end
#[macro_use] #[macro_use]
extern crate tracing; extern crate tracing;

View File

@ -1,5 +1,7 @@
// tidy-alphabetical-start
#![feature(array_windows)] #![feature(array_windows)]
#![feature(is_sorted)] #![feature(is_sorted)]
// tidy-alphabetical-end
use rustc_hir::lang_items::LangItem; use rustc_hir::lang_items::LangItem;
use rustc_middle::bug; use rustc_middle::bug;

View File

@ -1,5 +1,6 @@
//! The main parser interface. //! The main parser interface.
// tidy-alphabetical-start
#![allow(internal_features)] #![allow(internal_features)]
#![allow(rustc::diagnostic_outside_of_impl)] #![allow(rustc::diagnostic_outside_of_impl)]
#![allow(rustc::untranslatable_diagnostic)] #![allow(rustc::untranslatable_diagnostic)]
@ -9,6 +10,7 @@
#![feature(if_let_guard)] #![feature(if_let_guard)]
#![feature(iter_intersperse)] #![feature(iter_intersperse)]
#![feature(let_chains)] #![feature(let_chains)]
// tidy-alphabetical-end
use rustc_ast as ast; use rustc_ast as ast;
use rustc_ast::token; use rustc_ast::token;

View File

@ -4,14 +4,16 @@
//! Parsing does not happen at runtime: structures of `std::fmt::rt` are //! Parsing does not happen at runtime: structures of `std::fmt::rt` are
//! generated instead. //! generated instead.
// tidy-alphabetical-start
// We want to be able to build this crate with a stable compiler,
// so no `#![feature]` attributes should be added.
#![deny(unstable_features)]
#![doc( #![doc(
html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/", html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/",
html_playground_url = "https://play.rust-lang.org/", html_playground_url = "https://play.rust-lang.org/",
test(attr(deny(warnings))) test(attr(deny(warnings)))
)] )]
// We want to be able to build this crate with a stable compiler, // tidy-alphabetical-end
// so no `#![feature]` attributes should be added.
#![deny(unstable_features)]
use rustc_lexer::unescape; use rustc_lexer::unescape;
pub use Alignment::*; pub use Alignment::*;

View File

@ -4,13 +4,15 @@
//! //!
//! This API is completely unstable and subject to change. //! This API is completely unstable and subject to change.
// tidy-alphabetical-start
#![allow(internal_features)]
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")] #![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
#![doc(rust_logo)] #![doc(rust_logo)]
#![feature(rustdoc_internals)]
#![allow(internal_features)]
#![feature(let_chains)] #![feature(let_chains)]
#![feature(map_try_insert)] #![feature(map_try_insert)]
#![feature(rustdoc_internals)]
#![feature(try_blocks)] #![feature(try_blocks)]
// tidy-alphabetical-end
use rustc_middle::query::Providers; use rustc_middle::query::Providers;

View File

@ -1,7 +1,9 @@
//! Analysis of patterns, notably match exhaustiveness checking. //! Analysis of patterns, notably match exhaustiveness checking.
#![allow(rustc::untranslatable_diagnostic)] // tidy-alphabetical-start
#![allow(rustc::diagnostic_outside_of_impl)] #![allow(rustc::diagnostic_outside_of_impl)]
#![allow(rustc::untranslatable_diagnostic)]
// tidy-alphabetical-end
pub mod constructor; pub mod constructor;
#[cfg(feature = "rustc")] #[cfg(feature = "rustc")]

View File

@ -1,10 +1,12 @@
// tidy-alphabetical-start
#![allow(internal_features)]
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")] #![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
#![doc(rust_logo)] #![doc(rust_logo)]
#![feature(rustdoc_internals)]
#![allow(internal_features)]
#![feature(associated_type_defaults)] #![feature(associated_type_defaults)]
#![feature(try_blocks)]
#![feature(let_chains)] #![feature(let_chains)]
#![feature(rustdoc_internals)]
#![feature(try_blocks)]
// tidy-alphabetical-end
mod errors; mod errors;

View File

@ -1,12 +1,14 @@
//! Support for serializing the dep-graph and reloading it. //! Support for serializing the dep-graph and reloading it.
// tidy-alphabetical-start
#![allow(internal_features)]
#![allow(rustc::potential_query_instability, unused_parens)]
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")] #![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
#![doc(rust_logo)] #![doc(rust_logo)]
#![feature(rustdoc_internals)]
#![feature(min_specialization)] #![feature(min_specialization)]
#![feature(rustc_attrs)] #![feature(rustc_attrs)]
#![allow(rustc::potential_query_instability, unused_parens)] #![feature(rustdoc_internals)]
#![allow(internal_features)] // tidy-alphabetical-end
use crate::plumbing::{__rust_begin_short_backtrace, encode_all_query_results, try_mark_green}; use crate::plumbing::{__rust_begin_short_backtrace, encode_all_query_results, try_mark_green};
use crate::profiling_support::QueryKeyStringCache; use crate::profiling_support::QueryKeyStringCache;

View File

@ -1,9 +1,11 @@
// tidy-alphabetical-start
#![allow(rustc::potential_query_instability, internal_features)]
#![feature(assert_matches)] #![feature(assert_matches)]
#![feature(core_intrinsics)] #![feature(core_intrinsics)]
#![feature(hash_raw_entry)] #![feature(hash_raw_entry)]
#![feature(min_specialization)]
#![feature(let_chains)] #![feature(let_chains)]
#![allow(rustc::potential_query_instability, internal_features)] #![feature(min_specialization)]
// tidy-alphabetical-end
pub mod cache; pub mod cache;
pub mod dep_graph; pub mod dep_graph;

View File

@ -1,7 +1,11 @@
#![feature(let_chains)]
//! Sanitizers support for the Rust compiler. //! Sanitizers support for the Rust compiler.
//! //!
//! This crate contains the source code for providing support for the sanitizers to the Rust //! This crate contains the source code for providing support for the sanitizers to the Rust
//! compiler. //! compiler.
// tidy-alphabetical-start
#![feature(let_chains)]
// tidy-alphabetical-end
pub mod cfi; pub mod cfi;
pub mod kcfi; pub mod kcfi;

View File

@ -1,20 +1,22 @@
//! Support code for encoding and decoding types. //! Support code for encoding and decoding types.
// tidy-alphabetical-start
#![allow(internal_features)]
#![allow(rustc::internal)]
#![cfg_attr(test, feature(test))]
#![doc( #![doc(
html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/", html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/",
html_playground_url = "https://play.rust-lang.org/", html_playground_url = "https://play.rust-lang.org/",
test(attr(allow(unused_variables), deny(warnings))) test(attr(allow(unused_variables), deny(warnings)))
)] )]
#![doc(rust_logo)] #![doc(rust_logo)]
#![allow(internal_features)]
#![feature(rustdoc_internals)]
#![feature(const_option)] #![feature(const_option)]
#![feature(core_intrinsics)] #![feature(core_intrinsics)]
#![feature(min_specialization)] #![feature(min_specialization)]
#![feature(never_type)] #![feature(never_type)]
#![feature(ptr_sub_ptr)] #![feature(ptr_sub_ptr)]
#![cfg_attr(test, feature(test))] #![feature(rustdoc_internals)]
#![allow(rustc::internal)] // tidy-alphabetical-end
pub use self::serialize::{Decodable, Decoder, Encodable, Encoder}; pub use self::serialize::{Decodable, Decoder, Encodable, Encoder};

View File

@ -1,9 +1,11 @@
// tidy-alphabetical-start
#![allow(internal_features)]
#![feature(iter_intersperse)]
#![feature(let_chains)] #![feature(let_chains)]
#![feature(map_many_mut)]
#![feature(option_get_or_insert_default)] #![feature(option_get_or_insert_default)]
#![feature(rustc_attrs)] #![feature(rustc_attrs)]
#![feature(map_many_mut)] // tidy-alphabetical-end
#![feature(iter_intersperse)]
#![allow(internal_features)]
pub mod errors; pub mod errors;

View File

@ -6,14 +6,16 @@
//! //!
//! This API is still completely unstable and subject to change. //! This API is still completely unstable and subject to change.
// tidy-alphabetical-start
#![allow(internal_features)]
#![allow(rustc::usage_of_ty_tykind)]
#![doc( #![doc(
html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/", html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/",
test(attr(allow(unused_variables), deny(warnings))) test(attr(allow(unused_variables), deny(warnings)))
)] )]
#![doc(rust_logo)] #![doc(rust_logo)]
#![feature(rustdoc_internals)] #![feature(rustdoc_internals)]
#![allow(internal_features)] // tidy-alphabetical-end
#![allow(rustc::usage_of_ty_tykind)]
pub mod rustc_internal; pub mod rustc_internal;

View File

@ -87,11 +87,13 @@
//! virtually impossible. Thus, symbol hash generation exclusively relies on //! virtually impossible. Thus, symbol hash generation exclusively relies on
//! DefPaths which are much more robust in the face of changes to the code base. //! DefPaths which are much more robust in the face of changes to the code base.
// tidy-alphabetical-start
#![allow(internal_features)]
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")] #![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
#![doc(rust_logo)] #![doc(rust_logo)]
#![feature(rustdoc_internals)]
#![feature(let_chains)] #![feature(let_chains)]
#![allow(internal_features)] #![feature(rustdoc_internals)]
// tidy-alphabetical-end
use rustc_hir::def::DefKind; use rustc_hir::def::DefKind;
use rustc_hir::def_id::{CrateNum, LOCAL_CRATE}; use rustc_hir::def_id::{CrateNum, LOCAL_CRATE};

View File

@ -10,12 +10,12 @@
//! //!
//! This API is completely unstable and subject to change. //! This API is completely unstable and subject to change.
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")] // tidy-alphabetical-start
#![doc(rust_logo)]
#![feature(rustdoc_internals)]
#![allow(internal_features)] #![allow(internal_features)]
#![allow(rustc::diagnostic_outside_of_impl)] #![allow(rustc::diagnostic_outside_of_impl)]
#![allow(rustc::untranslatable_diagnostic)] #![allow(rustc::untranslatable_diagnostic)]
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
#![doc(rust_logo)]
#![feature(assert_matches)] #![feature(assert_matches)]
#![feature(associated_type_defaults)] #![feature(associated_type_defaults)]
#![feature(box_patterns)] #![feature(box_patterns)]
@ -24,8 +24,10 @@
#![feature(if_let_guard)] #![feature(if_let_guard)]
#![feature(let_chains)] #![feature(let_chains)]
#![feature(never_type)] #![feature(never_type)]
#![feature(rustdoc_internals)]
#![feature(type_alias_impl_trait)] #![feature(type_alias_impl_trait)]
#![recursion_limit = "512"] // For rustdoc #![recursion_limit = "512"] // For rustdoc
// tidy-alphabetical-end
#[macro_use] #[macro_use]
extern crate tracing; extern crate tracing;

View File

@ -1,6 +1,8 @@
//! Queries that are independent from the main solver code. //! Queries that are independent from the main solver code.
// tidy-alphabetical-start
#![recursion_limit = "256"] #![recursion_limit = "256"]
// tidy-alphabetical-end
mod codegen; mod codegen;
mod dropck_outlives; mod dropck_outlives;

View File

@ -1,6 +1,8 @@
// tidy-alphabetical-start
#![allow(unused_variables)]
#![feature(alloc_layout_extra)] #![feature(alloc_layout_extra)]
#![feature(never_type)] #![feature(never_type)]
#![allow(unused_variables)] // tidy-alphabetical-end
pub(crate) use rustc_data_structures::fx::{FxIndexMap as Map, FxIndexSet as Set}; pub(crate) use rustc_data_structures::fx::{FxIndexMap as Map, FxIndexSet as Set};

View File

@ -4,10 +4,10 @@
//! //!
//! This API is completely unstable and subject to change. //! This API is completely unstable and subject to change.
// tidy-alphabetical-start
#![allow(internal_features)]
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")] #![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
#![doc(rust_logo)] #![doc(rust_logo)]
#![feature(rustdoc_internals)]
#![allow(internal_features)]
#![feature(assert_matches)] #![feature(assert_matches)]
#![feature(associated_type_defaults)] #![feature(associated_type_defaults)]
#![feature(box_patterns)] #![feature(box_patterns)]
@ -15,6 +15,8 @@
#![feature(iterator_try_collect)] #![feature(iterator_try_collect)]
#![feature(let_chains)] #![feature(let_chains)]
#![feature(never_type)] #![feature(never_type)]
#![feature(rustdoc_internals)]
// tidy-alphabetical-end
use rustc_middle::query::Providers; use rustc_middle::query::Providers;

View File

@ -1,9 +1,11 @@
// tidy-alphabetical-start
#![allow(rustc::usage_of_ty_tykind)]
#![cfg_attr( #![cfg_attr(
feature = "nightly", feature = "nightly",
feature(associated_type_defaults, min_specialization, never_type, rustc_attrs, negative_impls) feature(associated_type_defaults, min_specialization, never_type, rustc_attrs, negative_impls)
)] )]
#![allow(rustc::usage_of_ty_tykind)]
#![cfg_attr(feature = "nightly", allow(internal_features))] #![cfg_attr(feature = "nightly", allow(internal_features))]
// tidy-alphabetical-end
#[cfg(feature = "nightly")] #[cfg(feature = "nightly")]
extern crate self as rustc_type_ir; extern crate self as rustc_type_ir;