+use strict;
+use warnings;
+use Test::More 0.88;
+
+my $Have_Devel_BeginLift;
+BEGIN {
+ # setup_for_cv() introduced in 0.001001
+ $Have_Devel_BeginLift = eval q{ use Devel::BeginLift 0.001001; 1 };
+}
+
{
package MethodHandlers;
return $inject;
}
+ sub code_for {
+ my($self, $name) = @_;
+
+ my $code = $self->SUPER::code_for($name);
+
+ if( defined $name and $Have_Devel_BeginLift ) {
+ Devel::BeginLift->setup_for_cv($code);
+ }
+
+ return $code;
+ }
}
my ($test_method1, $test_method2, @test_list);
);
}
+ # Test at_BEGIN
+ SKIP: {
+ ::skip "Need Devel::BeginLift for compile time methods", 1
+ unless $Have_Devel_BeginLift;
+ ::can_ok( "DeclareTest", qw(new foo upgrade) );
+ }
+
method new {
my $class = ref $self || $self;
return bless({ @_ }, $class);
method leftie($left) : method { $self->{left} ||= $left; $self->{left} };
}
-use Test::More 'no_plan';
my $o = DeclareTest->new(attr => "value");
is_deeply([ map { $_->() } @test_list ], [ 1, 2, 3, 4], 'binding ok');
+done_testing;