diff --git a/src/rcore/origin.rs b/src/rcore/origin.rs index f389902..6402c9e 100644 --- a/src/rcore/origin.rs +++ b/src/rcore/origin.rs @@ -3,13 +3,14 @@ use super::*; /// Represents a potentially resolvable [`Mentionable`]. pub trait Origin<'a, Ctx: Context<'a>>: 'a { /// Type of the associated object. - type Mtbl: MentionableBase<'a, Ctx> + MentionableTop<'a, Ctx>; + type Mtbl: MentionableBase<'a, Ctx>; /// Clone the associated factory. fn factory(&self) -> OFctr<'a, Ctx, Self>; /// Try resolving the value. fn resolve(self: Rc) -> Resolution<'a, Ctx, Self::Mtbl> where - OFctr<'a, Ctx, Self>: Factory<'a, Ctx>; + OFctr<'a, Ctx, Self>: Factory<'a, Ctx>, + Self::Mtbl: MentionableTop<'a, Ctx>; /// Try resolving the bytes. Should avoid parsing the value. fn resolve_bytes(self: Rc) -> HashResolution<'a, Ctx>; } diff --git a/src/rstd/wrapped_origin.rs b/src/rstd/wrapped_origin.rs index 5f7ac83..72ceca2 100644 --- a/src/rstd/wrapped_origin.rs +++ b/src/rstd/wrapped_origin.rs @@ -27,6 +27,7 @@ pub trait MappableOrigin<'a, Ctx: Context<'a>>: Origin<'a, Ctx> { ) -> Rc> where OFctr<'a, Ctx, Self>: Factory<'a, Ctx>, + Self::Mtbl: MentionableTop<'a, Ctx>, { let origin_r = self.clone(); let origin_rb = self.clone();