Commit | Line | Data |
0ba8c7aa |
1 | use strict; |
2 | use warnings; |
faaf0544 |
3 | use Test::More 0.88; |
0ba8c7aa |
4 | |
5 | sub fun :lvalue { return my $sv; } |
6 | |
7 | sub X { "what?" } |
8 | |
9 | sub handle_fun { |
9026391e |
10 | my ($usepack, $use, $inpack, $name, $proto) = @_; |
0ba8c7aa |
11 | my $XX = sub (&) { |
12 | my $cr = $_[0]; |
13 | return sub { |
14 | return join(': ', $proto, $cr->()); |
15 | }; |
16 | }; |
17 | return (undef, $XX); |
18 | } |
19 | |
20 | use Devel::Declare; |
21 | use Devel::Declare fun => [ DECLARE_PROTO, \&handle_fun ]; |
22 | |
23 | my $foo = fun ($a, $b) { "woot" }; |
24 | |
25 | is($foo->(), '$a, $b: woot', 'proto declarator ok'); |
26 | is(X(), 'what?', 'X sub restored ok'); |
b52072dc |
27 | |
28 | done_testing; |