about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorChiu-Hsiang Hsu <wdv4758h@gmail.com>2016-08-11 00:38:12 +0800
committerChiu-Hsiang Hsu <wdv4758h@gmail.com>2016-08-11 10:18:23 +0800
commit92f7e85b303b67c2e412275ba663bb811388f9a4 (patch)
tree71e1c65e05dd6f8a78e064dde937c2dbf8e2793f /src
parent561c4e1dd3f39434085d7958a69628600a71937c (diff)
downloadrust-92f7e85b303b67c2e412275ba663bb811388f9a4.tar.gz
rust-92f7e85b303b67c2e412275ba663bb811388f9a4.zip
Update E0138 to new format
Diffstat (limited to 'src')
-rw-r--r--src/librustc/middle/entry.rs9
-rw-r--r--src/test/compile-fail/E0138.rs5
2 files changed, 11 insertions, 3 deletions
diff --git a/src/librustc/middle/entry.rs b/src/librustc/middle/entry.rs
index 0a363fddd53..11bde922f47 100644
--- a/src/librustc/middle/entry.rs
+++ b/src/librustc/middle/entry.rs
@@ -132,8 +132,13 @@ fn find_item(item: &Item, ctxt: &mut EntryContext, at_root: bool) {
             if ctxt.start_fn.is_none() {
                 ctxt.start_fn = Some((item.id, item.span));
             } else {
-                span_err!(ctxt.session, item.span, E0138,
-                          "multiple 'start' functions");
+                struct_span_err!(
+                    ctxt.session, item.span, E0138,
+                    "multiple 'start' functions")
+                    .span_label(ctxt.start_fn.unwrap().1,
+                                &format!("previous `start` function here"))
+                    .span_label(item.span, &format!("multiple `start` functions"))
+                    .emit();
             }
         },
         EntryPointType::None => ()
diff --git a/src/test/compile-fail/E0138.rs b/src/test/compile-fail/E0138.rs
index 97d85e5e71e..d4630d7c2ef 100644
--- a/src/test/compile-fail/E0138.rs
+++ b/src/test/compile-fail/E0138.rs
@@ -12,6 +12,9 @@
 
 #[start]
 fn foo(argc: isize, argv: *const *const u8) -> isize {}
+//~^ NOTE previous `start` function here
 
 #[start]
-fn f(argc: isize, argv: *const *const u8) -> isize {} //~ ERROR E0138
+fn f(argc: isize, argv: *const *const u8) -> isize {}
+//~^ ERROR E0138
+//~| NOTE multiple `start` functions