Skip to content

Commit 0e52a0e

Browse files
committed
Don't use ExpnKind::descr to get the name of a bang macro.
1 parent fd6f609 commit 0e52a0e

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

clippy_lints/src/utils/mod.rs

+13-13
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ use rustc_hir::intravisit::{NestedVisitorMap, Visitor};
4242
use rustc_hir::Node;
4343
use rustc_hir::*;
4444
use rustc_lint::{LateContext, Level, Lint, LintContext};
45-
use rustc_span::hygiene::ExpnKind;
45+
use rustc_span::hygiene::{ExpnKind, MacroKind};
4646
use rustc_span::symbol::{self, kw, Symbol};
4747
use rustc_span::{BytePos, Pos, Span, DUMMY_SP};
4848
use smallvec::SmallVec;
@@ -758,14 +758,15 @@ pub fn is_expn_of(mut span: Span, name: &str) -> Option<Span> {
758758
loop {
759759
if span.from_expansion() {
760760
let data = span.ctxt().outer_expn_data();
761-
let mac_name = data.kind.descr();
762761
let new_span = data.call_site;
763762

764-
if mac_name.as_str() == name {
765-
return Some(new_span);
766-
} else {
767-
span = new_span;
763+
if let ExpnKind::Macro(MacroKind::Bang, mac_name) = data.kind {
764+
if mac_name.as_str() == name {
765+
return Some(new_span);
766+
}
768767
}
768+
769+
span = new_span;
769770
} else {
770771
return None;
771772
}
@@ -785,17 +786,16 @@ pub fn is_expn_of(mut span: Span, name: &str) -> Option<Span> {
785786
pub fn is_direct_expn_of(span: Span, name: &str) -> Option<Span> {
786787
if span.from_expansion() {
787788
let data = span.ctxt().outer_expn_data();
788-
let mac_name = data.kind.descr();
789789
let new_span = data.call_site;
790790

791-
if mac_name.as_str() == name {
792-
Some(new_span)
793-
} else {
794-
None
791+
if let ExpnKind::Macro(MacroKind::Bang, mac_name) = data.kind {
792+
if mac_name.as_str() == name {
793+
return Some(new_span);
794+
}
795795
}
796-
} else {
797-
None
798796
}
797+
798+
None
799799
}
800800

801801
/// Convenience function to get the return type of a function.

0 commit comments

Comments
 (0)