[ast] limit occurences of argn(0)==0 to improve backward compatibility 58/21258/5
authorSt├ęphane Mottelet <stephane.mottelet@utc.fr>
Fri, 24 Jan 2020 17:23:15 +0000 (18:23 +0100)
committerClement David <clement.david@esi-group.com>
Mon, 27 Jan 2020 09:09:07 +0000 (10:09 +0100)
commitaa57edd04601eb6ff9f0e61661e03f716983ca72
tree86ab69c4ada580e792e86d2683a64261e12454dd
parentc184816bb64728b59a7adb6bad75f7ba39bb3b31
[ast] limit occurences of argn(0)==0 to improve backward compatibility

Since https://codereview.scilab.org/#/c/21034/ when a macro
was called without output arguments, the value argn(0)==0 is given
without restriction and this can break a lot of user codes checking
the number of output arguments with constructs like

if argn(0) <> 1, ..., end

instead of

if argn(0) > 1, ..., end

With this patch, argn(0)==0 is only granted when macro prototype has
no formal output argument or if varargout is the only formal output
argument.

Change-Id: Ifc235a2ac986550b41522fddbf448b6eaa02b2d3
scilab/modules/ast/src/cpp/types/macro.cpp