Mercurial > vim
diff src/userfunc.c @ 14002:ade79e3e3b88 v8.1.0019
patch 8.1.0019: error when defining a Lambda with index of a function result
commit https://github.com/vim/vim/commit/b4518563c73460150344a57879bf5b22cb8b1c77
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue May 22 18:31:35 2018 +0200
patch 8.1.0019: error when defining a Lambda with index of a function result
Problem: Error when defining a Lambda with index of a function result.
Solution: When not evaluating an expression and skipping a function call,
set the return value to VAR_UNKNOWN.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 22 May 2018 18:45:05 +0200 |
parents | 69517d67421f |
children | 706b57cd1b00 |
line wrap: on
line diff
--- a/src/userfunc.c +++ b/src/userfunc.c @@ -1349,8 +1349,16 @@ call_func( } - /* execute the function if no errors detected and executing */ - if (evaluate && error == ERROR_NONE) + /* + * Execute the function if executing and no errors were detected. + */ + if (!evaluate) + { + // Not evaluating, which means the return value is unknown. This + // matters for giving error messages. + rettv->v_type = VAR_UNKNOWN; + } + else if (error == ERROR_NONE) { char_u *rfname = fname;