diff options
| -rw-r--r-- | rust-version | 2 | ||||
| -rw-r--r-- | tests/fail/issue-miri-2432.rs | 19 | ||||
| -rw-r--r-- | tests/fail/issue-miri-2432.stderr | 15 |
3 files changed, 35 insertions, 1 deletions
diff --git a/rust-version b/rust-version index b948bc8b4e6..927ced2a2d1 100644 --- a/rust-version +++ b/rust-version @@ -1 +1 @@ -2fdbf075cf502431ca9fee6616331b32e34f25de +a86705942c4cfaaee60f2e7308ca2bca703a710f diff --git a/tests/fail/issue-miri-2432.rs b/tests/fail/issue-miri-2432.rs new file mode 100644 index 00000000000..f822479c436 --- /dev/null +++ b/tests/fail/issue-miri-2432.rs @@ -0,0 +1,19 @@ +#![allow(where_clauses_object_safety)] + +trait Trait {} + +trait X { + fn foo(&self) + where + Self: Trait; +} + +impl X for () { + fn foo(&self) {} +} + +impl Trait for dyn X {} + +pub fn main() { + <dyn X as X>::foo(&()); //~ERROR: trying to call something that is not a method +} diff --git a/tests/fail/issue-miri-2432.stderr b/tests/fail/issue-miri-2432.stderr new file mode 100644 index 00000000000..a5c9300fb07 --- /dev/null +++ b/tests/fail/issue-miri-2432.stderr @@ -0,0 +1,15 @@ +error: Undefined Behavior: `dyn` call trying to call something that is not a method + --> $DIR/issue-miri-2432.rs:LL:CC + | +LL | <dyn X as X>::foo(&()); + | ^^^^^^^^^^^^^^^^^^^^^^ `dyn` call trying to call something that is not a method + | + = help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior + = help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information + = note: backtrace: + = note: inside `main` at $DIR/issue-miri-2432.rs:LL:CC + +note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace + +error: aborting due to previous error + |
