Make LintExpectationId stable between compilation sessions (RFC-2383)
This commit is contained in:
@@ -6,10 +6,9 @@ use rustc_errors::{Diagnostic, DiagnosticBuilder, DiagnosticId};
|
||||
use rustc_hir::HirId;
|
||||
use rustc_index::vec::IndexVec;
|
||||
use rustc_query_system::ich::StableHashingContext;
|
||||
use rustc_session::lint::LintExpectationId;
|
||||
use rustc_session::lint::{
|
||||
builtin::{self, FORBIDDEN_LINT_GROUPS},
|
||||
FutureIncompatibilityReason, Level, Lint, LintId,
|
||||
FutureIncompatibilityReason, Level, Lint, LintExpectationId, LintId,
|
||||
};
|
||||
use rustc_session::{DiagnosticMessageId, Session};
|
||||
use rustc_span::hygiene::MacroKind;
|
||||
|
||||
@@ -49,7 +49,7 @@ use rustc_middle::mir::FakeReadCause;
|
||||
use rustc_query_system::ich::{NodeIdHashingMode, StableHashingContext};
|
||||
use rustc_serialize::opaque::{FileEncodeResult, FileEncoder};
|
||||
use rustc_session::config::{BorrowckMode, CrateType, OutputFilenames};
|
||||
use rustc_session::lint::{Level, Lint};
|
||||
use rustc_session::lint::{Level, Lint, LintExpectationId};
|
||||
use rustc_session::Limit;
|
||||
use rustc_session::Session;
|
||||
use rustc_span::def_id::{DefPathHash, StableCrateId};
|
||||
@@ -2755,11 +2755,13 @@ impl<'tcx> TyCtxt<'tcx> {
|
||||
return bound;
|
||||
}
|
||||
|
||||
if hir
|
||||
.attrs(id)
|
||||
.iter()
|
||||
.any(|attr| Level::from_symbol(attr.name_or_empty(), attr.id.as_u32()).is_some())
|
||||
{
|
||||
if hir.attrs(id).iter().enumerate().any(|(attr_index, attr)| {
|
||||
Level::from_symbol(attr.name_or_empty(), || LintExpectationId::Stable {
|
||||
hir_id: id,
|
||||
attr_index,
|
||||
})
|
||||
.is_some()
|
||||
}) {
|
||||
return id;
|
||||
}
|
||||
let next = hir.get_parent_node(id);
|
||||
|
||||
Reference in New Issue
Block a user