1#!/usr/bin/perl -w
2
3BEGIN {
4    chdir 't' if -d 't';
5    require './test.pl';
6    set_up_inc('../lib');
7    skip_all_if_miniperl("miniperl can't load attributes");
8}
9
10plan tests => 4;
11
12# test for bug #38475: parsing errors with multiline attributes
13
14package Antler;
15
16use Attribute::Handlers;
17
18sub TypeCheck :ATTR(CODE,RAWDATA) {
19    ::ok(1);
20}
21
22sub WrongAttr :ATTR(CODE,RAWDATA) {
23    ::ok(0);
24}
25
26sub CheckData :ATTR(RAWDATA) {
27    # check that the $data element contains the given attribute parameters.
28
29    if ($_[4] eq "12, 14") {
30        ::ok(1)
31    }
32    else {
33        ::ok(0)
34    }
35}
36
37sub CheckEmptyValue :ATTR() {
38    if (not defined $_[4]) {
39        ::ok(1)
40    }
41    else {
42        ::ok(0)
43    }
44}
45
46package Deer;
47use base 'Antler';
48
49sub something : TypeCheck(
50    QNET::Util::Object,
51    QNET::Util::Object,
52    QNET::Util::Object
53) { #           WrongAttr (perl tokenizer bug)
54    # keep this ^ lined up !
55    return 42;
56}
57
58something();
59
60sub c :CheckData(12, 14) {};
61
62sub d1 :CheckEmptyValue() {};
63sub d2 :CheckEmptyValue {};
64