Commit | Line | Data |
55131db4 |
1 | package DX::Step::Backtrack; |
2 | |
3 | use DX::Class; |
4 | |
5 | with 'DX::Role::Step'; |
6 | |
7 | sub apply_to { |
8 | my ($self, $ss) = @_; |
5b6cab1b |
9 | trace backtrack => [ statement => [ [ symbol => 'backtrack' ] ] ]; |
1c02730b |
10 | foreach my $adj (@{$ss->decisions_taken}) { |
11 | my ($rspace_was, $ss_was) = @$adj; |
12 | return $ss_was->but( |
13 | next_step => $rspace_was->remaining_resolution_space->next_step |
14 | ); |
76329453 |
15 | } |
16 | return $ss->but(next_step => $ss->on_exhaustion_step); |
55131db4 |
17 | } |
18 | |
19 | 1; |