diff options
| author | Tim Chevalier <chevalier@alum.wellesley.edu> | 2012-03-11 20:55:19 -0700 |
|---|---|---|
| committer | Tim Chevalier <chevalier@alum.wellesley.edu> | 2012-03-11 20:55:19 -0700 |
| commit | 664d71f1f0c0e7ec70c6c521117bde95e027bfcf (patch) | |
| tree | 64494a4dff86e3b92e344972f01f3c18ed086a3d | |
| parent | fde4c1efbbe2c3fbd29b50a9fe61283714cd8769 (diff) | |
| download | rust-664d71f1f0c0e7ec70c6c521117bde95e027bfcf.tar.gz rust-664d71f1f0c0e7ec70c6c521117bde95e027bfcf.zip | |
Improve a typechecker error message (wrong type for main())
As per #1903, state what type is expected for main(). Closes #1903
| -rw-r--r-- | src/rustc/middle/typeck.rs | 9 | ||||
| -rw-r--r-- | src/test/compile-fail/bad-main.rs | 2 | ||||
| -rw-r--r-- | src/test/compile-fail/main-wrong-type-2.rs | 2 | ||||
| -rw-r--r-- | src/test/compile-fail/main-wrong-type.rs | 2 |
4 files changed, 8 insertions, 7 deletions
diff --git a/src/rustc/middle/typeck.rs b/src/rustc/middle/typeck.rs index 7bc779429fb..36511d88ef4 100644 --- a/src/rustc/middle/typeck.rs +++ b/src/rustc/middle/typeck.rs @@ -3122,10 +3122,11 @@ fn check_main_fn_ty(tcx: ty::ctxt, main_id: ast::node_id, main_span: span) { ok &= num_args == 0u || num_args == 1u && arg_is_argv_ty(tcx, inputs[0]); if !ok { - tcx.sess.span_err(main_span, - "wrong type in main function: found `" + - ty_to_str(tcx, main_t) + "`"); - } + tcx.sess.span_err(main_span, + #fmt("Wrong type in main function: found `%s`, \ + expecting `native fn([str]) -> ()` or `native fn() -> ()`", + ty_to_str(tcx, main_t))); + } } _ { tcx.sess.span_bug(main_span, diff --git a/src/test/compile-fail/bad-main.rs b/src/test/compile-fail/bad-main.rs index 725f88129b9..06bcbf5d9c2 100644 --- a/src/test/compile-fail/bad-main.rs +++ b/src/test/compile-fail/bad-main.rs @@ -1,3 +1,3 @@ -// error-pattern:wrong type in main function +// error-pattern:expecting `native fn([str]) fn main(x: int) { } diff --git a/src/test/compile-fail/main-wrong-type-2.rs b/src/test/compile-fail/main-wrong-type-2.rs index b5ba3e2a7f8..60ac04301ad 100644 --- a/src/test/compile-fail/main-wrong-type-2.rs +++ b/src/test/compile-fail/main-wrong-type-2.rs @@ -1,3 +1,3 @@ fn main() -> char { -//!^ ERROR wrong type in main function: found `native fn() -> char` +//!^ ERROR Wrong type in main function: found `native fn() -> char` } diff --git a/src/test/compile-fail/main-wrong-type.rs b/src/test/compile-fail/main-wrong-type.rs index 5cb88682597..086cd6d8da9 100644 --- a/src/test/compile-fail/main-wrong-type.rs +++ b/src/test/compile-fail/main-wrong-type.rs @@ -1,3 +1,3 @@ fn main(foo: {x: int, y: int}) { -//!^ ERROR wrong type in main function: found `native fn({x: int,y: int})` +//!^ ERROR Wrong type in main function: found `native fn({x: int,y: int})` } |
