mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-01 15:01:51 +00:00
41 lines
782 B
Rust
41 lines
782 B
Rust
|
// check-pass
|
||
|
|
||
|
// regression test for #91489
|
||
|
|
||
|
use std::borrow::Borrow;
|
||
|
use std::borrow::Cow;
|
||
|
|
||
|
pub struct VariantType {}
|
||
|
pub struct VariantTy {}
|
||
|
|
||
|
impl Borrow<VariantTy> for VariantType {
|
||
|
fn borrow(&self) -> &VariantTy {
|
||
|
unimplemented!()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
impl ToOwned for VariantTy {
|
||
|
type Owned = VariantType;
|
||
|
fn to_owned(&self) -> VariantType {
|
||
|
unimplemented!()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
impl VariantTy {
|
||
|
pub fn as_str(&self) -> () {}
|
||
|
}
|
||
|
|
||
|
// the presence of this was causing all attempts to call `as_str` on
|
||
|
// `Cow<'_, VariantTy>, including in itself, to not find the method
|
||
|
static _TYP: () = {
|
||
|
let _ = || {
|
||
|
// should be found
|
||
|
Cow::Borrowed(&VariantTy {}).as_str();
|
||
|
};
|
||
|
};
|
||
|
|
||
|
fn main() {
|
||
|
// should be found
|
||
|
Cow::Borrowed(&VariantTy {}).as_str()
|
||
|
}
|