2022-07-20 15:31:15 +00:00
|
|
|
// This test checks the combination of well known names, their activation via names(),
|
|
|
|
// the usage of values(), and that no implicit is done with --cfg while also testing that
|
|
|
|
// we correctly lint on the `cfg!` macro and `cfg_attr` attribute.
|
2022-02-20 00:26:52 +00:00
|
|
|
//
|
|
|
|
// check-pass
|
2023-05-01 12:16:38 +00:00
|
|
|
// revisions: names_values cfg
|
|
|
|
// compile-flags: --cfg feature="bar" --cfg unknown_name -Z unstable-options
|
|
|
|
// compile-flags: --check-cfg=cfg(names_values,cfg)
|
|
|
|
// [names_values]compile-flags: --check-cfg=names() --check-cfg=values(feature,"foo")
|
|
|
|
// [cfg]compile-flags: --check-cfg=cfg(feature,values("foo"))
|
2022-02-20 00:26:52 +00:00
|
|
|
|
|
|
|
#[cfg(windows)]
|
|
|
|
fn do_windows_stuff() {}
|
|
|
|
|
|
|
|
#[cfg(widnows)]
|
|
|
|
//~^ WARNING unexpected `cfg` condition name
|
|
|
|
fn do_windows_stuff() {}
|
|
|
|
|
2023-04-30 17:09:15 +00:00
|
|
|
#[cfg(feature)]
|
|
|
|
//~^ WARNING unexpected `cfg` condition value
|
|
|
|
fn no_feature() {}
|
|
|
|
|
2022-02-20 00:26:52 +00:00
|
|
|
#[cfg(feature = "foo")]
|
|
|
|
fn use_foo() {}
|
|
|
|
|
|
|
|
#[cfg(feature = "bar")]
|
2022-07-20 15:31:15 +00:00
|
|
|
//~^ WARNING unexpected `cfg` condition value
|
2022-02-20 00:26:52 +00:00
|
|
|
fn use_bar() {}
|
|
|
|
|
|
|
|
#[cfg(feature = "zebra")]
|
|
|
|
//~^ WARNING unexpected `cfg` condition value
|
|
|
|
fn use_zebra() {}
|
|
|
|
|
|
|
|
#[cfg_attr(uu, test)]
|
|
|
|
//~^ WARNING unexpected `cfg` condition name
|
|
|
|
fn do_test() {}
|
|
|
|
|
|
|
|
#[cfg_attr(feature = "foo", no_mangle)]
|
|
|
|
fn do_test_foo() {}
|
|
|
|
|
|
|
|
fn test_cfg_macro() {
|
|
|
|
cfg!(windows);
|
|
|
|
cfg!(widnows);
|
|
|
|
//~^ WARNING unexpected `cfg` condition name
|
|
|
|
cfg!(feature = "foo");
|
|
|
|
cfg!(feature = "bar");
|
2022-07-20 15:31:15 +00:00
|
|
|
//~^ WARNING unexpected `cfg` condition value
|
2022-02-20 00:26:52 +00:00
|
|
|
cfg!(feature = "zebra");
|
|
|
|
//~^ WARNING unexpected `cfg` condition value
|
|
|
|
cfg!(xxx = "foo");
|
|
|
|
//~^ WARNING unexpected `cfg` condition name
|
|
|
|
cfg!(xxx);
|
|
|
|
//~^ WARNING unexpected `cfg` condition name
|
|
|
|
cfg!(any(xxx, windows));
|
|
|
|
//~^ WARNING unexpected `cfg` condition name
|
|
|
|
cfg!(any(feature = "bad", windows));
|
|
|
|
//~^ WARNING unexpected `cfg` condition value
|
2022-03-19 09:23:09 +00:00
|
|
|
cfg!(any(windows, xxx));
|
|
|
|
//~^ WARNING unexpected `cfg` condition name
|
|
|
|
cfg!(all(unix, xxx));
|
|
|
|
//~^ WARNING unexpected `cfg` condition name
|
|
|
|
cfg!(all(aa, bb));
|
|
|
|
//~^ WARNING unexpected `cfg` condition name
|
|
|
|
//~| WARNING unexpected `cfg` condition name
|
|
|
|
cfg!(any(aa, bb));
|
|
|
|
//~^ WARNING unexpected `cfg` condition name
|
|
|
|
//~| WARNING unexpected `cfg` condition name
|
|
|
|
cfg!(any(unix, feature = "zebra"));
|
|
|
|
//~^ WARNING unexpected `cfg` condition value
|
|
|
|
cfg!(any(xxx, feature = "zebra"));
|
|
|
|
//~^ WARNING unexpected `cfg` condition name
|
|
|
|
//~| WARNING unexpected `cfg` condition value
|
|
|
|
cfg!(any(xxx, unix, xxx));
|
|
|
|
//~^ WARNING unexpected `cfg` condition name
|
|
|
|
//~| WARNING unexpected `cfg` condition name
|
|
|
|
cfg!(all(feature = "zebra", feature = "zebra", feature = "zebra"));
|
|
|
|
//~^ WARNING unexpected `cfg` condition value
|
|
|
|
//~| WARNING unexpected `cfg` condition value
|
|
|
|
//~| WARNING unexpected `cfg` condition value
|
2022-02-20 00:26:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {}
|