rust/tests/ui/rfcs/rfc-2565-param-attrs/param-attrs-cfg.rs

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

122 lines
3.3 KiB
Rust
Raw Normal View History

// compile-flags: --cfg something
2019-07-26 17:52:37 -05:00
// edition:2018
2019-08-29 18:44:30 -05:00
#![feature(async_closure)]
#![deny(unused_variables)]
extern "C" {
fn ffi(
#[cfg(nothing)] a: i32,
#[cfg(something)] b: i32,
#[cfg_attr(something, cfg(nothing))] c: i32,
#[cfg_attr(nothing, cfg(nothing))] ...
);
}
type FnType = fn(
#[cfg(nothing)] a: i32,
#[cfg(something)] b: i32,
#[cfg_attr(nothing, cfg(nothing))] c: i32,
#[cfg_attr(something, cfg(nothing))] d: i32,
);
2019-07-26 17:52:37 -05:00
async fn foo_async(
#[cfg(something)] a: i32,
//~^ ERROR unused variable: `a`
#[cfg(nothing)] b: i32,
) {}
fn foo(
#[cfg(nothing)] a: i32,
#[cfg(something)] b: i32,
2019-07-26 17:52:37 -05:00
//~^ ERROR unused variable: `b`
#[cfg_attr(nothing, cfg(nothing))] c: i32,
2019-07-26 17:52:37 -05:00
//~^ ERROR unused variable: `c`
#[cfg_attr(something, cfg(nothing))] d: i32,
) {}
struct RefStruct {}
impl RefStruct {
2019-07-26 17:52:37 -05:00
async fn bar_async(
&self,
#[cfg(something)] a: i32,
//~^ ERROR unused variable: `a`
#[cfg(nothing)] b: i32,
) {}
fn bar(
&self,
#[cfg(nothing)] a: i32,
#[cfg(something)] b: i32,
2019-07-26 17:52:37 -05:00
//~^ ERROR unused variable: `b`
#[cfg_attr(nothing, cfg(nothing))] c: i32,
2019-07-26 17:52:37 -05:00
//~^ ERROR unused variable: `c`
#[cfg_attr(something, cfg(nothing))] d: i32,
) {}
fn issue_64682_associated_fn(
#[cfg(nothing)] a: i32,
#[cfg(something)] b: i32,
//~^ ERROR unused variable: `b`
#[cfg_attr(nothing, cfg(nothing))] c: i32,
//~^ ERROR unused variable: `c`
#[cfg_attr(something, cfg(nothing))] d: i32,
) {}
}
trait RefTrait {
fn bar(
&self,
#[cfg(nothing)] a: i32,
#[cfg(something)] b: i32,
2019-07-26 17:52:37 -05:00
//~^ ERROR unused variable: `b`
#[cfg_attr(nothing, cfg(nothing))] c: i32,
2019-07-26 17:52:37 -05:00
//~^ ERROR unused variable: `c`
#[cfg_attr(something, cfg(nothing))] d: i32,
) {}
fn issue_64682_associated_fn(
#[cfg(nothing)] a: i32,
#[cfg(something)] b: i32,
//~^ ERROR unused variable: `b`
#[cfg_attr(nothing, cfg(nothing))] c: i32,
//~^ ERROR unused variable: `c`
#[cfg_attr(something, cfg(nothing))] d: i32,
) {}
}
impl RefTrait for RefStruct {
fn bar(
&self,
#[cfg(nothing)] a: i32,
#[cfg(something)] b: i32,
2019-07-26 17:52:37 -05:00
//~^ ERROR unused variable: `b`
#[cfg_attr(nothing, cfg(nothing))] c: i32,
2019-07-26 17:52:37 -05:00
//~^ ERROR unused variable: `c`
#[cfg_attr(something, cfg(nothing))] d: i32,
) {}
fn issue_64682_associated_fn(
#[cfg(nothing)] a: i32,
#[cfg(something)] b: i32,
//~^ ERROR unused variable: `b`
#[cfg_attr(nothing, cfg(nothing))] c: i32,
//~^ ERROR unused variable: `c`
#[cfg_attr(something, cfg(nothing))] d: i32,
) {}
}
fn main() {
let _: unsafe extern "C" fn(_, ...) = ffi;
let _: fn(_, _) = foo;
let _: FnType = |_, _| {};
2019-07-26 17:52:37 -05:00
let a = async move |
#[cfg(something)] a: i32,
//~^ ERROR unused variable: `a`
#[cfg(nothing)] b: i32,
| {};
let c = |
#[cfg(nothing)] a: i32,
#[cfg(something)] b: i32,
2019-07-26 17:52:37 -05:00
//~^ ERROR unused variable: `b`
#[cfg_attr(nothing, cfg(nothing))] c: i32,
2019-07-26 17:52:37 -05:00
//~^ ERROR unused variable: `c`
#[cfg_attr(something, cfg(nothing))] d: i32,
| {};
a(1);
c(1, 2);
}