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
+4 -4
View File
@@ -1,16 +1,16 @@
class Foo {
new { _field = "Foo field" }
this new() { _field = "Foo field" }
closeOverGet {
return new Fn { _field }
return Fn.new { _field }
}
closeOverSet {
return new Fn { _field = "new value" }
return Fn.new { _field = "new value" }
}
}
var foo = new Foo
var foo = Foo.new()
IO.print(foo.closeOverGet.call()) // expect: Foo field
foo.closeOverSet.call()
IO.print(foo.closeOverGet.call()) // expect: new value