No more default constructors.

Fixes #296.
This commit is contained in:
Bob Nystrom
2015-09-01 08:16:04 -07:00
parent 36f3059e48
commit 2e83f056c1
86 changed files with 248 additions and 133 deletions
+1
View File
@@ -0,0 +1 @@
Object.new() // expect runtime error: Object metaclass does not implement 'new()'.
+3 -1
View File
@@ -1,2 +1,4 @@
class Foo {}
class Foo {
construct new() {}
}
IO.print(!Foo.new()) // expect: false
+4 -1
View File
@@ -24,7 +24,9 @@ IO.print(Object.same(Bool, Num)) // expect: false
IO.print(Object.same(Bool, Bool)) // expect: true
// Other types compare by identity.
class Foo {}
class Foo {
construct new() {}
}
var foo = Foo.new()
IO.print(Object.same(foo, foo)) // expect: true
@@ -32,6 +34,7 @@ IO.print(Object.same(foo, Foo.new())) // expect: false
// Ignores == operators.
class Bar {
construct new() {}
==(other) { true }
}
+3 -1
View File
@@ -1,2 +1,4 @@
class Foo {}
class Foo {
construct new() {}
}
IO.print(Foo.new().toString == "instance of Foo") // expect: true