It lints against features that are inteded to be internal to the compiler and standard library. Implements MCP #596. We allow `internal_features` in the standard library and compiler as those use many features and this _is_ the standard library from the "internal to the compiler and standard library" after all. Marking some features as internal wasn't exactly the most scientific approach, I just marked some mostly obvious features. While there is a categorization in the macro, it's not very well upheld (should probably be fixed in another PR). We always pass `-Ainternal_features` in the testsuite About 400 UI tests and several other tests use internal features. Instead of throwing the attribute on each one, just always allow them. There's nothing wrong with testing internal features^^
51 lines
1.3 KiB
Rust
51 lines
1.3 KiB
Rust
#![feature(if_let_guard)]
|
|
#![feature(let_chains)]
|
|
#![feature(min_specialization)]
|
|
#![feature(never_type)]
|
|
#![feature(lazy_cell)]
|
|
#![feature(option_get_or_insert_default)]
|
|
#![feature(rustc_attrs)]
|
|
#![feature(map_many_mut)]
|
|
#![recursion_limit = "256"]
|
|
#![allow(rustc::potential_query_instability)]
|
|
#![deny(rustc::untranslatable_diagnostic)]
|
|
#![deny(rustc::diagnostic_outside_of_impl)]
|
|
#![cfg_attr(not(bootstrap), allow(internal_features))]
|
|
|
|
#[macro_use]
|
|
extern crate rustc_macros;
|
|
pub mod errors;
|
|
|
|
#[macro_use]
|
|
extern crate tracing;
|
|
|
|
use rustc_errors::{DiagnosticMessage, SubdiagnosticMessage};
|
|
use rustc_fluent_macro::fluent_messages;
|
|
|
|
pub mod cgu_reuse_tracker;
|
|
pub mod utils;
|
|
pub use lint::{declare_lint, declare_lint_pass, declare_tool_lint, impl_lint_pass};
|
|
pub use rustc_lint_defs as lint;
|
|
pub mod parse;
|
|
|
|
pub mod code_stats;
|
|
#[macro_use]
|
|
pub mod config;
|
|
pub mod cstore;
|
|
pub mod filesearch;
|
|
mod options;
|
|
pub mod search_paths;
|
|
|
|
mod session;
|
|
pub use session::*;
|
|
|
|
pub mod output;
|
|
|
|
pub use getopts;
|
|
|
|
fluent_messages! { "../messages.ftl" }
|
|
|
|
/// Requirements for a `StableHashingContext` to be used in this crate.
|
|
/// This is a hack to allow using the `HashStable_Generic` derive macro
|
|
/// instead of implementing everything in `rustc_middle`.
|
|
pub trait HashStableContext: rustc_ast::HashStableContext + rustc_hir::HashStableContext {}
|