recheck one at a time
Matt S Trout [Sun, 10 Jul 2016 00:26:25 +0000 (00:26 +0000)]
lib/DX/Step/ResolveProposition.pm

index 09064c7..e18a47e 100644 (file)
@@ -66,6 +66,15 @@ sub _recheck_hyp_for {
   my ($self, $old_hyp, @recheck) = @_;
   return undef unless $old_hyp;
   return $old_hyp unless @recheck;
+  my $hyp = $old_hyp;
+  foreach my $prop (@recheck) {
+    return undef unless $hyp = $self->_recheck_one($hyp, $prop);
+  }
+  return $hyp;
+}
+
+sub _recheck_one {
+  my ($self, $old_hyp, $prop) = @_;
 
   my $ap = DX::ActionPolicy::LockScope->new(
     lock_to_depth => $old_hyp->scope->depth,
@@ -84,7 +93,7 @@ sub _recheck_hyp_for {
   );
 
   my $pseq = DX::PropositionSequence->new(
-    members => \@recheck,
+    members => [ $prop ],
     external_names => {},
     internal_names => {},
   );
@@ -105,8 +114,8 @@ sub _recheck_hyp_for {
   my $rps = $old_hyp->resolved_propositions;
 
   $rps = $rps->with_updated_dependencies_for(
-    $_, $sol_rps->dependencies_for($_)
-  ) for @recheck;
+    $prop, $sol_rps->dependencies_for($prop)
+  );
 
   trace 'step.recheck.done' => 'yay';