Slightly clean up some lint infra code

* inline `LintBuffer::add_lint`, it only had a single use
* update a lint infra example code snippet
  * it used the wrong API (the snippet isn't tested)
  * presumably the arguments were updated from builder to diag struct style
    at some point without updating the method
This commit is contained in:
León Orell Valerian Liehr 2024-05-22 14:45:48 +02:00
parent b54dd08a84
commit 366ef95407
No known key found for this signature in database
GPG key ID: D17A07215F68E713
2 changed files with 10 additions and 17 deletions

View file

@ -764,19 +764,7 @@ pub struct LintBuffer {
impl LintBuffer {
pub fn add_early_lint(&mut self, early_lint: BufferedEarlyLint) {
let arr = self.map.entry(early_lint.node_id).or_default();
arr.push(early_lint);
}
pub fn add_lint(
&mut self,
lint: &'static Lint,
node_id: NodeId,
span: MultiSpan,
diagnostic: BuiltinLintDiag,
) {
let lint_id = LintId::of(lint);
self.add_early_lint(BufferedEarlyLint { lint_id, node_id, span, diagnostic });
self.map.entry(early_lint.node_id).or_default().push(early_lint);
}
pub fn take(&mut self, id: NodeId) -> Vec<BufferedEarlyLint> {
@ -787,11 +775,16 @@ pub fn take(&mut self, id: NodeId) -> Vec<BufferedEarlyLint> {
pub fn buffer_lint(
&mut self,
lint: &'static Lint,
id: NodeId,
sp: impl Into<MultiSpan>,
node_id: NodeId,
span: impl Into<MultiSpan>,
diagnostic: BuiltinLintDiag,
) {
self.add_lint(lint, id, sp.into(), diagnostic)
self.add_early_lint(BufferedEarlyLint {
lint_id: LintId::of(lint),
node_id,
span: span.into(),
diagnostic,
});
}
}

View file

@ -91,7 +91,7 @@ pub fn diagnostic_derive(mut s: Structure<'_>) -> TokenStream {
/// Then, later, to emit the error:
///
/// ```ignore (rust)
/// cx.span_lint(INVALID_ATOMIC_ORDERING, fail_order_arg_span, AtomicOrderingInvalidLint {
/// cx.emit_span_lint(INVALID_ATOMIC_ORDERING, fail_order_arg_span, AtomicOrderingInvalidLint {
/// method,
/// success_ordering,
/// fail_ordering,