summaryrefslogtreecommitdiff
path: root/lib/Tree/Transform/Utils.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Tree/Transform/Utils.pm')
-rw-r--r--lib/Tree/Transform/Utils.pm20
1 files changed, 10 insertions, 10 deletions
diff --git a/lib/Tree/Transform/Utils.pm b/lib/Tree/Transform/Utils.pm
index f2b2d6b..cdc58f7 100644
--- a/lib/Tree/Transform/Utils.pm
+++ b/lib/Tree/Transform/Utils.pm
@@ -1,21 +1,21 @@
package Tree::Transform::Utils;
use strict;
use warnings;
+use Class::MOP;
+
+my $RULES_NAME='%_tree_transform_rules';
sub _rules_store {
- no strict 'refs';
- if (!defined *{$_[0].'::_tree_transform_rules'}{HASH}) {
- *{$_[0].'::_tree_transform_rules'}={};
+ my $pack=Class::MOP::Class->initialize($_[0]);
+
+ if (! $pack->has_package_symbol($RULES_NAME) ) {
+ $pack->add_package_symbol($RULES_NAME,{});
}
- return *{$_[0].'::_tree_transform_rules'}{HASH};
+ return $pack->get_package_symbol($RULES_NAME);
}
-sub _get_isa {
- no strict 'refs';
- if (!defined *{$_[0].'::ISA'}{ARRAY}) {
- return ();
- }
- return @{*{$_[0].'::ISA'}{ARRAY}};
+sub _get_inheritance {
+ return Class::MOP::Class->initialize($_[0])->class_precedence_list;
}
1;