feat: allow empty argument list methods in calls, definitions, and docs

- Compile empty `()` as a valid method signature distinct from no parentheses
- Update `call()`, `clear()`, `run()`, `try()`, and `yield()` to use empty argument lists
- Revise documentation across multiple files to reflect new signature semantics
This commit is contained in:
Bob Nystrom
2015-02-27 07:08:36 +00:00
parent 94f34367f9
commit 5382fa05d7
94 changed files with 291 additions and 224 deletions
+6 -6
View File
@@ -76,17 +76,17 @@ so by calling a method on it:
:::dart
class Blondie {
callMe(fn) {
fn.call
fn.call()
}
}
Functions expose a `call` method that executes the body of the function. This
Functions expose a `call()` method that executes the body of the function. This
method is dynamically-dispatched like any other, so you can define your own
"function-like" classes and pass them to methods that expect "real" functions.
:::dart
class FakeFn {
call {
call() {
IO.print("I'm feeling functional!")
}
}
@@ -157,6 +157,6 @@ to`i`:
:::dart
var counter = Counter.create
IO.print(counter.call) // Prints "1".
IO.print(counter.call) // Prints "2".
IO.print(counter.call) // Prints "3".
IO.print(counter.call()) // Prints "1".
IO.print(counter.call()) // Prints "2".
IO.print(counter.call()) // Prints "3".