diff options
| author | jackh726 <jack.huey@umassmed.edu> | 2021-08-15 00:53:40 -0400 |
|---|---|---|
| committer | jackh726 <jack.huey@umassmed.edu> | 2021-09-07 18:08:46 -0400 |
| commit | f1f1d56d93b40228296e6306fadbcc352edbafc5 (patch) | |
| tree | c76689a44f3fbc05a604d033ca2be393b8817d00 /src | |
| parent | 2eaf9fe364b9d3ce19addba2201fa4a84492c085 (diff) | |
| download | rust-f1f1d56d93b40228296e6306fadbcc352edbafc5.tar.gz rust-f1f1d56d93b40228296e6306fadbcc352edbafc5.zip | |
Don't move ?Trait bounds to param bounds if they're in where clauses
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/ui/maybe-bounds-where.rs | 1 | ||||
| -rw-r--r-- | src/test/ui/maybe-bounds-where.stderr | 14 |
2 files changed, 11 insertions, 4 deletions
diff --git a/src/test/ui/maybe-bounds-where.rs b/src/test/ui/maybe-bounds-where.rs index cf011653c20..d7af0c42480 100644 --- a/src/test/ui/maybe-bounds-where.rs +++ b/src/test/ui/maybe-bounds-where.rs @@ -11,6 +11,7 @@ trait Trait<'a> {} struct S4<T>(T) where for<'a> T: ?Trait<'a>; //~^ ERROR `?Trait` bounds are only permitted at the point where a type parameter is declared +//~| WARN default bound relaxed for a type parameter struct S5<T>(*const T) where T: ?Trait<'static> + ?Sized; //~^ ERROR type parameter has more than one relaxed default bound diff --git a/src/test/ui/maybe-bounds-where.stderr b/src/test/ui/maybe-bounds-where.stderr index 0ef8e9e9c79..2aa6a8a3822 100644 --- a/src/test/ui/maybe-bounds-where.stderr +++ b/src/test/ui/maybe-bounds-where.stderr @@ -23,23 +23,29 @@ LL | struct S4<T>(T) where for<'a> T: ?Trait<'a>; | ^ error: `?Trait` bounds are only permitted at the point where a type parameter is declared - --> $DIR/maybe-bounds-where.rs:20:18 + --> $DIR/maybe-bounds-where.rs:21:18 | LL | fn f() where T: ?Sized {} | ^ +warning: default bound relaxed for a type parameter, but this does nothing because the given bound is not a default; only `?Sized` is supported + --> $DIR/maybe-bounds-where.rs:12:11 + | +LL | struct S4<T>(T) where for<'a> T: ?Trait<'a>; + | ^ + error[E0203]: type parameter has more than one relaxed default bound, only one is supported - --> $DIR/maybe-bounds-where.rs:15:11 + --> $DIR/maybe-bounds-where.rs:16:11 | LL | struct S5<T>(*const T) where T: ?Trait<'static> + ?Sized; | ^ warning: default bound relaxed for a type parameter, but this does nothing because the given bound is not a default; only `?Sized` is supported - --> $DIR/maybe-bounds-where.rs:15:11 + --> $DIR/maybe-bounds-where.rs:16:11 | LL | struct S5<T>(*const T) where T: ?Trait<'static> + ?Sized; | ^ -error: aborting due to 6 previous errors; 1 warning emitted +error: aborting due to 6 previous errors; 2 warnings emitted For more information about this error, try `rustc --explain E0203`. |
