Unify body handling.

Blocks, functions, and methods now have the same code for handling
their bodies.

This means that single-line methods work like single-line functions:
they return the result of their expression.
This commit is contained in:
Bob Nystrom
2014-04-03 07:48:19 -07:00
parent 55c2c6ffb0
commit da4cadf16b
34 changed files with 1165 additions and 1187 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
class Foo {
toString { return "Foo" }
toString { "Foo" }
}
// Classes inherit the argument-less "new" one by default.
+1 -1
View File
@@ -1,5 +1,5 @@
class Foo {
+ other { return "Foo " + other }
+ other { "Foo " + other }
}
IO.print(new Foo + "value") // expect: Foo value
+1 -1
View File
@@ -3,7 +3,7 @@ class Foo {
new(a) { IO.print(a) }
new(a, b) { IO.print(a + b) }
toString { return "Foo" }
toString { "Foo" }
}
// Can overload by arity.
+3 -3
View File
@@ -4,7 +4,7 @@ class A {
_field = arg
}
aField { return _field }
aField { _field }
}
class B is A {
@@ -14,7 +14,7 @@ class B is A {
_field = arg1
}
bField { return _field }
bField { _field }
}
class C is B {
@@ -24,7 +24,7 @@ class C is B {
_field = "c"
}
cField { return _field }
cField { _field }
}
var c = new C