Commit | Line | Data |
fd727b3e |
1 | #!perl |
2 | use utf8; |
3 | use Test::More tests => 25; |
4 | |
5 | use warnings FATAL => 'all'; |
6 | use strict; |
7 | |
8 | use Function::Parameters { pŕöç => 'function_strict' }; |
9 | |
10 | pŕöç hörps($x) { $x * 2 } |
11 | pŕöç drau($spın̈al_tap) { $spın̈al_tap * 3 } |
12 | pŕöç ääää($éééééé) { $éééééé * 4 } |
13 | |
14 | is hörps(10), 20; |
15 | is drau(11), 33; |
16 | is ääää(12), 48; |
17 | |
18 | is eval('pŕöç á(){} 1'), 1; |
19 | is á(), undef; |
20 | |
21 | is eval('pŕöç ́(){} 1'), undef; |
22 | like $@, qr/pŕöç.* function body/s; |
23 | |
24 | is eval(q<pŕöç 'hi(){} 1>), undef; |
25 | like $@, qr/pŕöç.* function body/s; |
26 | |
27 | is eval('pŕöç ::hi($z){} 1'), 1; |
28 | is hi(42), undef; |
29 | |
30 | is eval('pŕöç 123(){} 1'), undef; |
31 | like $@, qr/pŕöç.* function body/s; |
32 | |
33 | is eval('pŕöç main::234(){} 1'), undef; |
34 | like $@, qr/pŕöç.* function body/s; |
35 | |
36 | is eval('pŕöç m123($z){} 1'), 1; |
37 | is m123(42), undef; |
38 | |
39 | is eval('pŕöç ::m234($z){} 1'), 1; |
40 | is m234(42), undef; |
41 | |
42 | is eval { ääää }, undef; |
43 | like $@, qr/pŕöç.*ääää/s; |
44 | |
45 | SKIP: { |
46 | eval { require Moo } or skip "info requires Moo", 4; |
47 | |
48 | for my $info (Function::Parameters::info \&ääää) { |
49 | is $info->keyword, 'pŕöç'; |
50 | is join(' ', $info->positional_required), '$éééééé'; |
51 | } |
52 | |
53 | for my $info (Function::Parameters::info \&drau) { |
54 | is $info->keyword, 'pŕöç'; |
55 | is join(' ', $info->positional_required), '$spın̈al_tap'; |
56 | } |
57 | } |