mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-25 21:34:18 +00:00
add regression test for issue 89119
This commit is contained in:
parent
6dc08b909b
commit
bec19a72dd
src/test/ui/traits
@ -0,0 +1,60 @@
|
||||
// This is the auxiliary crate for the regression test for issue #89119, minimized
|
||||
// from `zvariant-2.8.0`.
|
||||
|
||||
use std::convert::TryFrom;
|
||||
use std::borrow::Cow;
|
||||
|
||||
pub struct Str<'a>(Cow<'a, str>);
|
||||
impl<'a> Str<'a> {
|
||||
pub fn to_owned(&self) -> Str<'static> {
|
||||
todo!()
|
||||
}
|
||||
}
|
||||
|
||||
pub enum Value<'a> {
|
||||
Str(Str<'a>),
|
||||
Value(Box<Value<'a>>),
|
||||
}
|
||||
impl<'a> Value<'a> {
|
||||
pub fn to_owned(&self) -> Value<'static> {
|
||||
match self {
|
||||
Value::Str(v) => Value::Str(v.to_owned()),
|
||||
Value::Value(v) => {
|
||||
let o = OwnedValue::from(&**v);
|
||||
Value::Value(Box::new(o.into_inner()))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct OwnedValue(Value<'static>);
|
||||
impl OwnedValue {
|
||||
pub(crate) fn into_inner(self) -> Value<'static> {
|
||||
todo!()
|
||||
}
|
||||
}
|
||||
impl<'a, T> TryFrom<OwnedValue> for Vec<T>
|
||||
where
|
||||
T: TryFrom<Value<'a>, Error = ()>,
|
||||
{
|
||||
type Error = ();
|
||||
fn try_from(_: OwnedValue) -> Result<Self, Self::Error> {
|
||||
todo!()
|
||||
}
|
||||
}
|
||||
impl TryFrom<OwnedValue> for Vec<OwnedValue> {
|
||||
type Error = ();
|
||||
fn try_from(_: OwnedValue) -> Result<Self, Self::Error> {
|
||||
todo!()
|
||||
}
|
||||
}
|
||||
impl<'a> From<Value<'a>> for OwnedValue {
|
||||
fn from(_: Value<'a>) -> Self {
|
||||
todo!()
|
||||
}
|
||||
}
|
||||
impl<'a> From<&Value<'a>> for OwnedValue {
|
||||
fn from(_: &Value<'a>) -> Self {
|
||||
todo!()
|
||||
}
|
||||
}
|
11
src/test/ui/traits/issue-89119.rs
Normal file
11
src/test/ui/traits/issue-89119.rs
Normal file
@ -0,0 +1,11 @@
|
||||
// This is a regression test for issue #89119: an issue in intercrate mode caching.
|
||||
//
|
||||
// It requires multiple crates, of course, but the bug is triggered by the code in the dependency,
|
||||
// not the main crate. This is why this file is empty.
|
||||
//
|
||||
// The auxiliary crate used in the test contains the code minimized from `zvariant-2.8.0`.
|
||||
|
||||
// check-pass
|
||||
// aux-build: issue_89119_intercrate_caching.rs
|
||||
|
||||
fn main() {}
|
Loading…
Reference in New Issue
Block a user