about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2019-07-12 07:26:03 +0000
committerbors <bors@rust-lang.org>2019-07-12 07:26:03 +0000
commitb0290424bb94aaa7a6d5bc17eb6c616836da27da (patch)
treedf853bea6ff5b96fc2089e6949e10870545e2a64
parent032ae968560e78708f40f2fdd5ce95775daec836 (diff)
parent27c53487937ffbd7a67aad4511a5d72f637b9ebb (diff)
downloadrust-b0290424bb94aaa7a6d5bc17eb6c616836da27da.tar.gz
rust-b0290424bb94aaa7a6d5bc17eb6c616836da27da.zip
Auto merge of #4269 - lzutao:rustup, r=flip1995
Rustup `macro expansion and resolution`

Rustup https://github.com/rust-lang/rust/pull/62476

changelog: none
-rw-r--r--clippy_lints/src/misc.rs14
-rw-r--r--clippy_lints/src/returns.rs2
-rw-r--r--clippy_lints/src/types.rs4
-rw-r--r--clippy_lints/src/utils/mod.rs8
4 files changed, 16 insertions, 12 deletions
diff --git a/clippy_lints/src/misc.rs b/clippy_lints/src/misc.rs
index d77f71c2ab2..acca50e3df8 100644
--- a/clippy_lints/src/misc.rs
+++ b/clippy_lints/src/misc.rs
@@ -7,7 +7,7 @@ use rustc::ty;
 use rustc::{declare_lint_pass, declare_tool_lint};
 use rustc_errors::Applicability;
 use syntax::ast::LitKind;
-use syntax::source_map::{ExpnFormat, Span};
+use syntax::source_map::{ExpnKind, Span};
 
 use crate::consts::{constant, Constant};
 use crate::utils::sugg::Sugg;
@@ -596,10 +596,14 @@ fn is_used(cx: &LateContext<'_, '_>, expr: &Expr) -> bool {
 /// Tests whether an expression is in a macro expansion (e.g., something
 /// generated by `#[derive(...)]` or the like).
 fn in_attributes_expansion(expr: &Expr) -> bool {
-    expr.span
-        .ctxt()
-        .outer_expn_info()
-        .map_or(false, |info| matches!(info.format, ExpnFormat::MacroAttribute(_)))
+    use syntax::ext::hygiene::MacroKind;
+    expr.span.ctxt().outer_expn_info().map_or(false, |info| {
+        if let ExpnKind::Macro(MacroKind::Attr, _) = info.kind {
+            true
+        } else {
+            false
+        }
+    })
 }
 
 /// Tests whether `res` is a variable defined outside a macro.
diff --git a/clippy_lints/src/returns.rs b/clippy_lints/src/returns.rs
index f08945b53d5..0f2084e819e 100644
--- a/clippy_lints/src/returns.rs
+++ b/clippy_lints/src/returns.rs
@@ -317,7 +317,7 @@ fn attr_is_cfg(attr: &ast::Attribute) -> bool {
 
 // get the def site
 fn get_def(span: Span) -> Option<Span> {
-    span.ctxt().outer_expn_info().and_then(|info| info.def_site)
+    span.ctxt().outer_expn_info().and_then(|info| Some(info.def_site))
 }
 
 // is this expr a `()` unit?
diff --git a/clippy_lints/src/types.rs b/clippy_lints/src/types.rs
index dd578176f23..4f35337292e 100644
--- a/clippy_lints/src/types.rs
+++ b/clippy_lints/src/types.rs
@@ -621,9 +621,9 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for UnitArg {
 }
 
 fn is_questionmark_desugar_marked_call(expr: &Expr) -> bool {
-    use syntax_pos::hygiene::CompilerDesugaringKind;
+    use syntax_pos::hygiene::DesugaringKind;
     if let ExprKind::Call(ref callee, _) = expr.node {
-        callee.span.is_compiler_desugaring(CompilerDesugaringKind::QuestionMark)
+        callee.span.is_desugaring(DesugaringKind::QuestionMark)
     } else {
         false
     }
diff --git a/clippy_lints/src/utils/mod.rs b/clippy_lints/src/utils/mod.rs
index 53665506c39..9e45c453ae9 100644
--- a/clippy_lints/src/utils/mod.rs
+++ b/clippy_lints/src/utils/mod.rs
@@ -43,7 +43,7 @@ use rustc_errors::Applicability;
 use smallvec::SmallVec;
 use syntax::ast::{self, LitKind};
 use syntax::attr;
-use syntax::ext::hygiene::ExpnFormat;
+use syntax::ext::hygiene::ExpnKind;
 use syntax::source_map::{Span, DUMMY_SP};
 use syntax::symbol::{kw, Symbol};
 
@@ -100,7 +100,7 @@ pub fn in_macro_or_desugar(span: Span) -> bool {
 /// Returns `true` if this `expn_info` was expanded by any macro.
 pub fn in_macro(span: Span) -> bool {
     if let Some(info) = span.ctxt().outer_expn_info() {
-        if let ExpnFormat::CompilerDesugaring(..) = info.format {
+        if let ExpnKind::Desugaring(..) = info.kind {
             false
         } else {
             true
@@ -686,7 +686,7 @@ pub fn is_adjusted(cx: &LateContext<'_, '_>, e: &Expr) -> bool {
 /// See also `is_direct_expn_of`.
 pub fn is_expn_of(mut span: Span, name: &str) -> Option<Span> {
     loop {
-        let span_name_span = span.ctxt().outer_expn_info().map(|ei| (ei.format.name(), ei.call_site));
+        let span_name_span = span.ctxt().outer_expn_info().map(|ei| (ei.kind.descr(), ei.call_site));
 
         match span_name_span {
             Some((mac_name, new_span)) if mac_name.as_str() == name => return Some(new_span),
@@ -706,7 +706,7 @@ pub fn is_expn_of(mut span: Span, name: &str) -> Option<Span> {
 /// `bar!` by
 /// `is_direct_expn_of`.
 pub fn is_direct_expn_of(span: Span, name: &str) -> Option<Span> {
-    let span_name_span = span.ctxt().outer_expn_info().map(|ei| (ei.format.name(), ei.call_site));
+    let span_name_span = span.ctxt().outer_expn_info().map(|ei| (ei.kind.descr(), ei.call_site));
 
     match span_name_span {
         Some((mac_name, new_span)) if mac_name.as_str() == name => Some(new_span),