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
+2 -2
View File
@@ -3,13 +3,13 @@ var g = null
{
var local = "local"
f = fn {
f = new Fn {
IO.print(local)
local = "after f"
IO.print(local)
}
g = fn {
g = new Fn {
IO.print(local)
local = "after g"
IO.print(local)
@@ -1,7 +1,7 @@
var f = null
fn(param) {
f = fn {
new Fn {|param|
f = new Fn {
IO.print(param)
}
}.call("param")
@@ -2,7 +2,7 @@ var f = null
class Foo {
method(param) {
f = fn {
f = new Fn {
IO.print(param)
}
}
+1 -1
View File
@@ -2,7 +2,7 @@ var f = null
{
var local = "local"
f = fn {
f = new Fn {
IO.print(local)
}
}
+4 -4
View File
@@ -1,12 +1,12 @@
var f = null
fn {
new Fn {
var a = "a"
fn {
new Fn {
var b = "b"
fn {
new Fn {
var c = "c"
f = fn {
f = new Fn {
IO.print(a)
IO.print(b)
IO.print(c)
+1 -1
View File
@@ -1,6 +1,6 @@
{
var local = "local"
fn {
new Fn {
IO.print(local) // expect: local
}.call
}
@@ -2,7 +2,7 @@ var f = null
{
var a = "a"
f = fn {
f = new Fn {
IO.print(a)
IO.print(a)
}
+1 -1
View File
@@ -3,7 +3,7 @@
{
var a = "a"
f = fn IO.print(a)
f = new Fn { IO.print(a) }
}
{
+1 -1
View File
@@ -1,6 +1,6 @@
var global = "global"
// TODO: Forward reference to global declared after use.
fn {
new Fn {
IO.print(global) // expect: global
}.call