Make constructors just methods.

* Eliminate "new" reserved word.
* Allow "this" before a method definition to define a constructor.
* Only create a default constructor for classes that don't define one.
This commit is contained in:
Bob Nystrom
2015-07-10 09:18:22 -07:00
parent 0ddaa2517c
commit 5fb6186d7d
221 changed files with 864 additions and 654 deletions
@@ -20,4 +20,4 @@ class Bar is Foo {
}
}
(new Bar).test
Bar.new().test
@@ -18,6 +18,6 @@ class Foo {
}
}
(new Foo).test
Foo.new().test
// TODO: Need to decide how these interact with globals.
@@ -14,4 +14,4 @@ class Foo {
}
}
(new Foo).test
Foo.new().test
@@ -17,4 +17,4 @@ class Foo {
}
}
(new Foo).test
Foo.new().test
@@ -36,7 +36,7 @@ class Outer {
}
}
(new Inner).test
Inner.new().test
getter // expect: outer getter
setter = "value" // expect: outer setter
@@ -44,4 +44,4 @@ class Outer {
}
}
(new Outer).test
Outer.new().test