blob: 7b33cecbccd6fccd4330782ae2aea76370543e0d [file]
//@ run-rustfix
#![allow(dead_code)]
use std::marker::PhantomData;
trait Visitor<'de> {
type Value;
}
trait Deserializer<'de> {
type Error;
fn deserialize_ignored_any<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where
V: Visitor<'de>;
}
struct Wrapper<'de, T, E>(Result<T, E>, PhantomData<&'de ()>);
impl<'de, T, E> Deserializer<'de> for Wrapper<'de, T, E>
where
T: Deserializer<'de>,
{
type Error = E;
fn deserialize_ignored_any<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where
V: Visitor<'de>,
{
match self.0 {
Ok(deserializer) => deserializer.deserialize_ignored_any(visitor), //~ ERROR mismatched types
Err(error) => Err(error),
}
}
}
fn main() {}