2011-06-28 12:53:59 -07:00
|
|
|
// These are attributes of the implicit crate. Really this just needs to parse
|
|
|
|
// for completeness since .rs files linked from .rc files support this
|
|
|
|
// notation to specify their module's attributes
|
2015-02-14 16:15:43 +05:30
|
|
|
|
2020-04-19 17:27:28 -07:00
|
|
|
// check-pass
|
2019-06-08 17:42:58 +03:00
|
|
|
|
2019-06-08 11:36:43 +03:00
|
|
|
#![feature(rustc_attrs)]
|
|
|
|
#![rustc_dummy = "val"]
|
|
|
|
#![rustc_dummy = "val"]
|
|
|
|
#![rustc_dummy]
|
|
|
|
#![rustc_dummy(attr5)]
|
2011-06-28 12:53:59 -07:00
|
|
|
|
2013-06-06 10:38:41 +03:00
|
|
|
// These are attributes of the following mod
|
2019-06-08 11:36:43 +03:00
|
|
|
#[rustc_dummy = "val"]
|
|
|
|
#[rustc_dummy = "val"]
|
2013-01-30 15:56:40 -08:00
|
|
|
mod test_first_item_in_file_mod {}
|
2011-06-28 12:53:59 -07:00
|
|
|
|
|
|
|
mod test_single_attr_outer {
|
2019-06-08 11:36:43 +03:00
|
|
|
#[rustc_dummy = "val"]
|
|
|
|
pub static X: isize = 10;
|
2011-06-28 12:53:59 -07:00
|
|
|
|
2019-06-08 11:36:43 +03:00
|
|
|
#[rustc_dummy = "val"]
|
2020-09-01 17:12:52 -04:00
|
|
|
pub fn f() {}
|
2011-06-28 12:53:59 -07:00
|
|
|
|
2019-06-08 11:36:43 +03:00
|
|
|
#[rustc_dummy = "val"]
|
2013-01-30 15:56:40 -08:00
|
|
|
pub mod mod1 {}
|
2011-06-28 12:53:59 -07:00
|
|
|
|
2013-03-05 14:42:58 -08:00
|
|
|
pub mod rustrt {
|
2019-06-08 11:36:43 +03:00
|
|
|
#[rustc_dummy = "val"]
|
2020-09-01 17:12:52 -04:00
|
|
|
extern "C" {}
|
2013-03-05 14:42:58 -08:00
|
|
|
}
|
2011-06-28 12:53:59 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
mod test_multi_attr_outer {
|
2019-06-08 11:36:43 +03:00
|
|
|
#[rustc_dummy = "val"]
|
|
|
|
#[rustc_dummy = "val"]
|
|
|
|
pub static X: isize = 10;
|
2011-06-28 12:53:59 -07:00
|
|
|
|
2019-06-08 11:36:43 +03:00
|
|
|
#[rustc_dummy = "val"]
|
|
|
|
#[rustc_dummy = "val"]
|
2020-09-01 17:12:52 -04:00
|
|
|
pub fn f() {}
|
2011-06-28 12:53:59 -07:00
|
|
|
|
2019-06-08 11:36:43 +03:00
|
|
|
#[rustc_dummy = "val"]
|
|
|
|
#[rustc_dummy = "val"]
|
2013-01-30 15:56:40 -08:00
|
|
|
pub mod mod1 {}
|
2011-06-28 12:53:59 -07:00
|
|
|
|
2013-03-05 14:42:58 -08:00
|
|
|
pub mod rustrt {
|
2019-06-08 11:36:43 +03:00
|
|
|
#[rustc_dummy = "val"]
|
|
|
|
#[rustc_dummy = "val"]
|
2020-09-01 17:12:52 -04:00
|
|
|
extern "C" {}
|
2013-03-05 14:42:58 -08:00
|
|
|
}
|
2011-06-28 12:53:59 -07:00
|
|
|
|
2019-06-08 11:36:43 +03:00
|
|
|
#[rustc_dummy = "val"]
|
|
|
|
#[rustc_dummy = "val"]
|
2020-09-01 17:12:52 -04:00
|
|
|
struct T {
|
|
|
|
x: isize,
|
|
|
|
}
|
2011-06-28 12:53:59 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
mod test_stmt_single_attr_outer {
|
2013-01-30 15:56:40 -08:00
|
|
|
pub fn f() {
|
2019-06-08 11:36:43 +03:00
|
|
|
#[rustc_dummy = "val"]
|
|
|
|
static X: isize = 10;
|
2011-06-28 12:53:59 -07:00
|
|
|
|
2019-06-08 11:36:43 +03:00
|
|
|
#[rustc_dummy = "val"]
|
2020-09-01 17:12:52 -04:00
|
|
|
fn f() {}
|
2011-06-28 12:53:59 -07:00
|
|
|
|
2019-06-08 11:36:43 +03:00
|
|
|
#[rustc_dummy = "val"]
|
2020-09-01 17:12:52 -04:00
|
|
|
mod mod1 {}
|
2011-07-27 14:48:34 +02:00
|
|
|
|
2013-03-05 14:42:58 -08:00
|
|
|
mod rustrt {
|
2019-06-08 11:36:43 +03:00
|
|
|
#[rustc_dummy = "val"]
|
2020-09-01 17:12:52 -04:00
|
|
|
extern "C" {}
|
2011-06-28 12:53:59 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
mod test_stmt_multi_attr_outer {
|
2013-01-30 15:56:40 -08:00
|
|
|
pub fn f() {
|
2019-06-08 11:36:43 +03:00
|
|
|
#[rustc_dummy = "val"]
|
|
|
|
#[rustc_dummy = "val"]
|
|
|
|
static X: isize = 10;
|
2011-06-28 12:53:59 -07:00
|
|
|
|
2019-06-08 11:36:43 +03:00
|
|
|
#[rustc_dummy = "val"]
|
|
|
|
#[rustc_dummy = "val"]
|
2020-09-01 17:12:52 -04:00
|
|
|
fn f() {}
|
2011-06-28 12:53:59 -07:00
|
|
|
|
2019-06-08 11:36:43 +03:00
|
|
|
#[rustc_dummy = "val"]
|
|
|
|
#[rustc_dummy = "val"]
|
2020-09-01 17:12:52 -04:00
|
|
|
mod mod1 {}
|
2011-07-27 14:48:34 +02:00
|
|
|
|
2014-06-23 19:01:14 +02:00
|
|
|
mod rustrt {
|
2019-06-08 11:36:43 +03:00
|
|
|
#[rustc_dummy = "val"]
|
|
|
|
#[rustc_dummy = "val"]
|
2020-09-01 17:12:52 -04:00
|
|
|
extern "C" {}
|
2011-06-28 12:53:59 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
mod test_attr_inner {
|
2013-01-30 15:56:40 -08:00
|
|
|
pub mod m {
|
2011-06-28 12:53:59 -07:00
|
|
|
// This is an attribute of mod m
|
2019-06-08 11:36:43 +03:00
|
|
|
#![rustc_dummy = "val"]
|
2011-06-28 12:53:59 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
mod test_attr_inner_then_outer {
|
2013-01-30 15:56:40 -08:00
|
|
|
pub mod m {
|
2011-06-28 12:53:59 -07:00
|
|
|
// This is an attribute of mod m
|
2019-06-08 11:36:43 +03:00
|
|
|
#![rustc_dummy = "val"]
|
2011-06-28 12:53:59 -07:00
|
|
|
// This is an attribute of fn f
|
2019-06-08 11:36:43 +03:00
|
|
|
#[rustc_dummy = "val"]
|
2020-09-01 17:12:52 -04:00
|
|
|
fn f() {}
|
2011-06-28 12:53:59 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
mod test_attr_inner_then_outer_multi {
|
2013-01-30 15:56:40 -08:00
|
|
|
pub mod m {
|
2011-06-28 12:53:59 -07:00
|
|
|
// This is an attribute of mod m
|
2019-06-08 11:36:43 +03:00
|
|
|
#![rustc_dummy = "val"]
|
|
|
|
#![rustc_dummy = "val"]
|
2011-06-28 12:53:59 -07:00
|
|
|
// This is an attribute of fn f
|
2019-06-08 11:36:43 +03:00
|
|
|
#[rustc_dummy = "val"]
|
|
|
|
#[rustc_dummy = "val"]
|
2020-09-01 17:12:52 -04:00
|
|
|
fn f() {}
|
2011-06-28 12:53:59 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
mod test_distinguish_syntax_ext {
|
2013-01-30 15:56:40 -08:00
|
|
|
pub fn f() {
|
2013-09-29 19:23:57 -07:00
|
|
|
format!("test{}", "s");
|
2019-06-08 11:36:43 +03:00
|
|
|
#[rustc_dummy = "val"]
|
2020-09-01 17:12:52 -04:00
|
|
|
fn g() {}
|
2011-06-28 12:53:59 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
mod test_other_forms {
|
2019-06-08 11:36:43 +03:00
|
|
|
#[rustc_dummy]
|
|
|
|
#[rustc_dummy(word)]
|
|
|
|
#[rustc_dummy(attr(word))]
|
|
|
|
#[rustc_dummy(key1 = "val", key2 = "val", attr)]
|
2020-09-01 17:12:52 -04:00
|
|
|
pub fn f() {}
|
2011-06-28 12:53:59 -07:00
|
|
|
}
|
|
|
|
|
2012-06-26 16:18:37 -07:00
|
|
|
mod test_foreign_items {
|
2013-03-05 14:42:58 -08:00
|
|
|
pub mod rustrt {
|
2020-09-01 17:12:52 -04:00
|
|
|
extern "C" {
|
2019-06-08 11:36:43 +03:00
|
|
|
#![rustc_dummy]
|
2011-07-05 12:38:53 -07:00
|
|
|
|
2019-06-08 11:36:43 +03:00
|
|
|
#[rustc_dummy]
|
2017-10-22 20:01:00 -07:00
|
|
|
fn rust_get_test_int() -> u32;
|
2013-03-05 14:42:58 -08:00
|
|
|
}
|
2011-07-05 12:38:53 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-02-09 21:23:30 +00:00
|
|
|
// FIXME(#623): - these aren't supported yet
|
2013-10-29 17:47:11 -07:00
|
|
|
/*mod test_literals {
|
2014-04-14 21:00:31 +05:30
|
|
|
#![str = "s"]
|
|
|
|
#![char = 'c']
|
2015-03-25 17:06:52 -07:00
|
|
|
#![isize = 100]
|
|
|
|
#![usize = 100_usize]
|
2014-04-14 21:00:31 +05:30
|
|
|
#![mach_int = 100u32]
|
|
|
|
#![float = 1.0]
|
|
|
|
#![mach_float = 1.0f32]
|
|
|
|
#![nil = ()]
|
|
|
|
#![bool = true]
|
2013-01-30 15:56:40 -08:00
|
|
|
mod m {}
|
2013-10-29 17:47:11 -07:00
|
|
|
}*/
|
2011-07-05 17:01:23 -07:00
|
|
|
|
2012-01-15 17:23:59 -08:00
|
|
|
fn test_fn_inner() {
|
2019-06-08 11:36:43 +03:00
|
|
|
#![rustc_dummy]
|
2012-01-15 17:23:59 -08:00
|
|
|
}
|
|
|
|
|
2019-06-08 11:36:43 +03:00
|
|
|
fn main() {}
|