Auto merge of #86210 - ehuss:rustfix-update, r=Mark-Simulacrum
Rustfix update This updates to rustfix 0.6.0. One of the key changes here is https://github.com/rust-lang/rustfix/pull/195 which changes rustfix to apply multi-part suggestions. One of the tests needs to updated because there are some overlapping suggestions which rustfix cannot handle. The solution is to only apply the machine-applicable suggestions to avoid the overlapping issue. This also includes a minor change to compiletest to provide better error messages with rustfix.
This commit is contained in:
commit
6a5b97adb4
@ -673,7 +673,7 @@ dependencies = [
|
|||||||
"libc",
|
"libc",
|
||||||
"miow 0.3.6",
|
"miow 0.3.6",
|
||||||
"regex",
|
"regex",
|
||||||
"rustfix 0.5.1",
|
"rustfix 0.6.0",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"tracing",
|
"tracing",
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
// run-rustfix
|
// run-rustfix
|
||||||
|
// rustfix-only-machine-applicable
|
||||||
#![allow(unused_variables)]
|
#![allow(unused_variables)]
|
||||||
#![allow(dead_code)]
|
#![allow(dead_code)]
|
||||||
#![allow(unused_must_use)]
|
#![allow(unused_must_use)]
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
// run-rustfix
|
// run-rustfix
|
||||||
|
// rustfix-only-machine-applicable
|
||||||
#![allow(unused_variables)]
|
#![allow(unused_variables)]
|
||||||
#![allow(dead_code)]
|
#![allow(dead_code)]
|
||||||
#![allow(unused_must_use)]
|
#![allow(unused_must_use)]
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
error: expected expression, found `+`
|
error: expected expression, found `+`
|
||||||
--> $DIR/expr-as-stmt.rs:7:9
|
--> $DIR/expr-as-stmt.rs:8:9
|
||||||
|
|
|
|
||||||
LL | {2} + {2}
|
LL | {2} + {2}
|
||||||
| --- ^ expected expression
|
| --- ^ expected expression
|
||||||
@ -7,7 +7,7 @@ LL | {2} + {2}
|
|||||||
| help: parentheses are required to parse this as an expression: `({2})`
|
| help: parentheses are required to parse this as an expression: `({2})`
|
||||||
|
|
||||||
error: expected expression, found `+`
|
error: expected expression, found `+`
|
||||||
--> $DIR/expr-as-stmt.rs:12:9
|
--> $DIR/expr-as-stmt.rs:13:9
|
||||||
|
|
|
|
||||||
LL | {2} + 2
|
LL | {2} + 2
|
||||||
| --- ^ expected expression
|
| --- ^ expected expression
|
||||||
@ -15,7 +15,7 @@ LL | {2} + 2
|
|||||||
| help: parentheses are required to parse this as an expression: `({2})`
|
| help: parentheses are required to parse this as an expression: `({2})`
|
||||||
|
|
||||||
error: expected expression, found `+`
|
error: expected expression, found `+`
|
||||||
--> $DIR/expr-as-stmt.rs:18:12
|
--> $DIR/expr-as-stmt.rs:19:12
|
||||||
|
|
|
|
||||||
LL | { 42 } + foo;
|
LL | { 42 } + foo;
|
||||||
| ------ ^ expected expression
|
| ------ ^ expected expression
|
||||||
@ -23,7 +23,7 @@ LL | { 42 } + foo;
|
|||||||
| help: parentheses are required to parse this as an expression: `({ 42 })`
|
| help: parentheses are required to parse this as an expression: `({ 42 })`
|
||||||
|
|
||||||
error: expected expression, found `>`
|
error: expected expression, found `>`
|
||||||
--> $DIR/expr-as-stmt.rs:31:7
|
--> $DIR/expr-as-stmt.rs:32:7
|
||||||
|
|
|
|
||||||
LL | } > 0
|
LL | } > 0
|
||||||
| ^ expected expression
|
| ^ expected expression
|
||||||
@ -36,7 +36,7 @@ LL | }) > 0
|
|||||||
|
|
|
|
||||||
|
|
||||||
error[E0308]: mismatched types
|
error[E0308]: mismatched types
|
||||||
--> $DIR/expr-as-stmt.rs:7:6
|
--> $DIR/expr-as-stmt.rs:8:6
|
||||||
|
|
|
|
||||||
LL | {2} + {2}
|
LL | {2} + {2}
|
||||||
| ^ expected `()`, found integer
|
| ^ expected `()`, found integer
|
||||||
@ -47,7 +47,7 @@ LL | {return 2;} + {2}
|
|||||||
| ^^^^^^ ^
|
| ^^^^^^ ^
|
||||||
|
|
||||||
error[E0308]: mismatched types
|
error[E0308]: mismatched types
|
||||||
--> $DIR/expr-as-stmt.rs:12:6
|
--> $DIR/expr-as-stmt.rs:13:6
|
||||||
|
|
|
|
||||||
LL | {2} + 2
|
LL | {2} + 2
|
||||||
| ^ expected `()`, found integer
|
| ^ expected `()`, found integer
|
||||||
@ -58,7 +58,7 @@ LL | {return 2;} + 2
|
|||||||
| ^^^^^^ ^
|
| ^^^^^^ ^
|
||||||
|
|
||||||
error[E0308]: mismatched types
|
error[E0308]: mismatched types
|
||||||
--> $DIR/expr-as-stmt.rs:18:7
|
--> $DIR/expr-as-stmt.rs:19:7
|
||||||
|
|
|
|
||||||
LL | { 42 } + foo;
|
LL | { 42 } + foo;
|
||||||
| ^^ expected `()`, found integer
|
| ^^ expected `()`, found integer
|
||||||
@ -69,7 +69,7 @@ LL | { return 42; } + foo;
|
|||||||
| ^^^^^^ ^
|
| ^^^^^^ ^
|
||||||
|
|
||||||
error[E0308]: mismatched types
|
error[E0308]: mismatched types
|
||||||
--> $DIR/expr-as-stmt.rs:24:7
|
--> $DIR/expr-as-stmt.rs:25:7
|
||||||
|
|
|
|
||||||
LL | { 3 } * 3
|
LL | { 3 } * 3
|
||||||
| ^ expected `()`, found integer
|
| ^ expected `()`, found integer
|
||||||
@ -80,7 +80,7 @@ LL | { return 3; } * 3
|
|||||||
| ^^^^^^ ^
|
| ^^^^^^ ^
|
||||||
|
|
||||||
error[E0614]: type `{integer}` cannot be dereferenced
|
error[E0614]: type `{integer}` cannot be dereferenced
|
||||||
--> $DIR/expr-as-stmt.rs:24:11
|
--> $DIR/expr-as-stmt.rs:25:11
|
||||||
|
|
|
|
||||||
LL | { 3 } * 3
|
LL | { 3 } * 3
|
||||||
| ----- ^^^
|
| ----- ^^^
|
||||||
|
@ -14,7 +14,7 @@ tracing-subscriber = { version = "0.2", default-features = false, features = ["f
|
|||||||
regex = "1.0"
|
regex = "1.0"
|
||||||
serde = { version = "1.0", features = ["derive"] }
|
serde = { version = "1.0", features = ["derive"] }
|
||||||
serde_json = "1.0"
|
serde_json = "1.0"
|
||||||
rustfix = "0.5.0"
|
rustfix = "0.6.0"
|
||||||
lazy_static = "1.0"
|
lazy_static = "1.0"
|
||||||
walkdir = "2"
|
walkdir = "2"
|
||||||
glob = "0.3.0"
|
glob = "0.3.0"
|
||||||
|
@ -3328,8 +3328,11 @@ impl<'test> TestCx<'test> {
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
let fixed_code = apply_suggestions(&unfixed_code, &suggestions).unwrap_or_else(|_| {
|
let fixed_code = apply_suggestions(&unfixed_code, &suggestions).unwrap_or_else(|e| {
|
||||||
panic!("failed to apply suggestions for {:?} with rustfix", self.testpaths.file)
|
panic!(
|
||||||
|
"failed to apply suggestions for {:?} with rustfix: {}",
|
||||||
|
self.testpaths.file, e
|
||||||
|
)
|
||||||
});
|
});
|
||||||
|
|
||||||
errors += self.compare_output("fixed", &fixed_code, &expected_fixed);
|
errors += self.compare_output("fixed", &fixed_code, &expected_fixed);
|
||||||
|
@ -287,6 +287,7 @@ pub fn check(root: &Path, cargo: &Path, bad: &mut bool) {
|
|||||||
check_exceptions(&metadata, EXCEPTIONS, runtime_ids, bad);
|
check_exceptions(&metadata, EXCEPTIONS, runtime_ids, bad);
|
||||||
check_dependencies(&metadata, PERMITTED_DEPENDENCIES, RESTRICTED_DEPENDENCY_CRATES, bad);
|
check_dependencies(&metadata, PERMITTED_DEPENDENCIES, RESTRICTED_DEPENDENCY_CRATES, bad);
|
||||||
check_crate_duplicate(&metadata, FORBIDDEN_TO_HAVE_DUPLICATES, bad);
|
check_crate_duplicate(&metadata, FORBIDDEN_TO_HAVE_DUPLICATES, bad);
|
||||||
|
check_rustfix(&metadata, bad);
|
||||||
|
|
||||||
// Check rustc_codegen_cranelift independently as it has it's own workspace.
|
// Check rustc_codegen_cranelift independently as it has it's own workspace.
|
||||||
let mut cmd = cargo_metadata::MetadataCommand::new();
|
let mut cmd = cargo_metadata::MetadataCommand::new();
|
||||||
@ -547,3 +548,22 @@ fn normal_deps_of_r<'a>(
|
|||||||
normal_deps_of_r(resolve, &dep.pkg, result);
|
normal_deps_of_r(resolve, &dep.pkg, result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn check_rustfix(metadata: &Metadata, bad: &mut bool) {
|
||||||
|
let cargo = pkg_from_name(metadata, "cargo");
|
||||||
|
let compiletest = pkg_from_name(metadata, "compiletest");
|
||||||
|
let cargo_deps = deps_of(metadata, &cargo.id);
|
||||||
|
let compiletest_deps = deps_of(metadata, &compiletest.id);
|
||||||
|
let cargo_rustfix = cargo_deps.iter().find(|p| p.name == "rustfix").unwrap();
|
||||||
|
let compiletest_rustfix = compiletest_deps.iter().find(|p| p.name == "rustfix").unwrap();
|
||||||
|
if cargo_rustfix.version != compiletest_rustfix.version {
|
||||||
|
tidy_error!(
|
||||||
|
bad,
|
||||||
|
"cargo's rustfix version {} does not match compiletest's rustfix version {}\n\
|
||||||
|
rustfix should be kept in sync, update the cargo side first, and then update \
|
||||||
|
compiletest along with cargo.",
|
||||||
|
cargo_rustfix.version,
|
||||||
|
compiletest_rustfix.version
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user