Skip to content

Commit

Permalink
Fix diagnostic suggests adding type [type error]
Browse files Browse the repository at this point in the history
Fixes #79040

Unresolved questions:

Why does this change output the diagnostic twice?

Why does the CI fail when the errors are pointed out (UI tests)?
  • Loading branch information
henryboisdequin committed Mar 3, 2021
1 parent 1279b3b commit d9d6921
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 21 deletions.
2 changes: 1 addition & 1 deletion compiler/rustc_typeck/src/collect/type_of.rs
Expand Up @@ -659,7 +659,7 @@ fn infer_placeholder_type(
format!("{}: {}", item_ident, ty),
Applicability::MachineApplicable,
)
.emit();
.emit_unless(matches!(ty.kind(), ty::Error(_)));
}
None => {
let mut diag = bad_placeholder_type(tcx, vec![span]);
Expand Down
5 changes: 5 additions & 0 deletions src/test/ui/79040.rs
@@ -0,0 +1,5 @@
fn main() {
const FOO = "hello" + 1;
//^~ ERROR cannot add `{integer}` to `&str`
println!("{}", FOO);
}
19 changes: 19 additions & 0 deletions src/test/ui/79040.stderr
@@ -0,0 +1,19 @@
error[E0369]: cannot add `{integer}` to `&str`
--> $DIR/79040.rs:2:25
|
LL | const FOO = "hello" + 1;
| ------- ^ - {integer}
| |
| &str

error[E0369]: cannot add `{integer}` to `&str`
--> $DIR/79040.rs:2:25
|
LL | const FOO = "hello" + 1;
| ------- ^ - {integer}
| |
| &str

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0369`.
Expand Up @@ -14,11 +14,5 @@ LL | const B;
| |
| help: provide a definition for the constant: `= <expr>;`

error: missing type for `const` item
--> $DIR/item-free-const-no-body-semantic-fail.rs:6:7
|
LL | const B;
| ^ help: provide a type for the item: `B: [type error]`

error: aborting due to 3 previous errors
error: aborting due to 2 previous errors

14 changes: 1 addition & 13 deletions src/test/ui/parser/item-free-static-no-body-semantic-fail.stderr
Expand Up @@ -30,17 +30,5 @@ LL | static mut D;
| |
| help: provide a definition for the static: `= <expr>;`

error: missing type for `static` item
--> $DIR/item-free-static-no-body-semantic-fail.rs:6:8
|
LL | static B;
| ^ help: provide a type for the item: `B: [type error]`

error: missing type for `static mut` item
--> $DIR/item-free-static-no-body-semantic-fail.rs:10:12
|
LL | static mut D;
| ^ help: provide a type for the item: `D: [type error]`

error: aborting due to 6 previous errors
error: aborting due to 4 previous errors

0 comments on commit d9d6921

Please sign in to comment.