User-defined subscript operators.
This commit is contained in:
@@ -21,5 +21,3 @@
|
||||
list[-3] = 7
|
||||
IO.print(list) // expect: [7, 6, 5]
|
||||
}
|
||||
|
||||
// TODO: Not in this dir, but need tests for subscript setter grammar.
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
class Foo {
|
||||
[a] { "1-subscript " + a }
|
||||
[a, b] { "2-subscript " + a + " " + b }
|
||||
[a, b, c] { "3-subscript " + a + " " + b + " " + c }
|
||||
[a]=(value) { "1-subscript setter " + a + " = " + value }
|
||||
[a, b]=(value) { "2-subscript setter " + a + " " + b + " = " + value }
|
||||
[a, b, c]=(value) { "3-subscript setter " + a + " " + b + " " + c + " = " + value }
|
||||
}
|
||||
|
||||
var foo = new Foo
|
||||
IO.print(foo["a"]) // expect: 1-subscript a
|
||||
IO.print(foo["a", "b"]) // expect: 2-subscript a b
|
||||
IO.print(foo["a", "b", "c"]) // expect: 3-subscript a b c
|
||||
IO.print(foo["a"] = "value") // expect: 1-subscript setter a = value
|
||||
IO.print(foo["a", "b"] = "value") // expect: 2-subscript setter a b = value
|
||||
IO.print(foo["a", "b", "c"] = "value") // expect: 3-subscript setter a b c = value
|
||||
Reference in New Issue
Block a user