stop using return_stack directly in tests
[scpubgit/DKit.git] / t / basic.t
index 936a847..be3e32d 100644 (file)
--- a/t/basic.t
+++ b/t/basic.t
@@ -120,18 +120,13 @@ my $inner_op = make_op($pop_stack);
 my $call_op = FromCode->new(
   code => sub {
     my ($self, $state) = @_;
-    my @rst = @{$state->return_stack};
     my $save_scope = $state->scope;
     my %scope = (S => $save_scope->{S});
     my $ret_op = FromCode->new(
       code => sub { $_[1]->but(scope => $save_scope, next_op => $_[0]->next) },
       next => $self->next,
     );
-    $state->but(
-      scope => \%scope,
-      return_stack => [ @rst, $ret_op ],
-      next_op => $inner_op
-    );
+    $state->but(scope => \%scope)->push_return_then($ret_op, $inner_op);
   },
   next => FromCode->new(
     code => bind_array(P => \@shells),
@@ -173,10 +168,8 @@ my $or_code = sub {
   my $inner_or = FromCode->new(
     code => sub { $_[1]->then($var->bound_value) }
   );
-  $state->but(
-    return_stack => [ @{$state->return_stack}, $self->next ],
-    next_op => $inner_or
-  )->mark_choice($var);
+  $state->push_return_then($self->next, $inner_or)
+        ->mark_choice($var);
 };
 
 my $top_or = FromCode->new(