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".
This commit is contained in:
Manish Goregaokar 2015-05-10 11:01:46 +05:30
commit 87a6278723
2 changed files with 16 additions and 5 deletions

View File

@ -872,11 +872,8 @@ pub fn collect_crate_types(session: &Session,
None None
} }
_ => { _ => {
session.add_lint(lint::builtin::UNKNOWN_CRATE_TYPES, session.span_err(a.span, "`crate_type` requires a value");
ast::CRATE_NODE_ID, session.note("for example: `#![crate_type=\"lib\"]`");
a.span,
"`crate_type` requires a \
value".to_string());
None None
} }
} }

View File

@ -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() {}