From 73b12271c06078b74bce9548a207dfaa9918f8b7 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Mon, 22 Nov 2010 17:44:27 +0300 Subject: [PATCH] Calling closures on objects --- examples/src/Builder.jetl | 6 +++--- examples/src/With.jetl | 14 ++++++++++++++ grammar/src/expressions.grm | 1 + 3 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 examples/src/With.jetl diff --git a/examples/src/Builder.jetl b/examples/src/Builder.jetl index 6bd3bf4aa5c..85532ac7e7d 100644 --- a/examples/src/Builder.jetl +++ b/examples/src/Builder.jetl @@ -33,11 +33,11 @@ class AntBuilder { fun library(initializer : Library.{ => Library}) { val lib = new Library() - initializer(lib) + lib.initializer() return lib } - fun classpath + fun classpath... - fun module + fun module... } \ No newline at end of file diff --git a/examples/src/With.jetl b/examples/src/With.jetl new file mode 100644 index 00000000000..5e3c3fe02b0 --- /dev/null +++ b/examples/src/With.jetl @@ -0,0 +1,14 @@ +[inline] fun with(receiver : T, body : T.{=> ()}) = receiver.body() + +fun example() { + + with(java.lang.System.out) { + println("foo"); + print("bar"); + } + + System.out.{ + + } + +} \ No newline at end of file diff --git a/grammar/src/expressions.grm b/grammar/src/expressions.grm index ae0c0ac7814..5cc459a05bc 100644 --- a/grammar/src/expressions.grm +++ b/grammar/src/expressions.grm @@ -148,6 +148,7 @@ memberAccessExpression memberAccess : functionCall : fieldOrPropertyAccess + : functionLiteral // no parameters allowed ; fieldOrPropertyAccess