122 lines
3.3 KiB
Rust
122 lines
3.3 KiB
Rust
// compile-flags: --cfg something
|
|
// edition:2018
|
|
|
|
#![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,
|
|
);
|
|
|
|
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,
|
|
//~^ ERROR unused variable: `b`
|
|
#[cfg_attr(nothing, cfg(nothing))] c: i32,
|
|
//~^ ERROR unused variable: `c`
|
|
#[cfg_attr(something, cfg(nothing))] d: i32,
|
|
) {}
|
|
|
|
struct RefStruct {}
|
|
impl RefStruct {
|
|
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,
|
|
//~^ ERROR unused variable: `b`
|
|
#[cfg_attr(nothing, cfg(nothing))] c: i32,
|
|
//~^ 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,
|
|
//~^ ERROR unused variable: `b`
|
|
#[cfg_attr(nothing, cfg(nothing))] c: i32,
|
|
//~^ 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,
|
|
//~^ ERROR unused variable: `b`
|
|
#[cfg_attr(nothing, cfg(nothing))] c: i32,
|
|
//~^ 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 = |_, _| {};
|
|
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,
|
|
//~^ ERROR unused variable: `b`
|
|
#[cfg_attr(nothing, cfg(nothing))] c: i32,
|
|
//~^ ERROR unused variable: `c`
|
|
#[cfg_attr(something, cfg(nothing))] d: i32,
|
|
| {};
|
|
let _ = a(1);
|
|
let _ = c(1, 2);
|
|
}
|