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:
commit
b8bb6f9a4b
2 changed files with 53 additions and 0 deletions
24
src/test/ui/specialization/min_specialization/issue-79224.rs
Normal file
24
src/test/ui/specialization/min_specialization/issue-79224.rs
Normal 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() {}
|
|
@ -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`.
|
Loading…
Add table
Add a link
Reference in a new issue