Add a list of symbols for stable standard library crates
There are a few locations where the crate name is checked against an enumerated list of `std`, `core`, `alloc`, and `proc_macro`, or some subset thereof. In most of these cases, all four crates should likely be treated the same. Change this so the crates are listed in one place, and that list is used wherever a list of `std` crates is needed. `test` could be considered relevant in some of these cases, but generally treating it separate from the others seems preferable while it is unstable. There are also a few places that Clippy will be able to use this.
This commit is contained in:
parent
1f81f90689
commit
933c4f5a81
5 changed files with 17 additions and 16 deletions
|
@ -27,7 +27,7 @@ use rustc_middle::ty::{
|
|||
self, ToPolyTraitRef, TraitRef, Ty, TyCtxt, TypeFoldable, TypeVisitableExt, Upcast,
|
||||
};
|
||||
use rustc_middle::{bug, span_bug};
|
||||
use rustc_span::{BytePos, DUMMY_SP, Span, Symbol, sym};
|
||||
use rustc_span::{BytePos, DUMMY_SP, STDLIB_STABLE_CRATES, Span, Symbol, sym};
|
||||
use tracing::{debug, instrument};
|
||||
|
||||
use super::on_unimplemented::{AppendConstMessage, OnUnimplementedNote};
|
||||
|
@ -520,7 +520,7 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
|
|||
match obligation.cause.span.ctxt().outer_expn_data().macro_def_id {
|
||||
Some(macro_def_id) => {
|
||||
let crate_name = tcx.crate_name(macro_def_id.krate);
|
||||
crate_name == sym::std || crate_name == sym::core
|
||||
STDLIB_STABLE_CRATES.contains(&crate_name)
|
||||
}
|
||||
None => false,
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue