Rollup merge of #98525 - JohnTitor:issue-79224, r=compiler-errors

Add regression test for #79224

Closes #79224
r? `@compiler-errors`

Signed-off-by: Yuki Okushi <jtitor@2k36.org>
This commit is contained in:
Dylan DPC 2022-06-29 10:28:22 +05:30 committed by GitHub
commit b8bb6f9a4b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 53 additions and 0 deletions

View File

@ -0,0 +1,24 @@
#![feature(min_specialization)]
use std::fmt::{self, Display};
pub enum Cow<'a, B: ?Sized + 'a, O = <B as ToOwned>::Owned>
where
B: ToOwned,
{
Borrowed(&'a B),
Owned(O),
}
impl ToString for Cow<'_, str> {
fn to_string(&self) -> String {
String::new()
}
}
impl<B: ?Sized> Display for Cow<'_, B> { //~ ERROR: the trait bound `B: Clone` is not satisfied [E0277]
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { //~ ERROR: the trait bound `B: Clone` is not satisfied [E0277]
write!(f, "foo")
}
}
fn main() {}

View File

@ -0,0 +1,29 @@
error[E0277]: the trait bound `B: Clone` is not satisfied
--> $DIR/issue-79224.rs:18:17
|
LL | impl<B: ?Sized> Display for Cow<'_, B> {
| ^^^^^^^ the trait `Clone` is not implemented for `B`
|
= note: required because of the requirements on the impl of `ToOwned` for `B`
help: consider further restricting this bound
|
LL | impl<B: ?Sized + std::clone::Clone> Display for Cow<'_, B> {
| +++++++++++++++++++
error[E0277]: the trait bound `B: Clone` is not satisfied
--> $DIR/issue-79224.rs:19:5
|
LL | / fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
LL | | write!(f, "foo")
LL | | }
| |_____^ the trait `Clone` is not implemented for `B`
|
= note: required because of the requirements on the impl of `ToOwned` for `B`
help: consider further restricting this bound
|
LL | impl<B: ?Sized + std::clone::Clone> Display for Cow<'_, B> {
| +++++++++++++++++++
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0277`.