1
Fork 0

Address review comments

This commit is contained in:
xFrednet 2022-02-18 12:00:16 +01:00
parent 4887eb7b2d
commit defc056ccc
No known key found for this signature in database
GPG key ID: FCDCBF29AF64D601
3 changed files with 9 additions and 5 deletions

View file

@ -947,8 +947,8 @@ impl Handler {
.get_expectation_id() .get_expectation_id()
.expect("all diagnostics inside `unstable_expect_diagnostics` must have a `LintExpectationId`"); .expect("all diagnostics inside `unstable_expect_diagnostics` must have a `LintExpectationId`");
// The unstable to stable map only maps the unstable it to a stable id // The unstable to stable map only maps the unstable `AttrId` to a stable `HirId` with an attribute index.
// the lint index is manually transferred here. // The lint index inside the attribute is manually transferred here.
let lint_index = unstable_id.get_lint_index(); let lint_index = unstable_id.get_lint_index();
unstable_id.set_lint_index(None); unstable_id.set_lint_index(None);
let mut stable_id = *unstable_to_stable let mut stable_id = *unstable_to_stable
@ -966,6 +966,10 @@ impl Handler {
/// This methods steals all [`LintExpectationId`]s that are stored inside /// This methods steals all [`LintExpectationId`]s that are stored inside
/// [`HandlerInner`] and indicate that the linked expectation has been fulfilled. /// [`HandlerInner`] and indicate that the linked expectation has been fulfilled.
pub fn steal_fulfilled_expectation_ids(&self) -> FxHashSet<LintExpectationId> { pub fn steal_fulfilled_expectation_ids(&self) -> FxHashSet<LintExpectationId> {
assert!(
self.inner.borrow().unstable_expect_diagnostics.is_empty(),
"`HandlerInner::unstable_expect_diagnostics` should be empty at this point",
);
std::mem::take(&mut self.inner.borrow_mut().fulfilled_expectations) std::mem::take(&mut self.inner.borrow_mut().fulfilled_expectations)
} }
} }

View file

@ -142,12 +142,12 @@ impl<HCX: rustc_hir::HashStableContext> ToStableHashKey<HCX> for LintExpectation
pub enum Level { pub enum Level {
/// The `allow` level will not issue any message. /// The `allow` level will not issue any message.
Allow, Allow,
/// The `expect` level will suppress the lint message but intern produce a message /// The `expect` level will suppress the lint message but in turn produce a message
/// if the lint wasn't issued in the expected scope. `Expect` should not be used as /// if the lint wasn't issued in the expected scope. `Expect` should not be used as
/// an initial level for a lint. /// an initial level for a lint.
/// ///
/// Note that this still means that the lint is enabled in this position and should /// Note that this still means that the lint is enabled in this position and should
/// be emitted, this will intern fulfill the expectation and suppress the lint. /// be emitted, this will in turn fulfill the expectation and suppress the lint.
/// ///
/// See RFC 2383. /// See RFC 2383.
/// ///

View file

@ -387,7 +387,7 @@ pub fn struct_lint_level<'s, 'd>(
// Lint diagnostics that are covered by the expect level will not be emitted outside // Lint diagnostics that are covered by the expect level will not be emitted outside
// the compiler. It is therefore not necessary to add any information for the user. // the compiler. It is therefore not necessary to add any information for the user.
// This will therefore directly call the decorate function which will intern emit // This will therefore directly call the decorate function which will in turn emit
// the `Diagnostic`. // the `Diagnostic`.
if let Level::Expect(_) = level { if let Level::Expect(_) = level {
let name = lint.name_lower(); let name = lint.name_lower();