Branch Coverage

blib/lib/Scalar/Random/PP/OO.pm
Criterion Covered Total %
branch 140 902 15.5


line true false branch
50 0 2 if ref $class
51 0 2 unless defined $class
53 2 0 if $class =~ /\A \w+ (?: :: \w+ )* \z/msx
61 0 2 if ref $class or not defined $class or not length $class
69 0 10 unless exists $$pack{$part}
72 0 10 if ref $entry ne 'GLOB'
76 0 2 unless %{$pack;}
80 0 0 if exists $$pack{'VERSION'} and defined *{$$pack{'VERSION'};}{'SCALAR'} and defined ${$$pack{'VERSION'};}
82 0 0 if exists $$pack{'ISA'} and defined *{$$pack{'ISA'};}{'ARRAY'} and @{$$pack{'ISA'};} != 0
87 2 0 if ref $entry ne 'GLOB' or defined *{$entry;}{'CODE'}
98 0 14 unless ref $coderef
101 0 14 unless $cv->isa('B::CV')
104 0 14 unless $gv->isa('B::GV')
113 0 0 unless $cv->isa('B::CV')
116 0 0 unless $gv->isa('B::GV')
132 0 0 if &Scalar::Util::blessed($_[0])
134 0 2 if (defined $name)
149 0 4 if (&Scalar::Util::blessed($instance))
151 0 0 unless ($instance->can($method))
160 6 0 if (defined $name)
175 0 0 $_[0] ? :
178 0 0 if defined $_[0]
182 0 0 if looks_like_number $value
204 0 0 if blessed($_[0])
215 0 0 unless &$check($value)
227 0 0 unless &$check($value)
259 0 4 unless (defined $name)
262 0 4 unless (defined $code)
266 0 4 if (ref $code ne 'CODE')
283 0 0 unless $_[0]{'method_metaclass'}
284 2 0 unless $_[0]{'attribute_metaclass'}
286 0 0 unless $_[0]{'constructor_class'}
287 0 0 unless $_[0]{'destructor_class'}
305 4 0 @_ == 1 ? :
311 0 4 if ($object->can('BUILD'))
327 0 0 unless &blessed($object) and $object->isa($class->name)
347 4 0 if (defined $init_arg and exists $$args{$init_arg}) { }
350 0 4 if ref $$object{$slot} and $attribute->is_weak_ref
353 0 4 if ($attribute->has_trigger)
359 0 0 if ($attribute->has_default or $attribute->has_builder) { }
0 0 elsif (not $is_cloning and $attribute->is_required) { }
360 0 0 unless ($attribute->is_lazy or exists $$object{$slot})
363 0 0 ref $default eq 'CODE' ? :
0 0 $builder ? :
369 0 0 if ref $$object{$slot} and $attribute->is_weak_ref
379 0 4 if ($used < keys %{$args;} and $self->strict_constructor)
383 0 4 if (@triggers_queue)
390 0 4 if ($self->is_anon_class)
401 0 0 if (@_)
406 0 0 unless my $meta = Scalar::Random::PP::OO::Util::get_metaclass_by_name($class)
409 0 0 if (exists $$meta{'strict_constructor'})
424 0 0 if (defined $init_arg)
430 0 0 unless (exists $init_args{$key})
443 0 0 unless $_[0]{'method_metaclass'}
487 2 0 unless $_[0]{'accessor_metaclass'}
539 0 2 unless defined $name
542 2 0 unless (exists $$args{'init_arg'})
549 0 2 if (exists $$args{'builder'}) { }
0 2 elsif (exists $$args{'default'}) { }
553 0 0 unless defined $$args{'builder'}
560 0 0 if (ref $$args{'default'} and ref $$args{'default'} ne 'CODE')
567 0 2 if ($$args{'required'} and not $can_be_required)
573 2 0 if (exists $$args{'is'})
576 2 0 if ($is eq 'ro') { }
0 0 elsif ($is eq 'rw') { }
0 0 elsif ($is eq 'bare') { }
580 0 0 if (exists $$args{'writer'}) { }
591 0 0 unless defined $is
597 0 2 if (exists $$args{'isa'})
601 0 2 if (exists $$args{'does'})
602 0 0 if (defined $tc) { }
607 0 0 unless ($does_ok)
616 0 2 if ($$args{'coerce'})
617 0 0 unless defined $tc
620 0 0 if $$args{'weak_ref'}
624 0 2 if ($$args{'lazy_build'})
625 0 0 if exists $$args{'default'}
630 0 0 if ($name =~ /^_/) { }
640 0 2 if ($$args{'auto_deref'})
641 0 0 unless defined $tc
644 0 0 unless $tc->is_a_type_of('ArrayRef') or $tc->is_a_type_of('HashRef')
648 0 2 if (exists $$args{'trigger'})
649 0 0 unless 'CODE' eq ref $$args{'trigger'}
653 0 2 if ($$args{'lazy'})
654 0 0 unless exists $$args{'default'} or defined $$args{'builder'}
682 0 6 if ($$parent{'hand_optimized_type_constraint'}) { }
0 6 elsif ($$parent{'constraint'}) { }
692 0 6 if ($$self{'constraint'})
696 0 6 if ($$self{'type_constraints'})
700 0 0 if &$c($_[0])
706 6 0 if (@checks == 0) { }
714 0 0 unless &$c(@args)
733 0 6 if (scalar @_ == 1) { }
734 0 0 unless ref $_[0] eq 'HASH'
747 0 4 if ref $class
758 4 0 unless $self->can('DEMOLISH')
783 0 0 if $e
790 0 0 unless $self->can('BUILD')
865 2 10 if ($args{'also'}) { }
872 2 2 unless my $also = $SPEC{$current}{'also'}
873 0 2 ref $also ? :
887 0 14 unless my $spec = $SPEC{$package}
889 12 2 if (my $as_is = $$spec{'as_is'})
893 14 124 if (ref $thingy) { }
906 126 12 if ($code_package eq $package)
912 6 8 if (my $init_meta = $package->can('init_meta'))
913 6 0 unless (grep {$_ == $init_meta;} @init_meta_methods)
923 2 10 if (my $default_list = $args{'groups'}{'default'}) { }
936 6 6 if (@init_meta_methods)
951 0 36 ref $args[0] ? :
958 0 46 if ($arg =~ s/^-//) { }
20 26 elsif ($arg =~ s/^://) { }
959 0 0 if ($arg eq 'traits') { }
960 0 0 ref $args[0] ? :
982 2 34 if ($$spec{'INIT_META'}) { }
0 34 elsif (@traits) { }
988 0 2 if (@traits)
990 0 0 ref $_ ? :
997 0 0 Scalar::Random::PP::OO::Util::is_a_metarole($into->meta) ? :
1009 28 8 if (@exports) { }
1040 0 0 unless exists $$stash{$keyword}
1042 0 0 if (ref $gv eq 'GLOB' and *{$gv;}{'CODE'} == $$spec{'EXPORTS'}{$keyword})
1054 0 36 if (ref $arg) { }
1055 0 0 defined $$arg{'into_level'} ? :
0 0 defined $$arg{'into'} ? :
1124 0 2 if ($xs)
1140 2 0 unless ($xs)
1189 0 0 unless defined $role_name
1197 2 0 if ($] >= 5.009005) { }
1212 0 0 if exists $stored{$p}
1232 0 0 unless (defined $type)
1233 0 0 exists $Class::C3::MRO{$classname} ? :
1235 0 0 if ($type eq 'c3') { }
1256 0 0 $options{'trait'} ? :
1260 0 0 $options{'trait'} ? :
1269 0 0 $loaded_class->can('register_implementation') ? :
1285 0 0 unless my(@classes) = @_
1292 0 0 if ($e) { }
1314 0 2 unless (is_valid_class_name($class))
1315 0 0 defined $class ? :
1319 2 0 if is_class_loaded($class)
1335 0 2 if $e
1343 0 0 &Scalar::Util::blessed($_[0]) ? :
1352 0 0 if ($i + 1 < $max and ref $_[$i + 1]) { }
1360 0 0 unless is_a_metarole(get_metaclass_by_name($role_name))
1364 0 0 if (scalar @roles == 1) { }
1366 0 0 defined $params ? :
1376 0 0 if @_ == 1
1380 0 0 if @items == 2
1413 0 0 defined $maxdepth ? :
1443 0 44 @_ == 1 ? :
1445 0 44 unless defined $args{'name'}
1449 38 6 if ($check)
1456 0 44 if (defined $check and ref $check ne 'CODE')
1461 6 38 unless $$self{'hand_optimized_type_constraint'}
1463 0 44 if $$self{'type_constraints'}
1511 0 0 if (exists $has{$from})
1515 0 0 unless my $type = Scalar::Random::PP::OO::Util::TypeConstraints::find_or_parse_type_constraint($from)
1522 0 0 if (exists $$self{'type_constraints'}) { }
1540 0 0 if ($$pair[0]->check($thing))
1555 0 0 if ($type->has_coercion)
1559 0 0 if (@coercions)
1564 0 0 if $self->check($value)
1576 0 0 unless ($coercion)
1580 0 0 if $self->check(@_)
1587 0 0 if (my $msg = $self->message) { }
1592 0 0 defined $value ? :
1601 0 0 if not ref $other and $other eq '__ANON__'
1605 0 0 if $self->name eq $other_name
1607 0 0 if (exists $$self{'type_constraints'})
1609 0 0 if $type->name eq $other_name
1614 0 0 if $parent->name eq $other_name
1624 0 0 unless (ref $param)
1645 0 0 unless ($self->check($value))
1769 0 2 if (@_ == 1 and ref $_[0]) { }
0 2 elsif (@_ == 2 and ref $_[1]) { }
2 0 elsif (@_ % 2) { }
1783 0 2 unless (defined $name)
1789 2 0 if ($mode eq 'subtype')
1791 0 2 unless ($parent)
1797 2 0 if (defined $name) { }
1800 2 0 unless ($this)
1802 0 2 unless ($this =~ /\A Scalar::Random::PP::OO \b/msx)
1807 0 2 if ($TYPE{$name})
1809 0 0 if ($this ne $that)
1811 0 0 if ($that eq 'Scalar::Random::PP::OO::Util::TypeConstraints')
1814 0 0 scalar grep({$name eq $_;} list_all_builtin_type_constraints()) ? :
1827 0 2 if exists $args{'where'}
1828 2 0 if exists $args{'optimized_as'}
1831 2 0 if ($mode eq 'subtype') { }
1838 2 0 if (defined $name) { }
1857 0 0 unless my $type = find_type_constraint($type_name)
1882 0 0 if &Scalar::Util::blessed($_[0])
1889 0 0 unless (@_ == 1 and ref $_[0] eq 'ARRAY')
1893 0 0 @_ == 1 && ref $_[0] eq 'ARRAY' ? :
1905 0 0 unless (@_ == 1 and ref $_[0] eq 'ARRAY')
1909 0 0 @_ == 1 && ref $_[0] eq 'ARRAY' ? :
1914 0 0 if defined $_[0] and not ref $_[0]
1921 0 0 if exists $TYPE{$spec}
1925 0 0 unless (defined $meta)
1926 0 0 $create ? :
1929 0 0 if (Scalar::Random::PP::OO::Util::is_a_metarole($meta)) { }
1946 0 0 if grep {not defined $_;} @_
1947 0 0 $$_{'type_constraints'} ? :
1964 0 0 if ($$c{'spec'} =~ s/^\[//)
1967 0 0 if ($$c{'spec'} =~ s/^\]//)
1980 0 0 if ($$c{'spec'} =~ s/\A ([\w.:]+) //msx)
1993 0 0 if (defined $type) { }
0 0 elsif (defined $param) { }
1994 0 0 if (defined $param) { }
2014 0 0 if ($$c{'spec'})
2019 0 0 if (@types)
2029 0 2 if Scalar::Random::PP::OO::Util::is_a_type_constraint($spec) or not defined $spec
2037 0 0 unless Scalar::Random::PP::OO::Util::is_a_type_constraint($constraint)
2040 0 0 unless defined $name
2047 0 2 if Scalar::Random::PP::OO::Util::is_a_type_constraint($spec) or not defined $spec
2122 0 2 if @_ % 2
2125 0 2 if (ref $name) { }
2170 0 0 if defined $SUPER_PACKAGE and $SUPER_PACKAGE ne caller()
2171 0 0 unless defined $SUPER_BODY
2185 0 0 if (my $body = $INNER_BODY{$pkg}) { }
2206 0 2 unless my $class = $args{'for_class'}
2218 2 0 unless $meta->superclasses
2222 2 0 unless Scalar::Random::PP::OO::Util::TypeConstraints::find_type_constraint($class)
2292 0 2 if (@bad and $class ne 'Scalar::Random::PP::OO::Meta::Attribute')
2303 0 2 if (@bad)
2312 0 2 if ($class ne 'Scalar::Random::PP::OO::Meta::Attribute')
2319 0 0 unless $_[0]->has_reader
2320 0 0 unless $_[0]->has_writer
2325 0 2 if (my $metaclass = delete $$args{'metaclass'})
2330 0 2 if (my $traits_ref = delete $$args{'traits'})
2335 0 0 if $class->does($trait)
2340 0 0 if ref $$traits_ref[$i + 1]
2344 0 0 if (@traits)
2361 4 0 unless defined $type_constraint
2363 0 0 if ($self->should_coerce and $type_constraint->has_coercion)
2376 0 0 unless $type_constraint
2377 0 0 if $type_constraint->check($value)
2401 0 0 if (exists $$args{$illegal} and exists $$self{$illegal})
2407 0 0 unless (exists $$args{$name})
2413 0 0 if @traits
2417 0 0 if ($attr =~ /\A _/msx)
2423 0 0 if ($$args{'lazy_build'})
2444 0 0 if ($accessor) { }
2503 2 8 if (exists $$attribute{$type})
2512 0 2 if (exists $$attribute{'handles'})
2516 0 0 if ($metaclass->has_method($handle))
2538 0 0 if (ref $handles eq 'HASH') { }
0 0 elsif (ref $handles eq 'ARRAY') { }
0 0 elsif (ref $handles eq 'CODE') { }
0 0 elsif (ref $handles eq 'Regexp') { }
2554 0 0 if not 'Scalar::Random::PP::OO::Object'->can($_)
2555 0 0 Scalar::Random::PP::OO::Util::is_a_metarole($meta) ? :
2610 0 4 if (ref $self ne 'Scalar::Random::PP::OO::Meta::Class')
2635 2 2 if (@_)
2640 2 0 unless defined $meta
2642 0 0 if (Scalar::Random::PP::OO::Util::is_a_metarole($meta))
2646 0 0 if $self->isa(ref $meta)
2674 0 0 unless ($self_c->isa($other_c))
2705 0 0 unless ($common_ancestor)
2720 0 0 unless defined $method_name
2725 0 0 if defined $method
2747 0 0 unless my $meta = Scalar::Random::PP::OO::Util::get_metaclass_by_name($class)
2748 0 0 if $attr = $meta->get_attribute($name)
2758 0 2 if (blessed($_[0])) { }
2761 0 0 unless $attr->isa('Scalar::Random::PP::OO::Meta::Attribute')
2770 0 2 @_ == 1 ? :
2772 0 2 unless defined $name
2775 0 2 if ($name =~ s/^\+//) { }
2776 0 0 unless my $inherited_attr = $self->find_attribute_by_name($name)
2783 0 2 if @traits
2798 0 2 if (not $$attr{'associated_methods'} and ($$attr{'is'} || '') ne 'bare')
2827 0 0 if ($args{'inline_constructor'})
2833 0 0 if ($args{'inline_destructor'})
2857 0 0 unless my $original = $into->can($name)
2862 0 0 unless ($modifier_table)
2866 0 0 if (@before)
2869 0 0 unless (@after)
2873 0 0 if (wantarray) { }
0 0 elsif (defined wantarray) { }
2906 0 0 if ($type eq 'before') { }
0 0 elsif ($type eq 'after') { }
2940 0 0 if ($self->has_method($name))
2946 0 0 unless my $super_body = $package->can($name)
2961 0 0 if ($self->has_method($name))
2965 0 0 unless my $super = $self->find_method_by_name($name)
2982 0 0 unless defined $role_name
2985 0 0 if ref $role_name
2988 0 0 unless my $meta = Scalar::Random::PP::OO::Util::get_metaclass_by_name($class)
2993 0 0 if $role->does_role($role_name)
3022 0 0 if ($class ne 'Scalar::Random::PP::OO::Meta::Method')
3069 0 2 defined $constraint ? :
3077 0 2 if ($type eq 'rw' or $type eq 'wo') { }
2 0 elsif ($type eq 'ro') { }
3078 0 0 if ($type eq 'rw') { }
3090 0 0 if (defined $constraint)
3091 0 0 if ($should_coerce)
3105 0 0 unless $is_weak or $trigger or $should_deref
3109 0 0 if ($is_weak)
3113 0 0 if ($trigger)
3126 0 2 if ($attribute->is_lazy and $type ne 'wo')
3129 0 0 if (defined $builder) { }
0 0 elsif (ref $default eq 'CODE') { }
3139 0 0 if $type eq 'rw'
3141 0 0 if ($should_coerce) { }
0 0 elsif (defined $constraint) { }
3154 0 0 if ($is_weak)
3160 0 2 if ($should_deref)
3161 0 0 if ($constraint->is_a_type_of('ArrayRef')) { }
0 0 elsif ($constraint->is_a_type_of('HashRef')) { }
3181 0 2 if $e
3244 0 0 if $_
3269 0 0 if $e
3280 0 0 if ($strict)
3299 0 0 if (defined $type_constraint)
3307 0 0 if (defined $type_constraint)
3311 0 0 if ($is_weak_ref)
3315 0 0 if (defined $init_arg)
3320 0 0 if ($need_coercion)
3327 0 0 if ($attr->has_trigger)
3332 0 0 if ($strict)
3339 0 0 if ($attr->has_default or $attr->has_builder) { }
0 0 elsif ($attr->is_required) { }
3340 0 0 unless ($attr->is_lazy)
3345 0 0 if (defined $builder) { }
0 0 elsif (ref $default eq 'CODE') { }
0 0 elsif (defined $default) { }
3358 0 0 if ($need_coercion)
3363 0 0 if ($is_weak_ref)
3372 0 0 if defined $init_arg
3377 0 0 if ($strict)
3382 0 0 if ($metaclass->is_anon_class)
3386 0 0 if ($has_triggers)
3398 0 0 if ($class->can('BUILDARGS') and $class->can('BUILDARGS') != \&Scalar::Random::PP::OO::Object::BUILDARGS)
3418 0 0 unless $metaclass->name->can('BUILD')
3422 0 0 if (Scalar::Random::PP::OO::Util::get_code_ref($class, 'BUILD'))
3438 0 0 if (ref $method_to_call eq 'ARRAY')
3447 0 0 unless (defined $can_be_optimized)
3456 0 0 if ($can_be_optimized) { }
3468 0 0 ref $proxy && !&Scalar::Util::blessed($proxy) ? :
0 0 !defined($proxy) ? :
3471 0 0 if ($error)
3494 0 0 unless ($metaclass->name->can('DEMOLISH'))
3500 0 0 if (Scalar::Random::PP::OO::Util::get_code_ref($class, 'DEMOLISH'))
3530 0 0 if $e
3561 0 16 unless $package_name and not ref $package_name
3571 0 0 if ref $package_name
3573 0 0 unless $package_name and not ref $package_name
3582 0 0 unless defined $class_or_instance
3630 0 0 unless defined $method_name
3642 0 0 unless defined $method_name
3647 0 0 $code && $self->_code_is_mine($code) ? :
3654 0 0 if (my $code = $self->get_method_body($method_name))
3677 0 0 if (my $type = ref $arg) { }
3678 0 0 if ($type eq 'Regexp') { }
0 0 elsif ($type eq 'ARRAY') { }
3709 0 0 if @_ < 2
3712 0 0 if (exists $options{'superclasses'})
3713 0 0 if (Scalar::Random::PP::OO::Util::is_a_metarole($self)) { }
3718 0 0 unless ref $superclasses eq 'ARRAY'
3724 0 0 if (defined $attributes)
3725 0 0 unless ref $attributes eq 'ARRAY' or ref $attributes eq 'HASH'
3729 0 0 if (defined $methods)
3730 0 0 unless ref $methods eq 'HASH'
3734 0 0 if (defined $roles)
3735 0 0 unless ref $roles eq 'ARRAY'
3741 0 0 unless (defined $package_name)
3745 0 0 unless ($mortal)
3747 0 0 unless $superclasses
3748 0 0 unless $roles
3751 0 0 if exists $IMMORTALS{$cache_key}
3760 0 0 if exists $options{'version'}
3761 0 0 if exists $options{'authority'}
3766 0 0 if $mortal
3773 0 0 if defined $superclasses
3781 0 0 if (defined $attributes)
3782 0 0 if (ref $attributes eq 'ARRAY') { }
3795 0 0 if (defined $methods)
3800 0 0 if (defined $roles)
3804 0 0 if ($cache_key)
3814 0 0 if $Scalar::Random::PP::OO::Util::in_global_destruction
3818 0 0 unless $serial_id
3822 0 0 if (exists $INC{'threads.pm'})
3825 0 0 if (caller)[2] == 0
3829 0 0 if exists $$self{'superclasses'}
3850 0 0 if (exists $args{'longmess'} and not $args{'longmess'}) { }
3878 0 0 if ($class ne 'Scalar::Random::PP::OO::Meta::Role')
3921 0 0 @_ == 1 ? :
3928 0 0 if ($$args{'_to'} eq 'role') { }
3936 0 0 if exists $$args{'aliased_methods'}{$method_name}
3937 0 0 if exists $$role{'methods'}{$method_name}
3938 0 0 if $consumer_class_name->can($method_name)
3942 0 0 if (@missing)
3943 0 0 @missing == 1 ? :
3961 0 0 if $method_name eq 'meta'
3965 0 0 unless (exists $$excludes{$method_name})
3966 0 0 unless ($consumer->has_method($method_name))
3972 0 0 if (exists $$alias{$method_name})
3977 0 0 if (defined $dstcode and $dstcode != $code) { }
3994 0 0 if $consumer->has_attribute($attr_name)
4006 0 0 if (my $modifiers = $$role{'override_method_modifiers'})
4013 0 0 unless my $table = $$role{"${modifier_type}_method_modifiers"}
4020 0 0 if $$consumer{"_applied_$modifier_type"}{join $;, $method_name, $code}++
4035 0 0 unless ($consumer->does_role($r))
4047 0 0 @_ == 1 ? :
4051 0 0 if (Scalar::Random::PP::OO::Util::is_a_metaclass($consumer)) { }
0 0 elsif (Scalar::Random::PP::OO::Util::is_a_metarole($consumer)) { }
4067 0 0 if ($args{'alias'} and not exists $args{-'alias'})
4070 0 0 if ($args{'excludes'} and not exists $args{-'excludes'})
4075 0 0 if (my $alias = $args{-'alias'})
4079 0 0 if (my $excludes = $args{-'excludes'})
4081 0 0 if (ref $excludes) { }
4096 0 0 if (defined $instance)
4131 0 0 if ($self->has_method($method_name))
4150 0 0 unless defined $role_name
4153 0 0 if ref $role_name
4156 0 0 if $role_name eq $self->name
4159 0 0 if $role->does_role($role_name)
4178 0 0 if (($$self{'methods'}{$method_name} || 0) == $code)
4183 0 0 if ($method_name eq 'meta') { }
4190 0 0 if (@{$roles;} > 1)
4221 0 0 @_ == 1 ? :
4224 0 0 if ($existing and $existing != $spec)
4236 0 0 if ($existing and $existing != $code)
4250 0 0 if (exists $$self{'conflicting_methods'})
4255 0 0 if (@conflicting == 1) { }
0 0 elsif (@conflicting > 1) { }
4294 0 0 if ($class ne 'Scalar::Random::PP::OO::Meta::Role::Method')
4354 0 0 if @_ % 2
4357 0 0 if (ref $name) { }
4397 0 0 unless defined $Scalar::Random::PP::OO::SUPER_BODY
4418 0 0 unless @_
4431 0 0 unless my $class = $args{'for_class'}
4443 0 0 unless Scalar::Random::PP::OO::Util::TypeConstraints::find_type_constraint($class)
4464 0 0 &Scalar::Util::blessed($args{'for'}) ? :
4468 0 0 unless ($for)
4472 0 0 if (Scalar::Random::PP::OO::Util::is_a_metarole($for)) { }
4483 0 0 unless keys %{$roles;}
4485 0 0 exists $$roles{$primary} ? :
4508 0 0 if $$args{'class_metaroles'} or $$args{'roles_metaroles'}
4510 0 0 if exists $$args{'for_class'}
4528 0 0 &Scalar::Util::blessed($$args{'for'}) ? :
4533 0 0 if (Scalar::Random::PP::OO::Util::is_a_metaclass($for)) { }
4536 0 0 if exists $$args{'metaclass_roles'}
4542 0 0 if exists $$args{'metaclass_roles'}
4549 0 0 if exists $$args{$old_key}
4570 0 0 if $new_base ne $meta->name
4578 0 0 unless ($superclasses)
4579 0 0 unless $roles
4584 0 0 unless grep {not ref $_ || $meta->does_role($_);} @{$roles;}
4587 0 0 $superclasses ? :