From 059e407ed3da8153cc355ffeb50e466d276ddeeb Mon Sep 17 00:00:00 2001 From: Michel Hermier Date: Thu, 8 Apr 2021 07:58:46 +0200 Subject: [PATCH] wren/compiler: Allow multiline empty parameter lists and calls. (#925) --- src/vm/wren_compiler.c | 6 ++++++ .../method/no_parameters_new_line.wren | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 test/language/method/no_parameters_new_line.wren diff --git a/src/vm/wren_compiler.c b/src/vm/wren_compiler.c index 5c03b519..6e6444e7 100644 --- a/src/vm/wren_compiler.c +++ b/src/vm/wren_compiler.c @@ -1969,6 +1969,9 @@ static void methodCall(Compiler* compiler, Code instruction, { called.type = SIG_METHOD; + // Allow new line before an empty argument list + ignoreNewlines(compiler); + // Allow empty an argument list. if (peek(compiler) != TOKEN_RIGHT_PAREN) { @@ -2640,6 +2643,9 @@ static void parameterList(Compiler* compiler, Signature* signature) signature->type = SIG_METHOD; + // Allow new line before an empty argument list + ignoreNewlines(compiler); + // Allow an empty parameter list. if (match(compiler, TOKEN_RIGHT_PAREN)) return; diff --git a/test/language/method/no_parameters_new_line.wren b/test/language/method/no_parameters_new_line.wren new file mode 100644 index 00000000..d7d6a12c --- /dev/null +++ b/test/language/method/no_parameters_new_line.wren @@ -0,0 +1,19 @@ + +class Foo { + static call( + ) { + System.print("Success") // expect: Success + } + + construct new () {} + + call( + ) { + System.print("Success") // expect: Success + } +} + +Foo.call( +) +Foo.new().call( +)