about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorjackh726 <jack.huey@umassmed.edu>2021-08-15 00:53:40 -0400
committerjackh726 <jack.huey@umassmed.edu>2021-09-07 18:08:46 -0400
commitf1f1d56d93b40228296e6306fadbcc352edbafc5 (patch)
treec76689a44f3fbc05a604d033ca2be393b8817d00 /src
parent2eaf9fe364b9d3ce19addba2201fa4a84492c085 (diff)
downloadrust-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.rs1
-rw-r--r--src/test/ui/maybe-bounds-where.stderr14
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`.