Skip to content

Commit 3bb689f

Browse files
author
Luma
committed
Change the compiler function structure and add tests.
1 parent 37f1d2a commit 3bb689f

File tree

7 files changed

+15
-10
lines changed

7 files changed

+15
-10
lines changed

autoload/vimlparser.vim

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4977,9 +4977,9 @@ function! s:Compiler.compile_function(node) abort
49774977
if empty(rlist)
49784978
call self.out('(function (%s)', left)
49794979
elseif empty(default_args)
4980-
call self.out('(function (%s) (%s)', left, join(rlist, ' '))
4980+
call self.out('(function (%s (%s))', left, join(rlist, ' '))
49814981
else
4982-
call self.out('(function (%s) (%s) (%s)', left, join(rlist, ' '), join(default_args, ' '))
4982+
call self.out('(function (%s (%s) (%s))', left, join(rlist, ' '), join(default_args, ' '))
49834983
endif
49844984
call self.incindent(' ')
49854985
call self.compile_body(a:node.body)

js/vimlparser.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4482,10 +4482,10 @@ Compiler.prototype.compile_function = function(node) {
44824482
this.out("(function (%s)", left);
44834483
}
44844484
else if (viml_empty(default_args)) {
4485-
this.out("(function (%s) (%s)", left, viml_join(rlist, " "));
4485+
this.out("(function (%s (%s))", left, viml_join(rlist, " "));
44864486
}
44874487
else {
4488-
this.out("(function (%s) (%s) (%s)", left, viml_join(rlist, " "), viml_join(default_args, " "));
4488+
this.out("(function (%s (%s) (%s))", left, viml_join(rlist, " "), viml_join(default_args, " "));
44894489
}
44904490
this.incindent(" ");
44914491
this.compile_body(node.body);

py/vimlparser.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3587,9 +3587,9 @@ def compile_function(self, node):
35873587
if viml_empty(rlist):
35883588
self.out("(function (%s)", left)
35893589
elif viml_empty(default_args):
3590-
self.out("(function (%s) (%s)", left, viml_join(rlist, " "))
3590+
self.out("(function (%s (%s))", left, viml_join(rlist, " "))
35913591
else:
3592-
self.out("(function (%s) (%s) (%s)", left, viml_join(rlist, " "), viml_join(default_args, " "))
3592+
self.out("(function (%s (%s) (%s))", left, viml_join(rlist, " "), viml_join(default_args, " "))
35933593
self.incindent(" ")
35943594
self.compile_body(node.body)
35953595
self.out(")")

test/test1.ok

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
; test1
2-
(function (s:foo) (a b . ...)
2+
(function (s:foo (a b . ...))
33
(return 0))
4-
(function (s:bar) (a b . ...) (1 2)
4+
(function (s:bar (a b . ...) (1 2))
55
(return 0))
66
(if 1
77
(echo "if 1")

test/test_funcarg.ok

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
(function (X (foo) ((+ 1 2)))
2+
(return a:foo))

test/test_funcarg.vim

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
function X(foo=1+2)
2+
return a:foo
3+
endfunction

test/test_xxx_funcarg_last_comma.ok

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
(function (F) (a))
2-
(function (G) (a))
1+
(function (F (a)))
2+
(function (G (a)))

0 commit comments

Comments
 (0)