Reverse the argument order of List.insert

The previous order, insert(element, index), was counter-intuitive.
I'm not aware of any list API that uses this order. I've checked:

* Ruby Array.insert(index, obj...)
* JavaScript array.splice(start, deleteCount[, item1[, item2[, ...]]])
* C++ / QList::insert(int i, const T & value)
* C++ / std::vector::insert
* Lua table.insert (list, [pos,] value)
* C# List<T>.Insert(int index, T item)
* Java Interface List<E>.add(int index, E element)
* Python list.insert(i, x)

So it seemed to me more like an oversight in Wren.
This commit is contained in:
Thorbjørn Lindeijer
2015-03-15 22:51:24 +01:00
parent 92c17e81f6
commit d7a91117ac
8 changed files with 24 additions and 24 deletions
+10 -10
View File
@@ -1,41 +1,41 @@
// Add to empty list.
var a = []
a.insert(1, 0)
a.insert(0, 1)
IO.print(a) // expect: [1]
// Normal indices.
var b = [1, 2, 3]
b.insert(4, 0)
b.insert(0, 4)
IO.print(b) // expect: [4, 1, 2, 3]
var c = [1, 2, 3]
c.insert(4, 1)
c.insert(1, 4)
IO.print(c) // expect: [1, 4, 2, 3]
var d = [1, 2, 3]
d.insert(4, 2)
d.insert(2, 4)
IO.print(d) // expect: [1, 2, 4, 3]
var e = [1, 2, 3]
e.insert(4, 3)
e.insert(3, 4)
IO.print(e) // expect: [1, 2, 3, 4]
// Negative indices.
var f = [1, 2, 3]
f.insert(4, -4)
f.insert(-4, 4)
IO.print(f) // expect: [4, 1, 2, 3]
var g = [1, 2, 3]
g.insert(4, -3)
g.insert(-3, 4)
IO.print(g) // expect: [1, 4, 2, 3]
var h = [1, 2, 3]
h.insert(4, -2)
h.insert(-2, 4)
IO.print(h) // expect: [1, 2, 4, 3]
var i = [1, 2, 3]
i.insert(4, -1)
i.insert(-1, 4)
IO.print(i) // expect: [1, 2, 3, 4]
// Returns.inserted value.
IO.print([1, 2].insert(3, 0)) // expect: 3
IO.print([1, 2].insert(0, 3)) // expect: 3
+1 -1
View File
@@ -1,2 +1,2 @@
var a = [1, 2, 3]
a.insert("value", 1.5) // expect runtime error: Index must be an integer.
a.insert(1.5, "value") // expect runtime error: Index must be an integer.
+1 -1
View File
@@ -1,2 +1,2 @@
var a = [1, 2, 3]
a.insert("value", "2") // expect runtime error: Index must be a number.
a.insert("2", "value") // expect runtime error: Index must be a number.
+1 -1
View File
@@ -1,2 +1,2 @@
var a = [1, 2, 3]
a.insert("value", 4) // expect runtime error: Index out of bounds.
a.insert(4, "value") // expect runtime error: Index out of bounds.
+1 -1
View File
@@ -1,2 +1,2 @@
var a = [1, 2, 3]
a.insert("value", -5) // expect runtime error: Index out of bounds.
a.insert(-5, "value") // expect runtime error: Index out of bounds.