[t/spec] Add tricky tests (which pass after latest Rakudo patch), unfudge old simple...
[pugs.git] / t / unspecced / sub_application.t
blobe0397d8e7e474ee77ce4dc64e12b74c073d2c4d7
1 use v6;
3 use Test;
5 plan 4;
7 =begin pod
9     $foo(42);  # is sugar for
10     $foo.postcircumfix:<( )>(42);
12 =end pod
14 # Example: Make $foo() a noop.
16     my $foo = 42;
17     dies_ok { $foo() }, "basic sanity";
19     eval '$foo does role {
20         method postcircumfix:<( )> {}
21     }';
22     lives_ok { $foo() }, "overriding postcircumfix:<( )> (1)", :todo<feature>;
25 # Example: Make $foo() modify another variable.
27     my $foo = 42;
28     my $bar = 23;
30     eval '$foo does role {
31         method postcircumfix:<( )> {
32             $bar++;
33         }
34     }';
35     try { $foo() };
36     is $bar, 24, "overriding postcircumfix:<( )> (2)", :todo<feature>;
39 # .postcircumfix:<( )> is called even when you don't actually use ()s to
40 # call, as
41 #   foo;    # is merely sugar for
42 #   foo();
44     my $bar;
45     my sub foo {
46         # This body should never be called!
47         $bar = 23
48     };
49     eval '&foo does role {
50         method postcircumfix:<( )> {
51             $bar = 42;
52         }
53     }';
55     foo;
56     is $bar, 42,
57         ".postcircumfix:<( )> is called even when you don't actually use ()s to call",
58         :todo<feature>;