rust/tests/ui/attributes/item-attributes.rs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

175 lines
3.3 KiB
Rust
Raw Normal View History

// 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
//@ check-pass
#![feature(rustc_attrs)]
#![rustc_dummy = "val"]
#![rustc_dummy = "val"]
#![rustc_dummy]
#![rustc_dummy(attr5)]
2013-06-06 07:38:41 +00:00
// These are attributes of the following mod
#[rustc_dummy = "val"]
#[rustc_dummy = "val"]
mod test_first_item_in_file_mod {}
mod test_single_attr_outer {
#[rustc_dummy = "val"]
pub static X: isize = 10;
#[rustc_dummy = "val"]
2020-09-01 21:12:52 +00:00
pub fn f() {}
#[rustc_dummy = "val"]
pub mod mod1 {}
pub mod rustrt {
#[rustc_dummy = "val"]
2020-09-01 21:12:52 +00:00
extern "C" {}
}
}
mod test_multi_attr_outer {
#[rustc_dummy = "val"]
#[rustc_dummy = "val"]
pub static X: isize = 10;
#[rustc_dummy = "val"]
#[rustc_dummy = "val"]
2020-09-01 21:12:52 +00:00
pub fn f() {}
#[rustc_dummy = "val"]
#[rustc_dummy = "val"]
pub mod mod1 {}
pub mod rustrt {
#[rustc_dummy = "val"]
#[rustc_dummy = "val"]
2020-09-01 21:12:52 +00:00
extern "C" {}
}
#[rustc_dummy = "val"]
#[rustc_dummy = "val"]
2020-09-01 21:12:52 +00:00
struct T {
x: isize,
}
}
mod test_stmt_single_attr_outer {
pub fn f() {
#[rustc_dummy = "val"]
static X: isize = 10;
#[rustc_dummy = "val"]
2020-09-01 21:12:52 +00:00
fn f() {}
#[rustc_dummy = "val"]
2020-09-01 21:12:52 +00:00
mod mod1 {}
2011-07-27 12:48:34 +00:00
mod rustrt {
#[rustc_dummy = "val"]
2020-09-01 21:12:52 +00:00
extern "C" {}
}
}
}
mod test_stmt_multi_attr_outer {
pub fn f() {
#[rustc_dummy = "val"]
#[rustc_dummy = "val"]
static X: isize = 10;
#[rustc_dummy = "val"]
#[rustc_dummy = "val"]
2020-09-01 21:12:52 +00:00
fn f() {}
#[rustc_dummy = "val"]
#[rustc_dummy = "val"]
2020-09-01 21:12:52 +00:00
mod mod1 {}
2011-07-27 12:48:34 +00:00
mod rustrt {
#[rustc_dummy = "val"]
#[rustc_dummy = "val"]
2020-09-01 21:12:52 +00:00
extern "C" {}
}
}
}
mod test_attr_inner {
pub mod m {
// This is an attribute of mod m
#![rustc_dummy = "val"]
}
}
mod test_attr_inner_then_outer {
pub mod m {
// This is an attribute of mod m
#![rustc_dummy = "val"]
// This is an attribute of fn f
#[rustc_dummy = "val"]
2020-09-01 21:12:52 +00:00
fn f() {}
}
}
mod test_attr_inner_then_outer_multi {
pub mod m {
// This is an attribute of mod m
#![rustc_dummy = "val"]
#![rustc_dummy = "val"]
// This is an attribute of fn f
#[rustc_dummy = "val"]
#[rustc_dummy = "val"]
2020-09-01 21:12:52 +00:00
fn f() {}
}
}
mod test_distinguish_syntax_ext {
pub fn f() {
2013-09-30 02:23:57 +00:00
format!("test{}", "s");
#[rustc_dummy = "val"]
2020-09-01 21:12:52 +00:00
fn g() {}
}
}
mod test_other_forms {
#[rustc_dummy]
#[rustc_dummy(word)]
#[rustc_dummy(attr(word))]
#[rustc_dummy(key1 = "val", key2 = "val", attr)]
2020-09-01 21:12:52 +00:00
pub fn f() {}
}
mod test_foreign_items {
pub mod rustrt {
2020-09-01 21:12:52 +00:00
extern "C" {
#![rustc_dummy]
#[rustc_dummy]
fn rust_get_test_int() -> isize;
}
}
}
2019-02-09 21:23:30 +00:00
// FIXME(#623): - these aren't supported yet
/*mod test_literals {
#![str = "s"]
#![char = 'c']
#![isize = 100]
#![usize = 100_usize]
#![mach_int = 100u32]
#![float = 1.0]
#![mach_float = 1.0f32]
#![nil = ()]
#![bool = true]
mod m {}
}*/
fn test_fn_inner() {
#![rustc_dummy]
}
fn main() {}