sma backtracking (smart will be later ;)
[scpubgit/DX.git] / lib / DX / Step / FailRecheck.pm
CommitLineData
7af7ed1e 1package DX::Step::FailRecheck;
2
3use DX::Class;
4
5with 'DX::Role::Step';
6
1b16f8ca 7has resume_search_state => (is => 'ro', isa => SearchState, required => 1);
7af7ed1e 8
54da7534 9has resolution_space => (is => 'ro', isa => ResolutionSpace, required => 1);
10
3cc9323e 11has exhaustion_depends_on => (is => 'ro', isa => DependencyList);
12
7af7ed1e 13sub apply_to {
14 my ($self, $old_ss) = @_;
5b6cab1b 15 trace recheck => [ statement => [ [ symbol => 'fail_recheck' ] ] ];
1444edde 16 trace recheck => [ 'leave_block' ];
54da7534 17 return $self->resume_search_state->but(
18 next_step
3cc9323e 19 => $self->resolution_space
20 ->remaining_resolution_space
21 ->with_geometry_dependencies($self->exhaustion_depends_on)
22 ->next_step
54da7534 23 );
7af7ed1e 24}
25
261;