Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 5 pull requests #117264

Closed
wants to merge 16 commits into from
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Prevent mixing deprecated check-cfg syntax with new one
  • Loading branch information
Urgau committed Oct 26, 2023
commit 351ca152ef633ed0037e6a4cdcaf68d40ec40c43
13 changes: 13 additions & 0 deletions compiler/rustc_interface/src/interface.rs
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,12 @@ pub fn parse_check_cfg(handler: &EarlyErrorHandler, specs: Vec<String>) -> Check
};
}

let cannot_mix_error = || {
error!(
"cannot mix `cfg(...)` with deprecated syntax `names(...)` and `values(...)`"
)
};

let expected_error = || -> ! {
error!("expected `cfg(name, values(\"value1\", \"value2\", ... \"valueN\"))`")
};
Expand Down Expand Up @@ -174,6 +180,8 @@ pub fn parse_check_cfg(handler: &EarlyErrorHandler, specs: Vec<String>) -> Check
if old_syntax == None {
check_cfg.exhaustive_names = false;
check_cfg.exhaustive_values = false;
} else if old_syntax == Some(false) {
cannot_mix_error();
}
old_syntax = Some(true);

Expand All @@ -194,6 +202,8 @@ pub fn parse_check_cfg(handler: &EarlyErrorHandler, specs: Vec<String>) -> Check
if old_syntax == None {
check_cfg.exhaustive_names = false;
check_cfg.exhaustive_values = false;
} else if old_syntax == Some(false) {
cannot_mix_error();
}
old_syntax = Some(true);

