rust/tests/source/fn-param-attributes.rs
2019-09-20 16:11:52 +09:00

58 lines
1018 B
Rust

// https://github.com/rust-lang/rustfmt/issues/3623
fn foo(#[cfg(something)] x: i32, y: i32) -> i32 {
x + y
}
fn foo_b(#[cfg(something)]x: i32, y: i32) -> i32 {
x + y
}
fn add(#[cfg(something)]#[deny(C)] x: i32, y: i32) -> i32 {
x + y
}
struct NamedSelfRefStruct {}
impl NamedSelfRefStruct {
fn foo(
#[cfg(something)] self: &Self,
) {}
}
struct MutStruct {}
impl MutStruct {
fn foo(
#[cfg(foo)]&mut self,#[deny(C)] b: i32,
) {}
}
fn main() {
let c = |
#[allow(C)]a: u32,
#[cfg(something)] b: i32,
#[cfg_attr(something, cfg(nothing))]#[deny(C)] c: i32,
| {};
let _ = c(1, 2);
}
pub fn bar(
/// bar
#[test] a: u32,
/// Bar
#[must_use]
/// Baz
#[no_mangle] b: i32,
) {}
fn abc(
#[foo]
#[bar] param: u32,
) {
// ...
}
fn really_really_really_loooooooooooooooooooong(#[cfg(some_even_longer_config_feature_that_keeps_going_and_going_and_going_forever_and_ever_and_ever_on_and_on)] b: i32) {
// ...
}