diff options
| author | Michael Goulet <michael@errs.io> | 2023-02-17 21:01:22 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2023-02-18 19:49:40 +0000 |
| commit | f4a4a3147955ceb359204d85a74e15ee9d98046b (patch) | |
| tree | 7cbed8c2e2c7887011d76f46b130f731f6c50616 /tests | |
| parent | 3eb5c4581a386b13c414e8c8bd73846ef37236d1 (diff) | |
| download | rust-f4a4a3147955ceb359204d85a74e15ee9d98046b.tar.gz rust-f4a4a3147955ceb359204d85a74e15ee9d98046b.zip | |
Don't ICE on bound types in sized conditions
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/ui/traits/non_lifetime_binders/bad-sized-cond.rs | 13 | ||||
| -rw-r--r-- | tests/ui/traits/non_lifetime_binders/bad-sized-cond.stderr | 28 |
2 files changed, 41 insertions, 0 deletions
diff --git a/tests/ui/traits/non_lifetime_binders/bad-sized-cond.rs b/tests/ui/traits/non_lifetime_binders/bad-sized-cond.rs new file mode 100644 index 00000000000..1612de7fc45 --- /dev/null +++ b/tests/ui/traits/non_lifetime_binders/bad-sized-cond.rs @@ -0,0 +1,13 @@ +#![feature(non_lifetime_binders)] +//~^ WARN is incomplete and may not be safe + +pub fn foo() +where + for<V> V: Sized, +{ +} + +fn main() { + foo(); + //~^ ERROR the size for values of type `V` cannot be known at compilation time +} diff --git a/tests/ui/traits/non_lifetime_binders/bad-sized-cond.stderr b/tests/ui/traits/non_lifetime_binders/bad-sized-cond.stderr new file mode 100644 index 00000000000..eeb3baf010f --- /dev/null +++ b/tests/ui/traits/non_lifetime_binders/bad-sized-cond.stderr @@ -0,0 +1,28 @@ +warning: the feature `non_lifetime_binders` is incomplete and may not be safe to use and/or cause compiler crashes + --> $DIR/bad-sized-cond.rs:1:12 + | +LL | #![feature(non_lifetime_binders)] + | ^^^^^^^^^^^^^^^^^^^^ + | + = note: see issue #108185 <https://github.com/rust-lang/rust/issues/108185> for more information + = note: `#[warn(incomplete_features)]` on by default + +error[E0277]: the size for values of type `V` cannot be known at compilation time + --> $DIR/bad-sized-cond.rs:11:5 + | +LL | foo(); + | ^^^ doesn't have a size known at compile-time + | + = help: the trait `Sized` is not implemented for `V` +note: required by a bound in `foo` + --> $DIR/bad-sized-cond.rs:6:15 + | +LL | pub fn foo() + | --- required by a bound in this +LL | where +LL | for<V> V: Sized, + | ^^^^^ required by this bound in `foo` + +error: aborting due to previous error; 1 warning emitted + +For more information about this error, try `rustc --explain E0277`. |
