ExternalPointsProxy
This commit is contained in:
parent
0fa540f7aa
commit
c595be270c
@ -52,34 +52,30 @@ impl<
|
||||
{
|
||||
}
|
||||
|
||||
pub trait StackCompatibleProxy<'a, Ctx: Context<'a>>: FactoryProxy<'a, Ctx>
|
||||
pub trait ExternalPointsProxy<'a, Ctx: Context<'a>, T>: FactoryProxy<'a, Ctx>
|
||||
where
|
||||
Self::F: Factory<'a, Ctx>,
|
||||
{
|
||||
type T;
|
||||
|
||||
fn points_typed_rest(stack: &Self::T, points: &mut impl PointsVisitor<'a, Ctx>);
|
||||
fn exp_points_typed(stack: &T, points: &mut impl PointsVisitor<'a, Ctx>);
|
||||
}
|
||||
|
||||
impl<'a, Ctx: Context<'a>, A: Mentionable<'a, Ctx>> ExternalPoints<'a, Ctx, Stack<'a, Ctx, Self>>
|
||||
for A
|
||||
where
|
||||
<Fctr<'a, Ctx, A> as WithParseMode>::WithMode:
|
||||
StackCompatibleProxy<'a, Ctx, T = Stack<'a, Ctx, A>, F = Fctr<'a, Ctx, A>>,
|
||||
ExternalPointsProxy<'a, Ctx, Stack<'a, Ctx, A>, F = Fctr<'a, Ctx, A>>,
|
||||
{
|
||||
fn ex_points_typed(stack: &Stack<'a, Ctx, Self>, points: &mut impl PointsVisitor<'a, Ctx>) {
|
||||
<<Fctr<'a, Ctx, A> as WithParseMode>::WithMode as StackCompatibleProxy<'a, Ctx>>::points_typed_rest(stack, points)
|
||||
<<Fctr<'a, Ctx, A> as WithParseMode>::WithMode as ExternalPointsProxy<'a, Ctx, _>>::exp_points_typed(stack, points)
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a, Ctx: Context<'a>, F: RegularFactory<'a, Ctx>> StackCompatibleProxy<'a, Ctx>
|
||||
for WithMode<F, RegularMode>
|
||||
impl<'a, Ctx: Context<'a>, F: RegularFactory<'a, Ctx>>
|
||||
ExternalPointsProxy<'a, Ctx, Stack<'a, Ctx, Mtbl<'a, Ctx, F>>> for WithMode<F, RegularMode>
|
||||
where
|
||||
F::Mtbl: MentionableTop<'a, Ctx>,
|
||||
{
|
||||
type T = Stack<'a, Ctx, Mtbl<'a, Ctx, F>>;
|
||||
|
||||
fn points_typed_rest(
|
||||
fn exp_points_typed(
|
||||
stack: &Stack<'a, Ctx, Mtbl<'a, Ctx, Self::F>>,
|
||||
points: &mut impl PointsVisitor<'a, Ctx>,
|
||||
) {
|
||||
@ -87,14 +83,12 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a, Ctx: Context<'a>, F: InlineableFactory<'a, Ctx>> StackCompatibleProxy<'a, Ctx>
|
||||
for WithMode<F, InliningMode>
|
||||
impl<'a, Ctx: Context<'a>, F: InlineableFactory<'a, Ctx>>
|
||||
ExternalPointsProxy<'a, Ctx, Stack<'a, Ctx, Mtbl<'a, Ctx, F>>> for WithMode<F, InliningMode>
|
||||
where
|
||||
F::Mtbl: MentionableTop<'a, Ctx>,
|
||||
{
|
||||
type T = Stack<'a, Ctx, Mtbl<'a, Ctx, F>>;
|
||||
|
||||
fn points_typed_rest(
|
||||
fn exp_points_typed(
|
||||
stack: &Stack<'a, Ctx, Mtbl<'a, Ctx, Self::F>>,
|
||||
points: &mut impl PointsVisitor<'a, Ctx>,
|
||||
) {
|
||||
|
Loading…
Reference in New Issue
Block a user