3 use Test::More tests => 25;
5 use warnings FATAL => 'all';
9 use Function::Parameters {}; # ZERO BABIES
11 is eval('fun foo :() {}; 1'), undef;
12 like $@, qr/syntax error/;
16 use Function::Parameters { pound => 'function' };
18 is eval('fun foo :() {}; 1'), undef;
19 like $@, qr/syntax error/;
21 pound foo_1($x) { $x }
24 no Function::Parameters qw(pound);
26 is eval('pound foo() {}; 1'), undef;
27 like $@, qr/syntax error/;
31 use Function::Parameters { pound => 'method' };
33 is eval('fun foo () {}; 1'), undef;
34 like $@, qr/syntax error/;
36 pound foo_2() { $self }
39 no Function::Parameters qw(pound);
41 is eval('pound unfoo :() {}; 1'), undef;
42 like $@, qr/syntax error/;
46 is eval('pound unfoo( ){}; 1'), undef;
47 like $@, qr/syntax error/;
49 use Function::Parameters { pound => 'classmethod' };
51 is eval('fun foo () {}; 1'), undef;
52 like $@, qr/syntax error/;
54 pound foo_3() { $class }
57 no Function::Parameters;
59 is eval('pound unfoo :lvalue{}; 1'), undef;
60 like $@, qr/syntax error/;
63 is eval('Function::Parameters->import(":QQQQ"); 1'), undef;
64 like $@, qr/valid identifier/;
66 is eval('Function::Parameters->import({":QQQQ" => "function"}); 1'), undef;
67 like $@, qr/valid identifier/;
69 is eval('Function::Parameters->import({"jetsam" => "QQQQ"}); 1'), undef;
70 like $@, qr/valid type/;