about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLzu Tao <taolzu@gmail.com>2019-08-08 21:28:40 +0700
committerLzu Tao <taolzu@gmail.com>2019-08-08 21:28:40 +0700
commit59a35874c165b47c20de6c6e4325bb5afbabc469 (patch)
treef6e2b64b69b6ff62050536f2a0f84faf34c70b22
parentb041511b5fcd386c4ae74a30b60a5081f8717fbe (diff)
downloadrust-59a35874c165b47c20de6c6e4325bb5afbabc469.tar.gz
rust-59a35874c165b47c20de6c6e4325bb5afbabc469.zip
Use source_callsite() instead of recursive outer_expn_info()
-rw-r--r--clippy_lints/src/implicit_return.rs12
1 files changed, 2 insertions, 10 deletions
diff --git a/clippy_lints/src/implicit_return.rs b/clippy_lints/src/implicit_return.rs
index 4df9789f39d..ceda6578182 100644
--- a/clippy_lints/src/implicit_return.rs
+++ b/clippy_lints/src/implicit_return.rs
@@ -46,8 +46,8 @@ static LINT_BREAK: &str = "change `break` to `return` as shown";
 static LINT_RETURN: &str = "add `return` as shown";
 
 fn lint(cx: &LateContext<'_, '_>, outer_span: Span, inner_span: Span, msg: &str) {
-    let outer_span = span_to_outer_expn(outer_span);
-    let inner_span = span_to_outer_expn(inner_span);
+    let outer_span = outer_span.source_callsite();
+    let inner_span = inner_span.source_callsite();
 
     span_lint_and_then(cx, IMPLICIT_RETURN, outer_span, "missing return statement", |db| {
         if let Some(snippet) = snippet_opt(cx, inner_span) {
@@ -61,14 +61,6 @@ fn lint(cx: &LateContext<'_, '_>, outer_span: Span, inner_span: Span, msg: &str)
     });
 }
 
-fn span_to_outer_expn(span: Span) -> Span {
-    if let Some(expr) = span.ctxt().outer_expn_info() {
-        span_to_outer_expn(expr.call_site)
-    } else {
-        span
-    }
-}
-
 fn expr_match(cx: &LateContext<'_, '_>, expr: &Expr) {
     match &expr.node {
         // loops could be using `break` instead of `return`