Commit | Line | Data |
c0ebfc1e |
1 | use strict; |
2 | use warnings; |
3 | use Test::More tests => 14; |
4 | |
5 | use Devel::Declare 'method' => sub {}; |
6 | |
7 | sub test_eval; |
8 | |
9 | TODO: { |
10 | local $TODO = "dd_ck_const doesn't special-case ops created in quotelike contexts"; |
11 | test_eval 'qr/method/'; |
12 | test_eval 'qq/method/'; |
13 | test_eval '/method/'; |
14 | test_eval 's/method//'; |
15 | test_eval '`method`'; |
16 | test_eval 'qx/method/'; |
17 | test_eval 'tr/method/METHOD/'; |
18 | |
0c232d04 |
19 | } |
20 | |
21 | # these ones work OK |
22 | test_eval 'q/method/'; |
23 | test_eval "'method'"; |
24 | test_eval '"method"'; |
25 | test_eval 'qw/method/'; |
26 | test_eval '<<method; |
c0ebfc1e |
27 | tum ti tum |
28 | method'; |
0c232d04 |
29 | test_eval 'no warnings "reserved"; open method, "</dev/null"'; |
30 | test_eval '<method>'; |
c0ebfc1e |
31 | |
32 | sub test_eval { |
33 | my $what = shift; |
34 | eval $what; |
35 | ok !$@, "$what" or d($@); |
36 | } |
37 | { |
38 | my %seen; |
39 | sub d { # diag the error the first time we get it |
40 | my $err = shift; |
41 | $err =~s/ at .*$//; |
42 | $seen{$err}++ or diag $err; |
43 | } |
44 | } |