Fix ICE in diagnostic_hir_wf_check

This commit is contained in:
Fabian Wolff 2021-07-27 22:24:43 +02:00
parent 70f74719a9
commit dbd0fd2c2a
4 changed files with 35 additions and 7 deletions

View file

@ -0,0 +1,8 @@
// Regression test for the ICE described in #87495.
trait T {
const CONST: (bool, dyn T);
//~^ ERROR: the trait `T` cannot be made into an object [E0038]
}
fn main() {}

View file

@ -0,0 +1,18 @@
error[E0038]: the trait `T` cannot be made into an object
--> $DIR/issue-87495.rs:4:25
|
LL | const CONST: (bool, dyn T);
| ^^^^^ `T` cannot be made into an object
|
= help: consider moving `CONST` to another trait
note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
--> $DIR/issue-87495.rs:4:11
|
LL | trait T {
| - this trait cannot be made into an object...
LL | const CONST: (bool, dyn T);
| ^^^^^ ...because it contains this associated `const`
error: aborting due to previous error
For more information about this error, try `rustc --explain E0038`.