EmptyInject

This commit is contained in:
AF 2023-06-30 22:05:33 +00:00
parent bab0b4169e
commit f6cc23ff5f
2 changed files with 13 additions and 7 deletions

View File

@ -7,7 +7,7 @@ use sha2::{Digest, Sha256};
use crate::func::{context::FunctorContext, *}; use crate::func::{context::FunctorContext, *};
use crate::rcore::*; use crate::rcore::*;
use crate::rstd::{cast::*, typeless::*}; use crate::rstd::{cast::*, inject::*, typeless::*};
pub struct NoDiagnostic; 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>) -> A { struct EmptyInject;
let factory = mentionable.factory();
TypelessMentionable::from_typed(mentionable) impl<'a, Ctx: Context<'a>> Inject<'a, Ctx> for EmptyInject {
.cast(factory) fn inject<A: 'a>(&self, fa: Wrapped<'a, Ctx, A>) -> Wrapped<'a, Ctx, A> {
.expect("cast failed") fa
}
}
pub fn reparse<'a, A: Mentionable<'a, TestContextPlain>>(mentionable: Rc<A>) -> A {
Rc::new(EmptyInject)
.inject_mentionable(mentionable.as_ref())
.expect("re-parsing failed")
} }

View File

@ -2,7 +2,6 @@ use std::cmp::max;
use crate::func::{context::*, *}; use crate::func::{context::*, *};
use crate::rcore::*; use crate::rcore::*;
use crate::rstd::inject::*;
use super::*; use super::*;