forked from Mirror/wren
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:
@ -12,7 +12,7 @@ class Foo {
|
||||
Foo.method
|
||||
IO.print(Nonlocal) // expect: method
|
||||
|
||||
new Fn {
|
||||
Fn.new {
|
||||
Nonlocal = "fn"
|
||||
}.call()
|
||||
IO.print(Nonlocal) // expect: fn
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
class Foo {
|
||||
static bar { new Bar }
|
||||
static bar { Bar.new() }
|
||||
}
|
||||
|
||||
class Bar {
|
||||
static foo { new Foo }
|
||||
static foo { Foo.new() }
|
||||
}
|
||||
|
||||
IO.print(Foo.bar) // expect: instance of Bar
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
var fn = new Fn {
|
||||
var fn = Fn.new {
|
||||
IO.print(Foo)
|
||||
IO.print(Bar)
|
||||
}
|
||||
|
||||
// expect error line 7
|
||||
// expect error line 7
|
||||
// expect error line 6
|
||||
@ -1,5 +1,5 @@
|
||||
var Global = "global"
|
||||
|
||||
new Fn {
|
||||
Fn.new {
|
||||
IO.print(Global) // expect: global
|
||||
}.call()
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
var f = new Fn {
|
||||
var f = Fn.new {
|
||||
IO.print(Global)
|
||||
}
|
||||
|
||||
|
||||
@ -10,5 +10,5 @@ class Foo {
|
||||
}
|
||||
}
|
||||
|
||||
(new Foo).method // expect: global
|
||||
Foo.new().method // expect: global
|
||||
Foo.classMethod // expect: global
|
||||
|
||||
@ -10,5 +10,5 @@ class Foo {
|
||||
|
||||
var Global = "global"
|
||||
|
||||
(new Foo).method // expect: global
|
||||
Foo.new().method // expect: global
|
||||
Foo.classMethod // expect: global
|
||||
|
||||
Reference in New Issue
Block a user