5 use Sub::Name 'subname';
8 $^P &= ~0x200; # Don't munge anonymous sub names
15 my ( $code, $stash, $name ) = @_;
18 [ Class::MOP::get_code_info($code) ],
20 "sub name is ${stash}::$name"
24 code_name_is( sub {}, main => "__ANON__" );
26 code_name_is( subname("Foo::bar", sub {}), Foo => "bar" );
28 code_name_is( subname("", sub {}), "main" => "" );
30 require Class::MOP::Method;
31 code_name_is( \&Class::MOP::Method::name, "Class::MOP::Method", "name" );
36 sub MODIFY_CODE_ATTRIBUTES {
37 my ($class, $code) = @_;
38 my @info = Class::MOP::get_code_info($code);
41 ::is_deeply(\@info, ['Foo', 'foo'], "got a name for a code ref in an attr handler");
44 ::is_deeply(\@info, [], "no name for a coderef that's still compiling");