Expand Down Expand Up @@ -237,6 +247,9 @@ pub fn parse_check_cfg(handler: &EarlyErrorHandler, specs: Vec<String>) -> Check
expected_error();
}
} else if meta_item.has_name(sym::cfg) {
if old_syntax == Some(true) {
cannot_mix_error();
}
old_syntax = Some(false);

let mut names = Vec::new();
Expand Down
52 changes: 26 additions & 26 deletions tests/ui/check-cfg/mix.cfg.stderr
Original file line number Diff line number Diff line change
@@ -1,37 +1,37 @@
warning: unexpected `cfg` condition name: `widnows`
--> $DIR/mix.rs:15:7
--> $DIR/mix.rs:16:7
|
LL | #[cfg(widnows)]
| ^^^^^^^ help: there is a config with a similar name: `windows`
|
= note: `#[warn(unexpected_cfgs)]` on by default

warning: unexpected `cfg` condition value: (none)
--> $DIR/mix.rs:19:7
--> $DIR/mix.rs:20:7
|
LL | #[cfg(feature)]
| ^^^^^^^- help: specify a config value: `= "foo"`
|
= note: expected values for `feature` are: `foo`

warning: unexpected `cfg` condition value: `bar`
--> $DIR/mix.rs:26:7
--> $DIR/mix.rs:27:7
|
LL | #[cfg(feature = "bar")]
| ^^^^^^^^^^^^^^^
|
= note: expected values for `feature` are: `foo`

warning: unexpected `cfg` condition value: `zebra`
--> $DIR/mix.rs:30:7
--> $DIR/mix.rs:31:7
|
LL | #[cfg(feature = "zebra")]
| ^^^^^^^^^^^^^^^^^
|
= note: expected values for `feature` are: `foo`

warning: unexpected `cfg` condition name: `uu`
--> $DIR/mix.rs:34:12
--> $DIR/mix.rs:35:12
|
LL | #[cfg_attr(uu, test)]
| ^^
Expand All @@ -47,141 +47,141 @@ warning: unexpected `unknown_name` as condition name
= help: was set with `--cfg` but isn't in the `--check-cfg` expected names

warning: unexpected `cfg` condition name: `widnows`
--> $DIR/mix.rs:43:10
--> $DIR/mix.rs:44:10
|
LL | cfg!(widnows);
| ^^^^^^^ help: there is a config with a similar name: `windows`

warning: unexpected `cfg` condition value: `bar`
--> $DIR/mix.rs:46:10
--> $DIR/mix.rs:47:10
|
LL | cfg!(feature = "bar");
| ^^^^^^^^^^^^^^^
|
= note: expected values for `feature` are: `foo`

warning: unexpected `cfg` condition value: `zebra`
--> $DIR/mix.rs:48:10
--> $DIR/mix.rs:49:10
|
LL | cfg!(feature = "zebra");
| ^^^^^^^^^^^^^^^^^
|
= note: expected values for `feature` are: `foo`

warning: unexpected `cfg` condition name: `xxx`
--> $DIR/mix.rs:50:10
--> $DIR/mix.rs:51:10
|
LL | cfg!(xxx = "foo");
| ^^^^^^^^^^^

warning: unexpected `cfg` condition name: `xxx`
--> $DIR/mix.rs:52:10
--> $DIR/mix.rs:53:10
|
LL | cfg!(xxx);
| ^^^

warning: unexpected `cfg` condition name: `xxx`
--> $DIR/mix.rs:54:14
--> $DIR/mix.rs:55:14
|
LL | cfg!(any(xxx, windows));
| ^^^

warning: unexpected `cfg` condition value: `bad`
--> $DIR/mix.rs:56:14
--> $DIR/mix.rs:57:14
|
LL | cfg!(any(feature = "bad", windows));
| ^^^^^^^^^^^^^^^
|
= note: expected values for `feature` are: `foo`

warning: unexpected `cfg` condition name: `xxx`
--> $DIR/mix.rs:58:23
--> $DIR/mix.rs:59:23
|
LL | cfg!(any(windows, xxx));
| ^^^

warning: unexpected `cfg` condition name: `xxx`
--> $DIR/mix.rs:60:20
--> $DIR/mix.rs:61:20
|
LL | cfg!(all(unix, xxx));
| ^^^

warning: unexpected `cfg` condition name: `aa`
--> $DIR/mix.rs:62:14
--> $DIR/mix.rs:63:14
|
LL | cfg!(all(aa, bb));
| ^^

warning: unexpected `cfg` condition name: `bb`
--> $DIR/mix.rs:62:18
--> $DIR/mix.rs:63:18
|
LL | cfg!(all(aa, bb));
| ^^

warning: unexpected `cfg` condition name: `aa`
--> $DIR/mix.rs:65:14
--> $DIR/mix.rs:66:14
|
LL | cfg!(any(aa, bb));
| ^^

warning: unexpected `cfg` condition name: `bb`
--> $DIR/mix.rs:65:18
--> $DIR/mix.rs:66:18
|
LL | cfg!(any(aa, bb));
| ^^

warning: unexpected `cfg` condition value: `zebra`
--> $DIR/mix.rs:68:20
--> $DIR/mix.rs:69:20
|
LL | cfg!(any(unix, feature = "zebra"));
| ^^^^^^^^^^^^^^^^^
|
= note: expected values for `feature` are: `foo`

warning: unexpected `cfg` condition name: `xxx`
--> $DIR/mix.rs:70:14
--> $DIR/mix.rs:71:14
|
LL | cfg!(any(xxx, feature = "zebra"));
| ^^^

warning: unexpected `cfg` condition value: `zebra`
--> $DIR/mix.rs:70:19
--> $DIR/mix.rs:71:19
|
LL | cfg!(any(xxx, feature = "zebra"));
| ^^^^^^^^^^^^^^^^^
|
= note: expected values for `feature` are: `foo`

warning: unexpected `cfg` condition name: `xxx`
--> $DIR/mix.rs:73:14
--> $DIR/mix.rs:74:14
|
LL | cfg!(any(xxx, unix, xxx));
| ^^^

warning: unexpected `cfg` condition name: `xxx`
--> $DIR/mix.rs:73:25
--> $DIR/mix.rs:74:25
|
LL | cfg!(any(xxx, unix, xxx));
| ^^^

warning: unexpected `cfg` condition value: `zebra`
--> $DIR/mix.rs:76:14
--> $DIR/mix.rs:77:14
|
LL | cfg!(all(feature = "zebra", feature = "zebra", feature = "zebra"));
| ^^^^^^^^^^^^^^^^^
|
= note: expected values for `feature` are: `foo`

warning: unexpected `cfg` condition value: `zebra`
--> $DIR/mix.rs:76:33
--> $DIR/mix.rs:77:33
|
LL | cfg!(all(feature = "zebra", feature = "zebra", feature = "zebra"));
| ^^^^^^^^^^^^^^^^^
|
= note: expected values for `feature` are: `foo`

warning: unexpected `cfg` condition value: `zebra`
--> $DIR/mix.rs:76:52
--> $DIR/mix.rs:77:52
|
LL | cfg!(all(feature = "zebra", feature = "zebra", feature = "zebra"));
| ^^^^^^^^^^^^^^^^^
Expand Down
Loading