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,11 +2,11 @@ class Foo {
new { _field = "Foo field" }
closeOverFooGet {
return fn { return fn { return _field } }
return new Fn { new Fn { _field } }
}
closeOverFooSet {
return fn { return fn { _field = "new foo value" } }
return new Fn { new Fn { _field = "new foo value" } }
}
}
@@ -17,11 +17,11 @@ class Bar is Foo {
}
closeOverBarGet {
return fn { return fn { return _field } }
return new Fn { new Fn { _field } }
}
closeOverBarSet {
return fn { return fn { _field = "new bar value" } }
return new Fn { new Fn { _field = "new bar value" } }
}
}