diff options
| author | Eric Holk <ericholk@microsoft.com> | 2022-04-13 16:38:16 -0700 |
|---|---|---|
| committer | Eric Holk <ericholk@microsoft.com> | 2022-09-12 16:55:56 -0700 |
| commit | 7fccac3ea0db7cbbb1b84ff4ab824f8d85f415fe (patch) | |
| tree | 180db46f04cb01e79b9f843387b875de77264db3 /src | |
| parent | 6c01273a1566bc312ea88225880d35c2259914a6 (diff) | |
| download | rust-7fccac3ea0db7cbbb1b84ff4ab824f8d85f415fe.tar.gz rust-7fccac3ea0db7cbbb1b84ff4ab824f8d85f415fe.zip | |
Typecheck dyn* coercions
Also changes things to treat dyn* as a sized type, unlike dyn Trait.
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/ui/async-await/dyn-star-trait-error.rs | 12 | ||||
| -rw-r--r-- | src/test/ui/async-await/dyn-star-trait-error.stderr | 9 | ||||
| -rw-r--r-- | src/test/ui/dyn-star/make-dyn-star.rs | 14 | ||||
| -rw-r--r-- | src/test/ui/dyn-star/syntax.rs | 3 |
4 files changed, 36 insertions, 2 deletions
diff --git a/src/test/ui/async-await/dyn-star-trait-error.rs b/src/test/ui/async-await/dyn-star-trait-error.rs new file mode 100644 index 00000000000..20e183c7455 --- /dev/null +++ b/src/test/ui/async-await/dyn-star-trait-error.rs @@ -0,0 +1,12 @@ +#![feature(async_fn_in_traits)] + +use std::fmt::Debug; + +trait Foo {} + +fn make_dyn_star() { + let i = 42; + let dyn_i: dyn* Foo = i as dyn* Foo; //~ ERROR trait bound `{integer}: Foo` is not satisfied +} + +fn main() {} diff --git a/src/test/ui/async-await/dyn-star-trait-error.stderr b/src/test/ui/async-await/dyn-star-trait-error.stderr new file mode 100644 index 00000000000..932bc50ffde --- /dev/null +++ b/src/test/ui/async-await/dyn-star-trait-error.stderr @@ -0,0 +1,9 @@ +error[E0277]: the trait bound `{integer}: Foo` is not satisfied + --> $DIR/dyn-star-trait-error.rs:9:27 + | +LL | let dyn_i: dyn* Foo = i as dyn* Foo; + | ^ the trait `Foo` is not implemented for `{integer}` + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0277`. diff --git a/src/test/ui/dyn-star/make-dyn-star.rs b/src/test/ui/dyn-star/make-dyn-star.rs new file mode 100644 index 00000000000..17356bfbd84 --- /dev/null +++ b/src/test/ui/dyn-star/make-dyn-star.rs @@ -0,0 +1,14 @@ +// check-pass +#![feature(dyn_star)] + +use std::fmt::Debug; + +pub fn dyn_star_parameter(_: dyn* Send) { +} + +fn make_dyn_star() { + let i = 42usize; + let dyn_i: dyn* Debug = i as dyn* Debug; +} + +fn main() {} diff --git a/src/test/ui/dyn-star/syntax.rs b/src/test/ui/dyn-star/syntax.rs index dd96bf0672d..7848996e5e0 100644 --- a/src/test/ui/dyn-star/syntax.rs +++ b/src/test/ui/dyn-star/syntax.rs @@ -2,10 +2,9 @@ // // check-pass - #![feature(dyn_star)] -pub fn dyn_star_parameter(_: &dyn* Send) { +pub fn dyn_star_parameter(_: dyn* Send) { } fn main() {} |
