diff --git a/src/Perl6/Metamodel/AttributeContainer.nqp b/src/Perl6/Metamodel/AttributeContainer.nqp index a2fb8ae452..0d539b5980 100644 --- a/src/Perl6/Metamodel/AttributeContainer.nqp +++ b/src/Perl6/Metamodel/AttributeContainer.nqp @@ -19,7 +19,7 @@ role Perl6::Metamodel::AttributeContainer { "' already has an attribute named '$name'"); } if $!attr_rw_by_default { $meta_attr.default_to_rw() } - @!attributes[+@!attributes] := $meta_attr; + nqp::push(@!attributes, $meta_attr); %!attribute_lookup{$name} := $meta_attr; } diff --git a/src/Perl6/Metamodel/ClassHOW.nqp b/src/Perl6/Metamodel/ClassHOW.nqp index 5b5f61f53e..16ef37ec01 100644 --- a/src/Perl6/Metamodel/ClassHOW.nqp +++ b/src/Perl6/Metamodel/ClassHOW.nqp @@ -88,7 +88,7 @@ class Perl6::Metamodel::ClassHOW my %desc; %desc := $condition; %desc := $calculator; - @!fallbacks[+@!fallbacks] := %desc; + nqp::push(@!fallbacks, %desc); } sub has_method($target, $name) { @@ -120,8 +120,8 @@ class Perl6::Metamodel::ClassHOW my @ins_roles; while @roles_to_compose { my $r := @roles_to_compose.pop(); - @!roles[+@!roles] := $r; - @!role_typecheck_list[+@!role_typecheck_list] := $r; + nqp::push(@!roles, $r); + nqp::push(@!role_typecheck_list, $r); my $ins := $r.HOW.specialize($r, $target); # If class is a result of pun then transfer hidden flag from the source role if $!pun_source =:= $r { @@ -140,9 +140,9 @@ class Perl6::Metamodel::ClassHOW # Add them to the typecheck list, and pull in their # own type check lists also. for @ins_roles { - @!role_typecheck_list[+@!role_typecheck_list] := $_; + nqp::push(@!role_typecheck_list, $_); for $_.HOW.role_typecheck_list($_) { - @!role_typecheck_list[+@!role_typecheck_list] := $_; + nqp::push(@!role_typecheck_list, $_); } } } diff --git a/src/Perl6/Metamodel/ConcreteRoleHOW.nqp b/src/Perl6/Metamodel/ConcreteRoleHOW.nqp index 7790ecdb3e..bb4664ba89 100644 --- a/src/Perl6/Metamodel/ConcreteRoleHOW.nqp +++ b/src/Perl6/Metamodel/ConcreteRoleHOW.nqp @@ -46,9 +46,9 @@ class Perl6::Metamodel::ConcreteRoleHOW } method add_collision($XXX, $colliding_name, @role_names, :$private = 0, :$multi) { - @!collisions[+@!collisions] := Collision.new( + nqp::push(@!collisions, Collision.new( :name($colliding_name), :roles(@role_names), :$private, :$multi - ); + )); } method compose($target) { @@ -56,15 +56,15 @@ class Perl6::Metamodel::ConcreteRoleHOW Perl6::Metamodel::Configuration.role_to_role_applier_type.apply($target, self.roles_to_compose($target)); for self.roles_to_compose($target) { - @!role_typecheck_list[+@!role_typecheck_list] := $_; + nqp::push(@!role_typecheck_list, $_); for $_.HOW.role_typecheck_list($_) { - @!role_typecheck_list[+@!role_typecheck_list] := $_; + nqp::push(@!role_typecheck_list, $_); } } for @!roles { - @!role_typecheck_list[+@!role_typecheck_list] := $_; + nqp::push(@!role_typecheck_list, $_); for $_.HOW.role_typecheck_list($_) { - @!role_typecheck_list[+@!role_typecheck_list] := $_; + nqp::push(@!role_typecheck_list, $_); } } self.publish_type_cache($target); @@ -82,7 +82,7 @@ class Perl6::Metamodel::ConcreteRoleHOW } method add_to_role_typecheck_list($XXX, $type) { - @!role_typecheck_list[+@!role_typecheck_list] := $type; + nqp::push(@!role_typecheck_list, $type); } method role_typecheck_list($XXX?) { @!role_typecheck_list } diff --git a/src/Perl6/Metamodel/Concretization.nqp b/src/Perl6/Metamodel/Concretization.nqp index f27a004603..451ab55ced 100644 --- a/src/Perl6/Metamodel/Concretization.nqp +++ b/src/Perl6/Metamodel/Concretization.nqp @@ -6,7 +6,7 @@ role Perl6::Metamodel::Concretization { my $lock := NQPLock.new; method add_concretization($XXX, $role, $concrete) { - @!concretizations[+@!concretizations] := [$role, $concrete]; + nqp::push(@!concretizations, nqp::list($role, $concrete)) } method concretizations($target, :$local = 0, :$transitive = 1) { diff --git a/src/Perl6/Metamodel/EnumHOW.nqp b/src/Perl6/Metamodel/EnumHOW.nqp index dcefa8e841..e3b4965863 100644 --- a/src/Perl6/Metamodel/EnumHOW.nqp +++ b/src/Perl6/Metamodel/EnumHOW.nqp @@ -62,7 +62,7 @@ class Perl6::Metamodel::EnumHOW method add_enum_value($XXX, $value) { %!values{nqp::unbox_s($value.key)} := $value.value; - @!enum_value_list[+@!enum_value_list] := $value; + nqp::push(@!enum_value_list, $value); nqp::scwbdisable(); $!value_to_enum := NQPMu; nqp::scwbenable(); @@ -108,8 +108,8 @@ class Perl6::Metamodel::EnumHOW if @roles_to_compose { my @ins_roles; while @roles_to_compose { - my $r := @roles_to_compose.pop(); - @!role_typecheck_list[+@!role_typecheck_list] := $r; + my $r := nqp::pop(@roles_to_compose); + nqp::push(@!role_typecheck_list, $r); my $ins := $r.HOW.specialize($r, $target); self.check-type-compat($target, $ins, [3]) if nqp::istype($ins.HOW, Perl6::Metamodel::LanguageRevision); @@ -121,9 +121,9 @@ class Perl6::Metamodel::EnumHOW # Add them to the typecheck list, and pull in their # own type check lists also. for @ins_roles { - @!role_typecheck_list[+@!role_typecheck_list] := $_; + nqp::push(@!role_typecheck_list, $_); for $_.HOW.role_typecheck_list($_) { - @!role_typecheck_list[+@!role_typecheck_list] := $_; + nqp::push(@!role_typecheck_list, $_); } } } diff --git a/src/Perl6/Metamodel/MethodContainer.nqp b/src/Perl6/Metamodel/MethodContainer.nqp index 88632807d9..ae0904691d 100644 --- a/src/Perl6/Metamodel/MethodContainer.nqp +++ b/src/Perl6/Metamodel/MethodContainer.nqp @@ -67,8 +67,8 @@ role Perl6::Metamodel::MethodContainer { self.invalidate_method_caches($target); } %!cache := {}; - @!method_order[+@!method_order] := $code_obj; - @!method_names[+@!method_names] := $name; + nqp::push(@!method_order, $code_obj); + nqp::push(@!method_names, $name); } # Gets the method hierarchy. diff --git a/src/Perl6/Metamodel/MultiMethodContainer.nqp b/src/Perl6/Metamodel/MultiMethodContainer.nqp index a4c32aac75..b59cc8b9df 100644 --- a/src/Perl6/Metamodel/MultiMethodContainer.nqp +++ b/src/Perl6/Metamodel/MultiMethodContainer.nqp @@ -28,7 +28,7 @@ role Perl6::Metamodel::MultiMethodContainer { } my $how := MultiToIncorporate.HOW.WHAT; my $todo := MultiToIncorporate.new( :name($name), :code(nqp::decont($code_obj)) ); - @!multi_methods_to_incorporate[+@!multi_methods_to_incorporate] := $todo; + nqp::push(@!multi_methods_to_incorporate, $todo); %!multi_candidate_names{$name} := 1; $code_obj; } diff --git a/src/Perl6/Metamodel/MultipleInheritance.nqp b/src/Perl6/Metamodel/MultipleInheritance.nqp index 642501c38f..d49493f463 100644 --- a/src/Perl6/Metamodel/MultipleInheritance.nqp +++ b/src/Perl6/Metamodel/MultipleInheritance.nqp @@ -53,10 +53,8 @@ role Perl6::Metamodel::MultipleInheritance { if nqp::istype(self, Perl6::Metamodel::MROBasedMethodDispatch) { self.invalidate_method_caches($target); } - if $hides { - @!hides[+@!hides] := $parent; - } - @!parents[+@!parents] := $parent; + nqp::push(@!hides, $parent) if $hides; + nqp::push(@!parents, $parent); } # Introspects the parents. diff --git a/src/Perl6/Metamodel/ParametricRoleGroupHOW.nqp b/src/Perl6/Metamodel/ParametricRoleGroupHOW.nqp index 5a91733b5a..c0ceb860f4 100644 --- a/src/Perl6/Metamodel/ParametricRoleGroupHOW.nqp +++ b/src/Perl6/Metamodel/ParametricRoleGroupHOW.nqp @@ -88,7 +88,7 @@ class Perl6::Metamodel::ParametricRoleGroupHOW } method add_possibility($target, $possible) { - @!candidates[+@!candidates] := $possible; + nqp::push(@!candidates, $possible); nqp::push(@!nonsignatured, nqp::decont($possible)) unless $possible.HOW.signatured($possible); $!selector.add_dispatchee($possible.HOW.body_block($possible)); self.update_role_typecheck_list($target); diff --git a/src/Perl6/Metamodel/RoleContainer.nqp b/src/Perl6/Metamodel/RoleContainer.nqp index 18354d0c5f..b0d4e8846d 100644 --- a/src/Perl6/Metamodel/RoleContainer.nqp +++ b/src/Perl6/Metamodel/RoleContainer.nqp @@ -2,7 +2,7 @@ role Perl6::Metamodel::RoleContainer { has @!roles_to_compose; method add_role($XXX, $role) { - @!roles_to_compose[+@!roles_to_compose] := nqp::decont($role) + nqp::push(@!roles_to_compose, nqp::decont($role)) } method roles_to_compose($XXX?) { @!roles_to_compose }