From f6cc23ff5fa79ca642918c693f885bbfbe72459d Mon Sep 17 00:00:00 2001 From: timofey Date: Fri, 30 Jun 2023 22:05:33 +0000 Subject: [PATCH] `EmptyInject` --- src/testing.rs | 19 +++++++++++++------ src/testing/counted.rs | 1 - 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/testing.rs b/src/testing.rs index 193215d..d2d404c 100644 --- a/src/testing.rs +++ b/src/testing.rs @@ -7,7 +7,7 @@ use sha2::{Digest, Sha256}; use crate::func::{context::FunctorContext, *}; use crate::rcore::*; -use crate::rstd::{cast::*, typeless::*}; +use crate::rstd::{cast::*, inject::*, typeless::*}; pub struct NoDiagnostic; @@ -92,9 +92,16 @@ impl<'a> Resolver<'a, TestContextPlain> for EmptyResolver { } } -pub fn reparse<'a, A: Mentionable<'a, TestContextPlain>>(mentionable: Rc) -> A { - let factory = mentionable.factory(); - TypelessMentionable::from_typed(mentionable) - .cast(factory) - .expect("cast failed") +struct EmptyInject; + +impl<'a, Ctx: Context<'a>> Inject<'a, Ctx> for EmptyInject { + fn inject(&self, fa: Wrapped<'a, Ctx, A>) -> Wrapped<'a, Ctx, A> { + fa + } +} + +pub fn reparse<'a, A: Mentionable<'a, TestContextPlain>>(mentionable: Rc) -> A { + Rc::new(EmptyInject) + .inject_mentionable(mentionable.as_ref()) + .expect("re-parsing failed") } diff --git a/src/testing/counted.rs b/src/testing/counted.rs index b941b57..5abcdfa 100644 --- a/src/testing/counted.rs +++ b/src/testing/counted.rs @@ -2,7 +2,6 @@ use std::cmp::max; use crate::func::{context::*, *}; use crate::rcore::*; -use crate::rstd::inject::*; use super::*;