diff options
| author | Manish Goregaokar <manishsmail@gmail.com> | 2015-05-10 11:01:46 +0530 |
|---|---|---|
| committer | Manish Goregaokar <manishsmail@gmail.com> | 2015-05-10 11:01:46 +0530 |
| commit | 87a62787232df4def8f1d100c80557d561a369f1 (patch) | |
| tree | 75a406e1ed09dfec01b5a090de1643ffb0df89b8 | |
| parent | 459652c832815118cf78c30f7a59cea99c43d308 (diff) | |
| parent | 8e8f8d9a5a35eb5875999efac7837956ed1b20da (diff) | |
| download | rust-87a62787232df4def8f1d100c80557d561a369f1.tar.gz rust-87a62787232df4def8f1d100c80557d561a369f1.zip | |
Rollup merge of #25252 - inrustwetrust:crate-type-attribute, r=alexcrichton
Fixes the problem in #16974 with unhelpful error messages when accidentally using the wrong syntax for the `crate_type="lib"` attribute. The attribute syntax error now shows up instead of "main function not found".
| -rw-r--r-- | src/librustc_driver/driver.rs | 7 | ||||
| -rw-r--r-- | src/test/compile-fail/invalid_crate_type_syntax.rs | 14 |
2 files changed, 16 insertions, 5 deletions
diff --git a/src/librustc_driver/driver.rs b/src/librustc_driver/driver.rs index 45d81ff0f65..0073c0b0610 100644 --- a/src/librustc_driver/driver.rs +++ b/src/librustc_driver/driver.rs @@ -872,11 +872,8 @@ pub fn collect_crate_types(session: &Session, None } _ => { - session.add_lint(lint::builtin::UNKNOWN_CRATE_TYPES, - ast::CRATE_NODE_ID, - a.span, - "`crate_type` requires a \ - value".to_string()); + session.span_err(a.span, "`crate_type` requires a value"); + session.note("for example: `#![crate_type=\"lib\"]`"); None } } diff --git a/src/test/compile-fail/invalid_crate_type_syntax.rs b/src/test/compile-fail/invalid_crate_type_syntax.rs new file mode 100644 index 00000000000..6d42515704e --- /dev/null +++ b/src/test/compile-fail/invalid_crate_type_syntax.rs @@ -0,0 +1,14 @@ +// Copyright 2015 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// regression test for issue 16974 +#![crate_type(lib)] //~ ERROR `crate_type` requires a value + +fn my_lib_fn() {} |
