allow newline before dot for subscript as well, and add to tests

This commit is contained in:
ruby0x1
2020-09-19 22:03:16 -07:00
parent 4c496c56a6
commit 3c475f01ee
2 changed files with 84 additions and 45 deletions

View File

@ -12,6 +12,11 @@ class Test {
System.print("test2")
return this
}
[index] {
System.print("testSubscript")
return this
}
}
class Tester {
@ -22,36 +27,48 @@ class Tester {
//test local access
test.
test0(). // expect: test0
test1(). // expect: test1
test2() // expect: test2
test0(). // expect: test0
test1(). // expect: test1
test2() // expect: test2
test
.test0() // expect: test0
.test1() // expect: test1
.test2() // expect: test2
.test0() // expect: test0
.test1() // expect: test1
.test2() // expect: test2
test
.test0() // expect: test0
.test1(). // expect: test1
test2() // expect: test2
.test0() // expect: test0
.test1(). // expect: test1
test2() // expect: test2
test[0] // expect: testSubscript
.test0() // expect: test0
test[0]. // expect: testSubscript
test0() // expect: test0
//test field access
_test.
test0(). // expect: test0
test1(). // expect: test1
test2() // expect: test2
test0(). // expect: test0
test1(). // expect: test1
test2() // expect: test2
_test
.test0() // expect: test0
.test1() // expect: test1
.test2() // expect: test2
.test0() // expect: test0
.test1() // expect: test1
.test2() // expect: test2
_test
.test0(). // expect: test0
test1(). // expect: test1
test2() // expect: test2
.test0(). // expect: test0
test1(). // expect: test1
test2() // expect: test2
_test[0] // expect: testSubscript
.test0() // expect: test0
_test[0]. // expect: testSubscript
test0() // expect: test0
}
@ -65,50 +82,70 @@ class Tester {
var external = Tester.new()
external.getter.
test0(). // expect: test0
test1(). // expect: test1
test2() // expect: test2
test0(). // expect: test0
test1(). // expect: test1
test2() // expect: test2
external.getter
.test0() // expect: test0
.test1() // expect: test1
.test2() // expect: test2
.test0() // expect: test0
.test1() // expect: test1
.test2() // expect: test2
external.getter.
test0() // expect: test0
.test1() // expect: test1
.test2() // expect: test2
test0() // expect: test0
.test1() // expect: test1
.test2() // expect: test2
external.getter[0]. // expect: testSubscript
test0() // expect: test0
external.getter[0] // expect: testSubscript
.test0() // expect: test0
external.method().
test0(). // expect: test0
test1(). // expect: test1
test2() // expect: test2
test0(). // expect: test0
test1(). // expect: test1
test2() // expect: test2
external.method()
.test0() // expect: test0
.test1() // expect: test1
.test2() // expect: test2
.test0() // expect: test0
.test1() // expect: test1
.test2() // expect: test2
external.method().
test0() // expect: test0
.test1(). // expect: test1
test2() // expect: test2
test0() // expect: test0
.test1(). // expect: test1
test2() // expect: test2
external.method()[0]. // expect: testSubscript
test0() // expect: test0
external.method()[0] // expect: testSubscript
.test0() // expect: test0
//regular access in module scope
var other = Test.new()
other.
test0(). // expect: test0
test1(). // expect: test1
test2() // expect: test2
test0(). // expect: test0
test1(). // expect: test1
test2() // expect: test2
other
.test0() // expect: test0
.test1() // expect: test1
.test2() // expect: test2
.test0() // expect: test0
.test1() // expect: test1
.test2() // expect: test2
other
.test0(). // expect: test0
test1() // expect: test1
.test2() // expect: test2
.test0(). // expect: test0
test1() // expect: test1
.test2() // expect: test2
other[0] // expect: testSubscript
.test0() // expect: test0
other[0]. // expect: testSubscript
test0() // expect: test0