feat: replace 'this' keyword with 'construct' for constructor definitions across core lib, compiler, docs, and tests

Add TOKEN_CONSTRUCT as a new reserved word in the Wren compiler lexer and parser, and update the grammar rule table so that 'construct' triggers a constructor signature instead of 'this'. Modify all built-in class definitions in core.wren, wren_core.c, benchmark files, and test fixtures to use 'construct new(...)' and 'construct named(...)' syntax. Update documentation in classes.markdown and syntax.markdown to reflect the new keyword, and remove the deprecated test files for 'new' and infix class expressions.
This commit is contained in:
Bob Nystrom
2015-07-21 14:24:53 +00:00
parent 847edd8e1e
commit 7d9e45e906
31 changed files with 68 additions and 81 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
class Foo {
this new() {
construct new() {
_field1 = 1
_field2 = 2
_field3 = 3
+2 -2
View File
@@ -1,5 +1,5 @@
class Foo {
this new() {
construct new() {
_field1 = 1
_field2 = 2
_field3 = 3
@@ -137,7 +137,7 @@ class Foo {
}
class Bar is Foo {
this new() {
construct new() {
super()
_field129 = 129
_field130 = 130
+1 -1
View File
@@ -1,5 +1,5 @@
class Foo {
this new() {
construct new() {
_field1 = 1
_field2 = 2
_field3 = 3
+2 -2
View File
@@ -1,5 +1,5 @@
class Foo {
this new() {
construct new() {
_field1 = 1
_field2 = 2
_field3 = 3
@@ -137,7 +137,7 @@ class Foo {
}
class Bar is Foo { // expect runtime error: Class 'Bar' may not have more than 255 fields, including inherited ones.
this new() {
construct new() {
super()
_field129 = 129
_field130 = 130