re-arranging resolution - thread proposition through predicate invocation
[scpubgit/DX.git] / lib / DX / Role / Predicate.pm
index 2a94ade..832150b 100644 (file)
@@ -5,11 +5,14 @@ use DX::Utils qw(step CONTENTS_OF);
 use DX::Role;
 
 sub resolution_step_for {
-  my ($self, @args) = @_;
+  my ($self, $prop, @args) = @_;
   my ($last, @rest) = reverse $self->_possible_resolution_list(@args);
   return undef unless $last;
-  my $targ = $last;
-  $targ = $_->but_with_alternative_step($targ) for @rest;
+  my $targ = $last->but(resolves => $prop);
+  $targ = $_->but(
+    alternative_step => $targ,
+    resolves => $prop
+  ) for @rest;
   return $targ;
 }