X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose.pm;h=504096afdc65863e8cf7245b50f2aa9a74eea2c8;hb=991933fb70aae0e2b6a27a01e52009025f838fe8;hp=45ac9650c561d43a72025c135eb7f264ffd91f59;hpb=3fe3513471eda5b33418f8665f7ec20ecb58c589;p=gitmo%2FMoose.git diff --git a/lib/Moose.pm b/lib/Moose.pm index 45ac965..504096a 100644 --- a/lib/Moose.pm +++ b/lib/Moose.pm @@ -94,8 +94,15 @@ sub around { Moose::Util::add_method_modifier($class, 'around', \@_); } +our $SUPER_PACKAGE; +our $SUPER_BODY; +our @SUPER_ARGS; + sub super { - return unless our $SUPER_BODY; $SUPER_BODY->(our @SUPER_ARGS); + # This check avoids a recursion loop - see + # t/100_bugs/020_super_recursion.t + return if defined $SUPER_PACKAGE && $SUPER_PACKAGE ne caller(); + return unless $SUPER_BODY; $SUPER_BODY->(@SUPER_ARGS); } sub override {