Hm. Wouldn't that make behavior of Lists and Arrays different?
On 2017-07-04 05:29:20, comdog wrote: > Accessing a List element beyond the end of the List returns Nil, > although accessing an element before the beginning returns an out of > bounds failure. I think there's two things that can be better here > since we know the size of the List. > > my $list = < a b c >; > put "I have a {$list.^name}"; > > First, in the "before" case, we have more information than the error > message lets on. The index should be from 0 to 2: > > { > my $i = -1; > $list[$i]; # Index out of range. Is: -1, should be in 0..^Inf > } > > But this requires the change I think is more helpful. Since the List > size won't change, we can have the same out-of-bounds error on > accesses past the end. At the moment it's no warning: > > { > my $i = $list.end + 1; > $list[$i]; # No warning > } > > This would then be the error for assigning into a position beyond the > end. The existing error doesn't say what went wrong even though Perl 6 > has enough information to figure that out: > > { > my $i = $list.end + 1; > $list[$i] = 5; # Cannot modify an immutable Nil > }