-
Notifications
You must be signed in to change notification settings - Fork 135
/
misc.t
52 lines (43 loc) · 1.62 KB
/
misc.t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
use v6;
use Test;
plan 12;
#not really much of a test (no links to the spec either). Please improve, I only wrote what was required! --lue
sub a () { my $a=4; }; #zero-arg sub to test the underlying problem #OK not used
throws-like 'e("wtz")', X::Undeclared,
"e should not be defined to accept arguments";
throws-like 'pi("wtz")', X::Undeclared,
"pi should not be defined to accept arguments either :) ";
dies-ok { EVAL('a(3)') }, "this should die, no arguments defined";
# RT #76096
{
lives-ok { sub foo($ where 1 --> Int) { return 42 } },
"where clause combined with --> works";
lives-ok { sub foo($ where 1, $y --> Int) { return 42 } },
"where clause combined with --> works";
}
# RT #118875
{
lives-ok { sub ndr($r where ($r ||= 10) > 0 && 1) { } },
'where clause followed by (non-parenthesized) expression with "&&" in it does parse';
}
# RT #117901
{
my $rt117901;
sub not-foo { $rt117901 = 2 };
sub so-what { $rt117901 = "nyan" };
sub m-bar { $rt117901 = "string" };
not-foo();
is $rt117901, 2, "can name sub 'not-foo'";
so-what();
is $rt117901, "nyan", "can name sub 'so-what'";
m-bar();
is $rt117901, "string", "can name sub 'm-bar'";
}
# RT #125376
{
throws-like 'my $rt125376 = Sub.new; say $rt125376', Exception,
'no Segfault when creating a Sub object with .new and trying to say it';
throws-like 'my $rt125376 = Sub.bless; say $rt125376', Exception,
'no Segfault when creating a Sub object with .bless and trying to say it';
throws-like 'Sub(0)', Exception, 'no Segfault when trying to invoke the Sub type object';
}