From 7d3a6f16551fa9ff54fbfa9c648c21ae0f6d550f Mon Sep 17 00:00:00 2001 From: Henry Boisdequin <65845077+henryboisdequin@users.noreply.github.com> Date: Wed, 3 Mar 2021 17:09:40 +0530 Subject: [PATCH] address comments --- compiler/rustc_typeck/src/collect/type_of.rs | 6 ++++-- src/test/ui/79040.rs | 5 ----- src/test/ui/parser/item-free-const-no-body-semantic-fail.rs | 1 - .../ui/parser/item-free-static-no-body-semantic-fail.rs | 2 -- .../ui/parser/item-free-static-no-body-semantic-fail.stderr | 4 ++-- src/test/ui/typeck/issue-79040.rs | 5 +++++ src/test/ui/{79040.stderr => typeck/issue-79040.stderr} | 4 ++-- 7 files changed, 13 insertions(+), 14 deletions(-) delete mode 100644 src/test/ui/79040.rs create mode 100644 src/test/ui/typeck/issue-79040.rs rename src/test/ui/{79040.stderr => typeck/issue-79040.stderr} (88%) diff --git a/compiler/rustc_typeck/src/collect/type_of.rs b/compiler/rustc_typeck/src/collect/type_of.rs index 92e2b523202..1f47e4899f1 100644 --- a/compiler/rustc_typeck/src/collect/type_of.rs +++ b/compiler/rustc_typeck/src/collect/type_of.rs @@ -659,11 +659,12 @@ fn infer_placeholder_type( format!("{}: {}", item_ident, ty), Applicability::MachineApplicable, ) - .emit_unless(matches!(ty.kind(), ty::Error(_))); + .emit_unless(ty.references_error()); } None => { let mut diag = bad_placeholder_type(tcx, vec![span]); - if !matches!(ty.kind(), ty::Error(_)) { + + if !ty.references_error() { diag.span_suggestion( span, "replace `_` with the correct type", @@ -671,6 +672,7 @@ fn infer_placeholder_type( Applicability::MaybeIncorrect, ); } + diag.emit(); } } diff --git a/src/test/ui/79040.rs b/src/test/ui/79040.rs deleted file mode 100644 index adc9dc8b426..00000000000 --- a/src/test/ui/79040.rs +++ /dev/null @@ -1,5 +0,0 @@ -fn main() { - const FOO = "hello" + 1; - //^~ ERROR cannot add `{integer}` to `&str` - println!("{}", FOO); -} \ No newline at end of file diff --git a/src/test/ui/parser/item-free-const-no-body-semantic-fail.rs b/src/test/ui/parser/item-free-const-no-body-semantic-fail.rs index 613b3c98561..15a15a207b1 100644 --- a/src/test/ui/parser/item-free-const-no-body-semantic-fail.rs +++ b/src/test/ui/parser/item-free-const-no-body-semantic-fail.rs @@ -4,4 +4,3 @@ fn main() {} const A: u8; //~ ERROR free constant item without body const B; //~ ERROR free constant item without body -//~^ ERROR missing type for `const` item diff --git a/src/test/ui/parser/item-free-static-no-body-semantic-fail.rs b/src/test/ui/parser/item-free-static-no-body-semantic-fail.rs index 780479e3d26..61d3eab24d8 100644 --- a/src/test/ui/parser/item-free-static-no-body-semantic-fail.rs +++ b/src/test/ui/parser/item-free-static-no-body-semantic-fail.rs @@ -4,8 +4,6 @@ fn main() {} static A: u8; //~ ERROR free static item without body static B; //~ ERROR free static item without body -//~^ ERROR missing type for `static` item static mut C: u8; //~ ERROR free static item without body static mut D; //~ ERROR free static item without body -//~^ ERROR missing type for `static mut` item diff --git a/src/test/ui/parser/item-free-static-no-body-semantic-fail.stderr b/src/test/ui/parser/item-free-static-no-body-semantic-fail.stderr index 2a270c8290f..7b408323674 100644 --- a/src/test/ui/parser/item-free-static-no-body-semantic-fail.stderr +++ b/src/test/ui/parser/item-free-static-no-body-semantic-fail.stderr @@ -15,7 +15,7 @@ LL | static B; | help: provide a definition for the static: `= ;` error: free static item without body - --> $DIR/item-free-static-no-body-semantic-fail.rs:9:1 + --> $DIR/item-free-static-no-body-semantic-fail.rs:8:1 | LL | static mut C: u8; | ^^^^^^^^^^^^^^^^- @@ -23,7 +23,7 @@ LL | static mut C: u8; | help: provide a definition for the static: `= ;` error: free static item without body - --> $DIR/item-free-static-no-body-semantic-fail.rs:10:1 + --> $DIR/item-free-static-no-body-semantic-fail.rs:9:1 | LL | static mut D; | ^^^^^^^^^^^^- diff --git a/src/test/ui/typeck/issue-79040.rs b/src/test/ui/typeck/issue-79040.rs new file mode 100644 index 00000000000..af2a9c1ba87 --- /dev/null +++ b/src/test/ui/typeck/issue-79040.rs @@ -0,0 +1,5 @@ +fn main() { + const FOO = "hello" + 1; //~ ERROR cannot add `{integer}` to `&str` + //~^ ERROR cannot add `{integer}` to `&str` + println!("{}", FOO); +} diff --git a/src/test/ui/79040.stderr b/src/test/ui/typeck/issue-79040.stderr similarity index 88% rename from src/test/ui/79040.stderr rename to src/test/ui/typeck/issue-79040.stderr index be7d2363c2d..32049e5d968 100644 --- a/src/test/ui/79040.stderr +++ b/src/test/ui/typeck/issue-79040.stderr @@ -1,5 +1,5 @@ error[E0369]: cannot add `{integer}` to `&str` - --> $DIR/79040.rs:2:25 + --> $DIR/issue-79040.rs:2:25 | LL | const FOO = "hello" + 1; | ------- ^ - {integer} @@ -7,7 +7,7 @@ LL | const FOO = "hello" + 1; | &str error[E0369]: cannot add `{integer}` to `&str` - --> $DIR/79040.rs:2:25 + --> $DIR/issue-79040.rs:2:25 | LL | const FOO = "hello" + 1; | ------- ^ - {integer}