]> git.lizzy.rs Git - rust.git/commitdiff
rustup: fix breakage in diagnostics API
authorGeorg Brandl <georg@python.org>
Wed, 4 May 2016 06:54:59 +0000 (08:54 +0200)
committerGeorg Brandl <georg@python.org>
Wed, 4 May 2016 06:54:59 +0000 (08:54 +0200)
Also adds a function to add the clippy wiki note, which is used a few times.

src/methods.rs
src/swap.rs
src/utils/mod.rs

index e25154bd38b653b133a980dfe30624cf0c4fa4f5..44fdab454a32187e8118c9787bd277768e180a2e 100644 (file)
@@ -602,7 +602,7 @@ fn lint_cstring_as_ptr(cx: &LateContext, expr: &Expr, new: &Expr, unwrap: &Expr)
         span_lint_and_then(cx, TEMPORARY_CSTRING_AS_PTR, expr.span,
                            "you are getting the inner pointer of a temporary `CString`",
                            |db| {
-                               db.fileline_note(expr.span, "that pointer will be invalid outside this expression");
+                               db.note("that pointer will be invalid outside this expression");
                                db.span_help(unwrap.span, "assign the `CString` to a variable to extend its lifetime");
                            });
     }}
index 29db0da5cf9a7e861be344cc2cf909462884b905..724915b9dd5cc4d820b08e6d580390bea2abe608 100644 (file)
@@ -95,7 +95,7 @@ fn check_manual_swap(cx: &LateContext, block: &Block) {
                                    if !what.is_empty() {
                                        db.span_suggestion(span, "try",
                                                           format!("std::mem::swap(&mut {}, &mut {})", lhs, rhs));
-                                       db.fileline_note(span, "or maybe you should use `std::mem::replace`?");
+                                       db.note("or maybe you should use `std::mem::replace`?");
                                    }
                                });
         }}
@@ -130,7 +130,7 @@ fn check_suspicious_swap(cx: &LateContext, block: &Block) {
                                    if !what.is_empty() {
                                        db.span_suggestion(span, "try",
                                                           format!("std::mem::swap(&mut {}, &mut {})", lhs, rhs));
-                                       db.fileline_note(span, "or maybe you should use `std::mem::replace`?");
+                                       db.note("or maybe you should use `std::mem::replace`?");
                                    }
                                });
         }}
index 83247a59174930fb40e639d7540ba844fcc8bc0d..3e77ffb2c24c8cf0be23887dc51afc74e1bc055c 100644 (file)
@@ -471,44 +471,44 @@ fn deref(&self) -> &DiagnosticBuilder<'a> {
     }
 }
 
+impl<'a> DiagnosticWrapper<'a> {
+    fn wiki_link(&mut self, lint: &'static Lint) {
+        self.help(&format!("for further information visit https://github.com/Manishearth/rust-clippy/wiki#{}",
+                           lint.name_lower()));
+    }
+}
+
 pub fn span_lint<'a, T: LintContext>(cx: &'a T, lint: &'static Lint, sp: Span, msg: &str) -> DiagnosticWrapper<'a> {
-    let mut db = cx.struct_span_lint(lint, sp, msg);
+    let mut db = DiagnosticWrapper(cx.struct_span_lint(lint, sp, msg));
     if cx.current_level(lint) != Level::Allow {
-        db.fileline_help(sp,
-                         &format!("for further information visit https://github.com/Manishearth/rust-clippy/wiki#{}",
-                                  lint.name_lower()));
+        db.wiki_link(lint);
     }
-    DiagnosticWrapper(db)
+    db
 }
 
 pub fn span_help_and_lint<'a, T: LintContext>(cx: &'a T, lint: &'static Lint, span: Span, msg: &str, help: &str)
                                               -> DiagnosticWrapper<'a> {
-    let mut db = cx.struct_span_lint(lint, span, msg);
+    let mut db = DiagnosticWrapper(cx.struct_span_lint(lint, span, msg));
     if cx.current_level(lint) != Level::Allow {
-        db.fileline_help(span,
-                         &format!("{}\nfor further information visit \
-                                   https://github.com/Manishearth/rust-clippy/wiki#{}",
-                                  help,
-                                  lint.name_lower()));
+        db.help(help);
+        db.wiki_link(lint);
     }
-    DiagnosticWrapper(db)
+    db
 }
 
 pub fn span_note_and_lint<'a, T: LintContext>(cx: &'a T, lint: &'static Lint, span: Span, msg: &str, note_span: Span,
                                               note: &str)
                                               -> DiagnosticWrapper<'a> {
-    let mut db = cx.struct_span_lint(lint, span, msg);
+    let mut db = DiagnosticWrapper(cx.struct_span_lint(lint, span, msg));
     if cx.current_level(lint) != Level::Allow {
         if note_span == span {
-            db.fileline_note(note_span, note);
+            db.note(note);
         } else {
             db.span_note(note_span, note);
         }
-        db.fileline_help(span,
-                         &format!("for further information visit https://github.com/Manishearth/rust-clippy/wiki#{}",
-                                  lint.name_lower()));
+        db.wiki_link(lint);
     }
-    DiagnosticWrapper(db)
+    db
 }
 
 pub fn span_lint_and_then<'a, T: LintContext, F>(cx: &'a T, lint: &'static Lint, sp: Span, msg: &str, f: F)
@@ -518,9 +518,7 @@ pub fn span_lint_and_then<'a, T: LintContext, F>(cx: &'a T, lint: &'static Lint,
     let mut db = DiagnosticWrapper(cx.struct_span_lint(lint, sp, msg));
     if cx.current_level(lint) != Level::Allow {
         f(&mut db);
-        db.fileline_help(sp,
-                         &format!("for further information visit https://github.com/Manishearth/rust-clippy/wiki#{}",
-                                  lint.name_lower()));
+        db.wiki_link(lint);
     }
     db
 }