2015-06-01 22:30:34 +02:00
|
|
|
use rustc::lint::Context;
|
|
|
|
|
use syntax::codemap::ExpnInfo;
|
|
|
|
|
|
2015-06-01 22:36:56 +02:00
|
|
|
pub fn in_macro(cx: &Context, opt_info: Option<&ExpnInfo>) -> bool {
|
2015-06-01 22:30:34 +02:00
|
|
|
opt_info.map_or(false, |info| {
|
|
|
|
|
info.callee.span.map_or(true, |span| {
|
|
|
|
|
cx.sess().codemap().span_to_snippet(span).ok().map_or(true, |code|
|
|
|
|
|
!code.starts_with("macro_rules")
|
|
|
|
|
)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
}
|