diff --git a/src/core/List.pm b/src/core/List.pm index e7450e1ace1..310601b1845 100644 --- a/src/core/List.pm +++ b/src/core/List.pm @@ -73,13 +73,16 @@ my class List does Positional { # declared in BOOTSTRAP nqp::p6parcel($rpa, Any); } - method default() { Nil } - multi method at_pos(List:D: \pos) is rw { - return Nil unless self.DEFINITE; - self.gimme(pos + 1); - nqp::existspos($!items, nqp::unbox_i(pos.Int)) - ?? nqp::atpos($!items, nqp::unbox_i(pos.Int)) - !! self.VAR.default; + multi method at_pos(List:D: $pos is copy) is rw { + $pos = $pos.Int; + self.exists($pos) + ?? nqp::atpos($!items, nqp::unbox_i($pos)) + !! Nil + } + multi method at_pos(List:D: int $pos) is rw { + self.exists($pos) + ?? nqp::atpos($!items, $pos) + !! Nil; } method eager() { self.gimme(*); self }