1 package Mouse::Meta::Method::Destructor;
2 use Mouse::Util; # enables strict and warnings
6 sub _generate_destructor_method {
7 my ($class, $metaclass) = @_;
10 if ($metaclass->name->can('DEMOLISH')) {
12 for my $class ($metaclass->linearized_isa) {
14 if (*{$class . '::DEMOLISH'}{CODE}) {
15 push @code, "${class}::DEMOLISH(\$self);";
20 $metaclass->add_method(DESTROY => \&_empty_destroy);
25 my $destructor_name = $metaclass->name . '::DESTROY';
26 my $source = sprintf("#line %d %s\n", __LINE__, __FILE__) . <<"...";
27 sub $destructor_name \{