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
+4
View File
@@ -0,0 +1,4 @@
var f = new Fn {
// Hi.
}
IO.print(f.call) // expect: null
@@ -0,0 +1,5 @@
new Fn { IO.print("ok") // expect error
}.call // expect error
// The second error is cascaded here. If it starts failing, just remove that
// expectation.
@@ -0,0 +1,2 @@
new Fn {
IO.print("ok") }.call // expect error
+1 -5
View File
@@ -6,11 +6,7 @@ new Fn {
IO.print("ok") // expect: ok
}.call
// No trailing newline.
new Fn {
IO.print("ok") }.call // expect: ok
// Multiple expressions.
// Multiple statements.
new Fn {
IO.print("1") // expect: 1
IO.print("2") // expect: 2