@@ -2417,23 +2417,40 @@ impl PartialPath {
24172417 if !graph[ self . end_node ] . is_jump_to ( ) {
24182418 return Ok ( ( ) ) ;
24192419 }
2420+
24202421 let scope_variable = match self . scope_stack_postcondition . variable ( ) {
24212422 Some ( scope_variable) => scope_variable,
24222423 None => return Err ( PathResolutionError :: ScopeStackUnsatisfied ) ,
24232424 } ;
24242425 let mut scope_stack = PartialScopeStack :: from_variable ( scope_variable) ;
24252426 scope_stack. push_front ( partials, node) ;
2427+
2428+ let symbol_bindings = PartialSymbolStackBindings :: new ( ) ;
24262429 let mut scope_bindings = PartialScopeStackBindings :: new ( ) ;
24272430 scope_bindings
24282431 . add ( partials, scope_variable, scope_stack)
24292432 . unwrap ( ) ;
2430- self . scope_stack_precondition
2433+
2434+ self . symbol_stack_precondition = self
2435+ . symbol_stack_precondition
2436+ . apply_partial_bindings ( partials, & symbol_bindings, & scope_bindings)
2437+ . unwrap ( ) ;
2438+ self . scope_stack_precondition = self
2439+ . scope_stack_precondition
24312440 . apply_partial_bindings ( partials, & scope_bindings)
24322441 . unwrap ( ) ;
2433- self . scope_stack_postcondition
2442+
2443+ self . symbol_stack_postcondition = self
2444+ . symbol_stack_postcondition
2445+ . apply_partial_bindings ( partials, & symbol_bindings, & scope_bindings)
2446+ . unwrap ( ) ;
2447+ self . scope_stack_postcondition = self
2448+ . scope_stack_postcondition
24342449 . apply_partial_bindings ( partials, & scope_bindings)
24352450 . unwrap ( ) ;
2451+
24362452 self . end_node = node;
2453+
24372454 Ok ( ( ) )
24382455 }
24392456
0 commit comments