Get the optree almost right
[p5sagit/Gather-Once.git] / t / basic.t
CommitLineData
14342f72 1use strict;
2use warnings;
3use Test::More 0.89;
4
5use Gather::Once
83489a6b 6 block => 'with',
7 take => 'iff',
14342f72 8 topicalise => 1,
9 predicate => sub {
83489a6b 10 diag explain \@_;
14342f72 11 $_[0] == $_[1];
12 };
13
14my $n = 42;
15
16my @ret = with ($n) {
17 warn 42;
83489a6b 18 iff (23) { 42 };
14342f72 19 iff (42) { 23 };
20 warn 23;
21 42;
22};
23
24diag explain \@ret;
25
83489a6b 26done_testing;
27
28__END__
29
30my $pred = sub {};
31my @ret___ = do {
32 warn 42;
33 ($pred->($n, 23))
34 ? do { 42 }
35 : ($pred->($n, 42))
36 ? do { 23 }
37 : do {
38 warn 23;
39 42;
40 };
41};
42
43diag explain \@ret;
44
14342f72 45use Gather::Once
46 block => 'moo',
47 take => 'iff_',
48 predicate => sub {
49 warn scalar @_;
50 warn "$_[0]";
51 !!$_[0]
52 };
53
54=for later
55iff_ (42) { };
56=cut
57
58my @ret_ = moo {
59 iff_ (42) { 1, 2, 3 };
60};
61
83489a6b 62my @ret__ = do {
63 $pred->(42) ? do { 1, 2, 3 } : ()
64};
65
14342f72 66diag explain \@ret_;
67
68done_testing;