feat: migrate all function literals from fn syntax to new Fn block syntax

Replace all occurrences of the old `fn` function literal syntax with the new `new Fn {|params| body}` block syntax across benchmark, test, and source files. Update the Wren compiler to handle the pipe operator as a block argument delimiter by removing `TOKEN_PIPE` from the newline-swallowing token list and adding explicit newline matching in `infixOp`. Adjust test expectations in `conditional/precedence.wren` to remove `fn`-based expressions and update `test/assignment/local.wren` to use the new syntax.
This commit is contained in:
Bob Nystrom
2014-04-03 02:41:53 +00:00
parent 81f20caf33
commit e20da2f070
61 changed files with 124 additions and 127 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
var list = []
for (i in [1, 2, 3]) {
list.add(fn IO.print(i))
list.add(new Fn { IO.print(i) })
}
for (f in list) f.call
+1 -1
View File
@@ -2,7 +2,7 @@ var list = []
for (i in [1, 2, 3]) {
var j = i + 1
list.add(fn IO.print(j))
list.add(new Fn { IO.print(j) })
}
for (f in list) f.call
+1 -1
View File
@@ -1,4 +1,4 @@
var f = fn {
var f = new Fn {
IO.print("evaluate sequence")
return [1, 2, 3]
}
+2 -2
View File
@@ -1,6 +1,6 @@
var f = fn {
var f = new Fn {
for (i in [1, 2, 3]) {
return fn IO.print(i)
return new Fn { IO.print(i) }
}
}
+1 -1
View File
@@ -1,4 +1,4 @@
var f = fn {
var f = new Fn {
for (i in [1, 2, 3]) {
return i
}